具有DAL架构的用户会话

时间:2014-12-26 18:12:22

标签: architecture data-access-layer system-design

我正在从头开始设计一个系统。 我正在考虑:

  1. 是否完全使用DAL与直接数据库访问(例如ORM)
  2. 如果我使用DAL,是否可以通过我的应用程序或DAL直接存储/管理我的用户会话?
  3. 基本架构是客户端 - >应用程序BackEnd - > DAL - > DB

1 个答案:

答案 0 :(得分:0)

您的Data Access Layer可以使用ORM工具(如Hibernate(Java),NHibernate(.Net))来进行数据库访问。没问题。您可以将函数抽象到模型层中并在DAL项目中实现它,用于示例:

public interface ICustomerPersistence
{
   Customer Get(int id);
   bool Save(Customer customer);
}

使用ORM或其他方式实现它来访问数据库(ADO.NET或JDBC)。

使用ORM工具,您的应用程序和数据库之间将有一个内部层。另一方面,ORM工具可以为您和您的团队提供一些生产力持久化对象,而不是编写SQL查询。在这两种情况下,SQL必须是干净的以提供性能。使用ORM工具,您可能需要一个跟踪工具来查看ORM生成的SQL命令。对于NHibernate,有一个NHProf。

对于第二个问题,请依赖您必须如何实施。像Hibernate / NHibernate这样的ORM的大多数实现都是从DAL的上层控制ISession对象。对于示例,作为Web应用程序中的良好实践,ISession在开始请求中打开并关闭到结束请求中。有时它也是由交易完成的。