随笔 - 27  文章 - 0  评论 - 75 
       
先来看下silverlight1.0的架构(图片来源MSDN):

这1.0的时候主要由各部分来组成silverlight.从上面的图可以看到,silverlight1.0的时候,最上面的plugin 的主要作用是转化xaml文件,和js交互已经处理download等等,给下面的核心库去使用,而最下的multi-core rendering engine 是一个类似于加速器的优化引擎
对于1.0就不详细的说,下面直接来看2.0的sdk里提供的架构图

ok,从sdk提供的这个2.0的架构图来看。2.0中增加了很多东西(黄色的是新增加的)。从上面的架构图里可以看出整个架构就是有2个大块组成:Presentation Core 和browser host
 实际上整个silverlight2.0的架构中presentation Core主要有2个主要部分组成分为:
1.核心展示框架库:提供一些UI方面的支持,基本上都是针对用户接口方面的
2.就是一个特定的.net framework,这里主要是提供了一些类库包括:扩展控件,数据操作,网络通讯,CLR,DLR等等
下面我们就一个一个来说
先说第一部分Presentation Core
1,核心展示库,这里面包括的就是所有的提供给用户接口的东西,包括:Inputs,UI Core ,DRM,Media,Xaml 还有Controls(包括layout控件)
2,.Net framework 从图上看剩下的部分:Data,DLR,CLR,WCF,BCL还有一些基础的类库。
 这里面需要说明的是data库中提供了对linq的和linq to xml的支持,关于这个东西怎么用,会在后面的数据绑定章节中出现,DLR(dynamic language runtime)这东西的作用就是可以支持多种动态语言来使用silverlight比如:JScript,IronRuby 和IronPython,引入这个的目的就是为了想让非.net开发人员来使用silverlight,估计是要进一步排挤flash。BCL(Base class library)其实就是提供了一些.net framewrok 的类库中的编程方法而已

剩下就是sdk上提到的一些附加的东西了包括:离线存储,异步编程,文件管理,HTML互操作,打包以及XML类库等。
  从整个silverligth的版本来说,1.0的时候其实已经提供了很多ui上支持,基本上能够创建RIA,但是javascript的操作复杂性让大多数程序员望而却步,微软为了改变这个局面所以在2.0增加了CLR,为了把非.net程序员拉进来又增加了DLR,另外为了能更大程度的兼容WPF程序实现xaml一次创建到处使用,所以在2.0里刻意去增加一些库来把wpf的东西包进来。在后面的章节里。我会把这些东西都涉及到。


对于开发工具来说,目前发布的blend 2.5 beta1三月预览版,可以创建silverlight2.0的程序不过bug超级多,官方是在今年的第二季度会发布beta2。其他的工具我在上篇文章中已经说了

补充一点,silverlight项目编译后会变成一个xap文件存放到我们测试的那个web程序目录的clientBin目录下,测试页面通过调用那个xap文件就可以在网页上展示了










posted on 2008-04-08 18:32 Duan Junyi 阅读(...) 评论(...) 编辑 收藏