处理模块化应用程序的数据

时间:2011-09-12 14:08:10

标签: architecture prism prism-4 devforce

我创建了一个模块化应用程序,其中每个模块只通过另一个模块与强大的接口进行通信。最近我发现我们无法完全分离模块,因为每个模块都有一组共享的对象。

将此图层分开的最佳方法是什么?数据对象表示屏幕上显示的新记录。

2 个答案:

答案 0 :(得分:1)

您通常会为包含所有共享类的应用程序(myproject。基础结构)创建域程序集。所有项目都引用此程序集。使用这种方法,您的模块不会直接相互引用。 (另见prism stocktrader参考实施)

答案 1 :(得分:1)

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

如果你想继续打破这个问题,我认为它会导致更多的问题,那么它是值得的。您将遇到从不同模块加入实体的问题,您将在不同的数据模块中重复实体等。如果您已经将ORM层分解 - 那么一定要在客户端保持相同。

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