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年首次启动,并没有预计到有实际的W3C推荐标准状态,直到至少2022年的网络将继续改变,也不会是标准制定机构谁是一路领先。
[同样在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,这使它们处于接近同一水平的竞技场上。你应该选择哪一个?
的Adobe Flash 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开发平台。提供图形,声音和打印功能的原生支持,重新组合应提高兼容性和降低闪光灯引起的Mac崩溃的数量。
随着第2版,AIR挖掘更深的桌面,为支持UDP,IPv6的网络为本地代码(.Net和Java库,例如)和AIR客户端和操作系统之间拖动和下降的呼叫,以及支持和更好的网络容错性。Windows客户端也通过的Adobe Flash访问2 SDK,它提供了用于控制点播流媒体和“到期”的内容出租获取容易DRM。
开发人员还可以在SDK和IDE中找到一些不错的工具。例如,Flex SDK提供了令人印象深刻的数据验证类。尽管它们在管理异步数据方面不像Silverlight中的同类那样适用,但它们非常容易实现。
至于IDE,我不会重复我的回顾adobeflashbuilder4,但重点包括服务和数据源的全面自省、快速的双向数据绑定、针对各种任务的向导驱动代码生成、快速而简单地将数据和事件处理程序连接到UI组件,以及帮助简化处理大型数据集的编码的预制数据分页例程。
由于这一审查,这是在Flash Builder 4的3月份,Adobe公司发布也发布了Flash Catalyst中,这是现在晋升为一等公民的CS5(Creative Suite的5)包内写入。Catalyst的指向并点击框架可以捕捉到导线事件的触发和行为到您的接口,以及它与CS5套件应用程序(插图,Photoshop和烟花)简化传递项目从设计到开发者共生。
令人失望的是,这个工作流是单行道。虽然我可以把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 4的开发人员将摄像头和麦克风输入到他们的应用程序,并支持输出到打印机,虽然Silverlight的基于位图相比,Adobe的脆基于矢量的执行打印相形见绌。Silverlight 4中还开创了平板电脑和智能手机,新增加了Adobe的产品以及触摸支持。
补充的Windows Media DRM 10,微软最新的PlayReady DRM技术确保数字内容流和下载到Silverlight客户端。像Adobe的Flash访问2,PlayReady的可管理的订阅和服务,还可以在客户端的离线访问的持续许可证。
但在Silverlight 4的版本中最重要的除了是加入到Visual Studio 2010年以前,全面开发者的支持,Visual Studio中缺少对Silverlight的设计界面,要求开发商爆炸了自己的XAML(Silverlight的基于XML的用户界面描述语言)或使用Microsoft Expression Blend。在任一情况下,这是一个麻烦的过程。Visual Studio的新的内置XAML设计可以让你拖放GUI组件到位,同时在后台生成的代码。有没有必要到Visual Studio和Expression Blend突然之间来回。
Visual Studio 2010和Silverlight 4的工具Visual Studio 2010和WCF RIA服务和工具安装无痛,包括SOAP和JSON终结点映射额外的RIA服务。现在,开发人员通过拖放和拖放数据绑定和属性设置抢占编辑的设计,以及统一的世界级的IDE内部调试。另外,进行交叉编译相同代码库.NET和Silverlight中的能力有助于减少开发周期。
在幕后,微软的XAML解析器也进行了急需的修改。更丰富的名称空间管理、直接的内容封装、更好的空格处理和错误报告都改进了框架。
微软在Expression Blend 4中为Silverlight提供了第二个创作工具,这是一个类似于Adobe Catalyst的用户界面设计工具。Expression Blend为原型和线程Silverlight UI交互提供了一个图形界面,而不需要触碰XAML。
严格第3版设计工具,Expression Blend中已经被提升到一个Visual Studio型的编码版本4设施与完整的IntelliSense支持和拖动和拖放元件结合,真正简化了过程。我发现它更加全面,更容易在工作比Adobe催化剂。
Expression混合了一些增强的特性,比如条件行为建模。新的数据存储是一个用于变量和状态信息的本地字典,它真正地将编码简化为配置,帮助消除了设计人员和开发人员之间的隔阂。
对于Silverlight 3的开发人员来说,最大的障碍之一是插入业务线数据。虽然通过WCF (Windows Communication Foundation)服务可以克服这些障碍,但Silverlight本身缺乏Web和桌面应用程序可用的连接选项(如Entity Framework和ADO.Net)。有了Silverlight 4中的WCF RIA服务,n层应用现在在数据访问、验证和身份验证方面有了更多的灵活性。通过点击ASP。Net中间层,开发者可以通过网络更好地管理数据驱动的应用程序。
受信任的应用程序的新COM互操作的访问是Microsoft Office商店希望使用本地系统库没有道理的。一个.NET 4中另外,它简化了推动代码更新 - - 最后的Silverlight 4应用程序的能力,以微软的MEF(托管扩展框架)画是专业级工具又一标志是Silverlight的开发人员在他们的处置。Flash开发人员从未有过这个好。
Flash或Silverlight?Adobe已经长期把持RIA现场感谢无所不在的Flash播放器,估计向上的世界上的Web浏览器的93%运行英寸但是,统治诞生于竞争性选择的接近真空。Adobe已经提高了开发者体验,最终构建一个桥梁,其强大的设计套件,但微软已经进一步加快到来。为了公平起见,虽然微软的Silverlight的每个版本取得了很大的它已经越过由Adobe早已经被踩过的距离的长足进步。