8

我习惯了 Classic Asp,我从未使用过 DAL/BLL 概念,现在我正在学习 MVC 并试图远离不良习惯(例如在 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

现在我的视图将简单地呈现结果(列表(ProductsModelView))

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

4

1 回答 1

19

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

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

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

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

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

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

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

于 2013-05-28T23:06:58.027 回答