1

我在 Visual Studio 中创建了一个解决方案来尝试实现一个基本的 3 层 C# 应用程序。我已经研究了这个概念,现在我正在尝试将它放在一起,使用每个层的不同项目,即我有项目DataAccessBusinessRulesBusinessObjects

项目是否应该BusinessRules包含对DataAccessBusinessObject项目的引用?(而且DataAccessBusinessObjects应该参考BusinessRules?)

设置完成后,我意识到虽然我了解每个层的职责,但我不知道您是否应该使用层中的数据填充业务对象DataAccess,或者层是否DataAccess应该将请求的数据传递BusinessRules给然后填充对象 - 推荐的方法是什么?

4

1 回答 1

1

虽然它可能对您的问题没有帮助,但答案将始终是“视情况而定”。在这方面,没有“一环来统治他们”。如果有,就不需要建筑师了。

话虽这么说,在我的特殊情况下,我喜欢:

  • 让数据访问层对业务对象进行操作。这假设 DAL 全部在代码中,而不是在代码和数据库中存储的过程之间拆分。
  • 让业务规则层对业务对象进行操作。再次假设所有代码而不是存储过程。
  • 数据访问的业务规则是一个棘手的问题。这在很大程度上取决于应用程序的类型和规则。如果您需要您的业务规则来更新商店,我可能会从 DAL 中提取接口,以便业务规则可以仅依赖于接口。

同样,这些项目适用于我的情况。他们对你来说可能是完全错误的。此外,您没有提到用户界面层、服务层、等等等等。可能有很多部分。

没有任何硬性规则必须遵循才能正确。你必须看看你的需要、你的要求和你有什么限制。

祝你好运。

于 2012-04-25T13:47:03.870 回答