从silverlight 1开始,MS对这个技术的定位似乎更重视于互联网应用的娱乐性体验,但是,我认为silverlight技术应该更多关注一下企业应用的解决方案。
把html应用于企业应用的原始动力是易于维护和部署,但是由于html的设计先天上就只是为了内容的展示而非交互,因此在实现企业应用中常有的复杂逻辑、界面逻辑控制方面根本就是草率应付,虽然后来加入了JS来扩展应用,但是基础html规范的简陋,使得即使我们只是想要实现一个限定类型的输入框,也不得复制一堆堆繁琐而丑陋的代码。
另外一个问题是http协议的无状态性。功能提交后的新页面实际上与之前的页面之前没有任何关系,即使你只是刚刚离开了0.1秒,服务器都不会记得你是谁,你之前有没有来过,你的上下文信息等。可以说,WEB应用的开发,有一半努力都是在围绕如何解决这个问题而展开,session, cookies, viewstat, hiddeninput, url string ... 虽然通过这些或高明或不高明的手段,会话上下文信息可以得以一定程度的延续,但是比起CS架构的程序中上下文的自然持续来,WEB程序为解决这种问题而付出的努力、进而造成的资源浪费,真得是让人无法接受。
http协议的无状态性带来的另一个问题是很难实现WEB事务,而操作的一致性却正是企业应用中所最重视的。用户可以随便地在页面之间中断,关闭,回退,前行,把界面控制逻辑搞得无所适从,一团乱麻,真是企业应用的恶梦。
http的这种设计,是为了提高服务器的性能容量而,以及受限于协议开发时的技术能力,而做出的妥协,html亦然。因此,web程序极合适于开发信息发布系统,而不宜于开发逻辑要求、界面控制要求较高的企业应用。
silverlight来自于AcitiveX\jave applet等这种嵌入式程序的思想,但是MS用新的.net技术和为这种思想进行了重新再造,虽然是新瓶装旧酒,但是有可能新一举解决部署和功能两方面的问题,即有web程序的易于部署和维护,又有客户端程序的易于开发,加上严格的UI行为控制,加强的安全性策略,以及更先进的通信能力,silverlight会成为下一代企业应用的主流解决方案。
但是,silverlight似乎把解决企业应用问题放在了比较低的优先级上:1.0时,不支持强类型的.net语言开发,到2.0时,.net语言功能的加入使得已经可以在企业应用场合中试着做一些尝试了。但是,很多功能还只是简化版,无法完全满足要求,而企业应用中比较不重视的娱乐、多媒体等功能却得到了大力的增强。
这与MS一向忽视企业用户的传统一脉相承,同一个原因让MS忽视过internet开发,忽视过数据库,忽视过服务器产品,忽视过服务应用开发。也正是同一个原因,使.net这个优秀平台在进入很多大型企业应用的核心地带时多遇阻碍。但是好在MS总是能及时醒悟,通过强大的技术能力收复失地。IE来了,SQLSERVER来了,.net来了,现在,silverlight也来了,但是,和MS的一贯作风一样,silverlight首先解决面向个人客户的问题。
我对silverlight这个技术报以最热忱的希望,因为它把应用开发、逻辑控制、与部署维护等几个要素调和在同一种技术中,提供了目前为止最好的解决方案,因此,silverlight的架构非常合适于企业应用的开发。希望silverlight能在后续的发展中,能在解决富UI体验的同时,再为企业应用方案方面提供更多支持。
可喜的时,在silverlight 3.0的改进中,果然已经包括了一些对企业应用支持的增强。
Richer text control 富文本框
Support for spell checking 语法检查
Support for inline tables 行内表格
Support for PDF PDF文档支持!
HTML rendering html生成。
Printing 打印!!
Offline storage 离线保存!!
Local database storage 本地数据库!!
Database synchronization 数据同步!!
Can install Silverlight application on desktop 可以把应用安装在桌面上!!
Access to local hard drive limited to MyDocuments 可以访问本地硬盘上的“文档” !!!
Access to all of hard drive 可以访问本地硬盘!!!
Can drag & drop from desktop to Silverlight 可以从桌面上拖拉对象到silverlight!!
Ability to create new Silverlight windows 可以创建新窗口!! 是不是指对话窗那样的模态窗口?
Support for device access such as USB 可以访问本地设备!!
Hardware accelerated graphical effects 硬件图形加速。
Blend modes 融合(?)模式
Frame based animation 帧动画
Inverse kinematics / bones 反向动力与骨架!
3D 3维动画
接下来我们还需要什么?
http上下文的访问能力。
服务器session对象访问能力。
更方便地访问宿主页的viewstat。
根据安全设置, 可完全访问web service。
模态对话窗。
应用Closeing, Closed,Unload事件支持。
一个服务器数据源映射层,透明提供对服务器数据源的操作功能?
事务支持。
...(本文由控件中国网转载)