上期笔者刚提出Silverlight之轻,本期就要讨论silverlight之重?请大家不要觉得奇怪,架构的轻与重永远都是相对而言,虽然Silverlight相对于传统C/S架构有更加轻型的运行时环境,但相较于Html+JavaScript等传统B/S架构确实具有更加庞大的基础类库支持。Silverlight依靠.Net平台,使用C#高级语言代替JavaScript脚本语言,实现了强大的客户端计算能力、支持多线程,继承了WPF丰富的样式、控件、特效与动画,更可控的浏览器适应性,更安全的沙箱模式,客户端嵌入式数据库等,这就是本期要给大家介绍的重点—Silverlight之重。
\自上世纪90年代以来,Html+JavaScript几乎占据了Web应用的全部,在近20年的发展过程中,一大批工具化的JavaScript框架应运而生,比如轻量级的JQuery、重量级的ExtJs和Dojo等都为开发者建立Web应用提供了多种选择。ExtJs框架有强大的UI展现层,已经在Turbo CRM等企业级应用中有实际案例,而Dojo有IBM、Oracle等大公司撑腰,Struts2更将Dojo集成在客户端框架中,该框架甚至还支持离线浏览。
\虽然以上框架已经具有相当可观的基础库支持,但Silverlight的架构却拥有更加重量级的高级语言支持,使得它可以完成JavaScript框架所不能实现的功能,Silverlight之重就体现在以下几方面:
\- 基于.Net平台,拥有丰富的基础类库支持,可以快速构建复杂的企业级应用\
Silverlight拥有强大的.Net平台支持,自Silverlight1.1使用.Net运行时环境以来,Silverlight类库已经得到极大的扩充,并集成了WPF、WCF、LINQ、DLR、COM等.Net平台的优秀技术,下图是MSDN上关于.Net for Silverlight的支持图例。
\由于Silverlight使用了WPF展现层控件库,使得Silverlight与WPF共享代码不存在任何技术屏障,事实上Silverlight就是一种桌面应用在Web上的轻量级实现,即便存在一些差异,我们也可以通过下面的代码将Silverlight应用与桌面应用粘合在一起。
\\#if SILVERLIGHT\ dynamic excel = AutomationFactory.CreateObject(\"Excel.Application\");\#else\ dynamic excel = Microsoft.VisualBasic.Interaction.CreateObject(\"Excel.Application\