技术开发 频道

微软发布Expression套件剑指何方?

【IT168技术文档】

  微软本月推出了他们最新的Web开发及设计工具Expression套件,宣告微软正式进军客户端设计开发领域,将于Adobe分庭抗礼。对微软来说,微软Expression的发布所具有的战略意义,也许远比IE7重要的多。  

一 剑指Adobe?
  微软要抢占被Adobe占据的市场了,大部分人,在第一次看到Expression时,都会有这种感觉。因为Expression套件与Adobe的产品线实在是太相似了,完全就是短兵相接的竞争。如:Expression套件中的Web Designer、Image Designer和Interactive Designer分别对应Adobe的Dreamweaver、Illustrator和Flash产品。

  值得注意的是, Expression主要设计人员来自Adobe公司;在客户端体验日益重要的今天,一向注重用户体验的微软,如果没有一款像样的前端设计工具,是无论如何也说不过去的。Adobe提倡的RIA(通过Flash或Flex技术实现),微软的WPF更是RIA技术的代表。
 
  本次微软发布的Expression套件包括了Web Designer、Image Designer和Interactive Designer三个软件,分别对应Adobe的三个王牌产品:Dreamweaver、Illustrator和Flash。新老三剑客势必会上演一场大比拼。

  Web技术发明到大规模运用,至今已有16年历史,作为一种展现手段,它完全有可能、也应该被新的展现手段所替代。Flash、ActiveX、AJAX,无一不是在努力扩展web平台的计算能力,但平台本身的缺点,却限制了更丰富的表现效果,同时也制约了应用开发。以AJAX为例,需要同时兼顾服务器端程序、通讯模型和页面脚本,特别是页面脚本,相信做过AJAX应用的人都会明白,编写、调试是多么麻烦的事情。

  然而,不管是WPF或是Flex,都代表了以后富客户端的方向——数据和表现分开,提供良好的渲染引擎和计算能力,提升客户端用户体验及开发方便性。按照微软的想法,只要打败了Adobe,俘获了那些web前端和RIA开发人员,加上旧三剑客的信徒,微软Expression似乎就可以一统天下了。


二 Expression套件包含哪些东西?
按照微软Expression官方网站上的介绍,前不久公布的套件中的3个产品目前 已经变成了4个:

  • Expression Designer: 原来的名称为Expression Graphic Designer,目前可以下载新的Beta1版本;
  • Expression Blend:原来的名称为Expression Interactive Designer,目前可以下载新的Beta1版本;
  • Expression Web:原来的名称为Expression Web Designer,已经正式RTM了;
  • Expression Media:原来Expression家庭中没有此产品,此产品是从iView收购而来,可以下载新的测试版本。

  有趣的是,这个套件中的产品在CTP阶段软件名称已经发生了变化。改名的原因,一方面是为了更为清楚地体现软件功能。原来都叫Designer,的确是有点让人不明白,到底是给designer用的呢,还是给developer用。现在很清楚了,Design就是给designer用,web就是给web页面设计人员用,而blend则是混合协同开发。另一方面,改名也说明微软对这一产品面向的受众正在做细微的调整,也许微软原来也没有想清楚这些产品的用户究竟是哪些人?
下面让我们逐一来揭开这些产品的面纱。

1 Expression Design
 
  按照微软官方网站的说法,“它是一款专业图形设计工具,提供丰富的像素描绘功能以及顺畅灵活的矢量图编辑功能,能够快速创建设计工作流程。 借助Expression Design,你可以为屏幕,网页或打印产品创建复杂的设计和图形元素。” Expression Design的功能类似于大家早已熟悉的Adobe Photoshop,提供许多Windows自带画图工具没有的高级图形编辑功能(如层等)。Acrylic支持打开和导出Photoshop和Illustrator文件格式,以及其他标准图形格式。此外,它还支持Adobe的便携文档格式或PDF。
 
  Expression Design创新的设计环境
    Expression Design主要特性如下:   
      • 向量和像素工具:支持在像素图层上绘图,创建对象,在矢量图层插入图片,矢量图层和像素图层间相互转换,通过拖放矢量对象到像素图层中来创建选择面罩。
    • 出色的像素绘图引擎:利用丰富的画笔引擎,可创建真实的像素图;你也自创多部件画笔,并利用它们来描绘斜面,纹理,污点或厚度。
  • 像素选择工具:可在复杂图形自动进行严紧和精确的像素选择,整个过程仅需简单的in/out区域标记。
  • 生动效果:不论是矢量图还是像素图,都可以在每个对象或图层中应用图片效果以及颜色校正滤镜。
  • 丰富的调色板:画图时,可更改色彩,饱和度,亮度,笔画,笔画宽度,透明度等。
  • 图像整合:把单独的相片或扫描图片整合成高质量的全景图。
  • HTML工作流程:创建跳转图片或弹出按钮,用户可在像素预览模式中预览作品;支持自动切片再导出成HTML格式。
  • 提示板:按照当前鼠标位置,快速访问相关信息。


2 Expression Web
 
  这款产品的代号为Quartz,与代号Sparkle的图形图像处理工具Graphic Designer和代号Sparkle的交互式网络动画创作工具Interactive Designer共同组成微软的设计“三剑客”。
  作为网页编辑工具FrontPage的替代产品,Expression Web Designer在功能以及可扩展性方面都有很大提升,而Frontpage将于今年正式结束它的使命。
 
Expression Web设计界面

  相比Adobe Dreamweaver,二者的最大区别是,Web Designer从更深层次上支持ASP.Net 2.0,而Dreamweaver则仅仅支持ASP.Net version 1.1,并且只是在“相当肤浅的层面上”支持。除此以外,Expression Web Designer还对CSS等标准提供支持,开发人员不但能够利用CSS创建网页,还可以管理代码。在一个复杂的网站中,会包含大量的CSS代码,开发人员需要保持网站代码“干净”,而且还要保证所使用的样式表不出现问题,开发人员可以通过Web Designer管理这些底层代码以使网站变得整洁。

3 Expression Blend 
 
  这款产品的原来的名称是Interactive Designer,从名称上便体现出了其交互设计功能。除了功能强大的无代码交互外,从前端的界面元素,也可以直接关联到后端的编程语言和代码,处理更为复杂的交互。
 
                   Expression Blend高效的协作界面 
  下一代应用程序将混合目前Web应用和桌面应用,这一款产品的定位将是下一代应用程序的UI设计人员的工具,同样采用拖拉的方式,可以将开发者写好的代码或控件直接放入到应用中去。


4 Expression Media
 
   
 最后是Expression Studio家族的新丁Expression Media,它是改变了商标的iView MediaPro。这款产品可以理解为一个物件管理工具,包括了一个用于跟踪如图片,字体,音频与视频等数字媒体的可视化目录。

  全方位的3D、动画、硬件加速显示引擎能够将矢量图形、位图、3D内容、视频、音频和富文本合成到一起,三维视图能够自由地混合在其它2D和媒体元素之间,允许在一个设计作品的不同元素之间进行功能强大的可视化交互;可以导入与合并矢量图和位图元素 ,或者绘制与编辑矢量图元素并应用高级渐变、Alpha透明度和笔触设置;可以 添加3D图形与动画 ,并能够对加入的3D对象进行直接控制,如对象的XYZ坐标变换、3D照相机、表面材质、Z空间动画以及表面纹理贴图等。
 
  可以从主流第三方3D创作工具中导入复杂的几何图形,或者创建能够进行挤出控制的3D模型、将位图转换为3D平面(Plane)等。Interactive Designer还能够制作高质量交互式视频 ,包括 HD视频 ,视频的分辨率与质量设置非常宽广。可以将视频当作一种“visual brush”(可视化笔刷),作为一种属性应用到任何控制中,或者应用于用户界面,包括3D平面或表面。高速的视频生成工作流程支持众多第三方软件,这些软件可以用于Windows Media编码、编辑、内容管理、数字版权管理等。


三 微软的意图

  微软在客户端的设计产品一直处于缺失的状态,除了Frontpage以外。由于微软多年的轻视,Frontpage几乎绝迹于Web开发设计市场。微软寄望Expression Studio产品来提升在设计人员或者说是在Web开发设计器中的知名度。微软的设计产品,最大卖点当然会选取在它能和应用程序开发人员之间更紧密更容易的的配合。Expression产品是以名为XAML (Extensible Application Markup Language)的使用者界面设计语言开发而成,可为Visual Studio读取。对设计与开发人员来说,拥有共通界面将有助于双方的协同合作。

  微软Expression融入了富客户端理念,据有良好的渲染引擎和计算能力。为客户端提供了良好的体验,为开发者创造了更加方便、灵活的设计环境。微软预计明年在这块市场的业务将会由现在的13%成长到15%、甚至20%。

微软发誓将彻底改变用户对应用软件的体验。
 
 如上图,这是微软的设计工具Expression Blend为大家准备的下一代应用程序的元素。正是在这种大势之下,微软才会在.Net3.0中推出WPF对整个软件生态链催熟。

按照微软讲师王洪超级的观点,WPF的出现解决了三个问题:
  1 更快速的开发更丰富的用户体验:使用WPF,可以在更加快速的时间内开发出来更加丰富的界面,满足用户的需求。绝不仅仅是控件风格和样式的变化。如果仅仅是使用控件,建议您还是使用GDI+或者ASP.NET或者MFC等等就够了。WPF之所以有那些控件,我个人认为主要是为了向下兼容。WPF的目标应该是消除控件,让您开发出来的软件根本看不出来控件的特征,软件世界再也不是由Button+Textbox组成的怪物了。如下图,此款使用WPF开发的应用程序,你还能看到哪部分是控件吗?

  2消除用户界面差异:也请注意左图,这就是一款使用WPF开发的应用程序,而且它是以IE为宿主的。如果只是看这部分截图,你可以区分它是Windows Application还是Browser Applicaiton吗?历史在1995进入一个鸿沟,开发人员突然变成了两大阵营:B/S开发人员以及C/S开发。而现在到了应该弥补这个鸿沟的时候了。WPF正是背负着这个历史责任;

  3 软件开发团队的协作问题:软件开发团队的日常协作是一个非常大的问题,除了需求变更以外,第二个影响开发进度的就应该是团队协作性了。在软件团队中,我们比较熟悉Developer、DBA、Tester、IT Pro、Architect等。Designer可能往往被我们忽视,但实际上,Designer的工作成果才是与客户距离最近的。而且Designer与Developer如何配合工作,是很多团队所头疼的,而WPF正可以解决此问题。这儿对孙辉先生再说一句:XAML并不是WPF的另外一个名字,它是使用声明性编程方式实现WPF的一种文件格式。

  也有部分网友对王洪超的观点并不赞同,如有网友认为:首先控件在WPF里面仍然是"first citizen",WPF并不是要取消控件,而是要实现控件的外观和其操作完全隔离,WPF提倡一个叫做lookless control的概念,也就是'"无外观控件'",你可以通过定义样式(styling)和控件面板(control templating)来定义一个控件的外观,这和传统的win32或是windows forms的控件自定义方式是完全不一样的。

在WPF里面,你可以用很多种方式来定义一个控件的外观:
  1. 通过OnRender()方法.这种方式和windows forms种的方式非常相似,就是通过图形输出API来绘制控件的外观,在WPF里面,Image、 Shape、Border等控件都是通过这种方式来定义外观的。
  2. 通过Control Template.也就是通过定义控件的面板来定义其外观。这种方式是最灵活,也是WPF提倡的一种做法。
  3. 通过Visual Layer编程。WPF里面的所有具有外观的控件都有一个visual tree,你可以把Visual看成是一种具有一定图形外观的类。你可以重写VisualChildrenCount属性和GetVisualChild()方法来定义一个控件的visual集合,从而达到定义其外观的目的。
很多人对WPF与win32的联系有点不太清楚。首先WPF的线程模型仍然采用win32的STA模型,再者WPF仍然采用信息模型。采用这种模型的目的是为了能和其他程序更好的兼容。尤其是当你需要在WPF程序里面宿主win32, ActiveX, MFC,或是Windows Forms控件的时候尤为重要。但是WPF做得相当出色的地方就是WPF把这些线程模型和信息循环的APIs都封装在Dispatcher里面,DispatcherObject提供了一套更灵活的API来访问信息循环和实现线程同步。


四 界面真的很重要么?
  微软的推出的客户端开发套件,加上新一代平台.Net3.0下的开发技术,微软意图是想构建下一代应用程序开发的全套工具和平台。除了界面的变化以外,WPF 的出现到底能让开发人员完成哪些以前完全不能做到的事情? 难道应用程序的界面真的就那么重要么?WPF 的出现当然并不仅仅就是为了消除控件。

  从 DOS 到 Windows 3.1, Windows 95, Windows 98, Windows 2000, Windows XP 到 Windows Vista, button 从方的变成圆角的,从 2D 的变成 3D 的,从不带阴影的变成带阴影的...后来又变成方角的,又变成 2D 的,又变成半透明的...这些是用户最关心的么?

  银行里面的业务程序用了几十年,还是无界面的字符方式。这说明多数企业用户在使用商用软件处理数据时,关心的从来不是界面炫不炫,控件有没有边框/阴影,他们(首先)只在乎业务流程是否正确,而业务流程首先就是通过 UI 交互表现出来的。

  WPF 能帮你做到的事情,即使技术上你用现在的技术都能实现,但 WPF 也会极大地降低某些技术门槛。就像当年的VB的出现一样,并非在VB之前开发不了Windows程序,也不是有了VB之后 C/C++ 程序员就没饭碗了,而是VB的出现极大地降低了Windows程序开发的门槛,让更多的人都能够进入这一领域,让更多的人可以更专注于行业知识,而非技术实现本身 ---- 但决不是把 button 变成 3D。

  直观的界面当然有助于我们操作和使用软件。WPF的出现使得更快速的开发具有更丰富用户体验的程序成为可能,使用WPF,可以在更加快速的时间内开发出来更加丰富的界面,满足用户的需求,使得商业数据可视化成为可能。
 
   从Dos到windows,界面改变整个IT历史的故事,微软曾经演绎过,那么这个历史还会重演么?我们拭目以待。

0
相关文章