日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]在研究了DOTNET平臺Castle框架的基礎上設計出了一個反轉控制(IOC)和面向切面編程(AOP)配置文件自動生成的可視化工具,該工具為程序員快速完成應用系統(tǒng)中IOC和AOP配置文件提供了一個很好的平臺,該工具后來還被作成了插件版本。

反轉控制(IOC)和面向切面編程(AOP)技術作為當前比較流行的技術,其優(yōu)勢已受到廣泛關注,但是這兩項新技術在實際項目上的應用研究卻很落后,而且在.NET平臺下實現(xiàn)這兩項技術沒有形成可以廣泛套用的框架,使得開發(fā)人員在.NET平臺下應用IOC和AOP技術的難度和成本大幅度提高。Castle提供了.NET平臺下開發(fā)IOC和AOP技術的框架,一定程度上解決了開發(fā)人員的難題,但是如何高效地實現(xiàn)IOC和AOP技術的開發(fā),至今無人提出較好的建議。
    本文主要研究Castle框架中的IOC和AOP機制,目標是設計出一個可視化工具,實現(xiàn)IOC和AOP機制中配置文件的可視化配置。該工具經(jīng)過修改和完善也適用于其他框架中的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)實現(xiàn)中的由程序代碼直接操控。這也就是所謂“反轉控制”的概念所在:控制權由應用代碼轉到外部容器,控制權的轉移,也就是所謂的反轉。
1.3  AOP技術介紹
    AOP[2](Aspect Oriented Programming)是OOP的延續(xù),意思是面向切面編程。可以通過預編譯方式和運行期動態(tài)代理實現(xiàn)在不修改源代碼的情況下給程序動態(tài)統(tǒng)一添加功能的一種技術。它可以解決OOP和過程化方法不能夠很好解決的橫切(crosscut)問題,如:事務、安全、日志等橫切關注。當未來系統(tǒng)變得越來越復雜,橫切關注點就成為一個大問題的時候,AOP就可以很輕松地解決橫切關注點的問題。
2 可視化IOC和AOP配置工具設計思路
 可視化IOC和AOP配置工具是一個在.NET平臺下開發(fā)的WinForm程序,這個工具的主要作用就是在IOC組件或者AOP組件都開發(fā)好的條件下,利用這個工具生成IOC或者AOP的配置文件,方法是讀取現(xiàn)存的IOC組件或者AOP組件。在工具中進行相應的配置,最后直接生成開發(fā)人員所需的配置文件。
 該工具的主要功能是通過讀入現(xiàn)存的IOC組件或AOP組件,提取并暫存組件中與配置有關的重要信息,以可視化的方式顯示在工具界面中,然后由開發(fā)人員操作該工具完成組件對應的配置文件的生成。這個過程可以劃分為5個階段(如圖1):讀取類文件>分析類文件>顯示配置信息>開發(fā)人員對參數(shù)進行配置>生成配置文件。其中前三層是該工具主要實現(xiàn)的功能。因此,該可視化工具的代碼部分分為3個層次來編寫。分別是:讀類文件、分析提取信息、顯示信息。

 第一層主要是完成類文件的讀取,在.NET平臺下使用到了System.IO命名空間中文件操作相關的File類和StreamReader類,最終將整個讀取的文件內容以string類型返回,以供第二層分析文件使用。
 第二層的功能是在第一層的讀取文件內容的基礎上分析并提取關鍵字,即取出配置文件需要的重要信息,例如IOC反轉控制模式主要有設值注入和構造方法注入,設值注入就是對類中的屬性進行注入,而構造方法注入是對構造函數(shù)中的參數(shù)值進行注入。因此類中的屬性和構造函數(shù)的參數(shù)就屬于IOC配置文件的重要信息,第二層主要完成對類似的重要信息的識別和分類。在第二層中,完成的識別功能主要有:
    (1) 識別類文件的命名空間、類名、接口名
 命名空間、類名、接口名都是組成IOC和AOP配置文件的必備元素。
 在IOC配置文件中,命名空間、類名、接口名常出現(xiàn)在component標簽的service和type屬性值中,而在AOP的配置文件中命名空間出現(xiàn)在Imports關鍵字之后。所以對命名空間、類名、接口名的提取是生成配置文件的必要條件。
    (2) 識別類文件中的屬性
 IOC反轉控制模式中的設值注入就是對類中的屬性進行注入,如采用該注入模式設計系統(tǒng),在IOC配置文件中,需要把類中的屬性作為配置文件的標簽。
    (3) 識別類的構造方法中的參數(shù)名
 IOC反轉控制模式中的構造注入是對構造函數(shù)中的參數(shù)值進行注入,如果采用該模式設計系統(tǒng),在IOC的配置文件中,需要把構造方法的參數(shù)名作為配置文件中的標簽。
 以上介紹的是第二層所識別的關鍵字的類別。在程序中關鍵字的獲取主要是通過編寫獲取方法來實現(xiàn)。獲取命名空間使用GetNamespace方法;獲取類名使用GetClass方法;獲取接口名使用GetInterface方法;獲取屬性名使用GetProperty方法。實現(xiàn)的思路是在遵循一定規(guī)約的前提下通過屬性在類中的位置特征將其提取出來并且依次保存到一個ArrayList對象中。[!--empirenews.page--]
 為了保證該可視化工具識別關鍵字的準確性,程序員在編寫IOC組件時要遵循以下規(guī)約:
    (1) 要求IOC組件類的修飾符為“Public”
    (2) 要求類中的全局變量都聲明為“Private”
    (3) 要求屬性的修飾符為“Public”
    (4) 要求構造方法的修飾符為“Public”
 第三層是頁面層。主要負責頁面可視化設計。頁面層用到了TreeView、Datagrid、TabControl、ContextMenuStrip等控件。TreeView控件以樹形結構展示了當前讀入的組件;Datagrid控件用來展示選中組件的構造方法參數(shù)或屬性,并可以設置其參數(shù)值或屬性值;ContextMenuStrip控件用于控制添加和刪除組件操作;TabControl控件則是其他控件的容器。
 以下,對該層使用到的主要控件及其觸發(fā)事件按照其重要程度依次做介紹:
    (1) TreeView控件
 該控件的內容占第三層代碼的三分之一,主要涉及到的觸發(fā)事件有NodeMouseClick(單擊)、NodeMouseDoubleClick(雙擊)、AfterCheck(復選框被選中)。設計的功能主要有:單擊TreeView控件結點可查看該結點所代表組件的命名空間和類名;雙擊組件可以顯示出該組件的構造方法參數(shù)或屬性信息;選中復選框后可以將該組件標簽添加到IOC配置文件中。
    (2) TabControl控件
 該控件主要用于分欄。在該系統(tǒng)中一共用到了2個TabControl控件,第一個用于左欄即控制欄,該欄一共包含了2個TabPage。這兩個TabPage分別作為IOC組件的控制欄和AOP組件的控制欄。第二個TabControl控件作為顯示欄,共包含了3個TabPage:第一個用來顯示IOC的配置信息;第二個用來顯示AOP的配置信息;第三個用來實時地顯示當前正在配置的XML文件。
    (3) Datagrid控件
 Datagrid主要用于分行顯示讀入的構造方法的參數(shù)名或者類的屬性名。
    (4) ContextMenuStrip控件
 該控件作為快捷菜單出現(xiàn)在單擊TreeView控件某個結點后,它通常包含2個選項:“添加組件”和“刪除所有組件”。主要使用到的觸發(fā)事件就是該控件的單擊事件。
    (5) OpenFileDialog控件
 打開文件對話框控件,在本系統(tǒng)中,用于讀入要配置的組件文件。
    (6) SaveFileDialog控件
 保存文件對話框控件,在本系統(tǒng)中,用于保存配置好的XML文件到指定的位置。
    (7) WebBrowser控件
 Web瀏覽器控件,在本系統(tǒng)中,主要用來實時的顯示當前正在配置的XML文件。
 除了上述設計內容外,還添加了兩個類文件作為頁面層的輔助類。主要負責一些常用的初始化代碼及其輔助性方法代碼,比如配置文件的初始化方法、DataTable的初始化方法、還有DataTable與Arraylist轉換函數(shù)等。
 以上主要介紹了可視化配置工具代碼的三層結構。這三層結構是緊密聯(lián)系的,層與層之間的代碼是調用與被調用的關系。它們共同完成了可視化工具所需的功能。完成的主要功能有:
 (1) 支持IOC中的構造方法注入和設值注入兩種注入方式。
 (2) 可以對IOC的構造方法參數(shù)值或者屬性值進行設置或者修改;支持數(shù)組類型的構造參數(shù)。
 (3) 可以設置或修改組件ID。
 (4) 可以保存上次關閉時的組件及其狀態(tài)信息。
 (5) 支持AOP組件配置:可以在參數(shù)設置欄設置攔截器鍵值、自動識別切面的類型等。
 (6) 可以同時配置AOP和IOC組件。
3 可視化配置工具的實現(xiàn)和應用
 通過三層結構,可視化工具就實現(xiàn)了預計的功能:在IOC和AOP組件存在的前提下,使用該工具可以幫助開發(fā)人員完成配置文件的生成。
3.1 IOC可視化配置工具的實現(xiàn)
 可視化工具的IOC部分的操作方法和操作步驟如下:
 (1)在左欄Component節(jié)點上單擊鼠標右鍵,選擇添加組件,如圖2,即可把組件信息載入進來;如果選擇“刪除所有組件”,就可以把樹型結構中的所有加載的組件刪除,并把IOC配置文件中的該組件標簽的全部信息相應刪除。

 (2)添加完組件后單擊該組件可以查看該組件的命名空間和類名;雙擊組件可以在IOC配置欄中顯示出該組件的構造方法參數(shù)或屬性信息。該工具支持兩種IOC配置模式,即設值注入(屬性注入)和構造方法注入。在遵循一定規(guī)則的前提下可以自動區(qū)分屬性注入或構造方法注入。圖3、圖4展示的是一個設值注入(屬性注入)的實例。


[!--empirenews.page--]3.2 AOP可視化配置工具的實現(xiàn)
    與IOC不同,AOP的配置也需要讀入相應的類文件,根據(jù)AOP的配置特點,要分別讀入攔截器 (Interceptor)、混淆器(Mixin)和切面(Aspect對象),其中Mixin是可選項。
    AOP配置界面中“參數(shù)配置”欄可以對Interceptor、Mixin設置別名,這就如同HashTable中鍵和值的一一對應關系,在使用到某個Interceptor或Mixin時可以用它的別名代替。
    “Aspect配置”欄顯示了當前讀入的攔截器 (Interceptor)、混淆器(Mixin)和切面信息。根據(jù)Castle中AOP的配置原則進行相應配置后點擊“添加該方面”按鈕就可以生成對應的AOP配置文件,同樣可以查看配置結果。
  圖5、圖6展示了AOP配置的過程。


4 可視化工具的插件版本
  可視化配置工具的插件版本是把先前在.NET平臺下做好的Winform程序做成Sharpdevelop的插件。這是為了滿足更多開發(fā)者的需要,Sharpdevelop的靈活和輕巧博得了很多開發(fā)人員的喜愛。
  可視化工具插件版本主要由兩個文件構成,一個是Dll文件,負責整個插件的功能邏輯,這部分代碼與.NET下編寫好的代碼基本一致;另一個是Addin文件,負責該插件在Sharpdevelop開發(fā)工具中出現(xiàn)的位置和名稱等。該插件位置設置為工具菜單下的最后一個選項。名為“組件裝配”。
    圖7展示了在SharpDevelop平臺下打開“組件裝配”插件后的效果。

參考文獻
[1]     羅時灼.精通Spring[M].北京:電子工業(yè)出版社,2005:14-50.
[2]     SHEN Y, CHEN H. Extending SOFL features for AOP  modeling. Engineering of Complex Computer Systems, 2005,5(2):14-15.
[3]     李志純. 面向Aspect編程的應用研究[J].計算機技術與 發(fā)展, 2006,16(5):217-219.
[4]     劉曉華. 精通.NET核心技術原理與構架[M]. 北京:電子工業(yè)出版社,2002,6.
[5]     張立編著.C# 2.0寶典[M].北京:電子工業(yè)出版社,2006.

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

美國紐約州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)發(fā)布 2022 年第三季度業(yè)績報告。 IBM 董事長兼首席執(zhí)行官 Arvind Kri...

關鍵字: IBM 軟件 BSP 云平臺

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產品設計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產品供給。 搭養(yǎng)老政策東風 ...

關鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎單元,承載著生存與活動的最基本功能。而對于理想空間的解構意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關系的思考,同時也塑造著人與空間的新型連接...

關鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構對在華戰(zhàn)略的構想和業(yè)...

關鍵字: 數(shù)字化 BSP 供應鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關鍵字: 溫控 精密儀器 半導體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術企業(yè)云集,展出的智能產品超過140,...

關鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

數(shù)字電源

15504 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉