MVC DAL& BLL概念

时间:2013-05-28 22:58:33

标签: c# .net vb.net

我习惯经典Asp,我从未使用过DAL / BLL概念,现在我正在学习MVC并试图远离BAD习惯(比如在ASP页面本身编写SQL查询)。我读到了数据访问层和业务逻辑层......它们很有意义,但我想弄清楚如何将它们放入我当前的应用程序中。

它是购物车应用程序。

目前我没有使用EF或SQL实体,简单的旧ADO.NET,我的函数返回DataTable。

让我举个例子。

1 - I need to Return Products From SQL Table 
2 - My Products Model Class will hold the SQL Table output 
3 - and then I will show the output to View

查询涉及产品

Select *  From Products Where title = 'Bluh'

ProductsModelView.vb

Class ProductsModelView

 Public title as string
 Public sku as string
 ....etc
End Class

现在我的视图将简单地渲染结果(List(ProductsModelView))

现在我的问题是......我应该如何将上述步骤构建到DAL& BAL层。

1 个答案:

答案 0 :(得分:18)

开始的基本方法是创建3个项目:

  • DAL项目
  • BLL项目
  • 一个UI项目(您的MVC应用程序)

在您的DAL项目中,您应该创建一个repository - 类。这个类的作用是对数据库执行查询并将DataTable转换为模型。

你的BLL项目应该有service级。此类具有对DAL的引用,并调用该方法以获取所需的对象列表(DAL处理DB代码)。在本课程中,您可以应用逻辑。 注意:目前您的应用中似乎没有任何真实的逻辑。没关系,您的服务可以立即从DAL返回列表。它将为您提供一个可以在以后安全地添加逻辑的位置,而不会影响数据访问代码。

在UI中,您的控制器将调用服务并将结果传递给视图,然后视图负责呈现结果。

这是一个基本的起点。你可以更进一步,并完全松散耦合。目前,您仍然存在来自UI =>的硬依赖关系; BLL => DAL。

我最近写了一篇关于如何确保不创建硬依赖项的文章: http://www.kenneth-truyers.net/2013/05/12/the-n-layer-myth-and-basic-dependency-injection/