我们使用 VS2010 新建 Silverlight 项目时,会有下面选项框:
(图1)
这里VS2010支持的 Silverlight 项目类型有以下三种:
- ASP.NET Web Application Project
- ASP.NET Web Site
- ASP.NET MVC Web Project
VS2010支持的 Silverlight 版本只由3.0。
以ASP.NET Web Application Project 项目类型为例,以下为系统默认给我们建立的文件:
(图2)
下面我们就对其中的一些有代表性的文件作以介绍:
XAP 文件是啥?
以上面项目的 HelloWorldSilverlight.xap 文件为例,我们把它后缀修改为 zip 文件,用 rar 打开就可以看到下面信息:
(图3)
HelloWorldSilverlight.xap 就是编译打包后的 HelloWorldSilverlight 项目的输出文件。 只不过压缩了一下而已。
这个文件包括了Silverlight应用程序所需的一切文件,如程序集、资源文件等。这里的xap后缀没有任何特殊的意义,仅仅是Silverlight应用程序编译后打包文件的扩展名而已,本质上它是一个标准的zip压缩文件。
这个打包文件中的 AppManifest.xaml 文件相当于一个清单,以上面的代码为例,这个文件的内容就是:
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="HelloWorldSilverlight" EntryPointType="HelloWorldSilverlight.App" RuntimeVersion="3.0.40818.0"> <Deployment.Parts> <AssemblyPart x:Name="HelloWorldSilverlight" Source="HelloWorldSilverlight.dll" /> <AssemblyPart x:Name="System.Windows.Controls.Data.Input" Source="System.Windows.Controls.Data.Input.dll" /> <AssemblyPart x:Name="System.ComponentModel.DataAnnotations" Source="System.ComponentModel.DataAnnotations.dll" /> Deployment.Parts> Deployment>
Silverlight 开始执行时,加载入口在哪里,就在上面定义中的 EntryPointAssembly ,EntryPointType 。
System.ComponentModel.DataAnnotations.dll 文件提供了用于为 ASP.NET 动态数据控件定义元数据的属性类。
System.Windows.Controls.Data.Input.dll 文件提供了可用于Silverlight的控件。
我们如何修改编译打包的HelloWorldSilverlight.xap 文件的一些信息,我们可以通过打开 HelloWorldSilverlight 项目属性页面,如下图:
其中 Silverlight 属性页就可以让我们修改 生成的XAP文件名。
我们在图2中可以看到 HelloWorldSilverlight.Web WEB项目没有引用 HelloWorldSilverlight 项目,那为啥 HelloWorldSilverlight 项目 修改后可以及时同步到HelloWorldSilverlight.Web 呢?
原因:我们在 HelloWorldSilverlight.Web 项目的属性窗口中可以看到关于 Silverlight Application 的设置,如下:
点击 Add 出现的窗口:
在这里我们可以指定是否使用默认的 ClientBin 目录。 需要引用那些 Silverlight 项目。是否启用调试等等。
以上全部为VS2010Beta2的截图,也许VS2010最终版本会有所变化。
参考资料:
一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用
http://www.cnblogs.com/Terrylee/archive/2008/03/07/Silverlight2-step-by-step-part1.html
稳扎稳打Silverlight(1) - 1.0实例之电子表
http://www.cnblogs.com/webabcd/archive/2007/09/17/895328.html
Silverlight 2应用程序中XAP文件揭秘
http://www.cnblogs.com/Terrylee/archive/2008/07/11/xap-file-revelation-in-silverlight-2.html
Silverlight.js 参考
http://msdn.microsoft.com/zh-cn/library/cc838126(VS.95,loband).aspx