到目前为止,我一直在创建Silverlight应用程序,所有逻辑都压缩到一个xap文件中。但随着应用程序大小的增长,我真的认为我应该将Silverlight应用程序拆分成更小的多个独立应用程序。
我想知道其他人是如何解决这个不断增长的规模问题的?
发布于 2009-08-05 22:54:48
如果您希望通过重构和拆分部分来对应用程序进行一些更改,请考虑所有这些内容。
自定义控件获得自己的控件程序集
一定要为您开发的任何自定义控件创建控件程序集。您不仅可以获得自包含控件的好处,还可以在当前和将来的项目中选择使用,还可以
影响最大的地方
考虑动态加载新程序集
你的应用程序域中有一些methods available for dynamically loading additional code,可以抽象出你的应用程序中不经常使用的部分,并使用它来加载这些组件。这是一个更加复杂和复杂的应用程序,但它可以提高启动性能。
当您查看大型应用程序时,将代码拆分到其他程序集中需要时间,并且测试它可能是一项挑战。但你最终可能会得到“子页面”和应用程序的一部分,只有在需要的时候才会加载。
花时间设计一个系统来加载你的应用程序的新功能和部分,并架构这个框架,这可能需要时间来做正确的事情。这通常是使用AssemblyPart加载一个新程序集,您可以将该程序集反射到其中并从中实例化新对象。
合并的资源字典
Resource dictionaries允许您在页面和App.xaml外部存储样式、控件模板和其他资源。
缓存的程序集
一旦你迁移到Silverlight3,你就可以使用cached assemblies feature在.Xap之外的服务器上存储单独的程序集--作为一个额外的好处,这些程序集将在机器上缓存相当长的一段时间。
一种资源饮食
您是否真的在使用存储在XAP文件中的所有图形资产、XAML、控件、字符串资源等?时不时地检查它,并确保你的字节得到了最大的回报。
闪屏
如果您最初只是想提高应用程序的性能(下载时间),那么可以考虑创建一个闪屏。Silverlight Toolkit samples有一个Silverlight页面,它是一个简单的Silverlight页面,可以在下载.Xap时加载和显示。
远程图形
不要将图像资源直接包含在您的应用程序/XAP中,而是将您的图像移动到您的CDN或服务器,以便仅在需要时加载它们。这通常是一个好的和快速的胜利。
简化您的应用
确保你确实需要它是XAML重量级的,图形重量级的,等等。也许它可以简化!
发布于 2011-07-14 18:00:56
您应该使用PRISM或MEF框架分发Silverlight模块。
访问http://mef.codeplex.com/
https://stackoverflow.com/questions/1236092
复制相似问题