设置 silverlight 应用的属性时,我会看到未选中的复选框:
较小的下载大小和更快的速度声音对我好,这让我想知道为什么这些不会被打开默认
这些选择的缺点是什么?
答案 0 :(得分:13)
<强>优点强>
这允许将配置了 dllname .extmap.xml
文件的库放在单独的zip文件中,从而减少XAP大小。这些zip文件将作为初始XAP下载的一部分进行请求。
优势来自两个场景。首先,如果您更新代码并在大多数情况下重建XAP,则唯一更改的是XAP,zip文件保持不变。因此,当客户端重新访问您的应用程序并需要下载最新版本时,可能只有XAP被提取,拉链是相同的从浏览器缓存中提供服务(可能是在服务器的“304 Not Modified”响应之后) )。
另一种情况是您的网站上有多个SL应用程序。他们将共享相同的拉链,因此多个应用程序的总下载量大大减少。
<强>缺点强>
对于一次性应用程序,第一次客户端访问将是至少与XAP中保存所有库一样昂贵的下载。在某些用途中(具有单个应用程序的站点的大量唯一访问者)可能更希望保留单个XAP,尤其是在XAP本身不经常更改的情况下。
如果有多个XAP共享同一组库拉链,则存在“DLL Hell”的危险。可能有人可以更新XAP,该XAP使用其他XAPS未经过测试的新版本库,并且无意中破坏了所有其他XAPS。有一些好的做法可以消除这个问题,但它比点击复选框需要更多的努力。
<强>结论强>
特别是第二个缺点,我认为这是一个明智的选择,不要默认这个功能。
我不打算讨论这个优点/缺点。只需回答默认情况下关闭的原因。
只要打开它就没有任何好处,您需要启用XAML中的哪些元素才能通过CacheMode
属性使用它。此外,根据您的行为,这可能仍然没有带给您任何好处。
只需打开它就会消耗额外的资源,例如视频内存,你不会希望这种情况发生,除非你已经明确地使用了CacheMode
至少在你的应用程序的某个地方,并希望它会在哪里真正的区别。也有可能弄错并使事情变得更糟。
答案 1 :(得分:2)
我相信这两个功能都是在Silverlight 3中引入的。他们选择加入的一个原因是为了保持向后兼容性。
有些情况下,启用GPU加速可能会降低性能或导致其他问题。通过使其成为选择加入过程,您更有可能注意到后果(好的或坏的),而不是默认情况下打开的设置,并想知道您的应用程序出现性能问题的原因。