MapWindow是一個(gè)可使用插件架構(gòu)進(jìn)行擴(kuò)展的桌面GIS,它使用了MapWinGIS繪圖控件,并在2015年使用MEF和Dependency Injection等新技術(shù)從零開始創(chuàng)建,使其體積小、功能強(qiáng)大、速度快。
軟件特色
策略
自由和開放源碼軟件(FOSS)對企業(yè)來說擁有眾多令人信服的優(yōu)勢,其中一些優(yōu)勢甚至比軟件的低價(jià)更有價(jià)值。一般來說,開放源碼軟件最接近用戶想要的東西,因?yàn)檫@些用戶可以參與制作。這并不是廠商給用戶提供他們所需要的東西,而是用戶和開發(fā)者創(chuàng)造出了他們想要的東西,并且他們創(chuàng)造出了它。
用戶友好
MapWindow5的目的是要成為現(xiàn)有的最友好的GIS桌面應(yīng)用程序。諸如版本庫和工具箱等功能就是這個(gè)意圖的很好的例子。因?yàn)樗情_源的,所以很容易修改,而且由于自動(dòng)更新器的存在,用戶可以獲得最新的版本。
清晰的代碼
MapWindow5從2015年初開始從頭開始構(gòu)建。MW5使用Visual Studio 2013 Community用C#編寫,并使用了幾種設(shè)計(jì)模式和最佳實(shí)踐,如MVC、MVP、依賴注入、MEF等。多線程和多任務(wù)是核心架構(gòu)的一部分。SOLID原則被應(yīng)用到了整個(gè)代碼中。
靈活性
由于實(shí)現(xiàn)了可擴(kuò)展性管理框架(MEF),通過創(chuàng)建插件或工具箱工具來擴(kuò)展MW5相對容易。一般來說,工具是單一的任務(wù),如緩沖或剪接。而插件則比較復(fù)雜,可以完成多個(gè)任務(wù)和/或有更復(fù)雜的用戶形式。在代碼中,插件和工具的寫法大致相同。