『Spring.NET+NHibernate+泛型』概述、知識準備及介紹(一)

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性能好,不過在不太多考慮性能的情況下,它是比較好的選擇!

 

 

       

 

 

         

 

       

 

 

 

  

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章