什么是Silverlight和MVVM中最佳性能的最佳实践

时间:2012-02-04 14:07:00

标签: silverlight-4.0 mvvm ria

我有很多规范化表 - 可能超过50 ...我想知道定义ViewModel的最佳方法是什么 - 每个表单的单独ViewModel或为多个表单制作Common ViewModel。因为制作单个表单可能会增加需要下载的数据的大小,并且可能会增加客户端上的数据冗余。即,在每个表格上使用类别,每个表格都有不同的数据集。而在另一方面,为一组表单制作通用的视图模型可能会增加管理内容的复杂性。

是否有适当的文章描述了这方面的发展。管理整个应用程序的最佳实践是什么,以便提供最佳性能。 (从服务器获取最小数据)

感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:0)

观点数量&模型会增加XAP文件的大小,该文件在打开时完全下载,可以是compressed。使用过程中的实际性能也不同,也取决于其他因素,请尝试使用SilverlightSpy来了解实际的浏览器性能。可以根据需要下载部分Silverlight应用程序,但这是一项高级技术。

如果Messaging是您主要关注的问题,请查看Binary Messaging

我建议为每个视图或嵌套的Usercontrol使用新的ViewModel,然后使用event aggregator进行模型之间的通信。

答案 1 :(得分:0)

通常,您需要为每个视图创建一个视图模型。如果两个视图显示相同的数据并允许用户执行相同的操作但仅在UI实现方面有所不同,那么他们可以共享视图模型,但目标是保持View模型的内聚性。如果您的视图模型包含操作多个视图的代码,则存在实现“上帝对象”反模式的风险。如果您发现您的视图模型都共享一定数量的公共代码,请考虑将该代码移动到公共基类。

请记住,两个完全不同的View Models可以操作相同的模型。如果两个视图显示相同的数据但每个视图允许用户以独特的方式与其进行交互,则可能就是这种情况。

我强烈建议您阅读Gary Hall的 Pro WPF and Silverlight MVVM 。这是开始使用MVVM的好书,尤其适用于WPF和/或Silverlight。

相关问题