在ArcGIS系列產品中,ArcGIS Desktop、ArcGIS Engine和ArcGIS Server都是基於核心組件庫ArcObjects搭建的。
所謂ArcObjects,現在一般都是指ArcGIS Desktop版本的組件開發集,即需要安裝ArcGIS桌面版軟件后才能安裝這些組件開發集,它是所有版本中組件最全的版本,如果想對ArcGIS產品及其開發有個詳盡的了解,學習ArcObject是最恰當的。
ArcObjects組件庫包括了所有的類庫,其中包括ArcMap、ArcMapUI、ArcCatalog、ArcCatalogUI等組件庫,這些組件庫必須在安裝了桌面版軟件后才能使用。組件庫有3000多個對象可供開發人員調用,為開發人員集成了大量的GIS功能,可以快速的幫助開發人員進行GIS項目的開發。由於ArcGIS Desktop、ArcGIS Engine和ArcGIS Server三個產品都是基於ArcObjects搭建的應用,那么對於開發人員來說ArcObjects的開發經驗在這三個產品中是通用的。開發人員可以通過ArcObjects來擴展ArcGIS Desktop,定制ArcGIS Engine應用,使用ArcGIS Server實現企業級的GIS應用。ArcGIS可以在多種編程環境中進行開發,其中包括:C++、支持COM的編程語言、.NET、Java等
ArcObjects二次開發
(1)ArcGIS Desktop SDK(Software Development Kit,即軟件開發工具包)(即ArcObjects)
ArcGIS Desktop SDK包含在ArcView、ArcEditor和ArcInfo中,支持COM和.NET開發。用戶可以應用ArcGIS Desktop SDK來擴展ArcGIS Desktop的功能,例如添加一些新的工具,定制用戶界面,增加新的擴展模塊等。
(2)ArcGIS Server SDK
ArcGIS Server實現了一套標准的Web GIS服務(例如:制圖,訪問數據,地理編碼等),支持企業級應用。ArcGIS Server SDK使得開發人員可以建立集中式的GIS服務器來實現GIS功能,發布基於Web的GIS應用,執行分布式GIS運算等。
(3)ArcGIS Engine
2004年,美國ESRI發布ArcGIS Engine,ArcGIS Engine開發包提供了一系列可以在ArcGIS Desktop框架之外使用的GIS組件,ArcGIS Engine的出現對於需要使用ArcObjects的開發人員來說是個福音,因為ArcGIS Engine發布之前,基於ArcObjects的開發只能在龐大的ArcGIS Desktop框架下進行。
ArcGIS Engine 是對ArcObjects的再封裝,有兩種產品:
- ArcGIS Engine SDK—包括開發者建立解決方案所需的組件和工具集。【開發環境安裝】
- ArcGIS Engine Runtime—運行定制的ArcGIS Engine應用程序所需的基礎設施。【運行環境客戶機安裝】
- 【注:大約ArcGIS10.1及以后版本(待落實),runtime不再單獨列出,合成為engine】
由於使用ArcObjects開發的程序必須安裝桌面版軟件,這使得它的開發成本大大增加。處於產品策略上的考慮,ESRI將ArcObjects中的某些組件集單獨封裝出來,起名為ArcGIS Engine,使用ArcGIS Engine開發的軟件需要在一個Runtime下運行,而不需要安裝ArcGIS軟件。
因此,ArcGIS Engine只是ArcObjects的一個子集,使用ArcGIS Engine開發的軟件,在ArcObjects環境中使用沒有問題,但是ArcObjects開發的程序,如果使用的組件庫不被包含在ArcGIS Engine中,就無法使用,比如IIdentifyDialog對象,就是只有在ArcObjects中才能使用。除此以外,ArcObjects版本的控件只有MapControl和PageLayoutControl兩個,而ArcGIS Engine的控件就豐富的多。
【這句話的意思是ArcObject並沒有完全包含ArcEngine嗎?】
參考:http://www.cnblogs.com/GISmanWJ/archive/2006/10/10/525184.html
參考:http://blog.csdn.net/foreverling/article/details/33740367