Silverlight -减少XAP包体积

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

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

将素材放在sl应用外部
5l3f%h9L'K DW0在之前方式中我们都是针对一个sl应用做的,但是当你在构建模块话的sl应用时,将素材文件放在Silverlight XAP包的外部效果会更好。(或者放在外部ZIP包中再做压缩,让sl应用动态获取。更多请看“Silverlight从Zip包中获取文件未完成
v?Mjo L)C0使用程序集缓存ITPUB个人空间1c1a3O&Z mt)M"ql
使用程序集缓存的办法很简单只需要在sl的属性页面,将library Caching设置为true即可


`.l$A+jM7ReO0(更多请看“silverlight自定义程序集缓存未完成

动态加载XAP
4m%c u?Z-q{\B0在silverlight开发的过程中可以将模块话,分解成多个xap文件,有一个主xap来调用其他的xap做动态的加载.ITPUB个人空间#O0W NE+Xv+X
举一个例子,让我们看看Photoshop这个网站,他是用flex技术完成的。

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

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

posted @ 2010-10-15 12:28  书奎  阅读(807)  评论(1编辑  收藏  举报