如何在现实生活中实现业务逻辑层的良好实践asp.net
Posted
技术标签:
【中文标题】如何在现实生活中实现业务逻辑层的良好实践asp.net【英文标题】:How to implement good practise of Business Logic Layer in Real Life asp.net 【发布时间】:2012-12-15 19:48:58 【问题描述】:我通常将数据集创建为 DAL,并在原始项目中创建 BLL。
在学习了Entity Framework之后,我知道业务逻辑层通常是在单独的项目(类库)中创建的。
但是,ASP.NET 站点没有相应的教程。
因此,当我创建 BLL 时,尤其是在引用期间,我很困惑。
-
为了完成 BLL 课程,我应该像这样直接添加引用吗?
然后用 USING 语句访问实体:
但是,访问 BLL 的主项目中的表示层可能需要引用回 BLL 项目。我看到一些示例将整个 BLL 项目的 DLL 文件放在主项目中。
引用 BLL 和 Main 项目的正确方法是什么,或者只是像上面那样引用?
有什么好的教程可以学习吗?
【问题讨论】:
【参考方案1】:我通常设置一个数据访问项目,设置一个引用数据访问项目的业务项目,以及一个同时引用数据访问和业务项目的 Web 项目。使用实体框架,所有生成的类都在数据访问层。我通常使用存储库模式,我所有的存储库都在业务层(也可以在数据访问层),并将实体框架实体返回给调用者,调用者是表示层中的一个对象(一个 MVC 控制器,或 MVP 演示者,或 asp.net 网络表单的代码隐藏,具体取决于您使用的内容)。
HTH
【讨论】:
更好的办法是将实体(模型)分离(推出)到一个新项目中。这样,您的 Web 层仅引用业务层和模型(实体),而不直接引用数据访问层。这当然是如果您只在业务层使用数据访问(存储库),而不是直接从 Web 层使用它们。 我同意这样做有好处,但也增加了复杂性。这实际上取决于项目的规模和需求来确定这是否有益。只需将实体从上下文通过存储库推送到 Web 层,然后将它们全部附加,就非常快速和容易。以上是关于如何在现实生活中实现业务逻辑层的良好实践asp.net的主要内容,如果未能解决你的问题,请参考以下文章