2011-03-02 75 views
2

MVVM方法鼓励(或只是提供了可能性)拆分WPF或Silverlight应用程序到型号视图模型查看项目,使所有三个可能的时候存在于他们自己的集会中。另一方面,我们可以构建一个模块化的应用程序,该应用程序分为一组功能单元(命名模块),每个单元在这种情况下,是一个单独的组件。
我说得对,在这种情况下,我们可以在自己的组件分离的只有型号,但查看视图模型应该坐在一个组件,代表一个功能模块?拆分应用程序的部分用Prism

回答

4

首先,模块等于组件。您可以在几个组件之间传播模块的零件(包括模型,视图和视图模型)。尽管通常您将与模块相关的类放在一个DLL或XAP文件中(如果您的模块是独立的Silverlight应用程序,则为Silverlight)。

作为你的情况,如果一个模型是可以由数个模块中使用的共用实体,棱镜鼓励将其放置在不断共享的非模块特定的逻辑所谓的基础设施组件。否则,将MVVM部件放在一起可能是一个好主意,因为它们可以解决常见的业务任务。将来,如果您需要替换MVVM的某个部分的实现,则只需添加一个新的部分并调整容器的映射即可。

3

是,棱镜鼓励你把一切(模型,视图和视图模型)合并为一个自包含的功能模块。

在任何情况下,我强烈不建议你拆分视图和视图模型为单独的项目。这是因为它们紧密耦合在一起并且是并行开发的。

嗯,有你如何安排你MVVM应用推荐两个方法。首先是按层组织项目,并将视图和视图模型放入项目中的单独文件夹中。其次,当您按功能创建文件夹并且不会分离视图和查看模型时,即它们并排位于同一个文件夹中。我个人选择第二个,因为正如我所提到的,它们总是一起开发和维护,这样就很容易找到相应的视图或视图模型。