0、前言
從上世紀(jì)80年代到21世紀(jì)初,水利軟件的開發(fā)和使用經(jīng)歷了近30年的發(fā)展歷程。期間,水利軟件在水利行業(yè)中扮演了重要的角色,它極大幫助了水利工作者提高了工作效率,促進(jìn)了行業(yè)的技術(shù)進(jìn)步。隨著計(jì)算機(jī)硬件的飛速發(fā)展,軟件開發(fā)技術(shù)的成熟與開發(fā)平臺的日益完善,原有的水利軟件開發(fā)工具與技術(shù)手段已經(jīng)顯得落后,已經(jīng)不能滿足水利行業(yè)在新形勢下對水利軟件的需求。NET平臺是微軟公司非常優(yōu)秀的軟件開發(fā)平臺,本文結(jié)合水利軟件開發(fā)的現(xiàn)狀,簡要的介紹,NET平臺在水利軟件開發(fā)中的應(yīng)用。
1、水利軟件開發(fā)現(xiàn)狀
早期的水利軟件開發(fā)的初衷是用于科學(xué)計(jì)算,它把水利工作者從繁瑣的手工計(jì)算中解放出來,那時(shí)程序使用的開發(fā)語言多為DOS操作系統(tǒng)下的語言,如Fortran、c、Basic、Algol等,這些無界面的程序在很多水利設(shè)計(jì)部門一直沿用至今。隨著Windows操作的推廣和普及,水利軟件開始有了人機(jī)交互的界面,特別是1998年VisualStudio 6.0發(fā)布后,因其下的Visual Basici語言具有入門容易,開發(fā)圖形界面簡單的原因,成為很多水利工作者首選的軟件開發(fā)語言,那時(shí)涌現(xiàn)出一大批優(yōu)秀的水利軟件。由于種種原因,上述的軟件開發(fā)基本上為個(gè)體手工作坊式的封閉式生產(chǎn),屬于自編自用,很難得到大范圍的應(yīng)用。
2、NET平臺簡介
微軟公司對于,NET的定義是這樣的:.NET是Microsoft,NET XML Web Services平臺。]~vlL Web Services允許應(yīng)用程序通過Intemet進(jìn)行通訊和共享數(shù)據(jù),而不管采用的是哪種操作系統(tǒng),設(shè)備或編程語言。Microsoft.NET平臺提供XML Web Services并將這些服務(wù)集成在一起,為個(gè)人用戶的好處是無縫的,吸引人的體驗(yàn)。.NET平臺主要包括四個(gè)部分的內(nèi)容:低層操作系統(tǒng)、.Net企業(yè)服務(wù)器、.Net框架和集成開發(fā)Z~visual Studio.Net。
微軟將她的全部開發(fā)工具都集成在VisualStudio.Net中,在Visual Studio.Net中可以用C#語言、c++語言、Visual Basic語言、J#語言開發(fā)??梢蚤_發(fā)桌面應(yīng)用程序、Web應(yīng)用程序、智能設(shè)備應(yīng)用程序等。
3、NET平臺在水利軟件開發(fā)中的應(yīng)用場景
NET平臺的使用非常廣泛,開發(fā)者可以使用多種開發(fā)語言,開發(fā)出各種類型的應(yīng)用程序。本文結(jié)合水利行業(yè)的特點(diǎn),對.NET在水利軟件開發(fā)中主要的應(yīng)用場景進(jìn)行簡要的介紹。
(1)普通的桌面軟件開發(fā)
這一類的軟件開發(fā)非常普遍,通常用于水利勘測設(shè)計(jì)中的分析計(jì)算。以往這類軟件計(jì)算所需的數(shù)據(jù)常常是通過文本文件的讀取或者用戶界面的輸入獲得,結(jié)果的輸出也以文本文件為主,成果的展示性不強(qiáng)。在,NET平臺下,可以使用多種數(shù)據(jù)輸人與輸出的方式,比如文本文件、office文件、數(shù)據(jù)庫文件、XML文件、圖片文件等。以往的水利軟件界面通常比較簡單,利用Visual Studio,Net豐富的控件庫,可以輕松的構(gòu)建友好的,內(nèi)容豐富的用戶界面,特別是WPF(Windows Presentation Foundation)技術(shù)的出現(xiàn),構(gòu)建絢麗多姿且顯得專業(yè)的界面已經(jīng)不是難事。
(2)Office二次開發(fā)
Office辦公軟件在各行各業(yè)早已普及,水利行業(yè)自然不會例外,特別是Office家族中的Excel軟件,它在水利工作者日常的數(shù)據(jù)分析計(jì)算中起到了不可替代的作用。然而人們對效率的追求是永不滿足的,通過Offioe的二次開發(fā),Office的使用者的工作效率可以得到顯著的提高,有時(shí)甚至可以提高到成百上千倍。
早期的Office二次開發(fā)主要依賴于VBA和COM直接編程,無法有效地集成到企業(yè)應(yīng)用中,微軟的最新.NET平臺集成了Office應(yīng)用開發(fā)工具VSTO(Visual Studio Tools forApplications),使得普通的開發(fā)者能夠迅速、輕松、高效地完成Word、Excel、Outlook、Visio等程序的二次開發(fā)。
(3)AutoCAD二次開發(fā)
AutoCAD是水利工作者常用的設(shè)計(jì)軟件,為了使重復(fù)性較大的計(jì)算繪圖工作量減小和更加規(guī)范準(zhǔn)確,在AutoCAD上進(jìn)行二次開發(fā)成為首選途徑。
當(dāng)前AutoCAD的二次開發(fā)工具主要有VisuaiLlsp、VBA、ObjectARX與.NET等。其中,VisualLisp與VBA較為簡單,特別是VBA,使用方便且開發(fā)速度較快,但其功能相比ObjectARX有所不足,尤其是對面向?qū)ο蟮墓δ苤С植缓?。而objectARX基于VC平臺,在C++的支持下。其功能非常強(qiáng)大,可以很好地運(yùn)用各種面向?qū)ο蠹夹g(shù),但其缺點(diǎn)是發(fā)開速度比較慢,同時(shí)對開發(fā)人員的能力要求較高。.NET是微軟推出的開發(fā)平臺,具有眾多優(yōu)點(diǎn),基于.NET平臺對AutoCAD進(jìn)行二次開發(fā),可充分利用.NET的各種優(yōu)勢,在保證功能強(qiáng)大的前提下提高開發(fā)速度。在AutoCAD 2006中,Autodesk為其開發(fā)增加了.NET API。.NET API提供了一系列托管的外包類(Managed Wrapper Class),使開發(fā)人員可在,NET框架下,使用任何支持,NET的語言,如Visual Basic、c#和Managed c++等對AutoCAD進(jìn)行二次開發(fā)。其優(yōu)點(diǎn)是完全面向?qū)ο?,在擁有與C++相匹配的強(qiáng)大功能的同時(shí),具有方便易用的特點(diǎn),是較理想的AutoCAD二次開發(fā)工具
(4)GIS二次開發(fā)
隨著網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展以及傳統(tǒng)水利向現(xiàn)代水利的轉(zhuǎn)變,GIS(GeographicInformation System)在水利信息系統(tǒng)建設(shè)中起到越來越重要的作用。水利信息系統(tǒng)的應(yīng)用涉及到防洪減災(zāi)、水資源管理、水環(huán)境、水土保持以及水利水電工程建設(shè)和管理等眾多方面。在不同的領(lǐng)域,對GIS有著特定的需求和業(yè)務(wù)邏輯,只有通過GIS產(chǎn)品的二次開發(fā)才能滿足領(lǐng)域的需求。
GIS二次開發(fā)有三種開發(fā)方式:1、獨(dú)立開發(fā): 2、宿主型二次開發(fā);3、基于GIS組件的二次開發(fā)。.NET平臺在GIs二次開發(fā)中為基于G1s組件的開發(fā)方式,這種方式人門簡單,開發(fā)便捷,無需對開發(fā)人員進(jìn)行專門的培訓(xùn)。大多數(shù)GIS軟件產(chǎn)商都提供商業(yè)化的GIs組件,如ESRI公司的MapObjects、MapInfo公司的MapX等,這些組件都具備GIS的基本功能,開發(fā)人員可以使用,NET支持的Visual Basic、C#等語言進(jìn)行二次開發(fā)。
4、結(jié)語
NET是一個(gè)結(jié)構(gòu)龐大、內(nèi)容豐富、應(yīng)用范圍非常廣泛的開發(fā)平臺,本文所列的4種應(yīng)用場景只不過是其中的冰山一角,目的是為了起到拋磚引玉的作用。在,NET平臺上,開發(fā)人員可以選擇自己喜歡的程序語言和開發(fā)方向,而無需在多個(gè)平臺和語言間切換,這樣降低了學(xué)習(xí)成本,提高了開發(fā)效率。值得一提的是,2010年4月微軟正式發(fā)布了最新版本.NET 4.O,最新的版本提供了許多新的特性,有理由相信它在,NET平臺的發(fā)展中具有里程碑的意義。同時(shí),筆者堅(jiān)信在,NET平臺上,軟件開發(fā)人員(包括業(yè)余的開發(fā)人員)將更能加快速、高效地開發(fā)出內(nèi)容豐富與功能強(qiáng)大的水利軟件。