Microsoft .NET框架糅合各種編程語言,開創Web新時代
華盛頓,雷德蒙,2000年7月11日——David Simmons幾乎使用過所有的編程語言(確切地說,使用過20種編程語言。)在其長達23年的軟件開發生涯中,他無數次目睹了編程人員為成功調試出多個可以相互通信的應用程序,通宵達旦奮戰無數個日日夜夜的艱辛過程。生平第一次,他的頭腦中猛地浮現出一個全新的解決方案。
“.NET框架開啟了通向軟件開發復興的大門。”Quasar Knowledge Systems(QKS)的奠基人和總裁Simmons說。QKS是一家致力于提供SmallTalk語言產品的知名公司。“近幾年來,業內人士熱切希望能夠找到一個完美的單一語言解決方案。但是,無論從商務還是軟件技術創新的角度考慮,該策略都無法使人感到振奮。微軟正致力于提供一個可以構建任何語言工具的基礎框架。”
今天,微軟專業開發人員大會在佛羅里達州舉行。會上,微軟正式公布了作為.NET平臺一部分的.NET框架。.NET框架通過糅合各種編程語言,將極大地簡化必須要當今開發人員處理的大量復雜編程雜務。除了能極大地簡化開發人員必須處理編程“管道”外,.NET框架更重要的功能是,自動將任一應用程序轉化為可復用、具有互用性的Web服務。
可使用基于Web的“服務”構建明天的軟件應用程序,正如今天可使用“組件”構建應用程序一樣。
“微軟致力于實現通過互聯網和企業內部網將軟件轉化為服務這一宏偉藍圖。”微軟Web服務中心的成組產品經理John Montgomery說。Montgomery深信,微軟開發的新型編程環境將大幅度提高開發人員的生產力,并將今后的各種應用程序轉變成軟件“部件”(或服務)集合。今后,人們可通過互聯網或公司網絡輕松訪問這些部件,而且比當今開發人員使用軟件組件還要容易。
消除“巴別塔”效應
微軟正深刻地改變著開發人員的工作方式。開發人員需要從頭到尾編寫整個應用程序的手工編寫時代已經一去不復返了。在過去的十年中,人們一直使用松散耦合的部件——軟件組件——來構建應用程序,致使應用程序變得日益龐大和復雜,不同開發人員選用的是不同的編程語言、對象模式和操作系統,這在一定程度上削弱了部件之間的互用性。
“把用多種編程語言寫出的程序塊連接起來,以使它們能協同工作,一直是件讓開發人員倍感頭疼的苦差事。”交互式軟件工程公司總裁Bertrand Meyer如是說,該公司因其開發的Eiffel軟件開發工具而在業界聲名遠播。“大多數開發人員放棄了努力而埋頭工作于單一語言環境中。他們要么受困于十年前制定的設計方案,要么費時費力地對方案進行修修補補卻收效甚微。”
如今,微軟正致力于將多個組件改裝成集成通用型的組件。微軟認為,開發人員正逐漸從過去的繁復編程事務中解脫出來,可以選擇自己最得心應手的編程語言進行編程。
“編程語言的互用性將帶給編程人員最大的實惠。”Meyer說。“.NET框架從來沒有像現在這樣,神速般地將開發人員所夢想的編程語言互用性變成近在眼前的現實。開發人員在工作中可以隨換隨用另一種編程語言,這大大避免了初投資金的浪費。”
實際上,在.NET框架中,所有的編程語言,從相對簡單的JScript到復雜的C++語言,一律是等同的。當前,開發人員必須依據所選編程語言來使用不同的命令集,這些命令被稱作“框架”。當不同編程語言發生沖突時,就會導致“巴別塔效應”。也就是說,當各種編程語言混雜在一起時,任何一種編程語言的效力都會被削弱。另外,開發人員在學習一種新的編程語言時,總會經歷一段艱難的學習期,Montgomery說。
有了.NET框架后,開發人員便可對選用的任何編程語言一律使用統一的命令集,他解釋道。
“只需簡單地一用,.NET框架便可消除各種異類框架之間的差異,將它們合并為一個整體。.NET的作用不僅僅是將開發人員必須掌握多種框架的束縛中解脫出來,通過創建跨編程語言的公共API集,.NET框架可提供強大的跨語言繼承性、錯誤處理和調試功能。現在,開發人員可以自由地選擇他們喜歡的編程語言。.NET平臺歡迎所有人的垂顧。”Montgomery說。
語言互用性允許編程人員使用不同編程語言編寫各個組件,再將這些組件連接成一個大型的應用程序。更令人振奮的是,他們還可充分利用互聯網和企業內部網的優勢,訪問整個網絡上的Web服務。Montgomery說,開發人員將負責構建和出售這類Web服務,使其成為其他開發人員可以提取引用的龐大軟件資源。將來,應用程序的功能會變得十分強大和易于構建。
應用程序正在演變為軟件拼湊件
“它攸關生產力的高低,是人們勢在必行的選擇。”Montgomery又補充到。“開發人員可以通過合并遠程服務、本地服務以及自定義代碼來創建應用程序。”這些服務通過使用Web的lingua franca(一種可擴展的標記語言,即XML)與應用程序進行交互。
Web服務易于使用,因為它們是自我描述型的服務,只需告訴開發人員當前服務期望獲得什么信息以及它將提供什么服務,而不必讓他們了解組件的內部運行機制及過程。可以將這些服務進行合并。從任何平臺、用任何編程語言編寫的應用程序都可調用該服務,Montgomery解釋說。開發人員可從整個Web服務資源庫中提取所需的組件,再進行組件“拼湊”,最后生成具有更強功能的應用程序,同時節省了大量時間。
“Web服務能在各種場所大顯身手——可將它們視作運行于互聯網或企業內部網之上的應用程序,而不是本地應用程序。”Montgomery說。舉一個語言翻譯服務的例子。可以對運行于Web之上的Lernout和Hauspie翻譯引擎進行改造,將其變成一個可進行簡單翻譯的電子郵件程序。用戶便可以發送和接收用外文撰寫的電子郵件。
“目前,如何將不同組件和腳本語言集成為一個緊密整合且易于維護的解決方案,是一項難度很大的任務。”Simmon說。“微軟的Web服務提供了一流的集成技術運載工具,開發人員可從其中挑選最為適合的技術,順利完成組件的平滑集成。”
“Web服務最基本的特性就是其可復用性。微軟在幫助開發人員創建可復用的軟件方面,有著十分豐富的經驗。”Montgomery說。“微軟的組件對象模型(COM)自問世八年以來,已演變成業界內迄今為止最成功的組件模型。用戶可用它創建可多次復用的代碼塊。”他說。這些組件可以執行任何類型的任務,從執行一個簡單函數到運行諸如Microsoft Word整個應用程序,無一不能。
Dick Hardt,ActiveState的創始人和執行總裁,在開始其軟件編程生涯時,使用的工具是Windows 1.03。ActiveState是一家為開發人員提供編寫Perl和Python互聯網編程語言的工具和服務的知名公司。他親歷了十四年來編程技術的歷次重大變革。“在我們從事編程的頭幾年里,談不上有什么軟件的復用性。”他說。“自引進COM以來,少數幾種編程語言之間可以實現可互用性。今天,可互用性大大降低了軟件開發費用,它從根本上改變了編程技術的發展方向。然而,Microsoft .NET框架可提供最直接的可互用性。您可隨意使用任何一種編程語言來創建并使用組件,還可對組件進行擴展。這使得我們向著更完美的目標躍進了一大步。”
自動處理事務管理細節
許多事實表明,微軟推出的.NET框架,正幫助開發人員逐步地從繁重的重復性編程中解脫出來。當今,開發人員需花費大量的心血來處理數目龐大的編程雜務,諸如訪問計數和內存管理等。這些細節的處理費時費力,大大拖延了軟件產品投放市場的時間,情況十分糟糕。Montgomery說。
“多年以前,當尚未推出COM時,開發人員只用五行C語言代碼就能編寫出一個簡單程序。若使用COM來編寫這個程序,則需要編寫幾百行代碼。可見,COM在帶來巨大價值的同時,也大大增加了開發開銷。”Rational Software公司開發人員工具小組的工程負責人Jon Sanders說,Rational Software是一家提供軟件開發工具、服務和軟件工程的最佳業務公司。“現有了.NET框架,開發人員編寫這樣的程序又只需五行代碼便大功告成。我們似乎是免費獲得了COM的全部價值。
“如今,有數量眾多的樣本文件代碼零散地分放在許多地方,必須對這些代碼進行同步處理,才能保證程序的正常工作。“現在,.NET框架可以將處理這類細節的雜務分派給系統去完成——從而徹底解決了樣本文件代碼問題。”
如今開發人員可利用.NET框架自動執行許多任務。而在過去,開發人員必須手動處理這類任務,且很容易出錯,Montgomery說。.NET框架可自動管理枯燥而復雜的編程細節,諸如管理內存、啟動或取消線程和進程、增強安全性能以及適應從屬組件等等。
有了.NET框架處理眾多的雜務管理任務,開發人員需編寫的代碼量便大為減少,生產力便顯著提高,Montgomery說。同時,編程工作也會相對簡單得多。他接著又補充道,開發人員編程出錯率大大減少,編程錯誤影響其它應用程序的可能性也隨之銳減。
Simmon把當前的編程人員比作是手工藝術家。“當今,手工編寫復雜軟件非常費時,且必須掌握特殊的職業技能。”他解釋道。“而現在,微軟與其他工具廠商一道合作,將這類手工編寫過程演變成一種功能模塊技術,使開發人員可以集中精力提供服務,而不需手動編寫軟件。這樣,他們便能在更短的時間內創造出更多更有價值的東西。”
其它內置功能節省了開發人員的編程時間
微軟的.NET框架,使開發人員的生產力有了質的飛躍。“我們的新型ActiveServer Pages + (ASP+) 構建在.NET框架之上,且功能性有很大的改觀,ASP+為構建復雜而高度可擴展的Web應用程序和服務提供了一個完整的框架,開發人員只需掌握一些簡單的Web代碼(用超文本標識語言(HTML))編程技能。“開發人員可以集中精力編寫出一個有效的解決方案,為客戶完滿解決獨特的商務問題,其它編程雜務可交由ASP+基礎解決處理。”通過自動執行復雜的應用程序功能,諸如保存將來要使用的信息(狀態管理),ASP+使得要編寫的代碼行比原來減少了十分之一。
ASP+還能自動執行許多實現Web服務的功能,包括對ASP+應用程序進行透明的XML訪問。“我們通過使用簡單對象訪問協議(SOAP)(一種XML語法),實現了應用程序之間的通信。”Montgomery說。“SOAP是一種最佳選擇,因為它符合開放的工業標準,并用一種擴展的方式來表示XML數據和命令。ASP+能完全自動執行SOAP。”
ASP+控件運行在Web服務器上,并將他們的用戶界面發送到客戶端。在用戶瀏覽器上,該應用程序簡單地顯示為標準的Web頁面。
與開發人員工具小組通力合作
微軟合并了.NET框架的所有元素(它們是:公共語言運行時間、統一的框架以及ASP+),使得開發人員可以用到具有更高復用性級別的軟件,Montgomery總結道。
.NET框架是群體智慧的結晶。“靠我們單槍匹馬地孤軍奮戰,絕對不可能做成這件事情。開發人員小組一直不遺余力地幫助我們,以確保.NET平臺能包容所有的編程語言” Montgomery道。
為了創建.NET框架,微軟已同很多人進行了商討。同時,也聽取了大量的意見。微軟與200多家的公司、20多所大學以及十多個用戶一道,對.NET框架的體系結構進行了細致深入的測試,并進行了大量的改進。
“微軟熱切歡迎眾多會使用各種高級先進編程語言的開發高手加盟,出力為這個嶄新平臺建立一個好的基礎。”Simmons說。“他們與第三方緊密合作,以期獲得有價值的建議和設計反饋。微軟采用了第一流的編程概念,并將它們集成為新型的安全、可配置、跨語言的編程模型,極大地改進了工具性能、提高了開發人員的生產力,并賦予他們選擇編程語言
|