文章目錄
- IsLine FrameWork Provider介紹
- DataProvider
接上文
IsLine FrameWork Provider介紹
其中IsLine.Data、IsLine.AppLog是我要重點介紹的,不過現在先來簡單說說各個Provider的作用。
DataProvider
與其他架構一樣,DataProvider為項目提供了與資料庫互動的能力,它的優點在這裡不再闡述,這裡只說一下它與其他架構的資料訪問層不同的地方。
DataProvider同時相容SQL SERVER與ORACLE兩種資料庫,並開放IDBOperater介面,使用者只要實現IDBOperater介面工廠,就可以為DataProvider提供執行個體,從而實現使用第三種資料庫,而無須修改資料庫調用關鍵字。除此之外,DataProvider提供了靜態訪問與執行個體訪問兩種方式,針對不同的ADO.NET容器,使用者可以選擇不同的方式,而且提供統一的Dispose()方法,使用者只需一次調用,即可關閉所有的Reader;而靜態調用則不需對其做任何資源釋放操作。靜態訪問與執行個體化訪問是根據連線導向與非串連的工作方式區分的。
DataProvider還為使用者提供了RecordProvider,通過它,使用者可以方便 操作.config檔案、文字檔、xml檔案等。
DataProvider附帶了資料容器選項:ContainerDefiner.cs,利用這個類的執行個體,使用者可以直接調用各種ADO對象,並且容器對一些較大的資料對象進行緩衝、壓縮等最佳化,這些最佳化在儲存時遵循“空間換時間”原則,在傳輸時遵循 “時間換空間”原則,前台業務效能會得到本質的提升!
AppLogProvider
AppLogProvider為使用者提供了強大的日誌記錄功能,使用者可以為程式中的每個“日誌執行個體”提供單獨的配置,每種配置有可以有不同的“Render”,每種Render代表可以使用不同的“Appender”,由Appender決定日誌執行個體的重要等級、記錄介質、記錄格式、布局等屬性。這一切使用者可以通過配置完成,不許更改任何代碼。換句話說,如果你原來的系統日誌全都記錄在文字檔中,現在希望將日誌記錄至SQL或ORACLE資料庫,那麼你唯一要做的事情就是更改配置,如果你非要把日誌輸出至電視機,那麼你需要實現AppLogProvider派發的IappLogProvider介面即可實現。
如果你用過Log4Net,那麼AppLogProvider你一定會很熟悉,只是AppLogProvider提供了更加靈活的配置方式。
ExceptionProcessProvider
ExceptionProcessProvider為使用者提供異常控制功能,它主要分為異常記錄與異常顯示兩個模組。
異常記錄模組是基於AppLogProvider的,使用者可以通過傳遞Exception執行個體達到記錄異常的目的;同時ExceptionProcessProvider支援使用者自訂異常模型,這個模型可以與整個軟體模型一起建立,通過實體異常模型(須繼承自Exception)處理事件,並實現ExceptionProcessProvider派發的介面,從而實現異常記錄的功能。異常顯示模組是指異常發生時,對使用者展示的通知資訊,這些通知的形式在ExceptionProcessProvider被分為10種,使用者僅通過配置就可以實現在這10種Style之間切換。
HttpContentProvider
HttpContentProvider為使用者提供了Cookie、Session、Cache的存取方法,使用者通過設定檔,就可以控制這些狀態量的屬性,例如Cookie範圍、滑動時間,Cache的依賴方式(僅SQL SERVER)等。使用者通過這些方法,可以方便建立、查詢、刪除、更新這些狀態量。
IsLineFrameWork
IsLineFrameWork是整體IsLine架構的核心,在架構被載入之前,IsLine.dll會對整個架構進行配置,完成定製任務。
SecurityProvider
SecurityProvider為使用者提供了加密與解密、強加密與解密的方法。這些加密措施為加密設定檔中的密碼提供依據。
TaskQueueProvider
TaskQueueProvider是一個服務隊列,使用者可以用它來註冊已有的服務,TaskQueueProvider將根據服務節點元素,返回執行個體供使用者使用,從而搭建公司專屬應用程式的“場”模型。(什麼是公司專屬應用程式場?請參考公司專屬應用程式系統(場)構建方案(上)和公司專屬應用程式系統(場)構建方案(下)兩篇文章)
圖3.3 項目組成
這裡重點說明一下DataProvider和AppLogProvider,因為本論文中大量的應用到這兩個Provider。
(未完 待續)
我是李鳴(Aicken) 歡迎您關注我的下一篇文章。