资源预览内容
第1页 / 共76页
第2页 / 共76页
第3页 / 共76页
第4页 / 共76页
第5页 / 共76页
第6页 / 共76页
第7页 / 共76页
第8页 / 共76页
第9页 / 共76页
第10页 / 共76页
亲,该文档总共76页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Silverlight 2 初览 【原文地址】First Look at Silverlight 2【原文发表日期】 Friday, February 22, 2008 6:41 AM 去年9月,我们发布了面向Mac和Windows的Silverlight 1.0,还宣布了在Linux上提供Silverlight的计划。Silverlight 1.0着重于促进浏览器中的丰富媒体场景,支持JavaScript/AJAX编程模型。 我们不久将发布 Silverlight 2 的第一个公开beta,这是个Silverlight的重大更新,将注重于促进富网络应用(RIA)的开发。本贴是我将在以后的几个月内撰写的详细讨论相关细节的几个贴子的第一篇。跨平台/跨浏览器的 .NET 开发Silverlight 2 包含了.NET 框架的一个跨平台,跨浏览器版本,促成了在浏览器中运行的一个丰富的 .NET 开发平台。开发人员可以使用任何一门 .NET 语言(包括VB, C#, JavaScript, IronPython 和 IronRuby)来编写 Silverlight 应用。我们将推出Visual Studio 2008 和 Expression Studio的工具支持,来促成建造 Silverlight 方案时开发人员与美工设计师间良好的工作流和集成。这个即将发布的Silverlight 2 Beta1 版本提供了能促成精妙的RIA应用开发的一套丰富的功能集。这些功能包括: WPF UI框架: Silverlight 2包括了一个基于WPF的富用户界面框架,该框架将极大地方便建造丰富的Web应用。其中包括强大的图像和动画引擎,以及对像控件,布局管理,数据绑定, 样式和模板皮肤这样高级的UI功能的丰富支持。 Silverligh中的WPF UI框架是与完整的 .NET 框架中的WPF UI框架特性相兼容的一个子集,允许开发人员重用技能,控件,代码和内容来同时建造丰富的跨浏览器的web应用,以及丰富的桌面Windows应用。 丰富的控件: Silverlight 2包括了一套丰富的内置控件,可为开发人员和美工设计师用来快速地建造应用。这个即将发布的Beta1版本将包括核心的表单控件(TextBox, CheckBox, RadioButton等),内置的布局管理面板(StackPanel, Grid, Panel等),常见的功能性控件(Slider, ScrollViewer, Calendar, DatePicker等),以及数据操作控件(DataGrid, ListBox等)。内置的控件支持一个丰富的控件模板模型,允许开发人员和美工设计师在一起合作建造精美的解决方案。 丰富的Networking支持: Silverlight 2 包含丰富的networking支持。它包括现成调用REST, WS*/SOAP, POX, RSS, 和标准 HTTP服务的支持。它还支持跨域网络访问(允许Silverlight 客户端直接访问网上的资源和数据)。Beta1版本还包含了内置的sockets networking 支持。 丰富的基础类库: Silverlight 2 包含了一个丰富的.NET基础功能类库(集合,IO,泛型,线程,全球化,XML,本地储存等)。它包含了允许HTML DOM/JavaScript 与 .NET 代码集成的丰富的API。它还包含了 LINQ 和 LINQ to XML支持(允许对数据的轻松转换和查询),以及本地数据缓存和储存的支持。Silverlight 中的.NET API是完整的 .NET框架的一个兼容子集。 Silverlight 2 不要求.NET框架安装在计算机上就能运行。Silverlight 安装下载包括了在原装的Mac OSX 或 Windows机器上允许上述所有功能(还有我们不久将讨论的更多的功能)所需的一切。Silverlight 2 Beta1 版本的大小为4.3MB,在没有安装的机器上大概要花4-10秒钟安装。Silverlight 2安装完毕后,你就可以在你喜欢的浏览器(IE, FireFox, Safari等等)里浏览 Web,自动运行丰富的Silverlight应用。Silverlight 2实战演示:建造一个简单的Digg客户端为帮助大家尽快地上手Silverlight 2,我决定,建造一个Silverlight应 用,然后撰写一系列按部就班的教程详细解释其后的不同编程概念(控件,布局管理,networking,数据绑定,样式,用户控件,模板等等),也许更有 乐趣一些。我还写了一个教程贴子,示范如何把该应用移植到浏览器外,把它变成一个使用WPF和完整的.NET框架的桌面应用。 下面是我建造的Silverlight 应用的一些屏幕截图。这是一个对很受欢迎的Digg.com网站的简单的搜索前端,允许用户输入要搜索的主题,然后浏览匹配这些主题的Digg故事。 应用中的所有界面都是用 Silverlight的WPF框架建造的,该应用使用Silverlight的networking层和跨域访问支持,直接调用Digg REST API进行查询,然后使用LINQ 和LINQ to XML对返回的数据进行查询/转换成我可以绑定到界面的DiggStory对象 : 该应用支持主从式(Master/Detail)数据交互模型,允许用户从查询列表中选择故事,然后很快地转入细节部分。一个用户可以直接从细节表单跳到Digg文章,或者将其关闭,然后挑选另外一个故事来阅读其细节: 整个应用大概用了35行的C#代码和75行的XAML 页面/用户控件标识来实现。它只用了内置于 Silverlight中的用户控件和库。 我的Silverlight 教程你可以通过阅读我撰写的下面这8个教程来学习我是如何建造这个Digg应用的: 第一部分:使用Silverlight 2 和 VS 2008创建“Hello World”程序 第二部分:使用布局管理 (木野狐译) 第三部分:使用 Networking取回数据并填充DataGrid 第四部分:使用 Style 元素更好地封装观感 (木野狐译) 第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译) 第六部分:使用用户控件实现主从表场景 第七部分:使用控件模板定制控件的观感 第八部分:使用WPF创建一个Digg桌面应用 这些教程是设计来按顺序阅读的,按部就班地说明建造Digg应用的整个过程(从 VS 2008中的 文件-新项目 开始)。我尝试着用每个教程来解释一个或多个编程概念。 如果你以前用过WPF,我讨论的界面概念会是非常熟悉的。如果你以前没有用过WPF,这些教程应该对其中的基本编程概念提供了一个很好的概述,希望给你提供了足够的基本知识,在Beta1 出来后,就可以开始使用VS 2008来 建造Silverlight 2应用。在Beta1 可以下载时,我会在博客上贴出相关细节。我还会在Beta1 发布后,把最终的Digg应用上传到我的网站(以及可以在VS 2008中打开和编辑的代码和项目文件)。Silverlight教程第一部分: 使用Silverlight 2 和 VS 2008创建“Hello World”程序这是8个系列教程的第一部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。使用 VS 2008 创建一个新的Silverlight 应用我们来开始我们的Digg应用的开发,先选择Visual Studio 2008 中的文件-新项目菜单项,使用新项目对话框创建一个“Silverlight Application” (注:你需要在Beta1发布后,下载和安装 VS 2008的Silverlight工具才能得到这个支持): 我们将该项目命名为“DiggSample”。在点击OK按钮后, Visual Studio 会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的ASP.NET Web项目到包含Silverlight应用的解决方案里去: 在这个例程里,我们将选择还要添加一个ASP.NET Web Application 项目到解决方案里去,并将它命名为“DiggSample_WebServer”。在点击OK之后,Visual Studio 会为我们创建一个解决方案,里面包含一个Silverlight 客户端应用和一个ASP.NET web 服务器端应用: 如果我们做一次编译的话, Visual Studio 会自动把编译好的 Silverlight 应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。VS为我们创建的默认的web服务器项目包含一个ASP.NET网页和一个静态的 HTML网页,我们可以用来运行和测试其中的Silverlight应用。 注: Silverlight应用可用于任何web服务器(包括Linux上的Apache),宿主于静态HTML文件或者任何服务器端生成的网页(包括 PHP, Java, Python, Ruby等等)中。在这个Digg样例中,我们不会写任何服务器端的代码,而是将使用Silverlight的跨域networking功能,来直接访问 Digg服务的API。我选择创建一个ASP.NET web服务器项目,主要是想获得自动的部署,并且使用它内置的web服务器来做测试。 理解Silverlight应用里都有些什么在默认情形下,一个新建的Silverlight应用项目包含一个Page.xaml和一个 App.xaml文件,以及与它们相关的后台(code behind )类文件(可以用VB, C#, Ruby 或Python来编写): XAML文件是XML文本文件,可以用来用声明的方式指定 Silverlight 或 WPF应用的用户界面。XAML还可更广泛地用来用声明的方式代表.NET对象。 App.xaml 文件一般用来声明譬如象画刷和样式对象这样可在整个应用中共享的资源。App.xaml的后台Application类可用来处理应用级的事件,象 Application_Startup, Application_Exit 和Application_UnhandledException。 Page.xaml 文件,在默认情形下,是在应用激活时装载的起始的UI控件。在其中,我们可以使用UI控件来定义我们的用户界面,然后在Page的后台代码类里处理它们的事件(详见后文)。 在我们编译DiggSample项目时,在默认情形下,Visual Studio 会把代码和XAML标识编译进一个标准的 .NET 程序集文件中,然后把它和任何静态的资源(象图片或我们想要包含的静态文件)包装进硬盘上一个叫做“DiggSample.xap”的文件中去: “.xap”文件(其音发作“zap”)使用标准的 .zip压缩算法来减小客户端下载的大小。一个“hello world”.NET Silverlight 应用(用VB或C#编写的)其大小大概为4KB。 注: Beta1版本中的一些控件是在程序集中实现的,如果使用这些控件的话,这些程序集会重新发布于应用的 .xap 文件中(会增加应用的大小,超出4KB的基底大小)。在Digg应用中使用的所有控件将会在Beta2版和最终版的核心Silverlight下载包中, 这意味着完成的应用的总下载大小大概只在
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号