我正在从头开始设计一个系统。 我正在考虑:
基本架构是客户端 - >应用程序BackEnd - > DAL - > DB
答案 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在开始请求中打开并关闭到结束请求中。有时它也是由交易完成的。