初识Silverlight 4及其架构
简介
才开始学Silverlight 4。本文将谈到对Silverlight 4最初步的认识,同时将从多个角度谈一些与Silverlight 4架构有关的认识。
Silverlight 4是今年早些时候发布的。这项技术为我们带来了许多革新。它不仅是为用户带来了丰富的交互式的互联网和多媒体内容,还为我们提供了强大的轻量级的平台。我们可以在此平台上开发可移植的,跨平台的,基于网络的应用程序,并且可以从不同的源头集成服务和数据。相比传统Web应用的界面,Silverlight应用的界面让人耳目一新。让人感觉像是Windows Form应用程序搬到了Web上。
为什么需要Silverlight 4
前面我们在开发Web应用的时候,碰到了许多技术上的难题,如平台兼容,不同的文件格式和通讯协议,同样的页面在不同浏览器上的表现,还有不同浏览器对Javascript的解释,经常为这些问题加班熬夜,我们没有少费脑筋来试图解决这些令人头痛的问题。有了Silverlight技术:
- 我们就能克服现有技术平台的的不兼容性,不一致性。
- 我们就有了能力在多平台多种浏览器上创建一致的用户体验,不管在哪里,应用程序在外观上和行为上都是统一的。
- 我们就能利用熟悉的.net框架的类和功能将不同网络位置的数据和服务集成到一个应用程序中。
- 我们就能为用户提供一个多媒体的,表现丰富的,操作性强的用户界面。
- Silverlight 4为我们提供了更多的控件,更强大的功能,让我们可以开发出更强大的应用,更好地应对商务上的挑战。
Silverlight 4有哪些新东西?
- 几个实用的控件,如RichTextBox, ViewBox, WebBrowser, WebBrowserBrush等。
- 浏览器外运行支持,浏览器外运行能象普通窗口的特性,如改变大小,置顶等。
- 提升了信任的应用程序,允许信任的Silverlight程序可以自由读写用户文件和目录,全屏幕,调用Windows API等。
- 更丰富的媒体,可以捕捉视屏信号和话筒语音。
- 更强的打印功能
- 更强更方便的UI界面,支持拖拽,支持剪贴板等等。
- 更好的数据绑定和WCF数据服务
- WCF RIA 服务对多层应用支持更强。
- DLR的支持
Silverlight 4有哪些系统和浏览器支持?
要构建有效的Silverlight 4应用,开发者有必要了解Silverlight 4的架构。
Silverlight平台的部件
Silverlight作为一个整体主要包括三个部分,如下表:
部件 |
说明 |
核心展现部件 |
负责呈现XAML所表现的UI元素,包括常用的控件,多媒体控件等,同时负责处理用户输入,事件等。 |
Silverlight中的.net框架 |
.net框架的子集。包括部件和库,其中有数据集成,可扩展的Windows控件,网络,基础类库,垃圾收集和CLR等。 |
客户端安装器和更新器 |
第一次浏览Silverlight应用程序,客户端的浏览器需要安装上浏览器插件,这个安装器兼更新器负责为客户端浏览器安装插件并始终保持客户端的浏览器插件最新。 |
下图是MSDN官方的图,展示了Silverlight平台的部件,及一些相关部件和服务。
核心展现部件Core presentation framework包括了XAML parser, UI Core, Inputs, DRM(digital rights management), Media, Deep Zoom等,多数是需直接与具体的操作系统API打交道的功能,所以这里没有CLR Execution Engine.
- XAML parser负责解析XAML,能兼容不同规格的XAML
- UI Core负责向量,bitmap,动画,文字的渲染
- Inputs负责处理键盘,鼠标等设备的输入
- DRM负责处理数字媒体的数字版权管理
- Media负责处理多媒体的处理,支持不同的媒体格式和编码器
- Deep zoom是用于高分辨率图片的放大和缩小
- Layout负责UI元素的定位
.net framework for Silverlight 是供应用程序使用的商业"库"。包括Data, WCF, WPF, BCL等。
- BCL提供了.net平台上的基本类型, 集合collections,泛型Generics,加密等
- WCF提供了应用程序处理WCF相关功能的一些类型, 用于处理SOAP, REST, RSS/ATOM等
- Data提供了LINQ, LINQ to xml等
- WPF提供了一些UI控件,将数据绑定到这些控件,布局,处理用户输入的一些功能。
.net framework for Silverlight分布在若干个.net程序集中。有一部分的程序集(比如BCL)是随Silverlight 安装器在用户浏览器中安装,有一部分是在Silverlight SDK中,应用程序引用到了相关的程序集,才会随应用程序一起发布到服务器上,当有用户访问应用程序时,这些.net framework程序集才随应用程序的程序集一起下载到用户的浏览器中被CLR执行引擎(CLR Execution Engine)执行。
CLR执行引擎(CLR Execution Engine)是这里面的核心,负责执行应用程序的.net 代码和.net framework的.net代码。CLR总是基于一个宿主。通常的宿主是一个浏览器,在浏览器外的场景时的宿主是一个操作系统进程。Silverlight 4对其CLR做了改进,Silverlight 4的CLR与桌面应用程序的CLR的差别进一步缩小。
DLR提供了对动态语言的支持。目前支持JScript, Iron Python, Iron Ruby。这是Silverlight 4新提供的特性。
Silverlight 4还有一些编程相关的特性:如独立存储(Isolated storage),后台线程,安全的文件管理,序列化,XAP打包,XML处理,HTML与托管代码的交互。
- 独立存储提供一种安全的方式让Silverlight程序去访问浏览器本地的文件系统。
- 后台线程使异步,多线程在Silverlight上成为了可能。
- 安全的文件管理提供一个安全的文件打开对话框,允许文件上传等。
- 序列化使对象的序列化存储和恢复成为了可能。
- XAP打包提供了Application类和工具来打XAP的包。.xap的包有应用程序和入口点,以便让用户浏览器插件来运行这个.xap包。应用程序的发布都是需要一个.xap包。
- XML处理包含了处理Xml的功能。XmlReader类和XmlWriter类提供了最基本的XML处理功能,同时XLinq让开发者可以用c#或者VB.net就可以查询Xml中的数据。
- HTML与托管代码的交互让开发者可以在托管代码中直接用HTML DOM就可以管理HTML页面里的UI元素,同时也可以写Javascript代码调用托管代码的功能,访问其中的方法,属性,激发其事件等。这个功能就为上图中的Javascript Engine和MS AJAX Library提供了可能。
上图中的浏览器宿主(Browser Host)是用户浏览器插件提供的一个环境。它提供了运行一个Silverlight应用程序的基础环境,如Application服务,HTML DOM的集成,网络通信的基础,还有安装器。使用托管API的Silverlight应用程序都有一个继承Application类的类,有一个程序入口点,浏览器宿主(Browser Host)为应用程序建好了运行环境,然后才调用应用程序的入口。
结束语
以上是关于Silverlight 4的一些粗浅的认识。是任何一个Silverlight开发者想知道的内容。如果更深入些,就从多个方面来了解:它的原理,它的处理周期,它的部署,它的安全性,它的伸缩性,它的分布式计算能力,它的容错能力,等等等等。本人也是刚开始学,所知有限。有待进一步学习。等有了一点东西了再写。
题外话:最重要的还是快速学习和分析能力。这个能力让你面对新技术时,有潜力迅速学习并掌握该技术。
初识Silverlight 4及其架构相关推荐
- 一起谈.NET技术,初识Silverlight 4及其架构
简介 Silverlight 4是今年早些时候发布的.这项技术为我们带来了许多革新.它不仅是为用户带来了丰富的交互式的互联网和多媒体内容,还为我们提供了强大的轻量级的平台.我们可以在此平台上开发可移植 ...
- 从原理来看Silverlight 4的架构
简介 在前文<<初识Silverlight 4及其架构>>谈到要从多个方面来了解:Silverlight的原理,处理周期,部署,安全性,伸缩性,分布式计算能力,容错能力,等等等 ...
- Silverlight 2学习笔记一:初识Silverlight
Silverlight,问世至今已有好一段时日了,向来只是只闻其名,不知其实,今天终于对Silverlight有了点初步的了解. 一.Silverlight是什么? Sliverlight是基于.NE ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日)
分享Silverlight/WPF/Windows Phone一周学习导读(8月15日-8月19日) 本周Silverlight学习资源更新: Silverlight Tools 4安装时的错误提示 ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(4月4日-4月9日)
期待已久的Silverlight 5即将到来,上周不少关于MIX11的话题,其中值得关注的有以下几篇: MIX11: Silverlight 5,Windows Phone,IE9,HTML5及直播预 ...
- 插件式架构设计实践:插件式系统架构设计简介
本系列博文将使用微软RIA技术解决方案Silverlight以及扩展性管理框架Managed Extensibility Framework(MEF),以插件式架构设计为导线,分享本人在从事基于微软S ...
- Silverlight 简介
Silverlight 是为 Web 页面内容设计的,它与主机进行连接(也就是说,它不能离线工作),可以极大地引起用户的兴趣,并且它可以任何浏览器中显示.Silverlight可以应用在一下 Web ...
- 无需成对示例、无监督训练,CycleGAN生成图像简直不要太简单
作者 | Jason Brownlee 译者 | Freesia,Rachel 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]图像到图像的转换技术一般需要大量的 ...
- 【转】NHibernate入门教程
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo 摘要: 热衷于开源框架探索的我发现A ...
最新文章
- 你不知道的Vue响应式原理
- Private Data Objects, 私密数据对象,基于TEE、智能合约和分布式账本的可信计算
- 通过什么来衡量C# Socket服务的效能
- c# 写入xml 怪异的事情
- SpringMVC简介-传统的Model1和Model2/MVC思想及其优势/Spring MVC的优势
- python3.9教程_Python3简明教程(九)—— 文件处理
- 多任务管理类 MutilTaskManager
- 计算机网络中使用最广泛的交换技术是什么,04741计算机网络原理试题及答案201604...
- 基于springboot断点续传或分片上传
- 部分xcode插件可能有新版本
- Ext js 2.0 Overview(3) 组件生命周期
- 计算机科学文章,计算机科学导论论文范文
- csv文件 java_Java生成CSV文件实例详解
- python安装模块方法_Python模块安装方法
- windows10 输入法繁体
- 用python写一个双人对战版的中国象棋小游戏
- 不应被忘记的历史——聊聊前阿布时代的切尔西
- 修补计算机漏洞重启,win7系统出现严重的系统漏洞如何修复
- 低代码搭建医疗企业数字化CRM案例分析
- 语料库mysql_基于PHP+MySQL的小型语料库程序设计解决方案