C#.NET快速開發平台三層體系架構詳解


本文作者:C/S框架網, *** 原創文檔 *** 轉載請注明出處!
適用版本:CSFramework 高級版3.x、企業版4.x、旗艦版5.x
C/S系統開發框架-旗艦版 v5.0 (Ultimate Edition)

 三層邏輯架構 (3-Tier Logic Architecture)


C/S系統快速開發平台采用三層邏輯架構(3-Tier Architecture),由界面層(UI-User Interface Layer)、業務邏輯層(BLL-Business Logic Layer),數據訪問層(DAL-Data Access Layer)三層組成。在軟件體系架構設計中,分層次是最常見也是最重要的一種設計思路,目的是實現“高內聚,低耦合”設計思想。 

以下是三層邏輯架構圖: 

C/S框架三層邏輯架構 

所謂三層邏輯架構,是在客戶端與數據庫之間加入一個“中間層”,介於界面層與數據層中間部分的邏輯處理。通常用於處理界面的數據,如數據采集、數據合法性檢驗、基本數據運算,或界面組件生成、組件狀態管理等。基於處理過程封裝而成的中間層稱為業務邏輯層(BLL - Business Logic Layer),業務邏輯層沒有嚴格定義和規范,采用三層結構設計符合高內聚,低耦合設計理念,也是研發軟件產品最常見的設計方式一。 

三層邏輯架構不是指物理上的三層,比如三台聯網的機器不是三層邏輯結構或三層體系架構,或者支持B/S應用的才是三層體系結構,所以定義和概念要區分清楚。三層是指邏輯上的三層,即把這三個邏輯層封裝在一個軟件項目內,是一個整體,缺一不可。三層體系的應用程序將業務規則、數據訪問、合法性校驗等工作放到了中間層處理,通常情況下,客戶端不直接與數據庫進行交互,而是通過中間層與數據庫進行交互。 

 C/S系統開發框架基於三層架構的擴展應用



C/S框架三層邏輯架構 

C/S系統開發框架基於標准三層架構擴展連接策略層(后台連接策略)共四層邏輯,支持以下兩種連接模式: 

1.直連模式(ADO-Direct) 

直連模式是指標准三層架構的數據傳遞方式,業務邏輯層與數據訪問層封裝在同一個軟件架構內,具有高內聚,低耦合的設計特征,數據流向:UI->BLL->DAL->Database,通常適用於局域網或直接訪問數據庫的軟件系統。 

2.WCF連接模式 

WCF連接模式是指客戶端跨地區、分布式遠程訪問WCF服務器,業務邏輯層通過調用遠程WCF服務器提供的接口間接調用數據訪問層,數據流向: UI->BLL->WCF->DAL->Database。介於業務邏輯層與數據訪問層的“中間層“稱為WCF層。 采用WCF連接模式的軟件系統是真正意義的C/S系統,分為客戶端-Client與服務端-Server,客戶端封裝界面層以及業務邏輯層,服務端封裝WCF層以及數據訪問層。可通過配套的SQLConnector.exe工具配置兩種連接模式。 

 C/S系統快速開發框架體系架構圖


C/S框架網|C/S系統快速開發框架體系架構圖 

C/S系統快速開發框架繼承標准三層架構設計理念與核心設計思想,集成大量的通用開發包以及工具實用類,並提供豐富的例子,借助技術文檔、網站資源、演示源碼以及在線技術指導,用戶能快速投入研發軟件項目,配套的代碼生成器作為快速開發核心工具,內置向導功能快速生成界面、業務層、數據層、模型以及報表等源代碼,為快速開發能力提供可靠保障。經過十年的產品迭代升級,開發框架技術成熟、性能穩定、產出效率高,先后為2000多位用戶提供技術指導及培訓服務。

下面針對C/S系統快速開發框架體系架構進行詳細闡述: 

  用戶請求:用戶操作界面的功能執行具體的動作,如點擊【查詢】按鈕發起查詢請求。 

  界面層:C/S結構的系統是以WINFORM方式表示,B/S結構是以WEB方式表示,如aspx頁面。若業務邏輯層提供強大的擴展性,無論界面層如何定義和更改,業務邏輯層都能夠提供相應的服務。 

  業務邏輯層: 主要是針對具體業務操作和數據的處理,如果說數據層是積木,那業務層就是對這些積木要搭建何種效果,要制定哪些過程和方法,在搭建過程相應的數據處理。業務邏輯層作為三層結構的“中間層”,通常用於處理界面的數據,如數據采集、數據合法性檢驗、基本數據運算等,或界面組件生成、組件狀態管理,或制定處理業務需求流程和方法等。 

  數據訪問層: 主要是針對數據庫的操作,或者針對用於數據存儲的文件操作,而不是處理數據本身。數據訪問層為業務邏輯層或界面層提供數據服務。 

  WCF層(服務端連接策略): C/S系統開發框架支持兩種連接訪問后台數據的方式: ADO-Direct直連模式以及WCF連接模式。 這兩種方式分別是兩種行為不同的算法,通過策略模式(Strategy Pattern)實現多個不同的行為或算法。 策略模式的定義:一個類的行為或其算法可以在運行時更改,這種類型的設計模式屬於行為型模式。策略模式定義了算法家族,分別封裝起來,讓它們之間可以互相替換,算法的變化不會影響到使用算法的用戶。 

策略模式UML圖。 

C/S框架網|策略模式UML圖。 

C/S框架網|S系統開發框架策略模式應用UML。C/S系統開發框架策略模式應用-客戶管理。 

C/S框架網|策略模式UML圖。 

實現原理: 客戶管理的業務邏輯層BLL(bllCustomer) 定義了策略接口IBridge_Customer的變量_MyBridge。 在實例化BLL時,同時根據用戶配置的參數選擇實例化一個策略接口_MyBridge。假設用戶發起查詢請求,界面層調用BLL.SearchBy方法,而BLL.SearchBy方法調用策略接口_MyBridge.SearchBy方法,因此業務邏輯層並不關心具體的算法與實現,而是與策略接口形成高內聚協作方式,通過策略接口設計模式有效將應用場景與具體算法解耦,這種機制使程序框架設計更靈活更具有擴展性。 

C/S框架網|S系統開發框架策略模式應用UML。直連模式: 直連模式是指標准三層架構,通常適用於局域網或直接訪問數據庫的軟件系統,詳情參考上文,不再贅述。 

C/S框架網|S系統開發框架策略模式應用UML。WCF層: WCF層包含兩個邏輯層:分別是【WCF客戶端透明代理】以及【WCF服務器】。 

WCF兩個邏輯層:WCF客戶端透明代理,WCF服務器 

WCF架構通信流程圖 (WCF Communication Flow) 

C/S框架網|WCF架構通信流程圖 (WCF Communication Flow) 


 ORM模型


ORM,既對象關系映射(Object Relational Mapping,簡稱ORM,或O/RM,或O/R Mapping),是一種編程技術,用於實現面向對象編程語言里不同類型系統的數據之間的轉換。從效果上說,它其實是創建了一個可在編程語言里使用的“虛擬對象數據庫”。ORM相當於中繼數據,具體到產品上,例如ADO.NET Entity Framework。DLINQ中實體類的屬性(Table)就算是一種中繼數據。 C/S系統快速開發平台的ORM表現方式是將數據表結構映射為靜態類或實體類,主要作用是給SQL命令生成器自動生成三種DbCommand組件,分別是InsertCommand,UpdateCommand,DeleteCommand。 

 SQL命令生成器(數據自動更新模型)



C/S框架網|SQL命令生成器(數據自動更新模型)

SQL命令生成器主要職責是構建三個DbCommand組件,用於實現后台數據自動更新。 實現原理:使用.NET反射機制,分析ORM類的屬性定義的特性(Attribute),讀取屬性名稱(字段名稱)、屬性類型、長度等信息,自動組合成SQL腳本並創建DbCommand組件,最后交給DbDataAdapter適配器更新數據,總體而言,C/S系統快速開發平台是借助ADO.NET強大的數據庫組件實現后台數據自動更新的。 

 多數據庫底層驅動



C/S框架網|多數據庫底層驅動 

開發框架為用戶提供多種數據庫支持,目前已封裝三種底層數據驅動,支持SqlServer、Oracle、MySql三種常用數據庫。Multi-DB架構采用策略模式設計,定義IDatabase通用接口,並實現DatabaseMSSQL, DatabaseMySql,DatabaseOracle三個數據庫操作類。引用的類庫名稱:CSframework.DB.dll。 

 Windows 服務承載的WCF服務器



C/S框架網|Windows 服務承載的WCF服務器

C/S框架網|Windows 服務承載的WCF服務器 

WCF服務器通過Windows服務承載,是目前部署WCF服務最為流行的承載方式之一,具有容易部署,易於維護等特點。注冊成為Windows服務的WCF服務是承載在應用程序域中,服務進程的生命周期由 Windows服務控制管理器 (SCM) 控制。此類型的宿主環境要求應用程序編寫某些宿主代碼,實現方式是從ServiceBase 類以及從 WCF 服務協定接口繼承,實現成為 Windows 服務和 WCF 服務,然后創建 ServiceHost服務宿主,重寫 OnStart() 方法啟動WCF服務,重寫的 OnStop() 方法關閉WCF服務。 最后實現從 Installer 繼承的安裝程序類,該安裝程序允許 Installutil.exe 工具將程序安裝為 Windows 服務。由Windows 服務宿主托管WCF方案是承載於 IIS 之外、長時間運行的 WCF 服務非常可靠的方案, 服務的生存期由操作系統控制, 運行過程中進程和AppDomain不會被回收,除非用戶手動關閉服務。 

Windows服務宿主承載WCF具有以下優點: 

(1)、承載在IIS外、長時間運行的WCF服務
(2)、所有Windows版本支持
(3)、由操作系統控制服務進程的生存周期

Windows服務支持的傳輸協議:

(1)、HTTP
(2)、net.tcp
(3)、net.pipe
(4)、net.msmq


 IIS服務器宿主承載WCF服務


C/S框架網|IIS服務器宿主承載WCF服務 

在 IIS 上的 Web 服務開發長期以來一直是 ASP.NET 的領地。ASP.NET 1.0 發布后,Web 服務框架成為它的一部分。Microsoft 利用 ASP.NET HTTP 管道使 Web 服務在 Windows 平台上成為現實。遺憾的是,ASP.NET 和 Web 服務之間的這種緊密耦合在面向服務的世界中產生了幾個限制,對 HTTP 的依賴性是主要原因。在不同宿主上運行 ASP.NET HTTP 管道很困難,因此很少采用這種方案。 WCF 服務采用了完全不同的途徑來實現面向服務。WCF 的統一編程模型基於嚴格分層的模型,以分解面向 Web 的范例,並使服務模型和通道層與受支持的傳輸方式斷開連接。此模型允許 WCF 支持幾個不同的宿主,其中 IIS 是最重要的。 

 WebApi服務器


WebApi服務器是服務端軟件快速開發框架,借助ASP.NET WebAPI底層架構的強大編程能力,封裝成為可復用的以及可定制開發的服務端軟件模板,提供通用的軟件功能,為用戶快速輕松構建基於HTTP協議以及支持多種客戶端的服務端程序,如:APP、B/S、C/S、各種跨平台移動終端等。 C/S系統開發開發框架基於后台連接策略的可擴展性,通過BLL層連接WebApi服務器,該機制規范數據交互格式以字符串形式傳輸,如JOSN, XML或標准字符串等。實現思路是前端或后端統一數據格式標准,若采用JSON格式,在調用WebApi接口前,首先將請求數據轉換成為JSON格式,后端接受到請求,將JSON數據還原,最后提交到數據庫。 

參考:  WebApi開發框架C/S Framework WebApi V1.0 (標准版) 

 代碼生成器


代碼生成器作為C/S系統開發框架核心配套工具,該系統可以自動生成基於開發框架項目的三層架構代碼和工程模塊,生成器根據事先定義的物理表字段信息自動生成對應的組件,如:文本輸入框、數據表格及界面,自動實現了數據操作的基礎功能,如:添加、修改、刪除、查詢、數據合法性檢查、ORM、BLL、DAL、Form等源碼。將源碼集成到解決方案,調試編譯后即可運行。代碼生成器使程序員避免大量機械式編程工作和重復勞動,將主要精力集中在核心業務邏輯開發。 

參考:  C/S系統開發框架-旗艦版代碼生成器 

 數據庫連接工具 (SQLConnector.exe)


C/S框架網|數據庫連接工具 (SQLConnector.exe) 

作為C/S系統快速開發平台配套工具之一,用於建立系統的初始連接以及配置后台連接模式。該工具支持SqlServer/Oracle/MySql三種數據庫類型。用戶使用開發框架之前,首先要配置連接CSFrameworkXX_System系統數據庫,目的是建立初始連接,讀取業務賬套數據庫的配置信息(tb_DataSet表),方便用戶在系統登陸界面選擇登陸賬套。 

 版本自動升級程序 (AutoUpgrader.exe)


C/S 系統版本自動升級軟件V1.0 作為C/S系統快速開發平台配套工具之一,用於客戶端自動升級程序版本。升級程序能夠獨立運行,也可以通過主程序調用。當用戶啟動升級程序,系統自動匹配客戶端版本信息與服務器上的版本信息,通過比較版本號碼,若服務器的版本高於客戶端,則提示用戶更新軟件。 

產品特點: 

1.以升級包方式自動升級,
2.可發布執行命令或獨立程序的升級包,
3.升級包管理和維護,
4.升級程序獨立部署。 

 C/S系統快速開發平台采用ADO-Direct模式模擬數據提交流程


C/S系統快速開發平台采用ADO-Direct模式模擬數據提交流程

1. 用戶請求:用戶點擊【保存】按鈕發起請求。
2. 完成數據采集、數據驗證等邏輯處理, 調用業務邏輯層的Update方法。
3. BLL層通過三層直連模式直接調用數據訪問層的Update方法。
4. 在DAL層,數據自動更新程序分析ORM模型,通過SQLGenerator命令生成器構建三種DbCommand對象, 分別是Command, UpdateCommand以及DeleteCommand。
5. 將3個DbCommand對象分配給DbDataAdapter適配器,最后調用適配器的Update方法提交數據。
6. 返回True/False信息。 


 C/S系統快速開發平台采用WCF模式模擬完整請求的流程:


C/S系統快速開發平台采用WCF模式模擬完整請求的流程

1. 用戶請求:用戶點擊【保存】按鈕發起請求。 
2. 完成數據采集、數據驗證等邏輯處理, 調用業務邏輯層的Update方法。 
3. BLL層構造器實例化策略接口(WCF客戶端代理類,如WCF_XXX),調用_MyBridge接口的Update方法。 
4. 通過WCF客戶端代理類創建WCF透明代理實例,調用代理實例的Update方法,將請求轉發到后台服務器。 
5. WCF服務器接受到請求,完成安全相關驗證,調用數據訪問層的Update方法正式提交數據。 
6. 在DAL層,數據自動更新程序分析ORM模型,通過SQLGenerator命令生成器構建三種DbCommand對象, 分別是SelectCommand, UpdateCommand以及DeleteCommand。 
7. 將3個DbCommand對象分配給DbDataAdapter適配器,最后調用適配器的Update方法提交數據。 
8. 返回True/False信息。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM