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应用动态获取。


使用程序集缓存
使用程序集缓存的办法很简单只需要在sl的属性页面,将library Caching设置为true即可

动态加载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