Silverlight自学记录---思想篇(1)Silverlight2.0的由来和内在.

 

博主声明:因为国内没有太多讲述Silverlight的理论和思想的文章,于是乎只好经常游荡在台湾和欧美技术人员的Blog里
看过之后感触良多,就把它记录在自己的Blog里,并加以自己的理解,希望能帮助到国内Silverlight的爱好者快速掌握Silverlight的精髓思想,而不是一来就看一堆例子一堆代码,那样会弄得大伙晕头转向的,因为我的英语呢不太好,所以有些地方可能对英文讲义的理解不对,如果有人能更好的理解,请联系我指正。

 

那么,开始我们的讲解吧,以后我每3天会发表一次.如果有事,我会提前通知.请各位关注...

--------------------------------------------------------------------------------------------

Silverlight的一些基本概念

                            ------ Silverlight是一个跨浏览器,跨平台的客户端程式(轻量级.NET Framework)

                            ------ 用于执行.NET框架所建立的提供下一代多媒体体验和丰富的交互式应用的网站

那么,为什么Silverlight用一个轻量级类库呢?为什么它不能基于强大的.NET Framework 3.5呢

这个问题就得追溯到Silverlight的由来了,但是这却没有多少人会与大伙儿讲,实际上在一开始微软在制定WPF的设计目标的时候,就是希望能建立一个统一的展示模型架构,使将来的微软开发人员(我们这些使用微软的工具的人就叫做微软开发人员,顾名思义FLASH的开发人员就是那些"闪客"了,那么,我们是不是能叫做"银光侠"呢?本身Silverlight就是银光的意思么)只需要建立一套UI,就可以在所有的装置中使用(不同的平台,装置,终端啊),为了区分平台所以后来就把WPF分成了所谓的Window模式与page模式两种开发与执行环境.

Windows模式:开发完成之后就直接与程式封装成一般的可执行文件,然后在客户端机器中执行.

Page模式:通过XAML开发UI,完成之后就封装在一个文件中,可装载到客户端浏览器当中执行.

因此在的VS项目模板中,你会看到有下面两种WPF的项目模板 :

 

其中,"WPF应用程序"就是用于开发Window模式,"WPF浏览器应用程序"就是用于开发Page模式。

虽然在区分成两种环境之后,WPF透过Page模式变成"有希望"可以在多平台多终端执行了,但是实际上,因为Page模式还是需要在有.NET Framework的环境中执行(WPF所支持的.NET Framework是3.0,难道要用户下载上百M的类库?既是是现在的3.5,也有20多M),于是微软就发现了这可能没那么容易实现(因为微软不可能统一苹果,Google,SUN等等大公司的思想),因为因特网是一个开放式的平台,其他的浏览器厂商以及大部分用户(特别是使用其他操作系统的用户),不见得希望以及需要这些东西.所以WPF虽然分成了两种模式,但是实际上离"Everywhere"(微软对于WPF的期望,Everywhere是"无论哪"的意思.)似乎还有很大一段距离.......

    于是WPF的进度一直卡在这里,不久之后,微软发现这可不是个办法,于是有了WPF/E的新架构模式出现(Silverlight又名WPF/E).

    WPF/E的新架构模式出现,标志着微软终于放弃了简单的透过WPF"一统天下"的想法,转而朝在浏览器中嵌入组件(Silverlight就是一个嵌入式组件)的方式来发展WPF的技术,以符合因特网的跨平台技术架构.

    于是,Silverlight 1.0应运而生.

                 ------ Silverlight 1.0 采用了JavaScript+DOM+XAML的架构.

    可是纵观当今的各式网页,通过简单的DHTM(JavaScript+DOM)就已经可以完成许多动态的效果(大家看一大堆的JavaScript特效代码站就知道了),Silverlight 1.0虽然有3D与多媒体效果的支持,但是很多开发人员都知道,JavaScript与Server端不能轻易地直接整合(很麻烦),而在对多媒体的支持部分又与Flash的功能相似(FLASH占有的市场比率太大了),并且嵌入式装置(手机,PSP)的浏览器也不一定支持JavaScript(你能想象手机浏览器也能把那么一大堆的代码运行的虎虎生风么?),因此推出不久之后,微软就发现到了这么一点。

   于是,Silverlight 2.0顺势而出.

                          ------  Silverlight 2.0采用了综合ASP.NET与Java Applet(一个Java程序可被包含在HTML页面中)的做法:先将UI的部分透过XAML设计工具设计(如Expression Blend2),再使用VS 2008加上程序;并且和ASP.NET整合,发布之前将XAML单独编译成组件,加载到浏览器当中即可执行.

   于是,我们这一章的主题出现了:为了适应浏览器的执行环境,所以在Silverlight 2.0的客户端安装程序中,安装到浏览器中的.NET Framework只是一个  精简版(只有4M哦)  ,但是却已经足够应付大部分客户端执行的需求了! 又因为在Silverlight 2.0的执行环境当中,提供了对于WCF服务的支持,因此在浏览器中执行的Silverlight 2.0应用程序时,可以随时在需要时动态的从Server端的服务中获得需要的资源.如此一来,你就可以不需要在每一台客户端机器上安装完整的.NET Framework(上百M),就可以透过客户端的浏览器执行在Server端以服务方式执行的软件功能! 

   如此一来,我告诉所有的驻足观望的开发人员,Silverlight 2.0应用程序技术的重点,绝对不只是那些多媒体效果、动画效果!!!

 

posted @ 2008-11-01 00:14  胡云锋  阅读(1568)  评论(8编辑  收藏  举报