我有一个解决方案,其中我的业务逻辑存储在一个项目中,而我的 UI 存储在另一个项目中。我正在使用 MVVM 设计模式来创建一个界面,我在想,将我的所有视图模型放在另一个项目中是否明智和安全?
实际上,我将有 3 个程序集,其中 UI 是将控件数据上下文绑定到 View-Model 类的可执行文件,而 View-Model 类又绑定到 Model 类。
请告诉我
汤姆
我有一个解决方案,其中我的业务逻辑存储在一个项目中,而我的 UI 存储在另一个项目中。我正在使用 MVVM 设计模式来创建一个界面,我在想,将我的所有视图模型放在另一个项目中是否明智和安全?
实际上,我将有 3 个程序集,其中 UI 是将控件数据上下文绑定到 View-Model 类的可执行文件,而 View-Model 类又绑定到 Model 类。
请告诉我
汤姆
程序集是一个版本控制单元。
因此,如果您想混合和匹配不同版本的模型、视图模型和视图,将它们放在单独的程序集中可能是一种促进这一点的方式。
开始写一个长而详细的答案,然后意识到我认为这并不重要;
只要您保持良好的关注点分离,无论是在同一个项目中使用不同的程序集还是不同的文件夹,都没关系。
唯一重要的情况是如果您想在不交换视图模型的情况下交换视图。
即使那样,如果您的视图和视图模型在同一个程序集中正确分离,那么重构它们就很容易了。
ViewModels
将您置于一个新项目中是很有意义的。我不会说这是显而易见的事情,但在更大的项目中它绝对是一个有效的选择。我个人喜欢将其保留MainWindow ViewModel
在主项目中,然后将组件保留在单独的项目中。虽然,我通常围绕MEF设计我的程序,并将 ViewModel 和 View 作为插件自动加载。