0

我创建了一个模块化应用程序,其中每个模块仅通过具有强大接口的另一个模块进行通信。最近我发现我们未能完全分离模块,因为每个模块都可以访问一组共享的对象。

分离这一层的最佳方法是什么?数据对象表示在屏幕上显示的新记录。

4

2 回答 2

1

您通常为您的应用程序(myproject.Infrastructure)创建一个包含所有共享类的域程序集。该程序集被所有项目引用。使用这种方法,您的模块不会直接相互引用。(另见 prism stocktrader 参考实现)

于 2011-09-12T15:38:34.020 回答
1

看来我和你在同一条船上。如果您有 ORM(例如 EF)和某种业务对象框架(RIA 服务、DevForce),那么您几乎“锁定”在每一端(客户端/服务器)都有 1 个程序集

如果您想继续进行分解,我认为这会导致更多问题,那么这是值得的。您将在连接来自不同模块的实体时遇到问题,您将在不同的数据模块中有重复的实体,等等。如果您已经分解了 ORM 层 - 那么一定要在客户端上保持它相同。

我将只创建一个数据项目(它甚至不是 Prism 中的模块)并从所有模块中引用它。在我的例子中,我从主项目中引用它并设置“CopyLocal=true”,以便 MEF 了解这些实体,我从其他模块中引用它并设置“CopyLocal=false”。

于 2011-09-14T06:04:30.543 回答