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封装.到目前为止我读过的书籍鼓励这样做.