Silverlight 4.0 Silverlight加载我的商业应用程序会花费太长时间吗?

Silverlight 4.0 Silverlight加载我的商业应用程序会花费太长时间吗?,silverlight-4.0,loading,Silverlight 4.0,Loading,我认为Silverlight 4.0将是构建我们的业务应用程序的良好选择 然而,我害怕的一部分是装载。如果我理解正确,Silverlight会将所有页面编译成一个二进制文件,并在加载时加载到客户端。现在只有几页就可以了,但是如果我达到数百页,这个加载时间会变得非常长吗?当我看基础设施和Telerik上的示例时,只需10-15秒就可以加载这几个示例。我觉得这是不能接受的 有办法解决这个问题吗?是的,这确实是个问题。但是二进制文件(xap文件,实际上只是DLL的一个zip文件)是通过标准HTTP提供

我认为Silverlight 4.0将是构建我们的业务应用程序的良好选择

然而,我害怕的一部分是装载。如果我理解正确,Silverlight会将所有页面编译成一个二进制文件,并在加载时加载到客户端。现在只有几页就可以了,但是如果我达到数百页,这个加载时间会变得非常长吗?当我看基础设施和Telerik上的示例时,只需10-15秒就可以加载这几个示例。我觉得这是不能接受的


有办法解决这个问题吗?

是的,这确实是个问题。但是二进制文件(xap文件,实际上只是DLL的一个zip文件)是通过标准HTTP提供的,因此它们当然可以缓存(通过web服务器进行配置)。因此,第一次下载可能需要15秒,但所有后续加载基本上没有下载时间(除非发布更新)

此外,Telerik示例引用了它们的所有DLL,您可以删除您自己的项目中不需要的DLL,以减小总体大小

有几种产品和技术可以为XAP添加额外的压缩(因为它们实际上只是zip文件)

我认为Telerik也提供了这样的工具


最后,在4.0中,您可以将某些系统DLL设置为按需加载,而不是预先加载,这可以缩短下载时间(但我个人没有使用过)——它位于项目属性中。

也可以使用多个xap文件,因此您可以将应用程序拆分为单独的xap文件

我从未尝试过这个,但如果你在谷歌上搜索,你会发现很多文章。例如


首先-可能会使xap膨胀的是DLL和您自己的任何导入资产(大图像等)。因此,如果您有一个相对同质的站点,基于相同的外观/模板,添加新页面不会增加太多的总体大小,因为所需的组件已经在xap中,并且添加的内容大部分由文本组成

当然,如果新页面的功能/使用控件或组件需要包含额外的DLL,这会降低它的重量,但当您谈论一个可能扩展到数百页的应用程序时,我认为它们会有一定的一致性

您还可以让Silverlight应用程序在需要时动态加载内容。如果您可以将内容和/或内容描述符/资产与代码分开,那么您应该了解是否可以将其存储在数据库或其他存储库中,并仅在需要时获取它


也可以在运行时动态加载其他xap,允许您最初加载一个轻量级xap,然后根据需要引入其他xap,从而根据用户在“会话”期间的要求来分配加载超时时间。

关于Telerik工具:我假设您指的是Telerik Assembly Minifier。不久前我还在看这个,对这个名字很感兴趣,但我认为它只会“缩小”Telerik库。如中所示,当您使用Telerik控件库时,它将缩小该库,使其仅包含您在应用程序中实际使用的(Telerik)控件,而不是作为一个通用dll缩小器,它将执行类似于xap中包含的任何dll的操作。是的,这就是我所想到的一个…忘了这一点。我还记得看到过另一种产品……啊,在这里: