结合ViewModel(WPF / Silverlight)和强类型ViewData(ASp.NET MVC)?

时间:2010-01-18 23:38:51

标签: asp.net wpf asp.net-mvc viewmodel viewdata

注意:我将在下面的文本中为WPF / Silverlight中的ViewModel和ASP.Net MVC中的强类型ViewData使用术语“ViewModel”。

我想为同一个项目创建ASP.Net MVC和WPF / Silverlight客户端(换句话说,针对相同的DataModel),我应该为每个客户端技术创建一个公共ViewModel项目还是单独的ViewModel? / p>

我想相信一个常见的ViewModel是正确的做法,但是创建Dependent Properties或JSON字符串的需要使它看起来不兼容。

也许另一种解决方案是将ViewModel的公共部分放入DataModel层?

我将非常感谢能帮助我朝着正确方向前进的任何帮助,谢谢

1 个答案:

答案 0 :(得分:1)

由于受限制(由Visual Studio强加),您将需要单独的ViewModel,Silverlight项目无法引用非Silverlight项目(尽管有一两个记录在案的黑客可以解决这个问题)。

您可以通过在一个项目中包含物理类,然后将现有项添加到第二个项目来共享两个项目之间的代码(导航到然后选择原始类,然后单击“添加为链接”)。小提示:如果您认为某个类将以这种方式共享,请尽可能保持名称空间中性,这可以避免混淆和/或进一步重构。