2010-01-18 53 views
1

注意:在下面的文本中,我将使用术语“ViewModel”来表示WPF/Silverlight中的ViewModel和ASP.Net MVC中的强类型ViewData。组合ViewModel(WPF/Silverlight)和强类型的ViewData(ASp.NET MVC)?

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

我想相信一个普通的ViewModel是正确的做法,但是需要创建相关属性或JSON字符串使它看起来不兼容。

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

我会明白,将使我在正确的方向上没有任何的帮助,感谢

回答

1

您需要因限制(由Visual Studio强加),一个Silverlight项目不能引用非Silverlight项目单独的ViewModels (尽管有一两个记录的黑客可以解决这个问题)。

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

+0

感谢您的回复。但是你正在谈论一个不同的问题。可能我不应该提到Silverlight,只是ASP.NET MVC和WPF之间ViewModel的一些代码重用技术。 – 2010-01-19 17:49:12