2012-04-25 40 views
1

我在Visual Studio中创建了一个解决方案,试图实现基本的3层C#应用程序。我已经研究了这个概念,现在我正在尝试将每个层的不同项目放在一起,即我有DataAccess,BusinessRulesBusinessObjects的项目。在Visual Studio中创建数据访问,业务规则和业务对象的项目

BusinessRules项目是否应包含对DataAccessBusinessObject项目的引用? (和DataAccessBusinessObjects不应引用BusinessRules?)

设置此功能后,我意识到,尽管我明白每一层负责,我不知道是否应该填充业务对象(S)与数据DataAccess图层,或者DataAccess图层是否应将请求的数据传递给BusinessRules,然后填充对象 - 这样做的推荐方式是什么?

回答

1

虽然它可能对您的问题没有帮助,但答案将始终为“视情况而定”。当谈到这个时,没有“一个环来统治他们”。如果有的话,建筑师将不再需要。

话虽这么说,在我的具体情况我想:

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

同样,这些项目在我的情况下工作。他们可能对你完全错误。另外,你没有提到用户界面层,服务层,等等等等。可能有很多部分和部分。

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

祝你好运。

+0

谢谢,那是我正在寻找的那种答案。网上有很多文章,关于这个问题已经被Stack Overflow询问过了,但是它们似乎表明有一个正确的方法来做到这一点,事实上(正如你的回答指出的那样)有很多不同的方式执行此操作。 – Theomax 2012-04-26 08:25:10