|
|
1
28
两个字: Loose Coupling 为了使用于从数据存储(数据库、平面文件、web服务等)中提取数据的代码与业务逻辑和表示代码分离。这样,如果你必须改变数据存储,你不会最终重写整个事情。 现在,各种ORM框架都在将DAL与其他层混合在一起。这通常使开发更容易,但更改数据存储可能会很痛苦。公平地说,像这样更改数据存储是相当罕见的。 |
|
|
2
17
这里的大多数答案都提供了第一个原因。在我看来,第二个更重要。实际上,业务层不应该知道正在使用的逻辑数据模型。如今,ORMs和Linq#2似乎已经过时了,人们往往忘记(或者看不到存在和应该存在的细微差别)关于#2。 本质上,为了更好地理解数据层的用途和功能,您需要从业务层的角度来看待事情,记住业务层应该与数据存储的逻辑数据模型无关。 例如,每当业务层需要数据时,if应该以一种非常简单的逻辑数据模型无关的方式请求它所需的数据。因此它会调用数据访问层,例如:
它准确地返回它需要的数据,而不知道存储这些信息的表是什么,或者存在什么关系等等。
|
|
|
3
6
数据访问层遵循“关注点分离”的思想,即业务逻辑与数据层(数据库)交互所需的所有逻辑都被隔离到一组类(层)中。这使您可以更轻松地更改后端物理数据存储技术(例如,从XML文件移动到数据库,或从SQL Server迁移到Oracle或MySQL),而不会对业务逻辑产生很大影响(如果正确操作,则不会产生任何影响)。
|
|
4
6
当应用程序的许多不同部分需要以相同的方式访问数据时,数据访问层非常有意义。 当您需要以多种不同的方式访问相同的数据时,它也很有意义。例如,字处理程序如何读取多种不同的文件类型,并将它们静默地转换为应用程序的内部格式。
|
|
5
4
DAL应该从项目的其余部分抽象出数据库——基本上,除了DAL之外,任何代码中都不应该有SQL,只有DAL应该知道数据库的结构。 其主要目的是使应用程序的其余部分不受数据库更改的影响,并使扩展和支持应用程序更容易,因为您始终知道在哪里修改数据库交互代码。 |
|
|
6
1
|
|
|
7
1
|
|
|
8
1
好处:
|
|
|
9
0
http://msdn.microsoft.com/en-us/practices/default.aspx 使用DAL将帮助您将数据访问与表示和业务逻辑隔离开来。我经常使用它,以便可以轻松地交换(通过反射和动态加载程序集)数据提供程序。
另外,看看 Data Access Block 如果你打算使用.NET。这会是一个很大的帮助。 |
|
|
10
0
我想我应该补充的一点是,使用DAL可以提高系统的安全性。例如,DB和DAL可以在公众无法访问的服务器上运行,而业务逻辑可以在面向公共的服务器上运行,这样公共服务器就不能在DB上运行原始SQL。如果公共服务器遭到破坏,这将有助于减轻许多损害。 |
|
|
slik · iOS数据访问层和数据访问层的神奇记录处理 12 年前 |
|
|
RacerNerd · 如何在DNN 7+中使用DAL2复合密钥? 13 年前 |
|
|
sakir · 为什么我们要在解决方案中添加解决方案文件夹和责任共享测试文件夹 13 年前 |
|
|
ZedBee · 把一个软件分成多个模块,每个模块都有自己的数据库,这样更好吗 13 年前 |