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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术点滴

远程线程注入引出的问题

远程线程注入引出的问题 一、远程线程注入基本原理 远程线程注入——相信对Windows底层编程和系统安全熟悉的人并不陌生,其主要核心在于一个Windows AP...

300100
来自专栏我的博客

max x Yosemide无法安装jdk8解决

1.下载 好jdk 1.7(1.8) 地址:http://www.oracle.com/technetwork/java/javase/downloads/in...

448130
来自专栏Java帮帮-微信公众号-技术文章全总结

IntelliJ IDEA 设置JVM运行参数

打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions 文件,需针对不同的JDK进行配置:

85030
来自专栏Ken的杂谈

基于GitLab的Code Review教程

也就是说,使用GitLab进行Code Review就是在分支合并环节发起Merge Request,然后Code Review完成后将代码合并到目标分支。

1.8K30
来自专栏张善友的专栏

.NET Migration工具

Migration是一种分布环境下的数据库同步工具,出现在Ruby on Rail框架里,MigratorDotNet是一个.NET类似于Ruby on Rai...

23290
来自专栏Java帮帮-微信公众号-技术文章全总结

02.Linux安装

02.Linux安装 Linux 安装 本章节我们将为大家介绍Linux的安装。 本章节以 centos6.4 为例。 centos 下载地址: 可以去官网下载...

773110
来自专栏数据分析

[译]Asp.net MVC 之 Contorllers(二)

URL路由模块 取代URL重写 路由请求 URL路由模块的内部结构 应用程序路由 URL模式和路由 定义应用程序路由 处理路由 路由处理程序 处理物理文件请求 ...

39860
来自专栏草根专栏

asp.net core 2.0 查缺补漏

asp.net core 2.0 一些有用有趣的设置. 面向(targeting)不同的.net版本: 打开asp.net core 2.0的项目文件: xxx...

31650
来自专栏追不上乌龟的兔子

用.NET Core构建安全的容器化的微服务

微服务热潮正在如火如荼地进行,也有着充分的理由。它不是每个问题的银弹,但它无疑成为企业软件系统中可扩展性和弹性的实用解决方案。

43440
来自专栏Java帮帮-微信公众号-技术文章全总结

POI导入导出【面试+工作】

POI导入导出【面试+工作】 1.场景一 近期项目中的excel导入导出功能需求频繁的出现,趁此机会,今天笔者对POI的Excel数据的导入导出做一...

44140

扫码关注云+社区

领取腾讯云代金券