0

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

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

所以我们可以为这两个应用程序使用相同的模型。

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

模型项目包含实体。

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

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

帮助表示赞赏。

4

3 回答 3

1

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

真正的问题是适用性 - WPF 和 MVC 非常不同,您使用它们开发的应用程序肯定是不同的。这意味着您需要将模型更改为适合其中一个或另一个,但是在某些情况下,如果不是不可能的话,使其演变为适合两者可能会非常棘手。

您应该有一个与 MVC 不同的 WPF 视图模型,因为一个模型不太可能同时适用于两者。

于 2012-08-24T09:09:10.150 回答
1

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

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

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

于 2012-08-24T09:12:58.617 回答
0

可以使用包含实体的模型项目。关于开销,选择将是存储库模式的实现和使用。如果您想使用相同的模型项目,请参阅WPF 应用程序框架(WAF)一文。

于 2012-08-24T09:12:34.490 回答