2012-02-04 53 views
0

我有很多规范化表 - 可能超过50 ...我想知道什么是定义ViewModels的最佳方法 - 为每个窗体创建单独的ViewModel或使Common ViewModel为多个表单。因为制作单独的表单可能会增加需要下载的数据的大小,并且可能会增加客户机上的数据冗余。即在每个表单上使用Category对于每个表单都有不同的数据集。而在其他人使用通用视图模型来设置表单可能会增加管理工作的复杂性。在Silverlight和MVVM中最佳性能的最佳实践是什么

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

感谢您的时间和帮助。

回答

0

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

如果消息传递是您主要关心的问题,那么请查看Binary Messaging

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

0

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

请记住,两个完全不同的视图模型可以操纵相同的模型。如果两个视图显示相同的数据,但每个视图都允许用户以独特的方式与它进行交互,则可能会出现这种情况。

我强烈推荐阅读Pro WPF and Silverlight MVVM by Gary Hall。开始使用MVVM是一本很棒的书,特别适用于WPF和/或Silverlight。