什么是Silverlight,Silverlight入门简介
2009-09-13 09:05
369 查看
本文原创作者:姚毅
虽然Silverlight号称要Rich-Client打到Flash,但是其工作机制和Flash相差还是很大的。
Flash的工作方式更像ActiveX控件,或者说就是ActiveX控件,其代码是二进制的(也许不是,但至少是不可读的),由Flash Player控件负责解释。Flash Player更像一个虚拟机来维持Flash运行。
而Silverllight完全可以将源代码放到网站后台上,前台所有的实现都是通过javascript,至于为什么还要下载一个silverlight插件,原因在于silverlight中用到的javascript对象浏览器本身没有提供。
那么Silverlight到底是运行在服务器端还是运行在客户端的呢?Flash可是实实在在运行在客户端的。
Silverlight更像Ajax,是在服务器端和客户端同时运行,期间通过XML传递数据,或者更确切的说,Silverlight是运行在服务器端的,但是因为应用了Javascript+XAML这种特殊的Ajax,使Silverlight可以提供丰富的客户端操作。
那么一个基本的Silverlight到底包括哪些部分呢?
首先,可以既然Silverlight是运行在网页之中,就要有一个HTML文件存在,在<head>部分包含了两个独立的js脚本文件
这两个js脚本分别用于创建silverlight和检查本地是否安装silverlight插件
其中包括Silverlight的部分既不是<embed>也不是<object>,而是<div>,这个<div>由<Head>中的<Style>定义一个样式,而<div>里面是一行简单的Javascript函数调用。这个函数在前面包含的单独js文件中。而函数的功能就是创建silverlight
再来看这个js脚本,它负责使用silverlight专属的对象提取一个XAML文件,并把这个XAML转换成Silverlight。这个XAML文件就如同Flash的SWF文件一样,不过SWF文件既包括资源又包括逻辑,并且是不可读的,而XAML只包括资源和表现形式,不包括程序逻辑,并且是可读的。
每一个XAML文件都对应一个相同文件名+".cs"或者".vb"的服务器端代码。这个和ASPX的CodeBeside很相似。当然我还没有研究这个cs文件是否可以编译后放在这里,按照微软一贯的做法,应该是可以的。
下面看看具体流程
1.从浏览器发出HTTP请求,服务器接到后返回HTML、Javascript
2.Javascript首先检查是否安装了Silverlight插件,如果没有则提供下载
3.Javascript开始创建Silverlight,并从服务器下载XAML文件
4.Silverlight的Javascript检查到XAML文件后,根据需要向服务器请求程序逻辑(不管后台是cs的源代码还是编译好的,程序逻辑始终是后台负责编译并执行的,然后把执行结果透过XML传递给前台)。由于请求和响应的内容很短,是类似Ajax的,所以如果网络带宽够用的话应该不会很卡。
5.本地Javascript接到响应后根据响应结果显示效果
其实,到底是cs编译好在前台运行还是在后台运行我是不知道的,但是由于silverlight是在.net下开发的,并且运行silverlight的客户机不需要安装.net框架。而且可以跨平台,所以猜测是在服务器端运行的。
虽然Silverlight号称要Rich-Client打到Flash,但是其工作机制和Flash相差还是很大的。
Flash的工作方式更像ActiveX控件,或者说就是ActiveX控件,其代码是二进制的(也许不是,但至少是不可读的),由Flash Player控件负责解释。Flash Player更像一个虚拟机来维持Flash运行。
而Silverllight完全可以将源代码放到网站后台上,前台所有的实现都是通过javascript,至于为什么还要下载一个silverlight插件,原因在于silverlight中用到的javascript对象浏览器本身没有提供。
那么Silverlight到底是运行在服务器端还是运行在客户端的呢?Flash可是实实在在运行在客户端的。
Silverlight更像Ajax,是在服务器端和客户端同时运行,期间通过XML传递数据,或者更确切的说,Silverlight是运行在服务器端的,但是因为应用了Javascript+XAML这种特殊的Ajax,使Silverlight可以提供丰富的客户端操作。
那么一个基本的Silverlight到底包括哪些部分呢?
首先,可以既然Silverlight是运行在网页之中,就要有一个HTML文件存在,在<head>部分包含了两个独立的js脚本文件
这两个js脚本分别用于创建silverlight和检查本地是否安装silverlight插件
其中包括Silverlight的部分既不是<embed>也不是<object>,而是<div>,这个<div>由<Head>中的<Style>定义一个样式,而<div>里面是一行简单的Javascript函数调用。这个函数在前面包含的单独js文件中。而函数的功能就是创建silverlight
再来看这个js脚本,它负责使用silverlight专属的对象提取一个XAML文件,并把这个XAML转换成Silverlight。这个XAML文件就如同Flash的SWF文件一样,不过SWF文件既包括资源又包括逻辑,并且是不可读的,而XAML只包括资源和表现形式,不包括程序逻辑,并且是可读的。
每一个XAML文件都对应一个相同文件名+".cs"或者".vb"的服务器端代码。这个和ASPX的CodeBeside很相似。当然我还没有研究这个cs文件是否可以编译后放在这里,按照微软一贯的做法,应该是可以的。
下面看看具体流程
1.从浏览器发出HTTP请求,服务器接到后返回HTML、Javascript
2.Javascript首先检查是否安装了Silverlight插件,如果没有则提供下载
3.Javascript开始创建Silverlight,并从服务器下载XAML文件
4.Silverlight的Javascript检查到XAML文件后,根据需要向服务器请求程序逻辑(不管后台是cs的源代码还是编译好的,程序逻辑始终是后台负责编译并执行的,然后把执行结果透过XML传递给前台)。由于请求和响应的内容很短,是类似Ajax的,所以如果网络带宽够用的话应该不会很卡。
5.本地Javascript接到响应后根据响应结果显示效果
其实,到底是cs编译好在前台运行还是在后台运行我是不知道的,但是由于silverlight是在.net下开发的,并且运行silverlight的客户机不需要安装.net框架。而且可以跨平台,所以猜测是在服务器端运行的。
相关文章推荐
- 入门简介:《什么是云计算?》
- jQuery是什么,jQuery入门简介
- 【原创翻译】COM入门简介 -- 什么是COM , 怎样使用它 (5)
- Silverlight 入门学习笔记(1)------Silverlight是什么
- 【原创翻译】COM入门简介 -- 什么是COM , 怎样使用它 (1)
- jQuery是什么,jQuery入门简介
- Silverlight 入门学习笔记(1)------Silverlight是什么
- 【原创翻译】COM入门简介 -- 什么是COM , 怎样使用它 (4)
- 【原创翻译】COM入门简介 -- 什么是COM , 怎样使用它 (2)
- 【原创翻译】COM入门简介 -- 什么是COM , 怎样使用它 (3)
- LINQ 简介 什么是LINQ 一览入门贴
- 微软 Silverlight 入门简介
- 什么是IndexedDB:Web离线数据库入门简介及基础教程
- jQuery是什么,jQuery入门简介
- JSF入门系列教程(一) jsf简介,jsf是什么?
- 入门简介:《什么是云计算?》
- Silverlight 入门学习笔记------Silverlight是什么
- ZZ:使用.NET语言开发Silverlight应用程序入门(二):界面和对象模型
- Eclipse平台入门之一:什么是Eclipse?
- Silverlight开发入门篇:(一)起步