很好的理由不将ViewModels放在单独的程序集中?

时间:2009-05-10 03:53:09

标签: wpf mvvm

我正在使用WPF中的MVVM模式开发一个项目。

MVVM的一个主要好处是保持业务逻辑和表示之间的明确分离。

作为一项测试,看看实际上是如何分离的,在周末,我将所有ViewModel,模型和业务逻辑都移到了一个单独的.dll上。 .exe被保留为一个薄的表示层。

这无缝地工作,首先尝试

我已经看到了将.exe和核心逻辑中的视图(xaml,presentation)保存在自己的dll中的好处。例如,在我的脑海中不再有any dilemma关于Xaml中的代码隐藏是否是一个问题:如果有必要我会很满意,因为我知道它是特定于演示文稿的。

到目前为止,这个exe / dll分离工作得非常好,我的问题是:有没有人遇到任何缺点这种方法?

相关问题:Implementing MVVM in WPF without using System.Windows.Input.ICommand

4 个答案:

答案 0 :(得分:5)

我们在所有产品中使用这种分离,因为它有助于我们查看是否有任何代码违反了UI - 业务逻辑分离。

我们大多数时候都按照您的建议进行操作:

  • Sample.Presentation.exe(包含所有WPF内容,精简版程序集)

  • Sample.Applications.dll(负责应用程序的工作流程,这里是所有ViewModels)

  • Sample.Domain.dll(以下是业务规则)

我们还没有遇到任何问题,我预计将来不会出现任何问题。

答案 1 :(得分:3)

除了使用少数/很多项目的一般pro / con之外,我没有看到这种方法的任何具体问题。

答案 2 :(得分:1)

我的模特&在dll中查看模型,在exe中我的xaml,没有任何问题。

答案 3 :(得分:0)

实际问题是......什么是装配?

除非你添加一个引用,否则它们是一种分离逻辑使其不可用于其他代码的方法,所以实际上它们是隐藏其他部分代码的一种方式。

鉴于此目的以及您使用它的方式,我会说您做得对。

话虽如此,我发现更容易验证视图在代码审查中没有任何代码,并将视图保留在同一个程序集中。更少的项目=更快的编译和加载时间。