我必须创建一个应用程序,其中要求我在应用程序中创建一个持久层。该应用程序是用.net编写的。我已经创建了一个业务层和一个表示层,但是我不知道我应该如何以及为什么要创建持久层。
我用谷歌搜索了一下,了解到持久层通常用于存储和检索数据库中的数据。
有人能详细解释一下吗?
发布于 2013-04-15 21:18:57
之所以要在数据库引擎和业务/应用程序逻辑之间构建DAL (数据访问层)或任何其他类型的中间层,是因为通过在数据库引擎和业务/应用程序逻辑之间添加这一层,您可以将应用程序的rest /上层与您当前正在使用的特定数据库引擎/技术隔离开来。
这有几个优点,比如更容易迁移到其他存储引擎,在单个层中更好地封装数据库逻辑(以后更容易替换或修改,取决于您的跨层接口设计得有多好等)。
我的答案在这里,这是一个关于ASP.NET MVC和EF的例子,但是解决方案和项目的结构实际上是独立于技术的:MVC3 and Entity Framework
我还可以阅读一些文章来更好地理解这个问题,例如:http://www.developerfusion.com/article/84492/net-and-data-persistence/
发布于 2013-04-15 21:16:12
持久层,也称为数据访问层或其他术语。
它将获取和保存数据的核心从业务层分离出来。这样做的原因是,您的业务逻辑(应用程序中承担数据操作重任的部分)不会绑定到特定类型的数据源。
数据层需要写入特定于数据库的数据。因此,如果您使用MySQL访问所有数据,那么您需要编写用于该用途的dataLayer。
如果您在某一时刻决定迁移到MongoDB,那么就不需要重写整个应用程序了。您可以只重写数据访问部分,以从MongoDB获取数据。由于业务逻辑并不关心您如何获取数据,只有您这样做,它和表示层才能保持完好。
希望这能有所帮助。
发布于 2013-04-15 21:18:37
如果你没有将你的数据保存在某个地方,当你的应用程序再次打开时,它就不会再出现在那里。您可以按照您所说的将其保存到数据库(SQL、Oracle、PostGRE等),或者直接保存到磁盘(以二进制格式序列化或纯文本等)。
使用一个层来做到这一点是一种很好的做法。它减少了耦合(即意大利面式代码),并使维护变得更容易。
我建议你读一读关于Hibernate的书,它是.NET的表亲NHibernate。
https://stackoverflow.com/questions/16016023
复制相似问题