1.3需要的技術基礎
如何進入ao軟體的領域開發?對於高階的ao程式設計人員我想必須跨越四大技術障礙:
1.物件導向技術思想;
2.com技術;
3.ao各元件物件的層次組織和相互關係;
4.支援com的各種開發工具及其環境(如vb、vc、dephi等)
真正屬於esri自己的東西無非就是這套ao元件庫。對於初次進入ao開發領域的人員來說,我個人覺得(至於com還有其它暫時 可以先放一邊,照貓畫虎完成許多任務還是沒有問題的了)可以先從arcgis desktop的應用開始,對ao的層次及相關概念有乙個了解(如map、layer、view、label、支援的資料格式等 ),否則等看到ao的示例時可能會一下子雲裡霧裡,兩廂印證我覺得最有可能豁然貫通吧。
1.4ao開發工具包
ao開發工具包的安裝可以選擇在安裝arcgis desktop時,也可以任何時候使用安裝光碟下的/arcgis/arcobjects developer kit目錄下的setup.exe檔案進行安裝。下面是ao開發包安裝完成後的目錄結構:
arcobjects developer kit
help --- 包含開發幫助檔案:aodev.chm, arcobjects.chm等
kits --- 附加的開發者素材諸如投影引擎標頭檔案,類別id檔案和esri 示例命令的源** (在最新的8.2版本中,該**位置有所變化)
object model diagrams --- 包括所有的pdf格式物件模型圖
samples --- 包含所有示例工程檔案的源**
utilities --- 包含esri 物件瀏覽器等工具
1.5ao開發資源
1.《arcobjects developer help》 ----- 這是ao開發的首選資源,個人覺得一定程度上甚至可以和微軟的msdn相媲美。不管是ao的基礎com、ao的物件層次圖都提供 了說明,此外還提供了大量的開發示例。
2.《arcobjects online》 ----- 提供了最新的ao元件庫文件,其中有乙個關於ao的技術論壇相信會讓大家有很多意外的收穫;
3.《exploring arcobjects》 -----一本很不錯的ao技術文件,對ao的開發進行了很好的組織,而且有大量的示例,可以隨時複製利用;
4.《building a geodatabase》 -----應用都是圍繞資料來展開的,這本書主要是用來設計和建立geodatabase的,但理解和掌握geodatabas e的層次和建摸方法,對ao的開發是很好的補充。
5.《microsoft msdn》----即使你的ao開發工具不是微軟的,也建議安裝一套完整的msdn,想多了解和應用com進行設計開發,msd n是個寶藏。
在ao的世界裡,每個東西都是乙個物件,有象map、form、 layer這些我們可以看到的物件,也有在表中產生查詢結果集時的游標(cursor)-這類不可見的物件。那麼物件是如何產生 的呢?哦,它是由類(class)例項化產生的,許多ao類對我們來說很熟悉(象point,line,polygon,lay er,table,如果你對gis還不是很陌生的話)。不用太多的廢話,就先實際進入ao來展示下什麼是類和物件吧。
map class
properties methods
mapscale (1:3,800,000) addlayer (+)
mapunits (6234233.32,5234234.56) clearselection
(很遺憾在這裡我不能用圖形來表達上述概念,突然覺得有些滑稽—在寫乙個gis的話題)。
如果你用過arcmap應用程式並且還有印象的話,你會發現這個mapscale其實就是應用程式中那個文字框的內容,而add layer這個方法呢好象就是那個用來增加圖層的「+」的行為。
一般來說,com庫由作業系統加 以實現,我們不必關心其實現的細節,象大家經常看到的activex,directx,oledb都是基於com技術的),主要 應用於microsoft windows作業系統平台上。com通常的發布形式是:以win32動態鏈結庫(dll)或可執行檔案(exe)的形式發布。
用com開發意味著使用介面,也可以稱為基於介面的設計模型。物件間的所有通訊都是通過它們的介面來進行的,com介面是抽象的 ,意味著相關的介面沒有實現,和介面相關的**來自於乙個類實現。
功能用介面被抽象地構造,並且用類去真正實現。在com中類和介面通常被當作『做什麼』和 『怎麼做』,介面定義乙個物件能做什麼,類定義它怎麼去做。
com類提供了乙個或多個介面相關的**,因此功能實體封裝在類中。幾個類可以有同樣的介面,但是它們的實現可能是極不相同的。 通過實現這些介面,com實現了物件導向的多型性,com不支援多重繼承概念,然而,這不是乙個缺點因為乙個類可以實現多個介面 。
********
5com的其它組成
com物件的介面可以是雙介面,雙介面不同於普通介面(custom inte***ce)之處在於雙介面是從automation基本介面idispatch繼承的,而普通介面是從iunknow n介面直接繼承來的,預設的介面模型是雙介面模型是雙介面。
**** 雙向com支援 是指有可能既在一種語言中使用com物件,又可使用這種語言編寫com物件;
*****程序內com、本地com和遠端com
com是乙個客戶/伺服器體系,伺服器(或物件)提供功能,並且客戶程式使用這些功能。如果com程式和客戶程式在同一程序位址 空間內,則稱之為程序內com,這通常是以dll形式實現,而本地com是指同一計算機上不同程序中的exe,遠端com則是指 不同計算機中的dll或exe。有不耐煩或現在回過頭看這章而且存有疑問的人嗎?講了那麼多com and com,那麼我在dephi或vb下用ao寫乙個dll,這個dll到底算什麼呢?好,就讓我來用c/s的概念來做乙個解釋。如 果你是自己寫的應用程式框架,那麼你的應用程式就是客戶端,而呼叫的dll其實就是伺服器了;如果你在arcmap中,那麼ar cmap應用程式其實就充當了客戶端的角色發出請求,這個請求通過com機制傳遞給com伺服器—那個你寫的dll來完成相應的 功能,而這個伺服器外部和內部就是由esri ao的介面及類來完成的。
整個web開發流程及需要的人員
整個web開發流程及需要的人員,由下圖可以清晰的看出 ui user inte ce 使用者介面 ue或ux user experience 使用者體驗 通常國外和國內的的外企叫ux,國內叫ue ixd interaction design 互動設計 區別於工業設計,加了個 x uid user i...
java開發人員需要熟知的技術
微服務架構主要有 spring cloud dubbo dubbox等,以 dubbo佔比最高,可達26 使用rpc框架的程式設計師中,使用dubbo的人數佔比最高,其次為 dubbox grpc hessian也具有一定的使用比例。多數程式設計師在工作中使用的開發技術為許可權管理和訊息佇列。1 4...
開發人員需要懂得技術分享
乙個大型的公司有專門的軟體開發部門,開發部門分為很多的專案,每個專案分擔的內容不盡相同,各個專案之間又相互銜接,各個專案的程式開發人員所側重的技術點不一樣,也就是說每個開發人員各個技術點的開發水平與技能不一樣。如果部門內的開發人員能夠多多溝通與交流,分享有無,提出各自的見解,無疑能快速增加各個開發人...