Microsoft .NET框架糅合各種程式語言

iDotNetSpace發表於2010-03-21
華盛頓,雷德蒙,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說。“他們與第三方緊密合作,以期獲得有價值的建議和設計反饋。微軟採用了第一流的程式設計概念,並將它們整合為新型的安全、可配置、跨語言的程式設計模型,極大地改進了工具效能、提高了開發人員的生產力,並賦予他們選擇程式語言的自由。”

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-630019/,如需轉載,請註明出處,否則將追究法律責任。

相關文章