从MVC到MVVM

srm*_*ark 9 .net model-view-controller domain-driven-design

我不想将我的域模型类存储在与我的Web平台相同的程序集中.因此,项目结构中的Models文件夹对我来说毫无用处.然而,我刚刚完成音乐商店教程,并注意到他们如何创建一个"ViewModels"文件夹,这对我来说很有意义.

将Models文件夹视为ViewModels文件夹是否有意义?有很多人这样做吗?MVVM有这样的模式吗?

GSe*_*erg 15

视图模型可以添加另一个抽象级别,以防您不完全信任您的演示代码(或者只是简单地发现这种封装更优雅).

也就是说,如果您的Person类具有Delete方法或SSNumber属性,您可能希望不将此对象传递给视图,因为从概念上讲,这使它能够调用Delete或显示SSN,而SSN是它无法做到的.
要避免这种情况,请创建另一个类,该类PersonViewModel仅包含可从视图中安全调用的信息/方法.

这与从MVC应用程序中取出模型逻辑几乎没有关系.您可以为模型创建单独的项目,并从Web应用程序引用它,无论您是否使用ViewModel封装.到目前为止我读过的书籍鼓励这样做.


Dx_*_*Dx_ 5

我想你是指MVVM模式(Model-View-ViewModel)

没有像MVVC这样的东西.