我习惯经典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
Run Code Online (Sandbox Code Playgroud)
查询涉及到产品
Select * From Products Where title = 'Bluh'
Run Code Online (Sandbox Code Playgroud)
ProductsModelView.vb
Class ProductsModelView
Public title as string
Public sku as string
....etc
End Class
Run Code Online (Sandbox Code Playgroud)
现在我的视图将只是渲染结果(列表(ProductsModelView))
现在我的问题是......我应该如何将上述步骤构建到DAL和BAL图层中.
Ken*_*eth 19
一个基本的开始方式是创建3个项目:
在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 -注射/