天天看點

使用IsLine FrameWork開發ASP.NET程式之一——命名空間與契約概覽

  早就有想法寫一個通用的底層架構了,畢竟平時的工作很多,使用第三方架構對項目适應度不會很滿意,是以還不如自己抽時間寫一套自己用着舒服的架構,于是花了幾個月的時間完成了這個項目的開發,現在介紹給大家,相信這套架構一定會适合實際工作中的需要,并對開發效率有所提升。本系列的文章将分8部分為大家介紹一下這個項目和這些庫檔案的使用。

    本系列文章要介紹的架構名字叫做IsLine FrameWork,你可以叫他“愛因斯坦”。它不是行業業務架構,但可以作為程式員開發項目的套件,使用這套底層套件開發系統,可以簡化代碼,提高代碼品質。IsLine FrameWork主要包括DataProvider、AppLogProvider、ExceptionProcessProvider、HttpContentProvider、IsLineFrameWork、SecurityProvider、TaskQueueProvider 7個子產品,共18個命名空間,分别管理着這些Provider的主要方法以及各種類庫、接口。

表 1.1 命名空間名稱清單

IsLine.AppLog.DataTypeEnum

IsLine.AppLog.Configuration

IsLine.AppLog.AppLogProvider

IsLine.Data.DataTypeEnum

IsLine.Data

IsLine.Data.ContainerDefiner

IsLine.Data.DataProvider

IsLine.Data.Configuration

IsLine.Security.Cryptography

IsLine.Security.BaseFunction

IsLine.ExceptionProcess.DataTypeEnum

IsLine.ExceptionProcess.ExceptionProcessProvider

IsLine.ExceptionProcess.Configuration

IsLine.HttpContent.HCDataTypeEnum

IsLine.HttpContent.HttpContentProvider

IsLine.ILDateTime

IsLine.Message.Mail

IsLine.Provider.DataProvider

     IsLine FrameWork 的所有對外表現都是以Provider形式展現的,每一個Provider分為功能、枚舉以及配置,每一個Provider都是遵從這個契約開發的,同時這也是命名空間的劃分規則。

         “功能”命名空間表示該Provider的主體完成任務,“功能”命名空間會包括接口、抽象類以及對這些抽象元素的實作,它是Provider的主體部分。

“枚舉”命名空間表示Provider中所有用到的需要與使用者互動的資料類型。

“配置”命名空間表示Provider需要配置檔案支援的資訊部分,Provider運作前,系統會自動加載相應的配置檔案,并加載相關節點,将這些節點内的資訊提供給“功能”子產品進行處理。

    現在先來簡單說說各個Provider的作用。

   1.DataProvider

   與其他架構一樣,DataProvider為項目提供了與資料庫互動的能力,它的優點在這裡不再闡述,這裡隻說一下它與其他架構的資料通路層不同的地方。

DataProvider同時相容SQL SERVER與ORACLE兩種資料庫,并開放IDBOperater接口,使用者隻要實作IDBOperater接口工廠,就可以為DataProvider提供執行個體,進而實作使用第三種資料庫,而無須修改資料庫調用關鍵字。除此之外,DataProvider提供了靜态通路與執行個體通路兩種方式,針對不同的ADO.NET容器,使用者可以選擇不同的方式,而且提供統一的Dispose()方法,使用者隻需一次調用,即可關閉所有的Reader;而靜态調用則不需對其做任何資源釋放操作。靜态通路與執行個體化通路是根據面向連接配接與非連接配接的工作方式區分的。

   DataProvider還為使用者提供了RecordProvider,通過它,使用者可以友善 操作.config檔案、文本檔案、xml檔案等。

   DataProvider附帶了資料容器選項:ContainerDefiner.cs,利用這個類的執行個體,使用者可以直接調用各種ADO對象,并且容器對一些較大的資料對象進行緩存、壓縮等優化,這些優化在存儲時遵循“空間換時間”原則,在傳輸時遵循 “時間換空間”原則,前台業務性能會得到本質的提升!

   2.<b>AppLogProvider</b>

   AppLogProvider為使用者提供了強大的日志記錄功能,使用者可以為程式中的每個“日志執行個體”提供單獨的配置,每種配置有可以有不同的“Render”,每種Render代表可以使用不同的“Appender”,由Appender決定日志執行個體的重要等級、記錄媒體、記錄格式、布局等屬性。這一切使用者可以通過配置完成,不許更改任何代碼。換句話說,如果你原來的系統日志全都記錄在文本檔案中,現在希望将日志記錄至SQL或ORACLE資料庫,那麼你唯一要做的事情就是更改配置,如果你非要把日志輸出至電視機,那麼你需要實作AppLogProvider派發的IappLogProvider接口即可實作。

如果你用過Log4Net,那麼AppLogProvider你一定會很熟悉,隻是AppLogProvider提供了更加靈活的配置方式。

   3.<b>ExceptionProcessProvider</b>

   ExceptionProcessProvider為使用者提供異常控制功能,它主要分為異常記錄與異常顯示兩個子產品。

異常記錄子產品是基于AppLogProvider的,使用者可以通過傳遞Exception執行個體達到記錄異常的目的;同時ExceptionProcessProvider支援使用者自定義異常模型,這個模型可以與整個軟體模型一起建立,通過實體異常模型(須繼承自Exception)處理事件,并實作ExceptionProcessProvider派發的接口,進而實作異常記錄的功能。異常顯示子產品是指異常發生時,對使用者展示的通知資訊,這些通知的形式在ExceptionProcessProvider被分為10種,使用者僅通過配置就可以實作在這10種Style之間切換。

   4.<b>HttpContentProvider</b>

   HttpContentProvider為使用者提供了Cookie、Session、Cache的通路方法,使用者通過配置檔案,就可以控制這些狀态量的屬性,例如Cookie作用域、滑動時間,Cache的依賴方式(僅SQL SERVER)等。使用者通過這些方法,可以友善建立、查詢、删除、更新這些狀态量。

   5.<b>IsLineFrameWork</b>

   IsLineFrameWork是整體IsLine架構的核心,在架構被加載之前,IsLine.dll會對整個架構進行配置,完成定制任務。

   6.<b>SecurityProvider</b>

   SecurityProvider為使用者提供了加密與解密、強加密與解密的方法。這些加密措施為加密配置檔案中的密碼提供依據。

   7.<b>TaskQueueProvider</b>

   TaskQueueProvider是一個服務隊列,使用者可以用它來注冊已有的服務,TaskQueueProvider将根據服務節點元素,傳回執行個體供使用者使用,進而搭建企業應用的“場”模型。

本文轉自Aicken(李鳴)部落格園部落格,原文連結:http://www.cnblogs.com/isline/archive/2010/04/22/1717851.html,如需轉載請自行聯系原作者