對微軟來說,Visual Studio 2005、SQL Server 2005與Windows Vista的問世,象徵著.NET第二階段的系統架構大轉型,有了完整的系統開發平臺、更充分支援.NET開發環境的資料庫以及全新概念的作業系統,微軟可以更順利地拓展在企業資訊環境的影響力。
今年微軟在TechEd大會上揭櫫新版開發工具Visual Studio 2005的全貌,整合多種開發環境,包括ASP.NET 2.0、C# 2.0、Visual Basic 2005……等主流程式語言,並涵蓋架構設計、程式開發、系統測試、軟體專案等,讓Visual Studio搖身一變成為程式開發的萬用工具。
而SQL Server 2005也延續為資料庫加值各種應用的傳統,除了大幅改變資料庫管理與開發功能外,更加重在商業智慧上的應用,並免費提供開發工具。這種加值不加價的作法,相信會對其他廠商帶來不小衝擊。
7月底推出第一個測試版後,Windows Vista的雛型已然初具,但眾多宣稱的功能其實都還未到位,已經釋出的功能隨時都可能修改,因此TechEd關於Vista的課程,形同最新的進度展示。
雖然今年是微軟號稱的產品年,不過在資訊安全方面,嚴格說來只有ISA Server 2004中文企業版上市的消息,TechEd 2005僅約略提及Antigen防毒與Advanced Spam Manager、Advanced Spam Defense防垃圾郵件系統,資安課程的熱度明顯不如去年,但從更廣泛的資安架構擘畫與蓄勢待發的伺服器防護產品來看,顯然微軟的企圖心仍不容小覷。
綜合以上觀察,我們特別為大家整理了Visual Studio、SQL Server及Security的課程內容摘要,除了讓上過課的人可以溫故知新,沒上過課的人可以從中擷取精華。
程式開發的瑞士刀─Visual Studio 2005
微軟於本次TechEd大會兩個主軸,除了SQL 2005資料庫產品外,另一個主角便是整合開發環境Visual Studio 2005。微軟不再延用Visual Studio.NET的命名,改為與作業系統以年份為版本名稱相同方式,但.NET仍然是微軟所有系列產品的重心。此次改版不僅接續Visual Studio.NET 2003的功能,微軟更強調開整合發環境平臺化,以滿足開發人員設計企業級應用系統的需求,例如開發效率、軟體品質,以及開發團隊的協同作業,並彈性地延伸到第三方的應用工具等。這是微軟在大會不斷宣導的說法,不過,浸淫程式開發多年的老手應知道,目前微軟在Visual Studio 2005開發工具所內建的新功能,其競爭對手,也就是開放原始碼的整合開發環境Eclipse已都具備,只是其延伸功能的方式採用外掛(plug-in)。
.NET Framework 2.0相容性問題依舊
.NET Framework由1.×提升至2.0版,主要改進重點在兩個層面,分別是函式庫中(Base Class Library,BCL)新增功能,例如序列埠控制(SerialPort)、串流壓縮、與強式資源 (strongly typed resources)等;以及增強的功能,包括Console、Threading、Diagnostics、Networking等。講師對Console這個新功能讚不絕口,現場還展示了一個用Console介面寫的打小蜜蜂遊戲,對於常藉著遊戲舒解壓力的開發人員或已習慣3D影音眩目效果的玩家,則是發出會心一笑。
防呆的ASP.NET 2.0新功能
改版後的微軟 Visual Studio 2005已轉變為ASP.NET量身訂作的編輯器,除了新增控制項與類別,加速網頁開發以外,為了因應網頁應用程式的開發,採用更安全的加密機制。不過,這也表示採用ASP.NET開發企業網站,就必須購買Visual Studio 2005了。
ASP.NET 2.0改進重點如下所述:IntelliSense、XHTML標準、Master Page功能、網站巡覽工具、使用者登入控制項、資料來源控制項與資料鍊結控制項、網站設定管理工具等。
開發工具平臺化:VS 2005 Team Fundation Server
微軟在開發工具中導入Team Fundation Server,主要用於協同運作的環境。目前企業在軟體開發所面對的問題,包括溝通、整合、單一工具、軟體專案控管等問題,特別是面對軟體外包,但又需要配合客戶交付階段時程產出物的品質,以及開發團隊需要在單一工具整合第三方的工具,或甚至客製化出符合企業本身需求的開發環境等。程式開發的瑞士刀─Visual Studio 2005
微軟於本次TechEd大會兩個主軸,除了SQL 2005資料庫產品外,另一個主角便是整合開發環境Visual Studio 2005。
微軟不再延用Visual Studio.NET的命名,改為與作業系統以年份為版本名稱相同方式,但.NET仍然是微軟所有系列產品的重心。此次改版不僅接續Visual Studio.NET 2003的功能,微軟更強調開整合發環境平臺化,以滿足開發人員設計企業級應用系統的需求,例如開發效率、軟體品質,以及開發團隊的協同作業,並彈性地延伸到第三方的應用工具等。這是微軟在大會不斷宣導的說法,不過,浸淫程式開發多年的老手應知道,目前微軟在Visual Studio 2005開發工具所內建的新功能,其競爭對手,也就是開放原始碼的整合開發環境Eclipse已都具備,只是其延伸功能的方式採用外掛(plug-in)。Eclipse深受開發人員喜愛的不僅在於媲美企業級應用的功能,而且是免費的。
微軟將於今年12月13日發表正式版本,相信在場聽眾的心中充滿期盼,只是這些期望是叫好多,還是叫座多,我們可以在正式版發表當天得到解答。參與這一系列課程後,不可否認地,微軟將此工具描述地盡善盡美,如同在Visual Studio.NET 2003中所表達的相似,聽眾對於新功能莫不以點頭如搗蒜的方式回應,現場也常可以聽到驚呼或讚同的聲音,但會中動心、會後無力是與會者共通的感受。當然,如同往常的戲碼,還是存在些許的批評聲浪,成為大會中花絮。
透過TechEd大會,我們可以從以下7種角度省視全新的Visual Studio 2005:
●Visual Studio 2005 Team System
●.NET Framework 2.0
●ASP.NET 2.0
●C# 2.0
●Visual Basic 2005
●Visual Studio 2005 Team
Fundation Server
●Web應用程式除錯工具
版本分歧、難以選擇的VS 2005產品
此次Visual Studio產品分類方式與前一版有所差異,特別在於最高階的版本改成了Team System,取代以往的企業架構版。雖然版本不同,但訴求對象仍在企業用戶。由於目前企業中開發軟體已不僅只於撰寫程式碼而已,而是講究方法論與團隊協同合作,微軟為契合這個主流趨勢,推出Visual Studio 2005 Team System,其定位在軟體開發生命周期管理工具,可在單一工具中結合架構設計、程式開發、軟體測試等三種角色,並藉由微軟 Visual Studio 2005 Team Fundation Server,使得成員在整個開發周期中緊密地協同作業,建立高品質的企業級應用軟體。相信許多程式開發人員跟我一樣,對於Team System這個產品會是一頭霧水,微軟為了清楚解釋這個新設計,特別安排管理軟體開發生命周期與協同運作等兩個場次。
自由使用的VS 2005精簡版
Visual Studio 2005與前一版相異之處,在於提供4種版本,分別為精簡版(Express)、標準版(Standard)、專業版(Professional)、團隊協同運作版(Team System)。面對競爭對手Eclipse在開發工具市場攻城掠地、銳不可擋的趨勢,微軟特別將精簡版放置於網路供下載使用,讓初學者“自由”運用。這個場次的講師則提到,到底會不會收費,要詢問過行銷負責人才能確定。至於所謂的初學者主要是學生,或者白話地說,就是那些對微軟開發工具嘗鮮的人,但又買不起的用戶,給予一個市場行銷的吸引力。高階的團隊協同運作版由4種用戶端產品以及1個伺服器端產品所組成的,使得整個系列產品令人眼花撩亂,不過其價格應該也會讓企業用戶瞠目結舌。團隊協同運作版則是全新的設計,以符合企業中大型開發團隊的需求。
精簡版產品內容包括Visual Basic 2005、Visual C# 2005、Visual C++ 2005、Visual J# 2005、Visual Web Developer 2005等5種程式語言精簡版本。標準版則定位為專業人員使用的入門開發工具,讓開發人員可以藉由.NET Framework建立用戶端/伺服器(client/server)應用程式,微軟將使用群鎖定在Visual Basic 6與網頁應用程式等的開發人員,並強調這是成本與效能比值(C/P)最高的工具。專業版的使用對象主要在個人工作室、專業顧問或小型的開發團隊,用於建立關鍵性任務、多層次架構的應用系統,並且涵蓋智慧型用戶端、網頁應用程式與行動周邊應用程式等。
架構涵概完整的軟體開發週期
微軟針對軟體開發週期,在整合開發環境中實現完整的方法論(methodology),使得開發團隊在明確的工作流程指引下,建立高品質的軟體。目前,微軟在Team System的解決方案架構(Microsoft Solutions Framework,MSF)中,提供兩種軟體開發流程範本:MSF for CMMI Process Improvement與MSF for Agile Software Development。前者是藉由合作策略,導入美國卡內基美隆軟體工程學院所制定的能力整合成熟度(CMMI)流程指導規範,適用於導入CMMI標準的企業使用。後者則應用於敏捷軟體開發程序(Agile Software Development),適用於開發團隊增強反覆性軟體發展的功能的設計模型。有了方法論後,以往架構、程式碼、測試、工作流程、角色等各自為政所造成的問題,將有效地控制與處理。
微軟將開發工具延展到軟體開發週期後,對軟體專案管理人員是好消息,因為有量身訂作的控管工具可以使用,只是,要先花時間學會這套龐大且複雜的工具。許多人像我一樣,雖然學過專案管理,也才剛學會制度化的管理結合應用工具,如MS Project,現在又要學另一個工具。至於程式開發人員則不然,因為他們無法再滑頭。
雖然微軟在開發工具實作方法論,其立意良善,但是否適用於臺灣以中小企業為主的商業市場,仍有待觀望,況且,中小型企業主要以人治為主,對於科學化的管理與方法,其接受度仍需要時間習慣。.NET Framework 2.0相容性問題依舊
.NET Framework由1.×提升至2.0版,主要改進重點在兩個層面,分別是函式庫中(Base Class Library,BCL)新增功能,例如序列埠控制(SerialPort)、串流壓縮、與強式資源 (strongly typed resources)等;以及增強的功能,包括Console、Threading、Diagnostics、Networking等。講師對Console這個新功能讚不絕口,現場還展示了一個用Console介面寫的打小蜜蜂遊戲,對於常藉著遊戲舒解壓力的開發人員或已習慣3D影音眩目效果的玩家,則是發出會心一笑。
64位元環境遠端部署與偵錯
除了上述新增的函式庫與功能,.NET Framework 2.0更注重軟體的執行效率、安全性新功能,以及對64位元開發環境的支援等,簡介如下:
Generics:第一次聽到是在C#2.0的場次,覺得很新奇,在這一場又聽到此功能,反而有點分不清楚,不過既然.NET Framework都支援了,C#2.0當然也會支援。
偵錯新功能:微軟稱呼這個偵錯功能為ENC,是Edit and Continue的縮寫,其用途在於讓開發人員於編譯時就能修改程式碼,不必在每次修改細部時,等待系統編譯整個程式。可是ENC僅支援C#與VB兩種程式語言,並且只支援Windows Form,也就是尚未支援ASP.NET。現場與會者小聲說道,早就應該有這個功能。
64位元的支援:Visual Studio 2005是一個32位元應用程式,雖然使用者可以開發、偵錯、佈署32位元或64位元的應用程式,但尚無法直接在64位元環境下開發軟體,而是在32位元環境下開發完成後,再部署至64位元的系統中,並藉由遠端的方式偵錯達成,所以講師逗趣地說道,遠端偵錯功能終於派上用場了。
搭配Framework版本解決相容性問題
程式開發人員相當關注.NET Framework由1.×提升到2.0版的相容性問題,因為此關係著新舊系統是否必須重寫程式碼的議題,微軟在2.0版所提供的處理方式如下:
Side-by-Side(S×S)功能:簡單地說明,也就是讓應用程式在其所建置的.NET Framework版本上執行,例如原本在1.×上建立的軟體,便搭配1.×的.NET Framework執行環境,同理類推到2.0版。
向後相容:在舊版的.NET Framework開發的應用程式可以在新版的.NET Framework中執行,例如1.1版的軟體可以在2.0版中正確地運作。向前相容:在某一版本.NET Framework所建立的應用程式可以在舊版的.NET Framework中執行,但侷限在1.1版,2.0版尚未完全支援。微軟建議的最佳佈署策略是,確保安裝程式和應用程式都在同一個版本的.NET Framework下執行,降低版本控管的複雜性。
不過,程式開發人員還是有些許無所適從。因為從.NET Framework 1.×版到2.0版,持續的升級雖然可以帶來效能的精進,但相容性變成燙手山芋,況且升級過程中間還包括beta版,以至於課堂後半段針對.NET Framework 1.×版到2.0版中應用程式開發與執行的相容問題,特別細部地說明。不過,聽完後還是覺得丈二金剛摸不著頭緒,遑論在企業多層次架構下的應用程式,相容性問題將更難以處理。防呆的ASP.NET 2.0新功能
改版後的微軟 Visual Studio 2005已轉變為ASP.NET量身訂作的編輯器,除了新增控制項與類別,加速網頁開發以外,為了因應網頁應用程式的開發,採用更安全的加密機制。不過,這也表示採用ASP.NET開發企業網站,就必須購買Visual Studio 2005了。
建議遵循XHTML標準
ASP.NET 2.0改進重點如下所述:IntelliSense、XHTML標準、Master Page功能、網站巡覽工具、使用者登入控制項、資料來源控制項與資料鍊結控制項、網站設定管理工具等,對於寫過ASP網頁的設計師而言,這些新功能越來越像是防呆用的。不過仔細思考一下,ASP.NET 2.0建議遵循XHTML標準,所以由舊版的ASP網站升級到ASP.NET 2.0將會面對許多問題,現場講師僅說明由ASP.NET 1.0轉移到2.0版過程中極為順利。
此系列另一場次便針對由1.0版轉移到2.0版的議題做探討,雖然優點是不需要升級作業系統,不過表單驗證、保留字與命名衝突等,還是得花心思處理,除非1.×版的網頁程式遵循嚴謹的標準,在轉移過程中問題最低,只是現場的聽眾具備這樣功力的應不多,否則就不需要來聽這個議題了。況且,棘手不僅只於此,如果使用Visual Studio 2005來轉移網站專案檔,首先一定要知道,這過程是不可逆的,聽到莫不令人倒抽一口冷氣。接下來是,不需要專案檔,以及檔案目錄也更動,原本存放程式碼的目錄將會清空,因為新版已經不再使用單一的code-behind assembly,微軟認為這些是優點,不過對動作“敏捷”的網頁開發人員應該會嚇出一身冷汗。
鬧鐘聲中帶出C# 2.0新功能
微軟在Visual Studio開發環境主力推廣的兩種程式語言,除了Visual Basic外(另一場的講師提到,Visual Basic是微軟老闆Bill Gates發明的,只要他還在,這個語言就不會在市場消失。相信在場學其它語言的聽眾應有一股想轉到Visual Basic的衝動),另一個就是具備物件導向特性的C#。由於C#語言發展已漸趨完整,2.0新增的功能包括Anonymous methods不具名方法與Iterators遞迭器,主要如下所述:
Generics:Generics稱為泛型,指的是在型別中加入參數,減少執行時期(runtime)錯誤,特別是開發人員在設計程式的過程中所產生的邏輯錯誤,這類錯誤常在運作的過程才浮現,而非編譯時經由偵錯方式察覺。.NET Framework 2.0新增泛型功能後,程式碼中的型別因為不需要進行boxing,使得編譯的效能提昇,程式碼也更簡潔。
Partial types:稱為部份型態可以將類別拆成多個部份類別,並由不同的開發人員分別撰寫,增進開發效率,但在程式編譯時,編譯工具會將這些部份類別視為單一類別處理。
現場的曹山講師本身在資策會授課,習慣掌控議程的時間,所以使用鬧鐘定時提醒自己演講的流程,也讓現場增添許多不同的聲音。
Visual Basic 2005老工具與新生命
新版的Visual Basic除了支援更完整的物件導向設計,也使用.NET Framework,並新增泛型功能,用於開發網頁應用程式、用戶端、行動周邊等應用程式。Visual Basic 2005除了延續容易學習的特點以外,也朝向更高階的程式語言發展方向。雖然微軟大老闆Bill Gates是Visual Basic的愛用者,不過這場的講師將大部份的時間都在展示新功能所需的程式碼,以至於氣氛有些枯燥。
舊版的API「Me」改為「My」
Visual Basic 2005中不再使用Me,而改用My這個新的API,其架構層級包括以下的部分:My.Application、My.Computer、My.User、My.Forms、My.WebServices、My.Resources、My.Settings等。
新增Generics、Partial Type、Snippets功能與XML文件製作
Visual Basic 2005新增功能包括:Generics、Partial Type、XML文件註解等。Generics是第3次聽到這個功能,前兩次在.NET Framework與C#的場次。Partial Type則是第2次,前一次在C#場次。其重覆性的功能表示,儘管程式開發語言眾多,不論是.NET或Java,功能與語法都越來越雷同,所以初學者依興趣學習即可,畢竟是工具,講究實用而不是名氣。
講師則推崇XML文件註解強化文件製作功能,說明檔使用XML語法,輸入‘‘‘(連續3個單引號)就可以啟動XML註解功能。這讓Visual Basic的程式開發人員也可以更便利地註解程式碼,講師笑稱,這根本就是為開發人員應付主管要求撰寫使用手冊,而量身訂作的功能。開發工具平臺化:VS 2005 Team Fundation Server
微軟在開發工具中導入Team Fundation Server,主要用於協同運作的環境。目前企業在軟體開發所面對的問題,包括溝通、整合、單一工具、軟體專案控管等問題,特別是面對軟體外包,但又需要配合客戶交付階段時程產出物的品質,以及開發團隊需要在單一工具整合第三方的工具,或甚至客製化出符合企業本身需求的開發環境等。舊版無法滿足這類需求。這個議程內容很艱澀,更何況是全新的產品,不過值得一提的是,講師李宗達來頭不小,因為連微軟開發工具暨平臺推廣處產品經理胡德民都親自簡介。李宗達先生擁有30張以上資訊證照,當然包辦微軟全系列,以及公認難以取得的Rational證照,他本身也兼任IBM首席顧問,還好微軟與IBM已策略聯盟,不過受到兩大軟體龍頭廠商的青睞,更能顯示這位講師不凡的身價。
兼具彈性與擴充性的服務平臺
Team Fundation Server不僅是個服務平臺,微軟採用協同運作連接器(Collaboration Hub)形容這個平臺,並具備中央儲存庫(Central Repository),使得開發專案中所有工作項目、角色、流程等,不僅緊密結合,更可以控管。它也提供服務導向架構(SOA)所需要的模型,以及作為擴充功能用的整合平臺。
軟體專案的中央控管中心
Team Fundation Server作為軟體專案的管理平臺,主要具備5大功能:
工作項目的追蹤:增進開發過程的品質,工作項目除了可以藉由Visual Studio開發工具外,也支援微軟 Project或Excel等用戶端工具控管。版本控管:藉由中央儲存庫處理控管程式碼版本,確保運作元件間的關聯。專案管理:協同作業的中心,可整合微軟 Project等,細部規畫任務與排程。企業級的自動組建程式:具備MSBuild組建工具,使得開發團隊能每天組建程式,以確保產出的完整性。報表:視覺化呈現目前的狀態,供管理員輔助決策用,Team Fundation Server所支援的報表包括SQL Server Reporting Services與Crystal Reports等。
新奇的Web應用程式除錯工具
Web應用程式除錯對於開發企業級Web應用程式的設計師而言,越來越重要,這裡的除錯並不是指開發過程的除錯(debug),而是程式部署後並在運作過程中所產生的錯誤。許多錯誤的產生因為用戶端環境的複雜,使得除錯更加困難。例如應用程式因為等待資料庫回應,但資料庫資源卻又被另外的應用程式執行緒佔滿記憶體空間而無法回應,此時用戶端雖產生例外事件,但設計者未適當地在程式中加入對例外事件的處理,將造成程式錯誤等。許多時候,Web應用程式的錯誤造成Windows IIS這個應用程式平臺崩潰(Crash),造成使用者誤以為IIS先天設計不良所導致的。
這一場很令人意外地,也造成爆滿的現況,Web應用程式除錯屬於較不受重視的領域,在小型的開發團隊也都未配置專屬的工程師。不過,相對於其它場次的議題,這一場卻讓我收穫豐富,但如果具備作業系統基礎知識,對這次的議題應不會感到驚訝。只是微軟所安排這個場次,卻也提醒許多程式開發人員,不但要熟稔程式語言,還要對作業系統有基本認識,才是優秀的程式設計師,但領的薪水還是一樣。
Crash、Hang、Leak三種主要Web應用程式的錯誤
許多人並不知道所謂的當機包括三種主要起因:Crash、Hang、Leak,而且有趣的是,當機的“加害者”與“受害者”是不同的程式,所以負責除錯的人如同電視影集CSI犯罪現場的偵查員一般,要具備抽絲剝繭的通天本領。
Crash起源於應用程式產生例外時,卻未在程式中適當地處理,而導致執行環境崩潰。Crash症狀通常可在事件檢視器中看到的這類事件。另一個導致Crash的是Heap。Heap指的是一個資料結構,使用時必須遵守相關規則,當違反規則時就會發生Heap毀損,並造成Crash。毀損Heap的程式通常不是受到影響的程式,例如A程式損毀Heap,卻造成B程式Crash。
Hang的起因包括錯誤的設計要求或是邏輯,造成陷入無窮迴圈的 thread,消耗大量的CPU運算資源,或沒有使用任何 CPU 資源的 thread,例如等待被鎖定的資源、資料庫/Web Service/網路回傳資料等,以及不良的使用locks造成blocked threads,甚至在應用程式中使用多重locks造成所謂的deadlock等。
Leak則是伺服器將應用程式載入快取記憶體中執行,但設計不佳的應用程式不斷使用記憶體,造成快速消耗,以及使用完畢後未釋出相關的資源。
Web 應用程式除錯困難重重
Web應用程式通常包括來自微軟、設計人員自行開發與獨立開發廠商的元件,讓找出應用時錯誤的根本原因其實非常困難,因為難以判斷交互影響的起因,但微軟在新版的作業系統中提供了除錯工具:Debug Diagnostics ,用延伸的模式來擷取並分析常見的除錯情境與原因,使程式開發人員在錯誤中學習處理,改進後續程式開發的品質。
大會花絮
此次微軟 TechEd 2005大會針對程式開發分場研討會準備400人座位的場地,但三天議程的每一場次均爆滿,突顯資訊人員在開發工具的關注,但在技術對談的過程中,微軟開發工具的使用者也提出抱怨,對於不斷改版的方式顯得無所適從,雖然微軟宣稱改版後的效能更精進,但與會者卻反應著不同的觀點,認為改版的方向已失焦。與會者在休息時段閒聊時,反而抱怨越來越不瞭解SQL版本更新的意義。
我們從歷次的開發工具改版中,確實發覺新版讓撰寫程式碼的工作降低,並著重架構規畫與團隊合作,可是這卻表示程式開發人員個人的努力成效將隱沒在團隊中,縱使努力撰寫程式也不容易獲得讚賞,但對於經年撰寫程式碼的開發人員,讚賞是必要的鼓勵,只是面對越來越便利的開發工具,這些人將面對未來重新規畫工作生涯的困境。有先見之明者已朝向系統架構師方向發展,例如取得MCSD認證,或轉向專案管理人員,例如取得PMP證照等,以因應更多的挑戰,並持續在資訊領域中佔有一席之地。文⊙張瑞隆
熱門新聞
2026-01-12
2026-01-12
2026-01-12
2026-01-12
2026-01-12