2012-07-19 65 views
0

我已经从MSDN阅读下面的文章:http://msdn.microsoft.com/en-us/library/aa581779ASP.NET分层设计

它谈论创建一个数据层,业务逻辑层和表示层和具有类似于getProductsDAL(),getProductsBLL()等,或命名约定甚至将它们分为类库。

我的问题是:如果不使用.NET数据集,开发人员是否遵循这种方法,即如果您自己完成所有逻辑,有一个名为getProducts的函数,它使用连接对象连接到数据库,然后使用SQLDataReader遍历结果集并在页面上显示结果。我正在考虑将这样的功能分解为图层。

+1

关于降价的可惜,这是许多开发商在一个阶段提出的问题。阅读此:http://stackoverflow.com/questions/1182303/n-tiered-vs-n-layered-architecture-design和这个http://en.wikipedia.org/wiki/Multitier_architecture – callisto 2012-07-19 11:38:42

回答

2

如果您按照自己的方式设置:
您的数据层将包含打开连接,执行查询/存储过程并返回数据集或数据表的方法。此图层不接收来自上述图层的连接信息,只返回每种方法的查询结果。连接在此级别实例化。

您的业务逻辑层包含调用一个或多个数据层方法的方法。示例:添加新用户还意味着为该用户设置权限,因此DL.sertion(params ...)和DL.SetPermissions(int userid,List permissions)由BL.AddNewUser(params ...)调用。这BL方法也可以调用得到的默认权限列表中的另一DL方法来分配新的用户

你的UI层将调用BL.AddNewUser(参数...)与所有适当的新用户详细信息

+0

你认为这是好事实践?我已经继承了一个ASP.NET类应用程序,它们在类中的凝聚力和紧密耦合度低。我正试图按照结构化的方式来实现未来的发展。这是你会遵循的模式吗? – w0051977 2012-07-19 11:37:14

+0

我已经建立了像内聚力高和松散耦合的系统。只要你在选择正确的课程方法上保持一致,并且保持课程不会达到多重目的。 – callisto 2012-07-19 11:43:01

+0

表示层调用业务逻辑层,业务逻辑层调用数据访问层?我正在考虑从数据层返回SQLDataReaders,以后可以在业务逻辑中循环使用。然后业务逻辑层可以返回一个表格放在页面上。 – w0051977 2012-07-19 11:53:07