初识OSGI.NET插件框架
?OSGI全稱為Open Service Gateway Initiative,OSGI是一個開放服務規(guī)范,基于該平臺可以使得很多人來共同使用和協(xié)作。
?
????基于OSGI.NET的插件框架提供了模塊化與插件化、面向服務架構和模塊擴展三大功能,適用于控制臺
WinForm、Windows服務、WPF、ASP.NET和移動平臺等任意.NET應用環(huán)境。
?
1、框架圖
? ? ?
? ? ??主程序是入口,應用插件是實現(xiàn)各不同功能的模塊。
2、OSGI.NET解決的問題
(1)解決軟件復用問題。插件具有熱插拔、物理隔和動態(tài)特性,可以隨時停用,開啟等都不影響其他的東西,完全重用。
(3)解決可維護性問題。組件互相隔離,其依賴通過可管理的服務來實現(xiàn),依賴力度小。不同組件可以有不透光版本,可以獨立開發(fā),部署和測試。不會影響其他組件。
(4)快速響應市場變化
(5)易管理、易部署、易更新。
(6)開放性。可以通過服務向開發(fā)者提供API,通過擴展點向開發(fā)者提供功能擴展,并且構建私有的插件倉庫。
?
3、插件框架結構
???????
? ?
? ? ?插件化最直接的好處就是可以以模塊化的方式來獨立并行構建軟件系統(tǒng),在構建的過程中可以隨時進行集成。
? ??在.net平臺,程序是由程序集構成的。程序集是我們開發(fā)的一個各類,一般情況下我們開發(fā)的程序中,它們都存在應用程序的bin的目錄下。但是在插件框架的開發(fā)方式下,它把程序集按一定的機構進行組織,不同功能的的程序集則組織到Plugins目錄下,而bin目錄下則放幾個通用的程序集。
?
? (1)Plugins目錄下,會按照插件分組,每一個目錄都是一個插件,每一個插件實現(xiàn)一組功能。
? ?如下:
? ??
? ?(2)而且打開每一個插件的目錄,下面都是很完整的,XML,web.config,還有自己的bin目錄,這樣擴展性是不是就很強大了,高內聚,低耦合。
? ??? ??
? ?(3)bin文件夾是其自己的程序集。
?
這樣實現(xiàn)插件化方式開發(fā)時,需要依賴于框架從各不同插件文件夾中加載程序集。
?
4、OSGI.NET插件框架的優(yōu)點
(1)開放、規(guī)范、統(tǒng)一:符合規(guī)范的模塊均可被OSGi.NET插件框架加載。
?(2)快速集成:將模塊放在插件模塊即實現(xiàn)功能集成。
(3)高度可重用:僅通過拷貝即可實現(xiàn)重用,無需修改任何代碼。
(4)熱插拔與動態(tài):每一個模塊都可被動態(tài)安裝、啟動、停止和卸載。
(5)標準模塊化與模塊物理隔離:模塊具有統(tǒng)一規(guī)范且互相獨立。
(6)面向服務編程支持:提供基于面向服務架構編程模型以支持模塊通訊。
(7)動態(tài)可擴展:通過暴露擴展點實現(xiàn)動態(tài)擴展。
(8)多環(huán)境支持:支持各種.NET應用環(huán)境。
總結
?
??? OSGI.NET框架目前是最簡單,最強大,最通用且最易移植的框架,并構建符合現(xiàn)代復雜大規(guī)模軟件的開發(fā)方法——基于軟件生產線的組裝式開發(fā)。
?
????????插件框架的這種思想很好,可擴展性,隔離性,可移植性,易用性,動態(tài)性都很好,我需要用哪個插件,哪個功能,只需要把插件扔進去就能實現(xiàn)想要的效果。這樣只要有一個框架,組裝一下系統(tǒng)就能用,想起來就很強大。而且如果是開發(fā)各插件,它們之間互不干擾。
總結
以上是生活随笔為你收集整理的初识OSGI.NET插件框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven:Maven 入门
- 下一篇: 构件图(Component Diagra