Vista生成器最終將跟以前的Win32 API進行分離,取而代之的是可管理的WinFX,而WinFX就是微軟繼DOS、Win16、Win32之后推出的第四代API。據(jù)外刊報道,以前利用Win32 API開發(fā)的軟件,在微軟承諾的維護期之后將不能運行。
Win 32 API歷經(jīng)Windows 95到XP,受到眾多應(yīng)用軟件開發(fā)商的追捧。過去,無論是最常用的字處理、電子郵件、即時通訊軟件,還是專業(yè)的殺毒、ERP軟件等等,大都利用微軟提供的 API進行開發(fā),這樣能省去直接跟系統(tǒng)資源、硬件打交道的麻煩。微軟提供了近7.8萬個Windows API以及大量的輔助開發(fā)工具,這種友好的姿態(tài)讓無數(shù)開發(fā)人員甘愿在微軟平臺上創(chuàng)造各種應(yīng)用軟件。但另一方面,微軟又通過API“控制”了軟件的開發(fā),幫助自己成就了霸主地位。然而,在Win32 API逐漸淡出人們的視野后,新一代的API還能如微軟設(shè)想的那樣延續(xù)Win32時期的輝煌嗎?
挑戰(zhàn)來自互聯(lián)網(wǎng)
事實上,微軟首先要迎接的便是互聯(lián)網(wǎng)所帶來的挑戰(zhàn)。在最近舉行的“Zend/PHP展會”上,Google副總博思沃斯稱,計算的力量正在由專有技術(shù)、微軟的API轉(zhuǎn)向Web上的鏈接和內(nèi)容。他認為,10年前,API意味著控制,但目前占有主導(dǎo)地位的是鏈接。“在目前的這個世界上,API就是鏈接?!北M管博思沃斯有意跳過了應(yīng)用軟件最終都要跟硬件打交道這一事實,但也說明一種真實的現(xiàn)象:隨著網(wǎng)絡(luò)的興起,技術(shù)不再讓用戶、投資人和軟件開發(fā)商有多大興趣,如何利用已有的技術(shù)提供多樣化的服務(wù)才是關(guān)注的焦點。正如博斯沃斯所預(yù)測的,微軟的API似乎有被邊緣化的趨勢。
軟件的消費需求變了,應(yīng)用軟件開發(fā)商隨之而變。過去在C/S(客戶端/服務(wù)器)模式下,軟件由開發(fā)人員根據(jù)客戶的需求,制訂開發(fā)計劃,然后調(diào)用操作系統(tǒng)API來實現(xiàn),最后部署到客戶的終端和服務(wù)器上。現(xiàn)在,軟件開發(fā)正在經(jīng)歷著從C/S結(jié)構(gòu)到B/S(瀏覽器/服務(wù)器)結(jié)構(gòu)的變革,軟件可以不用部署到客戶端,用戶只要上網(wǎng)打開瀏覽器就可以實現(xiàn)需求。
“在企業(yè)級應(yīng)用上,”大唐軟件總經(jīng)理助理兼規(guī)劃咨詢部經(jīng)理陳彬說,“采用B/S開發(fā)的軟件對客戶端的要求降低了,(軟件)大部分功能,包括界面控件,都放到應(yīng)用服務(wù)器上部署和共享?!币坏┮磺胁僮鞫荚诰W(wǎng)絡(luò)上完成,實現(xiàn)這些操作的軟件就不用像以前一樣必須安裝在客戶端上,也就不必再調(diào)用桌面操作系統(tǒng)的API,而是把與硬件設(shè)備打交道的煩瑣工作交給中間件或服務(wù)器去處理,這樣,桌面操作系統(tǒng)API的生存空間不得不面臨挑戰(zhàn)。
在B/S模式下,變的不僅是軟件開發(fā)的方式,軟件開發(fā)人員也在變。新一代的程序員對Windows API的了解也大不如前,博思沃斯表示他們更多地使用PHP、LAMP組合(Linux、Apache、MySQL、Perl/PHP/Python)。這一點從人力資源的供求關(guān)系也可以看出。據(jù)紐約市人力資源調(diào)查顯示,Windows API程序員的數(shù)量遠不如從前,所以遇到需要Windows API開發(fā)人員時,這些程序員的身價可以達到13萬美元/年,而近年來人數(shù)急增的網(wǎng)絡(luò)開發(fā)人員卻只能掙到8萬美元的年薪。
不過,不同的應(yīng)用軟件開發(fā)產(chǎn)商對此有不同的解讀。“防毒安全產(chǎn)品,在補足系統(tǒng)安全性時,需要盡可能地貼近操作系統(tǒng),”趨勢科技高級產(chǎn)品管理與技術(shù)顧問齊軍介紹說,安全應(yīng)用產(chǎn)品不僅需要與微軟互相開放API,“實際上,為了更好地保護系統(tǒng),對微軟API的依賴很大。”盡管WinFX的前途不明朗,但在安全等跟操作系統(tǒng)聯(lián)系緊密的領(lǐng)域,WinFX勝算還是很大。只是在CRM、ERP等注重客戶業(yè)務(wù)開發(fā)的領(lǐng)域,隨著B/S開發(fā)模式的漸漸普及,將逐漸淡化對操作系統(tǒng)API的需求。
出擊,微軟求變
微軟已經(jīng)看到了這些威脅。所以,Vista出來了,帶著全新的WinFX。
沒有全新的技術(shù),就不會有震撼的軟件。微軟的WinFX已經(jīng)把繁雜的Win32 API減少到8千個左右,在.NET框架下采用可管理代碼編程模式,跟底層系統(tǒng)資源的關(guān)系更密切,能自動管理如內(nèi)存等,減輕程序員的負擔(dān)。另外, WinFX還加入全新的圖形用戶界面子系統(tǒng)Avalon、文件子系統(tǒng)WinFS和網(wǎng)絡(luò)服務(wù)通訊子系統(tǒng)Indigo,使得開發(fā)環(huán)境更加友好。據(jù) Gartner預(yù)測,這些技術(shù)表明微軟的API發(fā)生了巨大的改變,Win32 API終將被WinFX替代,而成為新操作系統(tǒng)中的遺產(chǎn),正如Win32取代DOS和Win16一樣。
盡管WinFX代表微軟應(yīng)用程序設(shè)計的重大進步,但Gartner認為這是有代價的。在一段時間內(nèi),程序員還可以繼續(xù)使用Win32 API開發(fā)應(yīng)用程序,不過利用WinFX開發(fā)的程序并不向下兼容,只能在Vista平臺上運行。而且,Vista操作系統(tǒng)帶來的變化和WinFX開發(fā)者框架遲早將會刺激開發(fā)者轉(zhuǎn)向.NET框架,因此開發(fā)人員應(yīng)當盡早掌握.NET框架可管理編碼的技能,才能應(yīng)付在2008年全面使用WinFX時會出現(xiàn)的種種問題。
當然微軟不會忘記自己的霸主地位也來自于應(yīng)用程序開發(fā)人員的貢獻。所以,提供更好的開發(fā)工具、指南和大規(guī)模的宣傳培訓(xùn)必不可少。隨Vista一并提供的 SDK(軟件開發(fā)者工具包)含有一套用戶界面組件和行為,微軟稱新的Vista SDK將過去分散的工具、工具包和技術(shù)內(nèi)容組合在一起,能支持端到端Windows客戶開發(fā)。微軟也準備了一系列能讓開發(fā)人員熟悉和提高使用WinFX的活動,如Windows硬件工程大會等。
微軟對自己的各種努力一向很自信。在最近一次專業(yè)開發(fā)人員大會(PDC05)上,微軟宣布由三十多家獨立軟件供應(yīng)商(IRV)已經(jīng)確認將發(fā)行新的適用于Vista操作系統(tǒng)的應(yīng)用軟件。微軟認為這是業(yè)界對微軟下一代操作系統(tǒng)的熱烈回應(yīng)。從 2002 年就開始對微軟下一代操作系統(tǒng)投入特別關(guān)注的Windows SuperSite專家 Paul Thurrott表示,微軟把這些技術(shù)提供給現(xiàn)有的用戶可以擴展 Avalon 和 Indigo 技術(shù)的市場,鼓勵開發(fā)人員盡快的接納這些技術(shù)。這樣,WinFX 便能夠更快的達到 Win32 API 幾十年才達到的高度。
但火速躥起的競爭對手們并不想把下一個十年再留給微軟。在API的爭奪戰(zhàn)中,開源操作系統(tǒng)Linux所提供的免費API幾年來在歐洲不斷攻城掠地;在API之外,Sun公司力推的J2EE平臺,也讓年輕的客戶端軟件開發(fā)人員根本不用去了解Windows API;近段時間以來,Google舉起“網(wǎng)絡(luò)服務(wù)”的大旗,不斷推出如Froogle購物、Gmail等免費的網(wǎng)絡(luò)應(yīng)用,直接威脅到利用微軟API開發(fā)的各種應(yīng)用軟件。而微軟當然也在Vista的一再而三的調(diào)整中努力尋求著對自己最為有利的方法。
-------------------------------------------------------------
*什么是Win FX?
WinFX 是Windows Vista的托管代碼編程模型,在.NET Framework上構(gòu)建并擴展之。針對現(xiàn)在的軟件(開發(fā))挑戰(zhàn),WinFX提供了新的機會來創(chuàng)建目前不能構(gòu)建的軟件和服務(wù)。它使得開發(fā)人員和設(shè)計人員能夠快速創(chuàng)建更可靠、更安全、視覺刺激更好、信息管理更智能、有著更好的互聯(lián)性和更強的協(xié)同性的新應(yīng)用和新體驗。
WinFX是.NET 2.0的擴展,說白了就是在.NET上新加入了很多API。主要增強了三塊功能:界面表現(xiàn)(WPF),企業(yè)級通訊(WCF),工作流引擎(WWF),其它的一些新特性,比如XPS、InfoCard等等
由于WinFX這個名字給開發(fā)人員造成了很多困惑,弄不清楚WinFX和Framework的關(guān)系,微軟決定將WinFx更名為.NET Framework 3.0。(責(zé)編:echo)
{{item.content}}