您的位置:首页 > 编程语言 > Java开发

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

2015-07-06 20:32 555 查看

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.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。

Spring.NET的IOC容器所解决的,正是如何在企业应用中将类、对象和服务组合成应用程序的问题。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.NET和NHibernate的混合在同一事务。

5.NHibernate框架简单介绍

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

NHibernate不仅仅管理.NET类到数据库表的映射(包括.NET数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间。NHibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。并请记住NHibernate作为数据库访问层,是与你的程序紧密集成的。不过我个人觉得:NHibernate的性能明显没有纯sql性能好,不过在不太多考虑性能的情况下,它是比较好的选择!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: