Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Visual Studio中创建用于数据访问、业务规则和业务对象的项目_C#_Asp.net_Data Access Layer_Business Rules - Fatal编程技术网

C# 在Visual Studio中创建用于数据访问、业务规则和业务对象的项目

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?) 设置此选项后,我意识到虽然我了解每个层的职责,但我不

我在VisualStudio中创建了一个解决方案,试图实现一个基本的三层C#应用程序。我已经研究过这个概念,现在我正尝试使用不同的项目将其组合到每一层,即我有
DataAccess
BusinessRules
BusinessObjects
的项目

BusinessRules
项目是否应该包含对
DataAccess
BusinessObject
项目的引用?(和
DataAccess
BusinessObjects
不应引用
BusinessRules
?)


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

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

尽管如此,在我的特殊情况下,我想:

  • 让数据访问层对业务对象进行操作。这假设DAL全部在代码中,而不是在数据库中的代码和存储过程之间分割
  • 让业务规则层对业务对象进行操作。再次假定所有代码而不是存储的过程
  • 数据访问的业务规则是一个棘手的问题。这在很大程度上取决于应用程序的类型和规则。如果您需要您的业务规则来更新存储,我可能会从DAL中提取接口,以便业务规则只能依赖于接口
同样,这些项目在我的情况下工作。他们对你来说可能是完全错误的。另外,您没有提到用户界面层、服务层、等等。可能有很多部分

没有任何硬性规定是你必须遵守的。你必须考虑你的需求,你的要求,以及你有什么限制


祝你好运。

虽然这可能对你的问题没有帮助,但答案总是“视情况而定”。在这个问题上,没有“一环统治一切”。如果有的话,就不需要建筑师了

尽管如此,在我的特殊情况下,我想:

  • 让数据访问层对业务对象进行操作。这假设DAL全部在代码中,而不是在数据库中的代码和存储过程之间分割
  • 让业务规则层对业务对象进行操作。再次假定所有代码而不是存储的过程
  • 数据访问的业务规则是一个棘手的问题。这在很大程度上取决于应用程序的类型和规则。如果您需要您的业务规则来更新存储,我可能会从DAL中提取接口,以便业务规则只能依赖于接口
同样,这些项目在我的情况下工作。他们对你来说可能是完全错误的。另外,您没有提到用户界面层、服务层、等等。可能有很多部分

没有任何硬性规定是你必须遵守的。你必须考虑你的需求,你的要求,以及你有什么限制


祝你好运。

谢谢,这正是我想要的答案。网上有很多文章,关于堆栈溢出的问题也被问到了,但它们似乎表明有一种正确的方法可以做到这一点,而事实上(正如你的答案所指出的)有很多不同的方法可以实现这一点。谢谢你,这就是我一直在寻找的答案。网上有很多文章,关于堆栈溢出的问题也有人问过,但它们似乎表明有一种正确的方法可以做到这一点,而事实上(正如您的答案所指出的)有许多不同的方法可以实现这一点。