『Spring.NET+NHibernate+泛型』概述、知识准备及介绍(一)

来源:互联网 发布:最小生成树算法 编辑:程序博客网 时间:2024/06/01 08:19

1. 概述

        一个月前,应部门经理要求,搭建了Spring.NET+NHibernate的一个数据查询系统。之前没用过这两个框架,也算是先学现买,在做完设计之后花了一周搭建成功了。其中,还加上了我的一些改进思想,把DAO和BLL之中相似且常用的增删改查通过泛型T抽象到了DAO和BLL的父类中,其DAO和BLL子类只需继承父类就拥有了这些方法。和之前的一个数据库表(视图)对应一个实体,一个实体对应一个DAO和一个BLL,而每一个DAO和BLL都是相似的增删改查相比,减少了大量代码量。现在就对这些知识做一个总结,方便自己学习,同时把自己的所思所悟分享给大家,不足知足望大家指点迷津!

 

2. 知识准备

        温馨提示,学习本系列知识,须至少具备如下知识。否则请移步,熟悉下列知识之后再回来学习:

        1.C#基础扎实,熟悉泛型、反射、linq(最好有所了解)、ADO.NET

        2.熟悉XML

        3.对控制反转(IOC)、依赖注入(DI),Spring.net等理论知识有所了解,可以参考如下博文:

          Spring.NET学习笔记:http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_Index.html

          SPRING.NET 1.3.2学习:http://blog.csdn.net/lee576/article/category/1353489/2

        4.对Nhibernate理论知识有所了解,参考资料

         NHibernate之旅:http://www.cnblogs.com/lyj/archive/2008/10/10/1308267.html

         Nhibernate从入门到精通:http://www.cnblogs.com/GoodHelper/archive/2011/02/14/nhiberante_01.html

        5.Spring.NET+Nhibernate参考资料:

         Spring.NET学习笔记18——整合NHibernate(基础篇)Level 300:http://www.cnblogs.com/GoodHelper/archive/2009/11/18/SpringNet_NHibernate.html

         Spring.NET 1.3.2 集成 NHibernate 3.2:http://www.cnblogs.com/haogj/archive/2012/07/28/nhibernate.html

 

3.项目介绍

         本项目后端采用Spring.NET2.0+Nhibernate4.0的经典三层架构,web端采用的是ASP.NET(本来打算用MVC,考虑到项目组成员对web开发不熟),项目结构如下:

          

          说明:

          Model:实体层,在NHibernate中也叫持久层

          IDAO:数据库访问层接口

          NHibernateDAO:实现IDAO,NHibernate框架实现数据库访问层

          IBLL:业务逻辑接口层

          BLL:业务逻辑层

          Common:工具类库层

          WebUI:表现层,ASP.NET,采用了BootStrap框架。这一层不是本次学习的重点

 

4.Spring.NET简单介绍

          Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NETJava版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。

         Spring.NETIOC容器所解决的,正是如何在企业应用中将类、对象和服务组合成应用程序的问题。IOC容器通过很正统(按:formalized,言下之意是这些方式都是已经定型了的、经过了业界多年考验的)的方式将分散的组件组合成完整的应用程序。Spring.NET框架所采用的,都是被业界无数应用程序考验多年的、已经被定型为设计模式的最佳编程方式,实际上,这些模式已经成为我们架构和开发时的法典,而通过Spring.NET,我们可以直接将它们整合到自己的应用程序中。目前已有很多组织和机构用Spring框架开发出了强壮的、维护性好的应用程序,这确实是一件非常好的事情。

         

         Spring.NET框架包含了许多功能方面,它们都进入如下图所示的模块组织。下图显示了Spring.NET各核心模块:

Spring.Core作为整个框架的基础, ,实现了依赖注入的功能。

Spring.AOP为业务对象提供面向方面编程(AOP)的支持。

Spring.Data定义了一个抽象的数据访问层,可以跨越各种数据访问技术(从ADO.NET到各种ORM)进行数据访问。

Spring.Data.NHibernate使用此模块集成到Spring的声明式事务管理功能NHibernate的能容易地操作ADO.NETNHibernate的混合在同一事务。


 5.NHibernate框架简单介绍

         NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象关系映射(O/R MappingObject Relational Mapping)表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。

         NHibernate不仅仅管理.NET类到数据库表的映射(包括.NET数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQLADO.NET处理数据的时间。NHibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。并请记住NHibernate作为数据库访问层,是与你的程序紧密集成的。不过我个人觉得:NHibernate的性能明显没有纯sql性能好,不过在不太多考虑性能的情况下,它是比较好的选择!

 

 

       

 

 

         

 

       

 

 

 

  

 

 

 

0 0