首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC DAL和BLL概念

MVC DAL和BLL概念
EN

Stack Overflow用户
提问于 2013-05-29 06:58:33
回答 1查看 23.1K关注 0票数 8

我习惯了Classic Asp,在那里我从来没有用过DAL/BLL概念,现在我正在学习MVC,并试图远离坏习惯(比如在ASP页面中编写SQL查询)。我读到数据访问层和业务逻辑Layer....they很有意义,但我正在努力弄清楚如何将它们放到我当前的应用程序中。

这是一个购物车应用程序。

目前我没有使用EF或SQL,也就是我的函数返回DataTable的普通老式ADO.NET。

让我给你举个例子。

代码语言:javascript
复制
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

查询所涉及的带来产品

代码语言:javascript
复制
Select *  From Products Where title = 'Bluh'

ProductsModelView.vb

代码语言:javascript
复制
Class ProductsModelView

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

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

现在我的问题是,我是否应该将上面的步骤结构化为DAL & BAL层。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-29 07:06:58

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

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

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

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

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

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

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

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16802860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档