基於.NET MVC的高性能IOC插件化架構(一)


最近閑下來,整理了下最近寫的代碼,先寫寫架構,后面再分享幾個我自己寫的插件

最近經過反復對比,IOC框架選擇了Autofac,原因很簡單,性能出眾,這篇博文是我的各大IOC框架的性能測試:http://www.cnblogs.com/gengzhe/p/4370979.html

我先分析下我的系統架構:

這是整體結構圖,先簡單介紹下:Sun.Core是系統核心,包含了系統必要組件及基礎設施的所有接口及必要拓展類。Sun.Framework是整個系統的基礎設施,提供系統的運行基礎,包括插件支持方面的代碼都在這個項目里進行實現。Sun.Web是網站的入口點。Model是實體類項目。Module是插件。Operate是業務邏輯項目。接下來一個一個介紹,主要介紹插件化架構的實現方式。

上面兩張圖里面是插件化接口的核心代碼,前面的一張圖包含了IOC容器和插件的所有接口,后面一張圖實現了插件接口,並對MVC控制器工廠及視圖引擎類進行了重寫。

這里是存放插件的地方,可以把編譯好的功能插件及單獨的網站項目拷貝到這里面,網站運行的時候能自動檢索里面的插件,並加載。可以把網站所有的功能及網站內容組合成多個插件然后按需加載運行。

我這里寫了兩個插件的例子,上面一個是基於EasyUI的網站后台(插件化了),下面一個是對網站提供緩存的Redis緩存插件,加載插件后,網站的緩存功能就改為Redis了。

這個是插件后台,用戶開發自己的插件的時候可以使用IOC容器獲取Sun.Core定義的功能接口,功能的具體實現由相應的插件來實現

通過這兩個圖可以看到,我們的緩存插件及網站插件都加載成功了。

后面我會繼續為大家講解各部分的具體實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM