.net三層架構的應用之十個模塊


凡是接觸.net開發的,首選要理解的就是三層架構的重要思想。關於三層架構的概述 我就不多說了,相信大家都早已明白。

三層架構(3-tier application) 就是將整個業務應用划分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。

區分層次的目的即為了“高內聚,低耦合”的思想。

1、表現層(UI):通俗講就是展現給用戶的界面,即用戶在使用一個系統的時候他的所見所得。

2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。

3、數據訪問層(DAL):該層是直接操作數據庫的,針對數據的增添、刪除、修改、更新、查找等。

各層關系如下圖所示:

image123

       我進入公司之后,所接觸的項目都是建立在十個模塊的基礎之上。所謂十個模塊 其實就是三層架構的具體應用。

增加了網絡通訊模塊,實現遠程調用。服務端運行着Windows service 來產生數據訪問模塊的對象提供給客戶端請求調用。

這樣處理,使得整個C/S模式中,一旦底層方法發生變動時,只需要更新服務器上相應的dll,而不需要客戶端主機同步更新,

減少了維護成本。

下面說下十個模塊中,每個模塊的作用以及模塊與模塊之間的關系。

  0L模塊:即啟動模塊。用來控制畫面模塊中主畫面的啟動。

              namespace CompanyName.Application.UI。

1U模塊:即畫面UI模塊。創建用戶界面。namespace CompanyName.Application.UI。

2C模塊:即畫面邏輯模塊。處理與畫面相關的邏輯控制,封裝下層方法供UI模塊使用。

             namespace CompanyName.Application.Controller。

3E模塊:即畫面實體類模塊。根據畫面設計相應的實體類或者枚舉類型。

           namespace CompanyName.Application.Entity。

4A模塊:即業務邏輯模塊。業務邏輯的處理,以及上下模塊之間數據的轉換。屬於中間模塊。

           namespace CompanyName.Application.Access。

5G模塊:即網絡模塊,也稱遠程調用模塊。獲取遠程服務器上的對象,進行遠程調用。

           namespace CompanyName.Application.Remoting.Mediation。

6O模塊:即接口模塊。定義接口,用來規范數據訪問層的方法設計。可以對子類進行封箱和拆箱,也便於網絡傳輸。

          namespace CompanyName.Application.Remoting.Interface。

7D模塊:即數據庫實體類。這一模塊所定義的類,是完全按照數據庫中表結構來定義屬性的。與3E模塊不同在於,

            3E模塊類中具有一些類方法,比如Clone();Compare();Equals();等。而D模塊則除了get {}set{} 方法之外的額外方法。

          namespace CompanyName.Application.Remoting.ParamData。

8P模塊:即數據庫邏輯模塊。繼承O模塊接口,封裝R模塊方法。處理一些數據序列化轉換。

          namespace ThreeHigh.Application.Remoting.Bussiness。

9R模塊:即數據庫訪問模塊。直接訪問數據庫,針對數據的增添、刪除、修改、更新、查找等。

         namespace CompanyName.Application.Remoting.DAO。

具體項目中一本程序的框架如下圖所示。

image

   順便強調下各個模塊之間的引用關系:

    L—>U 即L模塊參照引用U模塊程序集。以下相似。

  U—>2C 3E.

  C—>3E 4A.

  E—>不參照其他模塊。

  A—>3E 5G 6O 7D.

  G—>6O.

  O 和D 不參照其他模塊。

  P—>6O 7D 9R.

  R—>7D.

   因為公司的程序都是與公司的數據庫有關的,而且有調用了很多共通的類與方法,沒辦法單獨運行,所以程序源代碼就不再上傳了。

我覺得關鍵的技術主要在遠程調用對象和服務器生成對象。下一篇文章 我將會重點闡述,G層以及服務器端Service的工作原理。

   由於這是本人第一次發表文章,不足之處,還望大家多指正,多批評。


免責聲明!

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



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