NH的系统架构
2012-05-16 01:34
260 查看
主要内容
1、数据库编程方式的进化
2、NH的系统架构
一、数据库编程方式的进化
在开始介绍NH的系统架构之前,先谈谈我所经历的.net项目组进行数据库编程的方式的变化:
过去:主要是调用存储过程,对于比较简单的数据库操作也可直接编写简单的sql语句。
现在:由于存储过程难以维护,所以建议尽量采取执行sql语句的方式进行数据库操作。同时,为了让大家更加容易的执行sql语句,还总结出了DAAB之类的数据库操作辅助包。
下一步:随着系统的不断增大,之前大量采用sql实现业务逻辑的设计和编码的做法会加大我们项目的维护的难度和成本。而且采取上述方式进行数据库开发的效率非常低,开发人员往往花费大量时间在和数据库打交道,更谈不上thinking in OO。数据库编程转向O/R mapping。
二、NH的系统架构
在继续阅读之前,如果你想先体验一下NH的便利和优雅,可以参考一下我之前发的NHibernate学习手记(1) - 对象的简单CRUD操作。
1、术语解释
1)持久化(persistent)和持久化对象(persitent object):在程序运行时创建的对象,并要求保存到数据库、文件等存储介质中。如订单、人员信息等。
2、NH的持久层功能示意
![](http://images.cnblogs.com/cnblogs_com/chwkai/overview.gif)
Application即任何需要持久化服务(即数据存储)的应用程序。NH的持久化功能是以服务形式提供的,实现应用程序代码和数据库操作之间的解偶。当然,为了能够使用NH,我们必须要进行一些配置工作。
3、NH系统架构简图
![](http://images.cnblogs.com/cnblogs_com/chwkai/lite.gif)
上图传达了NH进行持久化的简单思想。在应用程序(Application)中创建的临时对象(Transient objects),开始是保存在内存中的;接着应用程序和NH进行对话(Session,事先需要先由SessionFactory创建Session),告知NH需要进行的持久化请求;NH根据配置文件把持久化操作转化为相应的数据库操作,调用相应的ADO.Net API执行数据库操作。
4、NH系统架构全景图
下图揭示了NH更多的技术细节,我将在后续的文章中,继续介绍。
1、数据库编程方式的进化
2、NH的系统架构
一、数据库编程方式的进化
在开始介绍NH的系统架构之前,先谈谈我所经历的.net项目组进行数据库编程的方式的变化:
过去:主要是调用存储过程,对于比较简单的数据库操作也可直接编写简单的sql语句。
现在:由于存储过程难以维护,所以建议尽量采取执行sql语句的方式进行数据库操作。同时,为了让大家更加容易的执行sql语句,还总结出了DAAB之类的数据库操作辅助包。
下一步:随着系统的不断增大,之前大量采用sql实现业务逻辑的设计和编码的做法会加大我们项目的维护的难度和成本。而且采取上述方式进行数据库开发的效率非常低,开发人员往往花费大量时间在和数据库打交道,更谈不上thinking in OO。数据库编程转向O/R mapping。
二、NH的系统架构
在继续阅读之前,如果你想先体验一下NH的便利和优雅,可以参考一下我之前发的NHibernate学习手记(1) - 对象的简单CRUD操作。
1、术语解释
1)持久化(persistent)和持久化对象(persitent object):在程序运行时创建的对象,并要求保存到数据库、文件等存储介质中。如订单、人员信息等。
2、NH的持久层功能示意
![](http://images.cnblogs.com/cnblogs_com/chwkai/overview.gif)
Application即任何需要持久化服务(即数据存储)的应用程序。NH的持久化功能是以服务形式提供的,实现应用程序代码和数据库操作之间的解偶。当然,为了能够使用NH,我们必须要进行一些配置工作。
3、NH系统架构简图
![](http://images.cnblogs.com/cnblogs_com/chwkai/lite.gif)
上图传达了NH进行持久化的简单思想。在应用程序(Application)中创建的临时对象(Transient objects),开始是保存在内存中的;接着应用程序和NH进行对话(Session,事先需要先由SessionFactory创建Session),告知NH需要进行的持久化请求;NH根据配置文件把持久化操作转化为相应的数据库操作,调用相应的ADO.Net API执行数据库操作。
4、NH系统架构全景图
下图揭示了NH更多的技术细节,我将在后续的文章中,继续介绍。
![](http://images.cnblogs.com/cnblogs_com/chwkai/full_cream.gif)
相关文章推荐
- NHibernate学习手记(2) - NH的系统架构
- NHibernate学习手记(2) - NH的系统架构
- NHibernate学习手记(2) - NH的系统架构
- NHibernate学习手记(2) - NH的系统架构
- NHibernate学习手记(2) - NH的系统架构
- NHibernate学习手记(2) - NH的系统架构
- Android群英传学习笔记(1)--Android体系与系统架构
- 获取系统架构及位数及NDK自制交叉编译器
- Linux ALSA 系统架构
- 解析大型.NET ERP系统架构设计 Framework+ Application 设计模式
- 大型网站系统架构实践(六)深入探讨web应用集群Session保持
- PetShop的系统架构设计 - 《解剖PetShop》系列之一
- 大型网站架构系列:缓存在分布式系统中的应用(二)
- 系统架构逻辑参考图【强调了领域模型+面向服务编程理念】
- 构建高可扩Web架构和分布式系统实战(下)(转载自CSDN)
- 构建高可扩Web架构和分布式系统实战(下)
- 可伸缩Web架构与分布式系统1
- 系统架构之数据通信与计算机网络
- 知识管理系统中知识分类架构的作用与创建原则
- Linux 文件系统剖析: Linux flash 文件系统剖析 选择和架构