我可以为WPF和MVC使用相同的模型项目吗?

时间:2012-08-24 09:01:25

标签: asp.net .net wpf

我想开发2个应用程序,一个是WPF Window Application和ASP.Net MVC应用程序。

因此,我们确实为这两个应用程序提供了相同的数据访问层和业务层。

我们也可以为这两种应用使用相同的模型。

请注意: 担心不是DAL,而是我的模型项目。

模型项目包含实体。

我的实体包含与WPF相关的功能,如InotifyPropertychanged,observablecollection。

如果我正在为MVC使用相同的实体,那么它真的是开销吗?

非常感谢帮助。

3 个答案:

答案 0 :(得分:1)

该模型将引发所有未被侦听的事件 - 维护调用列表并检查是否存在侦听器会产生一些开销。所有这些都可能是非常小的开销 - 可能不值得担心。

真正的问题在于适用性 - WPF和MVC是非常不同的,并且您与每个应用程序开发的应用程序肯定是不同的。这意味着您需要将模型更改为一个或另一个套件,但是如果在某些情况下并非不可能,那么将其演变为套件两者可能非常棘手。

你应该从MVC获得一个不同的WPF视图模型,因为一个模型不太可能同时兼顾它们。

答案 1 :(得分:1)

是的,这是可能的。您可以隔离域模型并在两种情况下使用它。但是,您不应该将特定的相关技术内容放入您的实体中。

我的建议是面向服务的应用程序。使用WCF,REST或类似服务来使用模型,并且(桌面和Web)都使用这些服务来检索它们进行演示所需的数据。您将封装您的域模型,因此它不会了解您的演示技术。

然后,您可以从服务中获取数据,并根据演示文稿的图层技术构建自己的模型对象。

答案 2 :(得分:0)

可以使用包含Entity的模型项目。 关于头脑的选择将是存储库模式和使用的实现。 如果您想使用相同的模型项目,请参阅文章WPF Application framework(WAF)