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