本篇描述Silverlight技术的基本概念,编写,编译和发布,让你通过一个小例子,理解Silverlight是个什么技术,如何开始学习。
什么是Silverlight
一种跨浏览器、跨平台的程序,可以在主流浏览器和多种操作系统运行,能运行在IIS和Apache服务器,可以处理视频和音频,可以捕捉摄像头,处理实时的影像信息,内容能显示到手机,PC浏览器和720p的数字电视,可以直接在浏览器中操作(拖动、旋转和缩放)大尺寸清晰图片,在提交数据时不用刷新页面,是现在流行的互联网“富客户端”技术之一。目前最新版本是4.0,使用VS2010开发,对Silverlight的开发,需要同时学习.net相关内容,本篇内容,假设你已经对.net有一定的了解,并能使用C#编写基本代码。另外,要注意的是,若要运行 Silverlight 的应用程序,用户需要在浏览器中安装一个小插件。该插件是免费的。如果用户没有该插件,浏览器将自动提示安装。在数秒内就可以下载和安装该插件,除了允许安装之外不需要任何用户交互。
Silverlight和Flash
这两个对比,让我想起了2003年C#和Java的争吵,现在的人对新技术的出现没有以前那么高的热情了,技术太多太快,让人感觉麻木。我觉得技术间没有什么好比较的。本质上无非是软件巨头之间的商业竞争而已。如果你非要争论哪个好,我给你点参考意见:微软凭借其强大的技术背景和雄厚的资金实力,通过复制、模仿、完善竞争对手的产品,往往可以做到后来居上。Flash最大的优势是它的技术成熟、稳定,并且已经拥有了一大批的忠实拥护者,在当前网络动画编辑领域有绝对领先地位。两者都是通过跨浏览器运行的插件,显示矢量图形、动画和视频。目前Silverlight表现出了比Flash更佳的性能,同AJAX结合更紧密,更容易动态生成,对搜索引擎更友好,开发工具集成度更高。
Silverlight和WPF
Silverlight 包含 WPF 技术的一个子集,从而大大扩展了在浏览器创建各种酷炫的界面,远远的超出了单独使用 HTML语言的网页效果。可扩展应用程序标记语言 (XAML) 就是用来创建这种富界面的语言。
Silverlight的结构
Silverlight的界面由XAML语言来描述,你可以用Blend或VS辅助创建界面,另外,Silverlight还有一个框架,该框架是.net framework的子集,主要包括基类,数据访问,WCF,WPF控件,DLR和CLR几个部分。因为Microsoft总是晚一步发布Silverlight,总是需要额外安装最新的框架,框架包含在Silverlight SDK里面,你现在用VS2010,就要安装Silverlight 4 SDK,可能MS过几个月会发个SP1,里面集成了Silverlight 4的所有内容,当然这只是估计而已。你可以用C#来开发这个框架。所以你需要从两个方面学习silverlight,下面的小例子将描述基本的开发过程和效果。再次强调一点,Silverlight是把界面元素下载到浏览器以后再执行。
用VS2010创建Silverlight
首先需要明确的是,本篇代码适用Silverlight 3和Silverlight 4,所以你可以直接使用VS2010的默认环境编写,不需要安装扩展组件。
1 添加,新建项目,选择Silverlight应用程序,如图:
2 在接下来的对话框,提示为Silverlight应用程序,提供一个Host环境,简单的说就是在服务端执行Silverlight的另外一个程序,默认是Asp.net应用程序,如图:
3 解决方案,如下:
4 为什么会是两个项目呢,SilverlightApplication1是Silverlight的源码部分,SilverlightApplication1.Web是调用SilverlightApplication1的环境,也就是说,用户需要先访问网站,才能看到你的Silverlight。
5 编译解决方案,可以看到,ClientBIn目录多出一个xap文件,这就是要下载到浏览器的执行包,它实际是由dll和配置文件组成,本质上是SilverlightApplication1编译后的内容,以一个打包文件的方式生成,silverlight将直接在本地调用这个执行包,如图:
6 打开工具箱看看,有很多的Silverlight控件,如图:
7 打开MainPage.xaml,编写界面,写完后的效果,如图:
8 在MainPage.xaml.cs写按钮的点击事件,点击事件在VS2010里面可以直接双击按钮生成,代码如下:
using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SilverlightApplication1 { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } private void btn_Click(object sender, RoutedEventArgs e) { lbl.Text = "Goodbye,cruel world"; } } }
9 编译整个解决方案,并按F5运行,可以看到在IE中的效果,如图:
10 打开FireFox,把地址粘贴到地址栏,可以看到Silverlight在FireFox显示相同的效果,如图:
11 程序已经测试成功,接下来说说部署的问题。前面提过silverlight会产生一个xap文件包,是下载到本地执行,所以Web 服务器需要能解析这个.xap文件扩展名。默认情况下,IIS5/6因为是在Silverlght之前的,所以必须手动配置,IIS7以后的版本不用配置,默认就可以了。 如果你的系统是XP SP3,IIS的版本默认是5.1,我以这个版本为例说明部署的方法。首先创建目录,直接到SilverlightApplication1.Web的debug目录,把以下文件拷贝到虚拟目录,如图:
12 打开IIS,找到虚拟目录,右键属性,Http头,文件类型,在添加新的类型,输入关联文件名:.xap,内容类型:application/x-silverlight-app,如图:
13 切换到Asp.net面板,修改Asp.net版本是4.0,如图:
14 点确定,关闭IIS属性设置,打开浏览器,访问:http://localhost/你的虚拟目录名/silverlightApplication1TestPage.htm,页面效果跟VS的测试效果应该一样,这时你的部署已经完成。
版权所有 互联力量,原文地址:http://www.foxitjob.com/2010/06/259.html