【问题标题】:Dealing with data for a modular application处理模块化应用程序的数据
【发布时间】:2011-09-12 14:08:09
【问题描述】:

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

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

【问题讨论】:

  • 只是确认 - 这些共享对象对象是否存在于接口定义中,或者您是在谈论通过两个不同路径/模块访问的数据?

标签: architecture prism prism-4 devforce


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-08-29
      • 2014-09-25
      • 2016-10-03
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 2013-08-15
      相关资源
      最近更新 更多