本站小編為你精心準備了微軟企業(yè)庫組件使用淺析參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
《電腦編程技巧與維護雜志》2015年第六期
1應(yīng)用支撐平臺中的Unity場景
財政應(yīng)用支撐平臺(以下簡稱“平臺”)是為了解決財政信息系統(tǒng)建設(shè)過程中出現(xiàn)的條塊化、碎片化、孤島化等問題而設(shè)計開發(fā)的一整套應(yīng)用系統(tǒng)解決方案。它既是財政業(yè)務(wù)軟件開發(fā)的規(guī)范和基礎(chǔ),又是財政辦公的統(tǒng)一門戶。在平臺架構(gòu)的設(shè)計和實現(xiàn)中,Unity發(fā)揮了不可或缺的作用。
1.1應(yīng)用服務(wù)的配置與使用
平臺采用“客戶端—應(yīng)用服務(wù)器—數(shù)據(jù)庫服務(wù)器”的三層結(jié)構(gòu)。以微軟的托管可擴展框架(ManagedExtensibilityFramework,MEF)實現(xiàn)的“插件式”客戶端,允許業(yè)務(wù)子系統(tǒng)像積木一樣無限擴展,即插即用。各個子系統(tǒng)根據(jù)業(yè)務(wù)需求訪問各自或其他子系統(tǒng)的應(yīng)用服務(wù)器。這就要求平臺能夠支持多個服務(wù)來源的配置。同時,由于子系統(tǒng)的差異性,所使用的服務(wù)協(xié)議也各有不同。為了將應(yīng)用服務(wù)的訪問與客戶端解耦,基于Unity的接口注入和構(gòu)造函數(shù)注入,進行了如下設(shè)計:(1)定義泛型接口IServiceProvider,用以隔離客戶端和服務(wù)協(xié)議具體實現(xiàn)之間的依賴關(guān)系:(2)實現(xiàn)不同的服務(wù)協(xié)議(如WCF或Hessian)提供者:(3)在客戶端App.config中增加Unity配置節(jié),注冊服務(wù)提供者的名稱、實現(xiàn)類和構(gòu)造函數(shù)參數(shù)(即應(yīng)用服務(wù)地址)。(4)客戶端使用Unity的Resolve<T>(stringname)方法向容器請求獲取服務(wù)提供者以執(zhí)行操作(其中的“IoC”是對U-nity的簡單封裝,下同)。
1.2用戶令牌的無縫掛接
為了提高安全性,禁止未經(jīng)授權(quán)的用戶調(diào)用應(yīng)用服務(wù),平臺設(shè)計了用戶令牌來控制訪問。所謂“用戶令牌”就是帶有授權(quán)用戶信息的加密數(shù)據(jù)。在進行每次服務(wù)調(diào)用時,都會對用戶令牌進行校驗。如果缺少用戶令牌或用戶令牌的信息不正確,對應(yīng)用服務(wù)的訪問就會被拒絕。根據(jù)面向方面編程(AspectOrientedPro-gramming,AOP)的設(shè)計思想,用戶令牌應(yīng)當(dāng)與客戶端對應(yīng)用服務(wù)的訪問無關(guān)?;赨nity的方法注入進行了如下設(shè)計:(1)定義用戶令牌的抽象接口IUserToken及其實現(xiàn)類GlobalVariables。(2)客戶端使用Unity的RegisterInstance<T>(Tinstance)方法向容器注冊用戶令牌。(3)在服務(wù)提供者的實現(xiàn)中,使用InjectionMethodAt-tribute指示需要容器注入的方法(實例化對象后執(zhí)行該方法)。
1.3加載非默認的配置文件
Unity默認使用App.config/Web.config作為配置文件。但對于實際應(yīng)用來講,這并不是一個最好的方式。因為App.config/Web.config已經(jīng)被塞入了太多的東西,早已臃腫不堪。修改配置的時候既不清晰,也容易出錯。為此,將Unity配置節(jié)遷移至自定義的XML文件,并重新指定Unity的配置加載方式。
2結(jié)語
作為.NET下的原生IoC框架,Unity不但提供了完備的對象實例創(chuàng)建裝配機制,而且支持開發(fā)需求的抽象化,允許在運行時通過配置文件指定依賴關(guān)系。同時,在河北財政應(yīng)用支撐平臺的壓力測試中,其表現(xiàn)更是異乎尋常的穩(wěn)定,綜合評價遠超等其他流行的IoC框架。微軟企業(yè)庫的Unity已成為河北財政應(yīng)用系統(tǒng)解決方案體系中不可替代的重要組成部分。
作者:李鳳桐衛(wèi)耀偉單位:河北省財政廳信息中心