【问题标题】:What is the Best Practices for Optimal Performance in Silverlight and MVVM在 Silverlight 和 MVVM 中获得最佳性能的最佳实践是什么
【发布时间】:2012-02-04 14:07:00
【问题描述】:

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

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

感谢您的时间和帮助。

【问题讨论】:

    标签: silverlight-4.0 mvvm ria


    【解决方案1】:

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

    如果消息传递是您的主要关注点,请查看Binary Messaging

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

    【讨论】:

      【解决方案2】:

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

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

      我强烈推荐阅读 Gary Hall 的 Pro WPF and Silverlight MVVM。这是一本 MVVM 入门的好书,尤其适用于 WPF 和/或 Silverlight。

      【讨论】:

        猜你喜欢
        • 2012-08-19
        • 1970-01-01
        • 1970-01-01
        • 2011-11-21
        • 2011-03-17
        • 1970-01-01
        • 2010-10-30
        • 2011-06-07
        • 1970-01-01
        相关资源
        最近更新 更多