我习惯了Classic Asp,在那里我从来没有用过DAL/BLL概念,现在我正在学习MVC,并试图远离坏习惯(比如在ASP页面中编写SQL查询)。我读到数据访问层和业务逻辑Layer....they很有意义,但我正在努力弄清楚如何将它们放到我当前的应用程序中。
这是一个购物车应用程序。
目前我没有使用EF或SQL,也就是我的函数返回DataTable的普通老式ADO.NET。
让我给你举个例子。
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现在我的视图将简单地呈现结果(of List(ProductsModelView))
现在我的问题是,我是否应该将上面的步骤结构化为DAL & BAL层。
发布于 2013-05-29 07:06:58
一个基本的开始方法是创建3个项目:
在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/
https://stackoverflow.com/questions/16802860
复制相似问题