- 浏览: 671138 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
abao1:
老贾 在安装IDEA的过程中,在激活步骤时,按如下操作即可: ...
IntelliJ IDEA 2016注册方法和注册码 -
bo_hai:
./usr/bin/java: symbol lookup ...
jmagick安装步骤 -
wxcking:
不错的, 收藏一下
JAVA使用POI生成Excel文件 -
zgyfh:
大哥,密码是多少啊?zgyfh@tom.com谢谢了!新手学习 ...
WPF做的必备示例 -
记忆无泪:
jiasongmao 写道你的邮箱是多少,我可以发源代码到邮箱 ...
WPF做的必备示例
应用程序库缓存可在用户重新访问网站时帮助改善启动性能。
当您使用应用程序库缓存时,Silverlight 将某些程序集打包成应用程序包外部的外部部件(.xap 文件)。应用程序包中的清单指定启动时所需的程序集,并指示它们是在应用程序包的内部还是外部。
当用户首次访问您的网页时,Silverlight 插件下载应用程序包以及所有需要的外部部件。这些文件添加到浏览器缓存中,以便可以在后续访问时再次使用。
所有下载的文件都受服务器和浏览器中的缓存配置设置约束。在典型的配置中,仅当文件不在缓存中或它们比缓存的版本更高时,才下载这些文件。
库程序集的更改机会远小于应用程序程序集。因此,将它们作为单独的文件进行缓存非常重要。这样,当您更改应用程序代码而非库代码时,许多回访者将只下载 .xap 文件。
Silverlight 随 Silverlight SDK 提供了许多库,而它们不是运行时的组成部分。这些库已预配置为用于应用程序库缓存。在 Visual Studio 中,这些库与运行时程序集一起位于"添加引用" 对 话框的".NET"选项卡上。还可以从 Silverlight SDK 文件夹访问它们。默认情况下,Silverlight SDK 安装在 %ProgramFiles%\Microsoft SDKs\Silverlight 文件夹中。还可以配置自己的程序集,以便支持应用程序库缓存。
应用程序库缓存仅影响应用程序在启动时需要的那些程序集。如果您的应用程序按需加载了一些程序集,该应用程序会始终从服务器检索这些程序集,而始终不会从浏览器缓存中检索。
下面的过程介绍如何启用和使用应用程序库缓存,以及如何配置自己的程序集进行缓存。
启用应用程序库缓存
-
在"解决方案资源浏览器" 中,选择要为其启用库缓存的 Silverlight 应用程序项目。
-
在"项目" 菜单上,选择项目名称 "属性" 。
将显示项目设计器。
-
在"Silverlight" 选项卡上,选择"使用应用程序库缓存减少 XAP 大小" 。
说明: 不能在同一个应用程序中使用应用程序库缓存和浏览器外支持。浏览器外应用程序要求所有启动程序集驻留在应用程序包中。
-
添加对于 Silverlight SDK 中某个库程序集的引用,或者添加对于由有效的 assemblyShortName .extmap.xml 映射文件伴随的任何程序集的引用。
这会导致发生以下操作:
-
程序集引用添加到项目中,其中"复制本地" 值为 True。此值指示在启动时需要此程序集,并且该值与包内程序集使用的值相同。
-
当您生成此项目时,生成操作会将此程序打包成一个单独的 zip 文件,并在应用程序清单中生成 ExtensionPart 元素。
-
当 Silverlight 插件加载应用程序包时,它检查清单以搜索 ExtensionPart 元素,并下载所有对应的文件。如果您的应用程序实现初始屏幕,它将继续运行,直到加载所有外部部件。
-
将程序集配置为用于应用程序库缓存
-
在 程序集所在的相同位置创建一个映射文件。此文件必须与程序集同名,而将 .dll 文件扩展名替换为".extmap.xml"。例如,Silverlight SDK 程序集 System.Json.dll 具有名为 System.Json.extmap.xml 的映射文件。
-
按下面示例中所述将配置数据添加到映射文件中,并替换程序集元素中的值以与程序集匹配。
<?xml version="1.0"?> <manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <assembly> <name>System.Json</name> <version>2.0.5.0</version> <publickeytoken>31bf3856ad364e35</publickeytoken> <relpath>System.Json.dll</relpath> <extension downloadUri="System.Json.zip" /> </assembly> </manifest>
name 、version 和 publickeytoken 元素必须与对应的程序集元数据相匹配。relpath 元素指示程序集文件名。最后,extension 元素通过 downloadUri 属性指示打包的外部部件的名称。
downloadUri 属性 (Attribute) 值用于填充应用程序清单中的 ExtensionPart. Source 属性 (Property),如下面的清单摘要中所示。
如果 downloadUri 值是一个文件名,则当您添加对程序集的引用时,Visual Studio 提供以下支持:
-
生成系统将程序集打包成具有指定文件名的 zip 文件。此文件将被复制到输出目录中 .xap 文件旁边。
-
如果您使用相同的 downloadUri 文件名添加对于多个程序集的引用,则生成系统会将它们全部压缩成单个 zip 文件。
-
不会自动添加 .zip 扩展名。尽管打包文件是 ZIP 文件,但您可以使用服务器要求的任何文件扩展名。
如果 downloadUri 是一个绝对 URI,生成系统将不会对程序集打包。而是由您负责压缩程序集并将其部署到指定的 URI。这可用于创建由多个应用程序使用的库的单一存储库。但是,当您使用绝对 downloadUri 值时,应考虑以下问题。
-
如果 URI 与 .xap 文件位于不同的域中,则该域必须在其根目录中具有跨域策略文件。有关更多信息,请参见 Silverlight 中的 HTTP 通信和安全 。
-
请 记住,URI 是一个全局唯一标识符,可以引用非常具体的程序集文件。这意味着,您可以并且应该对不同的程序集版本使用不同的 URI。此外,当您在更新后的 URI 中部署新程序集版本时,应继续保持每个版本特定的 URI 和您创建的程序集。这有助于避免当使用 Silverlight 的一个版本构建的 .xap 文件试图加载使用其他版本构建的库时可能产生的问题。
-
在 Visual Studio 中测试应用程序库缓存
-
下载并安装 HTTP 通信监视器,例如,Fiddler 。这样,您就可以查看 HTTP 请求和响应,并验证是否未下载缓存的文件。
-
打开下面的 Windows 功能:
-
Internet 信息服务 (IIS)
-
IIS 元数据库和 IIS 6 配置兼容性
-
ASP.NET
-
Windows 身份验证
IIS 是必需的,因为 Visual Studio 开发服务器在其 HTTP 响应标头中不启用缓存。
-
-
在管理员帐户的上下文中运行 Visual Studio。
-
在包含 Silverlight 项目的解决方案中,加入用于测试的 Web 项目。
-
将 Web 项目配置为使用 IIS,并从 HTTP 通信监视器中启用 localhost 监视。(例如,Fiddler 提供了一个代理 URL,您可以用它来替换"启动 URL" 值中的"localhost"。)
-
执行以下操作并观察产生的 HTTP 通信:
-
在 Visual Studio 中运行您的应用程序。
-
在浏览器中按 F5 以重新加载页面。
-
在另一个浏览器窗口中打开该页的 URL。
-
在 Visual Studio 中重新生成解决方案,然后在浏览器中重新加载页面。
在初始下载之后,对于应用程序包和库文件的其他请求将不会生成附加的下载通信。而是请求由缓存的副本完成。但是,当您重新生成应用程序时,将检测到更改并且下载新副本。
-
发表评论
-
silvelright酷站
2011-03-22 18:47 808http://completit.com/# -
silverlight翻转代码
2011-03-13 18:46 1115using System; using System.Net ... -
silverlight独立存储示例
2011-03-07 17:17 1060void CreateDir(string dirNam ... -
silverlight SDK和toolit中控件英文如何转换为英文
2010-11-11 15:50 994解决方法: 设置 ... -
Silverlight4:网络地图服务
2010-10-16 11:01 1606Bing Maps与Google Earth一样 ... -
通过JS创建silverlight对象
2010-10-12 13:04 1664前言: 对于我们开发的silverlight应用来讲,有的时 ... -
silverlight childwindow源码
2010-09-18 21:17 1968<!-- // (c) Copyright Micro ... -
精彩的 Silverlight 开源项目
2010-08-18 14:32 2925Silverlight 物理模型 http://www.c ... -
MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
2010-08-12 10:34 955本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
2010-08-12 10:03 651本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南三:MEF中组合部件(Composable Parts)与契约(Contracts)的基本应用
2010-08-12 09:52 568本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF
2010-08-12 09:24 862本系列文章非原创,转载自: 作 者:Beniao ... -
MEF程序设计指南一:在应用程序中宿主MEF
2010-08-12 09:17 1051本系列文章非原创,转 ... -
Prism动态模块加载
2010-08-10 10:27 1667这篇介绍模块在silverlight的特殊应用. sil ... -
Silverlight中Json数据的转换方法(中文)
2010-08-04 11:36 1244[DataContract] public clas ... -
silverlight万花筒效果
2010-07-28 16:14 893见附件。 -
silverlight如何将颜色字符串转换为颜色
2010-07-02 10:42 1536public class ColorUtil { ... -
silverlight中Tab转Enter的实现方法
2010-06-04 17:38 1738silverlight项目中要求界面全键盘操作,并且在光标移动 ... -
在两个Silverlight应用间数据通信(包括与Flash通信)
2010-05-13 17:06 1008声明:该博文转载自:http://daizhj.blog.51 ... -
silverlight和js相互调用
2010-05-13 16:56 1677步骤一:在silverlight后台代码类中声明被js调用的方 ...
相关推荐
8. **性能优化**:讨论如何优化Silverlight应用程序的性能,包括减少网络传输、缓存策略和代码优化。 9. **调试和测试**:学习如何使用Visual Studio或其他工具进行Silverlight应用程序的调试和测试。 10. **部署和...
**Silverlight.DataSet** 是一个专门针对Microsoft Silverlight平台的组件,它允许开发人员在Silverlight应用程序中使用类似于.NET Framework中的DataSet对象的功能。这个组件的出现是为了弥补Silverlight早期版本中...
ArcGIS Silverlight API是Esri公司提供的一个强大的工具,用于构建基于Silverlight技术的交互式地图应用程序。通过这个API,开发者可以创建丰富的WebGIS应用,展示地图数据、执行空间分析并提供用户友好的界面。 在...
Silverlight是由微软公司推出的一种用于构建丰富互联网应用程序(Rich Internet Application, RIA)的跨浏览器、跨平台技术。它最初被设计为Windows Presentation Foundation (WPF) 的一个子集,即WPF/E(Windows ...
Microsoft Expression Blend的Silverlight技术结合Managed Extensibility Framework (MEF) 提供了一种强大的方式来创建高度可扩展的应用程序。"Silverlight Mef Demo"就是这样一个示例,它展示了如何利用MEF来构建一...
在IT领域,Silverlight是一种由微软开发的网络应用程序框架,主要用于构建和展现丰富的交互式用户界面,尤其是在网页上。这个框架支持多媒体、图形渲染、动画和互动功能,使其成为开发富互联网应用(RIA)的理想选择...
在开发基于Silverlight的应用程序时,常常需要处理配置文件,以动态地获取应用程序的设置、连接字符串或其他关键信息。本文将深入探讨如何在Silverlight中读取和使用config文件,以及涉及的相关知识点。 首先,...
Silverlight,由微软公司开发,是一种强大的工具,用于构建具有丰富用户体验的Web应用程序。在这个特定的项目中,我们关注的是一个使用Silverlight 3技术构建的网页聊天系统,它具备多人聊天功能,为用户提供了一种...
教授如何在Silverlight应用中实施异常捕获和错误恢复机制,确保应用程序在遇到异常情况时仍能正常运行。 #### (40) Silverlight多线程编程(Level200) 探讨Silverlight下的多线程编程模型,包括任务调度、线程同步...
- **性能优化**:介绍了一些提高Silverlight应用性能的方法,如减少资源加载时间、合理使用缓存等。 - **最佳实践**:分享了开发过程中的一些最佳实践,帮助开发者避免常见的错误,提高开发效率。 ### 六、总结 ...
Silverlight的动画库使得购物车应用的用户体验更加生动。例如,当用户将商品加入购物车时,可以有动态的反馈效果;在用户滚动页面时,商品列表可以平滑过渡,提供流畅的浏览体验。 5. **跨平台支持** Silverlight...
首先,理解Silverlight 4是微软推出的一个富互联网应用(RIA)开发平台,它允许开发者创建具有丰富用户体验的Web应用程序,支持离线应用、数据绑定、拖放功能等。而Google Maps API则是一个强大的工具,用于在网页上...
Silverlight是Microsoft推出的一种富互联网应用程序(RIA)平台,它基于.NET Framework,用于创建具有丰富媒体体验和交互性的Web应用。实现图片幻灯片效果是Silverlight在多媒体展示方面的一个常见应用场景,适合...
本书会讲解如何确保Silverlight应用在SharePoint环境中的安全性,以及如何优化性能,例如通过缓存策略、异步编程和资源管理来提升应用响应速度。 7. **实战案例与最佳实践**:书中包含多个实际项目案例,帮助读者将...
本示例主要关注如何在 Silverlight 应用程序中使用 OxyPlot 动态加载 XAML 文件来创建交互式图表。 在 Silverlight 开发中,OxyPlot 提供了一个灵活的 API,允许开发者轻松地创建各种图表类型,如线图、柱状图、...
MapABC Silverlight API 是一个专为Silverlight应用程序设计的地图服务开发接口。这个API允许开发者在Silverlight应用中集成地图功能,提供丰富的地图显示、定位、标注、路线规划等能力。以下是对MapABC Silverlight...
Silverlight,作为微软推出的一种轻量级的富客户端技术,广泛应用于创建丰富的互联网应用程序。在Silverlight 4版本中,它增强了数据绑定、服务集成以及用户体验等功能,为开发者提供了更为强大的开发工具。 本书...