MVVM解决方案体系结构

MVVM解决方案体系结构,mvvm,architecture,bind,Mvvm,Architecture,Bind,我有一个解决方案,其中我的业务逻辑存储在一个项目中,我的UI存储在另一个项目中。我正在使用MVVM设计模式创建一个界面,我在想,将我的所有视图模型放在另一个项目中是否明智和安全? 实际上,我有3个程序集,其中UI是将控件数据上下文绑定到视图模型类的可执行文件,视图模型类又绑定到模型类 请让我知道 汤姆开始写一个长而详细的答案,然后意识到我认为这并不重要 只要您保持良好的关注点分离,无论是在同一项目中使用不同的程序集还是不同的文件夹,这都没有多大关系。 唯一重要的情况是,您是否希望在不交换视图模型

我有一个解决方案,其中我的业务逻辑存储在一个项目中,我的UI存储在另一个项目中。我正在使用MVVM设计模式创建一个界面,我在想,将我的所有视图模型放在另一个项目中是否明智和安全?
实际上,我有3个程序集,其中UI是将控件数据上下文绑定到视图模型类的可执行文件,视图模型类又绑定到模型类

请让我知道


汤姆开始写一个长而详细的答案,然后意识到我认为这并不重要
只要您保持良好的关注点分离,无论是在同一项目中使用不同的程序集还是不同的文件夹,这都没有多大关系。
唯一重要的情况是,您是否希望在不交换视图模型的情况下交换视图。

即使如此,如果您的视图和视图模型在同一个程序集中正确分离,重构它们也很容易。

程序集是版本控制的一个单元


因此,如果您想混合和匹配不同版本的模型、视图模型和视图,将它们放在单独的程序集中可能是一种方便的方法。

将您的
视图模型放置在新项目中非常有意义。我不会说这是显而易见的事情,但在更大的项目中,这肯定是一个有效的选择。我个人喜欢在主项目中保留
MainWindowViewModel
,然后在单独的项目中保留组件。尽管如此,我通常都是围绕着它来设计程序,并将ViewModel和View作为插件自动加载