我对整个MVVM模式都不熟悉,并试图绕过它。我目前要弄清楚的是:在一个结构良好的解决方案中,ViewModel在哪里生活?
目前我的设计看起来像这样(有点):
如果我要添加其他类型的视图(例如ASP.NET或Silverlight),ViewModel存在的最佳位置在哪里?
答案 0 :(得分:3)
最近,我构建了一个有两种风格的MVVM桌面应用程序:
两个exe都使用相同的视图模型,一个是WPF,另一个不是。
我能够将我的解决方案拆分为以下项目(libraries / exe):
仅使用View Models构建控制台应用程序版本非常容易。控制台应用程序代码少于200行代码,基本上是加载ProjectViewModel并对其进行操作。
答案 1 :(得分:2)
ViewModels应该放在Application层中,因为它们往往是技术特定的。
例如,您可能希望根据ViewModel的状态将View属性数据绑定为特定颜色。但是,Color在Windows窗体,ASP.NET和WPF上由不同类型实现,因此您将无法在不同技术中重用ViewModel。
如果添加新应用程序,则还必须提供新的ViewModel。
答案 2 :(得分:1)