新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DOTNET平臺組件配置工具的設計與實現

DOTNET平臺組件配置工具的設計與實現

作者: 時間:2010-07-26 來源:網絡 收藏
反轉控制(IOC)和面向切面編程(AOP)技術作為當前比較流行的技術,其優(yōu)勢已受到廣泛關注,但是這兩項新技術在實際項目上的應用研究卻很落后,而且在.NET這兩項技術沒有形成可以廣泛套用的框架,使得開發(fā)人員在.NET下應用IOC和AOP技術的難度和成本大幅度提高。Castle提供了.NET下開發(fā)IOC和AOP技術的框架,一定程度上解決了開發(fā)人員的難題,但是如何高效地IOC和AOP技術的開發(fā),至今無人提出較好的建議。
本文主要研究Castle框架中的IOC和AOP機制,目標是出一個可視化,IOC和AOP機制中文件的可視化。該經過修改和完善也適用于其他框架中的IOC和AOP文件的生成。
1 Castle框架和相關技術介紹
1.1 Castle框架介紹

 Castle是.NET平臺下的一個系統(tǒng)級框架,它是通過將一些成熟開源應用進行無縫整合而形成的一套完善的系統(tǒng)級應用框架,這其中包括了ActiveRecord、AspectSharp、MonoRail及MicroKernel/Windsor。其中MicroKernel是IOC框架的核心;AspectSharp是AOP的框架。
1.2 IOC技術介紹
反轉控制IOC(Inversion of Control)[1],又稱依賴注入DI(Dependency Injection),是面向對象領域新興的編程思想。簡單地說,IOC就是指由容器來控制程序之間的關系,而非傳統(tǒng)實現中的由程序代碼直接操控。這也就是所謂“反轉控制”的概念所在:控制權由應用代碼轉到外部容器,控制權的轉移,也就是所謂的反轉。
1.3 AOP技術介紹
AOP[2](Aspect Oriented Programming)是OOP的延續(xù),意思是面向切面編程。可以通過預編譯方式和運行期動態(tài)代理實現在不修改源代碼的情況下給程序動態(tài)統(tǒng)一添加功能的一種技術。它可以解決OOP和過程化方法不能夠很好解決的橫切(crosscut)問題,如:事務、安全、日志等橫切關注。當未來系統(tǒng)變得越來越復雜,橫切關注點就成為一個大問題的時候,AOP就可以很輕松地解決橫切關注點的問題。
2 可視化IOC和AOP配置思路
 可視化IOC和AOP配置工具是一個在.NET平臺下開發(fā)的WinForm程序,這個工具的主要作用就是在IOC或者AOP都開發(fā)好的條件下,利用這個工具生成IOC或者AOP的配置文件,方法是讀取現存的IOC或者AOP組件。在工具中進行相應的配置,最后直接生成開發(fā)人員所需的配置文件。
 該工具的主要功能是通過讀入現存的IOC組件或AOP組件,提取并暫存組件中與配置有關的重要信息,以可視化的方式顯示在工具界面中,然后由開發(fā)人員操作該工具完成組件對應的配置文件的生成。這個過程可以劃分為5個階段(如圖1):讀取類文件>分析類文件>顯示配置信息>開發(fā)人員對參數進行配置>生成配置文件。其中前三層是該工具主要實現的功能。因此,該可視化工具的代碼部分分為3個層次來編寫。分別是:讀類文件、分析提取信息、顯示信息。

本文引用地址:http://2s4d.com/article/151717.htm

 第一層主要是完成類文件的讀取,在.NET平臺下使用到了System.IO命名空間中文件操作相關的File類和StreamReader類,最終將整個讀取的文件內容以string類型返回,以供第二層分析文件使用。
 第二層的功能是在第一層的讀取文件內容的基礎上分析并提取關鍵字,即取出配置文件需要的重要信息,例如IOC反轉控制模式主要有設值注入和構造方法注入,設值注入就是對類中的屬性進行注入,而構造方法注入是對構造函數中的參數值進行注入。因此類中的屬性和構造函數的參數就屬于IOC配置文件的重要信息,第二層主要完成對類似的重要信息的識別和分類。在第二層中,完成的識別功能主要有:
(1) 識別類文件的命名空間、類名、接口名
 命名空間、類名、接口名都是組成IOC和AOP配置文件的必備元素。
 在IOC配置文件中,命名空間、類名、接口名常出現在component標簽的service和type屬性值中,而在AOP的配置文件中命名空間出現在Imports關鍵字之后。所以對命名空間、類名、接口名的提取是生成配置文件的必要條件。
(2) 識別類文件中的屬性
 IOC反轉控制模式中的設值注入就是對類中的屬性進行注入,如采用該注入模式系統(tǒng),在IOC配置文件中,需要把類中的屬性作為配置文件的標簽。
(3) 識別類的構造方法中的參數名
 IOC反轉控制模式中的構造注入是對構造函數中的參數值進行注入,如果采用該模式設計系統(tǒng),在IOC的配置文件中,需要把構造方法的參數名作為配置文件中的標簽。
 以上介紹的是第二層所識別的關鍵字的類別。在程序中關鍵字的獲取主要是通過編寫獲取方法來實現。獲取命名空間使用GetNamespace方法;獲取類名使用GetClass方法;獲取接口名使用GetInterface方法;獲取屬性名使用GetProperty方法。實現的思路是在遵循一定規(guī)約的前提下通過屬性在類中的位置特征將其提取出來并且依次保存到一個ArrayList對象中。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉