Silverlight体积优化

Silverlight体积优化

Silverlight是运行在客户端的富媒体应用程序,他可以使表现形式更加的丰富多彩,相应的开发人员需要写大量的XAML、代买添加很多图片以及一些其他的资源文件。这就直接导致了应用程序体积的增大。在所有的文件都要从服务器上下载的情况下,这是一个极为严重的问题。如果你的应用大于5MB 加载时间过长的话会直接导致访客的流失。

这里将谈论一下如何减少应用程序的体积。

体积优化



移除未使用的程序集
Visual Studio在创建sl应用后默认情况下加了很多的程序集,有些可能是你根本就用不上的。
首先除了System引用将所有其他的删除掉,然后重新编译应用,将缺失的DLL重新添加回来。有很多的错误可能是由于添加了命名空间的引用,这里有一个简单的来去掉未使用的命名空间(usings),右键点击一个类名,然后选择Organize usings / Remove unused usings。

重新打包XAP文件“越小越好”
我们知道Silverlight的XAP包实质上就是一个标准的ZIP包,包内有一个AppManifest使得他在Silverlgith运行时中可正确的被解析。但是Visual Studio 2008在做XAP打包时并没有做压缩。
这里我们要做的是Winzip活Winrar将这个XAP解包,然后再做压缩打包,将扩展名改成xap替换原始文件。

将素材放在sl应用外部
在之前方式中我们都是针对一个sl应用做的,但是当你在构建模块话的sl应用时,将素材文件放在Silverlight XAP包的外部效果会更好。(或者放在外部ZIP包中再做压缩,让sl应用动态获取。更多请看“Silverlight从Zip包中获取文件”未完成)
使用程序集缓存
使用程序集缓存的办法很简单只需要在sl的属性页面,将library Caching设置为true即可


(更多请看“silverlight自定义程序集缓存”未完成)

动态加载XAP
在silverlight开发的过程中可以将模块话,分解成多个xap文件,有一个主xap来调用其他的xap做动态的加载.
举一个例子,让我们看看Photoshop这个网站,他是用flex技术完成的。

我们可以看出他的容器、类库以及样式都是动态的加载进去的。
在silverlight中可以用简单的loadingXAP来完成(具体请查看“动态加载XAP文件”),或者使用第三方的框架来完成,比如“Managed Extensibility Framework”、“Prism”。
这里我使用了Prism框架来开发我的一个项目,可以来看一下效果。

可以看出各个模块是逐个加载的。

参考资料
http://www.cnblogs.com/hackerttao/archive/2009/10/16/1584537.html
http://msdn.microsoft.com/en-us/library/dd833069%28VS.95%29.aspx

作者:Nasa 
文章出处:我和未来有约会 (http://nasa.cnblogs.com/
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
时间: 2024-10-26 08:35:31

Silverlight体积优化的相关文章

Silverlight SEO优化

Silverlight SEO优化 SEO优化 2008年10月份,微软发布了针对Silverlight应用程序进行搜索引擎优化的指导文档,该文档描述了对Silverlight应用程序进行搜索 引擎优化一些最佳实践.这些实践知识可以帮助开发人员将他们开发的基于Silverlight的内容能够出现在搜索引擎的页面上,并对那些没有启用或者没 有安装Silverlight插件的用户也能够提供一种让人接受的访问体验. 搜索引擎识别的是HTML内容,并不能识别Silverlight内容,这与不能识别HTM

Silverlight性能优化

Silverlight性能优化 性能优化 监视性能(FPS)Silverlight的呈现性能会因指定的宿主参数和内容的复杂程度而异.为了监视FPS的值我们在开发的过程中将EnableFrameRateCounter 属性设置为 true.这样浏览器的状态栏中显示所呈现的 Silverlight 内容的每秒帧数 (fps),以便您可以微调应用程序.以下有两种设置EnableFrameRateCounter的方法:1.在Object标签的属性里设置  <param name="EnableFr

Silverlight性能优化纪要

Silverlight作为微软为富网络应用所做的一个全新的架构,其优秀的表现力让开发者和用户感受到了强烈的冲击,无数的开发者为其着迷,同时微软的广大设计者也在不断地为其完善和充实,同时Silverlight团队也积极的构建Silverlight 5,其初步的版本已在 http://channel9.msdn.com/Series/Silverlight-Firestarter做了演示,从中你可以感受到Silverlight未来之路.我在学习了里面的性能优化的Event后,对这部分的介绍做了一个摘

一起谈.NET技术,Silverlight性能优化纪要

Silverlight作为微软为富网络应用所做的一个全新的架构,其优秀的表现力让开发者和用户感受到了强烈的冲击,无数的开发者为其着迷,同时微软的广大设计者也在不断地为其完善和充实,同时Silverlight团队也积极的构建Silverlight 5,其初步的版本已在 http://channel9.msdn.com/Series/Silverlight-Firestarter做了演示,从中你可以感受到Silverlight未来之路.我在学习了里面的性能优化的Event后,对这部分的介绍做了一个摘

【手机游戏开发优化篇】详解手游[体积]及[运行内存]的优化篇!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/1521.html 新年刚过,由于近来没有写新教程,感觉有点对不住大家,所以今天给大家来一篇超实用文章!也算补过新年小礼物给大家吧. ---------------Himi   简易分割线--------------- 程序包的[体积]优化方法: 首先 你需要很清楚当前自己项目什么地方占的体积最多,例如动画序列多少M

Silverlight:分包下载及SEO优化方案

一.按模块分包 一般大型的Silverlight应用,都会按模块分解成多个silverlight project,编译后就有多个xap包,然后在需要用到的场景按需加载.我近期开发的这个项目不需要全站Silverlight,而是aspx混合silverlight,说得更白点,就是把相应的子模块xap包嵌入aspx. 这样分包就简单多了:直接用js控制dom元素,修改object元素中的source,动态设置成不同的xap即可实现无刷新的加载不同模块.(这比网上主流的方式:用WebClient动态下

Docker镜像优化指南:如何有效地压缩镜像体积并缩短构建时间?

时至今日,大家已经能够从多种Docker支持的存储驱动程序中做出选择,从而确保其与我们的实际环境以及用例切实吻合--然而,除非深入理解镜像层(更不用提镜像与容器本身),否则一般用户根本不会考虑这方面问题.很明显,这些简单而且缺乏吸引力的技术元素层虽然是构成镜像的基本条件,但却往往得不到高度关注--因为闪亮的新型工具往往比基本信息更能抓人眼球. 在今天的文章中,我们将探讨镜像体积及构建时间方面的话题--而这两项工作也已经成为用户们迫切需要实现的目标. 让我们首先着眼于镜像与层,对其概念加以阐述:

减少 JPG 文件大小

本文讲的是减少 JPG 文件大小, 如果你是一个现代的开发者,无论你是网站开发.移动开发.还是一些奇怪的系统管理程序,你一定会使用 JPG 文件.JPG 是你工作的一部分,并且对于用户体验有着极其重要的作用. 为什么让 JPG 文件尽量小这么重要呢?由于 当今平均网页体积与一个毁灭战士游戏(译者注:一款经典网络游戏)相当,你应该自问页面上那么多字节都是从哪里来的,怎样做才能尽量削减它们(我不想从移动应用的大小开始讲). 虽然 JPG 压缩令人印象深刻,但是如何进行压缩将会极大地影响文件的体积.因

DDD战略篇:架构设计的响应力

当敏捷宣言的17位签署者在2001年喊出"响应变化胜于遵循计划"这样的口号时,鲜有组织会真正把这句话当回事儿,甚至很多经验丰富的管理者会认为好的计划是成功的一半,遵循计划就是另外一半.然而在时下的第四次工业革命浪潮中,可能很多管理者已经不会简单满足于"响应",而是选择主动发起变化了.不确定性管理成了这个时代的主旋律,企业的响应力成了成败的关键. 随着这种趋势的深入,架构设计这个技术管理领域也被推到了风暴边缘."稳定"这个过去我们用来形容好系统的词