1

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

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

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

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

我将不胜感激任何可以使我朝着正确方向前进的帮助,谢谢

4

1 回答 1

1

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

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

于 2010-01-19T00:09:24.087 回答