C# NET中的DAL和BLL

C# NET中的DAL和BLL,c#,asp.net,datatable,data-access-layer,bll,C#,Asp.net,Datatable,Data Access Layer,Bll,这是微软为ASP.NET(2.0)应用提供的。我知道一些备选方案,我在这里读过相关问题。然而,我想知道这个提议的解决方案现在是否值得实施,你知道有什么具体的缺点吗 我想开发公司内部使用的DAL/BLL组件,从各种应用程序和脚本访问客户和员工数据等。然而,在我开始构建这些东西之前,我想确定这个解决方案是“好的”。例如,传递数据表而不是封装任何内容,您没有包含逻辑的独立业务对象。它基本上只是一个哑层,可以稍微简化CRUD操作,并允许对控件进行数据绑定 有这方面经验的人能告诉我这种方法的优点和缺点吗?

这是微软为ASP.NET(2.0)应用提供的。我知道一些备选方案,我在这里读过相关问题。然而,我想知道这个提议的解决方案现在是否值得实施,你知道有什么具体的缺点吗

我想开发公司内部使用的DAL/BLL组件,从各种应用程序和脚本访问客户和员工数据等。然而,在我开始构建这些东西之前,我想确定这个解决方案是“好的”。例如,传递数据表而不是封装任何内容,您没有包含逻辑的独立业务对象。它基本上只是一个哑层,可以稍微简化CRUD操作,并允许对控件进行数据绑定

有这方面经验的人能告诉我这种方法的优点和缺点吗?

优点:
简单的方法和一些数据映射是使用datatable的为您完成的。
为触发选择、添加、更新和删除查询提供了一些便利。
-可能适用于非常简单的设计,只有很少的表格。
适用于非自参考ER DEGIGN或具有少量查找表和简单/少量联接的ER
适用于需要简单数据存储的地方。也就是说,当复杂的OO思想应用于“业务对象”时,这种模式会使事情变得更加困难

缺点:
大型OO模型将在这种模式下挣扎
具有许多表、复杂关系或OO对象需求的复杂ER设计将不适合此模式。datatables不像LINQ那样为代码内对象查询提供很多帮助。
大多数查询都需要用SQL手工编写(包括连接)。是的,您可以使用查询设计器,但这没有多大帮助。
这种方法存在大量代码重复。如中所示,您将在BLL类中编写大量CRUD方法(您还需要从头开始编写)

结论: 这取决于你的要求。如果您的实现很小/很简单,那么这可能是一个好主意。但这种方法很难培养出一个小想法。一个更加面向对象的方法将为以后的重构/扩展提供更好的条件。 这种图案也比较古老/过时。对象查询IQueryable/LINQ更受欢迎,不久将成为更广泛的标准。我建议你跳上这辆马车。从长远来看,这对你的个人发展也有好处D

一些链接:

  • 试试aspnet MVC-
  • 如果您的范围更大,这将是一个方便的模式的良好开端-

我完全建议不要使用数据表。查看一个域驱动的设计实现,您的整个框架将与常规对象一起工作,您可以将这些对象传递到列表或可查询对象中。数据表是垃圾,甚至不应该再包含在.NET中


我还建议考虑使用依赖注入/反转控制框架(如Microsoft Unity或StructureMap)来创建松散耦合的代码。

我同意,但不应将数据表包含在.NET中。它们仍然属于System.Data命名空间,对于使用数据库中的数据创建快速演示应用程序非常有用。看看这个物体光明的一面-P@jerbersoft您可以使用下面的链接开发BAL和DAl,其中提供了源代码、演示和解释