C# 在Visual Studio中创建用于数据访问、业务规则和业务对象的项目
我在VisualStudio中创建了一个解决方案,试图实现一个基本的三层C#应用程序。我已经研究过这个概念,现在我正尝试使用不同的项目将其组合到每一层,即我有C# 在Visual Studio中创建用于数据访问、业务规则和业务对象的项目,c#,asp.net,data-access-layer,business-rules,C#,Asp.net,Data Access Layer,Business Rules,我在VisualStudio中创建了一个解决方案,试图实现一个基本的三层C#应用程序。我已经研究过这个概念,现在我正尝试使用不同的项目将其组合到每一层,即我有DataAccess、BusinessRules和BusinessObjects的项目 BusinessRules项目是否应该包含对DataAccess和BusinessObject项目的引用?(和DataAccess和BusinessObjects不应引用BusinessRules?) 设置此选项后,我意识到虽然我了解每个层的职责,但我不
DataAccess
、BusinessRules
和BusinessObjects
的项目
BusinessRules
项目是否应该包含对DataAccess
和BusinessObject
项目的引用?(和DataAccess
和BusinessObjects
不应引用BusinessRules
?)
设置此选项后,我意识到虽然我了解每个层的职责,但我不知道是否应该使用
DataAccess
层中的数据填充业务对象,或者DataAccess
层是否应该将请求的数据传递给BusinessRules
,然后填充对象-推荐的方法是什么?虽然这可能对您的问题没有帮助,但答案始终是“视情况而定”。在这个问题上,没有“一环来统治所有对象”。如果有的话,就不需要建筑师了
尽管如此,在我的特殊情况下,我想:
- 让数据访问层对业务对象进行操作。这假设DAL全部在代码中,而不是在数据库中的代码和存储过程之间分割
- 让业务规则层对业务对象进行操作。再次假定所有代码而不是存储的过程
- 数据访问的业务规则是一个棘手的问题。这在很大程度上取决于应用程序的类型和规则。如果您需要您的业务规则来更新存储,我可能会从DAL中提取接口,以便业务规则只能依赖于接口
祝你好运。虽然这可能对你的问题没有帮助,但答案总是“视情况而定”。在这个问题上,没有“一环统治一切”。如果有的话,就不需要建筑师了 尽管如此,在我的特殊情况下,我想:
- 让数据访问层对业务对象进行操作。这假设DAL全部在代码中,而不是在数据库中的代码和存储过程之间分割
- 让业务规则层对业务对象进行操作。再次假定所有代码而不是存储的过程
- 数据访问的业务规则是一个棘手的问题。这在很大程度上取决于应用程序的类型和规则。如果您需要您的业务规则来更新存储,我可能会从DAL中提取接口,以便业务规则只能依赖于接口
祝你好运。谢谢,这正是我想要的答案。网上有很多文章,关于堆栈溢出的问题也被问到了,但它们似乎表明有一种正确的方法可以做到这一点,而事实上(正如你的答案所指出的)有很多不同的方法可以实现这一点。谢谢你,这就是我一直在寻找的答案。网上有很多文章,关于堆栈溢出的问题也有人问过,但它们似乎表明有一种正确的方法可以做到这一点,而事实上(正如您的答案所指出的)有许多不同的方法可以实现这一点。