InfoWorld评论:微软Silverlight 4 vs. Adobe Flash 10.1

Silverlight通过出色的开发工具和设计工具集成,挑战Flash、Flex和AIR在RIA领域的霸主地位

HTML5它承诺提供免费插件浏览、3D图形和动画API、内置的视频和音频标签、离线数据存储和用于管理长时间运行的后台进程的Web Workers,这似乎意味着专有RIA(富Internet应用程序)平台的终结。但是关于Flash和Silverlight死亡的报道,就像俗话说的那样,被大大夸大了。

为了满足不断发展的网络的需求,像Adobe和微软这样的公司可以比任何一个标准组织通过委员会推动新规格的速度更快地增强他们的插件。HTML5的工作从2004年就开始了,预计至少要到2022年才会有真正的W3C推荐状态。网络将会继续改变,引领潮流的将不会是那些标准机构。

[也是在InfoWorld:阅读尼尔·麦卡利斯特的入门读物,"你能从HTML5期待什么与InfoWorld's s 保持软件开发方面的最新消息和看法。开发人员中心通讯。]

如今,旨在推动新的Web标准的Web超文本应用技术工作组(WHATWG)甚至无法就支持哪种视频编解码器达成一致,将互操作性的选择留给了各个浏览器制造商。对新HTML标准的支持将是零星出现的,这只会使开发人员的工作复杂化。Web内容提供商和富Internet应用程序的开发者将继续被最强大的RIA生态系统所吸引——最完整的开发工具集和最可靠的内容交付机制,这两者都不是HTML5所能解决的。

今天最富有的RIA平台(和在可预见的未来)来自泰坦Adobe和Microsoft冲突,Flash和Silverlight的平台结合优良的工具为开发人员和设计师,广大客户支持,强烈支持服务器端技术,数字版权管理功能,并且能够满足用例不同企业仪表盘,实时视频和在线游戏。并且每个版本都有了新的更新,分别是Flash 10.1/AIR 2和Silverlight 4,这使它们处于接近同一水平的竞技场上。你应该选择哪一个?

adobeflash 10.1和AIR 2Adobe的Flash平台包括开源Flex SDK、免费Flex编译器、名为Flash Builder的基于eclipse的专有IDE、Flash Player浏览器插件和Adobe AIR,后者是Windows、Mac和Linux的运行时,允许将富Internet应用程序直接部署到桌面上。

此外,Adobe提供了一套增强Flash开发的工具(可作为CS5或独立的一部分提供)。除了Flash Professional创作工具之外,还有新的Flash Catalyst——一个用于用户界面和行为快速原型化的交互设计工具——以及LiveCycle Data Services或Adobe开源的用于Java远程和消息传递的BlazeDS。

Flash可能不会出现在iPhone或iPad上,但它在客户端支持方面仍然比Silverlight有优势,这要归功于无处不在的Flash播放器。Flash在数字版权管理方面也更强大,通过Flash Access 2.0提供对流媒体和数据下载的粒度控制。由于Silverlight工具已经集成到Visual Studio 2010中,Adobe的开发环境无法与微软的相提并论,而且Adobe在集成设计和开发方面也没有微软做得那么好。尽管如此,Flash Builder IDE并不逊色,而且Flash Catalyst是一个受欢迎的添加。

Flash 10.1和Flash Builder 4为更好的数据访问提供了支持。Flash remoting现在可以点击SOAP和REST Web服务以及ASP。Net、J2EE、PHP、BlazeDS和Adobe的ColdFusion和LiveCycle数据流服务服务器。

有些人可能认为Flash缺乏与常见服务器技术紧密直接的集成——比如Silverlight对。net、COM和WCF的访问——是它的缺点。但我认为,这种独立于服务器的解决方案是当今所需要的灵活、模块化应用程序的完美组合。

随着ActionScript 3的出现,Adobe从一种通用的脚本语言发展成为一种更加强大的、面向对象的、事件驱动的编程语言。开发人员获得了熟悉的结构,如类和对象,Flash在这个过程中获得了成倍的速度提升。

Flash Player和AIR的新版本——AIR两年来的首次重大更新——带来了重要的功能,解决了Adobe最近面临公众批评的问题。休眠不活动的Flash应用程序(例如。(比如在隐藏的浏览器标签中运行的浏览器)有助于提高感知性能,减少内存和电量需求。Adobe还增加了多点触摸和手势支持,以及对屏幕键盘的支持,使Flash对平板电脑和智能手机的部署更加友好。

新的内存管理调整和改进的垃圾收集例程将提高桌面和移动的性能。此外,视频解码和回放的硬件加速有助于更有效的功耗配置文件。

Mac运行时现在已经迁移到Cocoa框架,这是苹果的Objective-C开发平台。通过为图形、声音和打印功能提供本机支持,重新排列应该可以提高兼容性,减少flash导致的Mac崩溃。

在版本2中,AIR深入到桌面,支持调用本地代码(。Net和Java库)和AIR客户端和操作系统之间的拖放,以及对UDP、IPv6网络和更好的网络容错的支持。Windows客户端还通过Adobe Flash Access 2 SDK轻松获得DRM,该SDK提供控制按需流媒体和“过期”内容租借的设施。

开发人员还可以在SDK和IDE中找到一些不错的工具。例如,Flex SDK提供了令人印象深刻的数据验证类。尽管它们在管理异步数据方面不像Silverlight中的同类那样适用,但它们非常容易实现。

至于IDE,我不会重复我的回顾adobeflashbuilder4,但重点包括服务和数据源的全面自省、快速的双向数据绑定、针对各种任务的向导驱动代码生成、快速而简单地将数据和事件处理程序连接到UI组件,以及帮助简化处理大型数据集的编码的预制数据分页例程。

自从那篇在3月份Flash Builder 4发布时撰写的评论之后,Adobe还发布了Flash Catalyst,现在它已被提升为CS5 (creativesuite5)包中的一等公民。Catalyst的点击框架使它能够快速地将事件触发器和行为连接到您的界面中,并且它与CS5应用程序套件(Illustrator、Photoshop和Fireworks)的结合简化了项目从设计人员到开发人员的传递过程。

令人失望的是,这个工作流是单行道。虽然我可以把Photoshop和Illustrator文件带到Catalyst中,但是我没有运气去做相反的事情。当我在Catalyst中重新打开文件时,对Flash Builder中Catalyst文件所做的修改导致了错误,尽管我在Builder中使用了FXP文件导出选项。

对于非技术设计师来说,Catalyst仍然是一种简单的方法,可以帮助他们开发UI,而不会被底层的MXML语言所束缚。Catalyst让我从导入的美术文件中快速定义通用的界面组件(滚动条、按钮等),并将它们与数据绑定。尽管Catalyst的界面不够优雅(与其他CS5应用程序相比),但它的简单性和dreamweaverstyle布局应该可以最小化学习曲线。

微软的Silverlight 4Silverlight平台包括Silverlight开发人员运行时和SDK,支持Windows Vista、Windows 7, Windows XP SP3,和Windows Server 2008,桌面和浏览器客户端为Windows和Mac OS x Silverlight 4工具Visual Studio 2010让Visual Studio开发人员与WCF RIA服务目标Silverlight项目模板库和工具来管理桌面(浏览器)应用程序。它还包括Silverlight的f#运行时和Microsoft Visual Web Developer Express 2010的更新,后者是一个独立但免费的用于开发Silverlight和基于ajax的应用程序的工具。

微软还提供了额外的应用来增强Silverlight的创建。Expression Blend 4,就像Adobe的Flash Catalyst,简化了原型设计并将UI交互线程化。Expression Encoder 4是一个用于编码音频和视频内容的免费工具,尽管你需要H.264编码的Pro版本,并支持IIS流畅流媒体。

Silverlight令人印象深刻的开发工具比Flash的开发工具要好,微软的用户界面设计工具是紧密集成的。然而,RIA平台并不仅仅依赖于工具,Silverlight在原生编解码器支持、数字版权管理和硬件支持等方面比Flash落后了一步。

虽然Silverlight基于位图的打印与Adobe基于矢量的crisp实现相比相形见绌,但Silverlight 4在前方面的改进允许开发人员将来自网络摄像头和麦克风的输入合并到他们的应用中,并支持输出到打印机。Silverlight 4还引入了对平板电脑和智能手机的触控支持,这也是Adobe提供的一个新功能。

补充Windows Media DRM 10,微软最新的PlayReady DRM技术确保数字内容流和下载到Silverlight客户端。与Adobe的Flash Access 2一样,PlayReady可以管理订阅和租赁,并且可以在客户端上保存许可证以供离线访问。

但是Silverlight 4版本中最重要的添加是添加到Visual Studio 2010的全面开发者支持。以前,Visual Studio缺少Silverlight的设计界面,需要开发人员推出自己的XAML (Silverlight基于xml的UI描述语言)或使用Microsoft Expression Blend。无论哪种情况,这都是一个繁琐的过程。Visual Studio新的内置XAML设计器允许您将GUI组件拖放到适当的位置,同时在后台生成代码。没有必要在Visual Studio和Expression Blend之间来回弹出。

用于Visual Studio 2010和WCF的Visual Studio 2010和Silverlight 4工具和RIA服务和工具安装起来毫不费力,并且包含了用于SOAP和JSON端点映射的附加RIA服务。开发人员现在获得了一个具有拖放数据绑定和属性设置的可编辑设计界面,以及世界级IDE内的统一调试。此外,为。net和Silverlight交叉编译相同代码库的能力有助于减少开发周期。

在幕后,微软的XAML解析器也进行了急需的修改。更丰富的名称空间管理、直接的内容封装、更好的空格处理和错误报告都改进了框架。

微软在Expression Blend 4中为Silverlight提供了第二个创作工具,这是一个类似于Adobe Catalyst的用户界面设计工具。Expression Blend为原型和线程Silverlight UI交互提供了一个图形界面,而不需要触碰XAML。

Expression Blend在版本3中只是一个严格意义上的设计工具,在版本4中已经提升为一个Visual studio类型的编码工具,它提供了完全的智能感知支持和拖放元素绑定,真正简化了过程。我发现它比adobecatalyst更全面,更容易工作。

Expression混合了一些增强的特性,比如条件行为建模。新的数据存储是一个用于变量和状态信息的本地字典,它真正地将编码简化为配置,帮助消除了设计人员和开发人员之间的隔阂。

对于Silverlight 3的开发人员来说,最大的障碍之一是插入业务线数据。虽然通过WCF (Windows Communication Foundation)服务可以克服这些障碍,但Silverlight本身缺乏Web和桌面应用程序可用的连接选项(如Entity Framework和ADO.Net)。有了Silverlight 4中的WCF RIA服务,n层应用现在在数据访问、验证和身份验证方面有了更多的灵活性。通过点击ASP。Net中间层,开发者可以通过网络更好地管理数据驱动的应用程序。

对于希望使用本地系统库的Microsoft Office商店来说,为受信任的应用程序提供新的COM互操作访问是显而易见的。最后,Silverlight 4应用程序能够利用微软的MEF (Managed Extensibility Framework)——。net 4的一个新增功能,简化了代码更新——是Silverlight开发人员可以使用的专业级工具的另一个特点。Flash开发者从未有过这么好的体验。

Flash和Silverlight吗?Adobe长久以来一直在RIA领域占据主导地位,这要归功于无处不在的Flash Player,据估计它可以在全球93%以上的Web浏览器中运行。但这种统治是在几乎没有竞争选择的情况下诞生的。Adobe改善了开发者的体验,并最终搭建了通向其强大设计套件的桥梁,但微软走得更快。公平地说,尽管微软在Silverlight的每一个发布版本上都取得了巨大的进步,但它所跨越的大部分距离已经被Adobe踩过了。

12 第1页
第1页共2页
工资调查:结果在