.NET重新定位程式設計師的角色

代號Whidbey的Visual Studio 2005,預計在明年夏天正式推出,可分為Express、Standard及VSTS(Visual Studio Team System)三種版本。VSTS又可分為White Horse及Burton兩種版本,Burton是緣自於歐洲一個燈塔的名字,是微軟歐洲團隊的創意。

在TechEd 2004上展示的功能仍然令學員感到驚豔。C#是.NET最原生也最優雅的語言,不過,微軟並沒有忘記照顧VB族群的需求,過去VB提供的ENC及即時運算視窗功能,均已實作在CLR 2.0中,比爾蓋茲曾說過:「I’m a Basic Developer!」臺灣微軟資深講師林煌章表示:「衝著這句話就應該了解VB永不消失。」筆者認為與其說VB永不消失,不如說VB的精神不死。

許薰尹的簡報列出滿滿的新功能與創新技術,並打趣地表示:「Visual Studio 2005提供太多的新功能,大家又要開始學新的技術了。」然而後續介紹的內容,卻不令人感到有任何學習上的壓力,因為大部分的功能,都是為了簡化及加速程式開發而設計,反而覺得以後開發應用程式將會愈來愈簡單。程式重構及My物件令人驚豔

.NET Framework 2.0將支援64位元運算、泛型(Generics)、增強基礎類別庫、強化語言能力並提升效能。泛型建立強型別物件的好處,是編譯時期檢查型別,可減少執行時期錯誤,由於不用轉型所以可以提升效能,建立強型別的集合則可減少類似的程式碼。

另一個令人矚目的功能,是Visual Studio 2005中C#提供程式重構(Code Refactor)的機制。程式開發之初,若沒有考慮周延,未來程式的延展性將受到限制,然而要調整程式架構滋事體大,往往已經為時已晚。利用程式重構功能,可協助開發人員封裝欄位、重新排列Method中傳遞參數的順序,甚至移除參數或重新命名,只要經過設定重構機制將自動調整相關聯的程式碼,將可解決程式碼重組的問題,有利於最佳化系統的品質,並縮短程式開發的時程。

VB.NET也不會讓C#專美於前,新增「My」物件命名空間,是存取.NET Framework的捷徑,包括Application、Computer、User、Resources、Settings、Forms及WebServices等類別。Application可存取應用程式名稱、版本、記錄及描述等資訊;Computer可簡單地控制登錄資訊、印表機、音效及檔案系統;User包括使用者名稱、群組及網域等內容;Resources可存取專案中的圖示、圖檔等資訊;Settings則是應用程式及使用者層級的設定;Forms可呼叫專案中的所有表單;WebServices可取得專案中所參考的Web Services。軟體生命周期管理

Visual Studio 2005開發工具最顯著的改變,就是推出VSTS(Visual Studio Team System)。同樣是開發工具廠商的Borland,耕耘ALM(Application Life Cycle)已數年,在Borland大力推動它的ALM(Application Life Management)甜甜圈標示時,Visual Studio .NET 2003還在與Rational合作,才能提供相關功能的階段。

終於在Visual Studio 2005的White Horse有了塑模的影子;Burton更描繪出軟體生命周期管理的完整藍圖。在White Horse版本中,Visual Studio內建Class Designer,可視覺化的設計程式架構、類別、列舉(Instance)及介面,同時產生程式碼框架,當程式碼改變或調整模型時,也提供雙向同步的機制,不需要任何轉換的步驟。減少寫程式的功臣-Smart Tasks、Snippet

在Visual Studio 2005中,控制項多了Smart Tasks小功能,會顯示控制項常用的屬性或設定,以視覺化的操作介面取代撰寫程式碼,可更直覺的設定控制項的行為。

至於常用的檔案存取、身分證字號的驗證等常用的功能,Visual Studio2005提供500多個程式碼片斷(Code Snippet),並依類型顯示,只要選擇插入程式碼功能,即可挑選需要的程式,不必再重新造輪。開發人員也可自訂加入常用的程式碼片斷,將大幅減少類似功能的程式開發工作。

VB好用的功能將一一重現江湖
微軟在TechEd 2004強打「Intellisense Everywhere」的口號,Intellisense功能就是開發人員熟悉的只要在程式碼中按「.」,即自動顯示物件或類別可以叫用的屬性、方法、類別或參數等。雖然目前Beta1的版本尚未做到全面的Intellisense,至少ASP.NET的Skin功能,就沒有Intellisense功能,但從展示的範例可以看到,除了一般的程式碼,HTML、CSS、ASP.NET及Web.Config檔均具Intellisense功能。未來開發人員將不再需要記憶繁瑣的資訊,且減少輸入錯誤導致的臭蟲。

目前只有Visual Basic Windows專案,才支援的ENC(Edit and Continue)功能,讓VB的開發人員可延續過去的習慣,在不停止執行程式的情況下,以中斷模式修改程式碼,然後繼續執行。只有在移除欄位或方法、變更泛型類別或序列化將無法識別新的欄位時,必須重新執行。

VB 6.0好用的即時運算視窗,在Visual Studio 2005也重現江湖,可在設計及中斷時期使用,並具Intellisense能力。例外處理的協助(Exception Helper)可快速修正程式中未處理的例外,並提供詳細的錯誤資訊。追蹤點(Tracepoint)等於是追蹤加上中斷點的功能,執行到追蹤點可以列印訊息或執行巨集。

Web開發與資料存取的變革
ASP.NET 2.0的變化很大,內建ASP.NET Web Server,所以以後不再需要安裝IIS,即可開發ASP.NET程式,並增加超過40個ASP.NET伺服器控制項,可減少70%的程式碼。

ADO.NET 2.0搭配SQL Server 2005增加許多物件命名空間,並整合SQL Server,相較於過去的T-SQL,利用.NET撰寫預存程序(Stored Procedure)再編譯成組件,可將把.NET程式開發的能力帶到SQL Server。資料存取的創新方面,過去當使用者在瀏覽資料時,如果資料庫的內容被更動,看到的便是舊的資料,因此必須每隔幾秒重新擷取資料,全新的SqlDependancy及SqlNotificationRequest,搭配SQL Server 2005的話,將具有主動通知的機制,只要資料庫的資料有異動,系統便主動通知用戶端。

Windows Form的部署過去必須修改系統登錄檔(Registry),.NET Framework 2.0的No-Touch部署策略,將提供全新的「ClickOnce」機制,將把Web應用程式的部署經驗帶到Windows Form。ClickOnce將自動建置及封裝應用程式所需的組件檔,開發人員不用擔心中斷既有的功能,即可發布及安裝Windows程式。

程式設定師的隱憂
在一連串的展示中,可以看到及聽到許多學員對Visual Studio 2005簡化程式開發的讚嘆,未來的程式開發將是輕鬆的工作,程式設計師的工作將被重新定位為程式設「定」師,只要善用工具,即可完成大部份的工作。但也聽到另一種聲音「那要我做什麼?」

許薰尹強調的是:「還是要有看懂程式的能力。」工具產生的程式碼,還是必須套用符合需求的條件。關於工具的演進,其實.NET及Java都走向簡易開發的趨勢,用意是希望開發人員有更多的時間專注在解決商業邏輯問題,並學習更深入的程式開發技巧,例如演算法、設計模式、塑模、MDA等,以提升應用程式的品質。

然而殘酷的事實,是企業未必會讓開發人員運用多出來的時間,學習深入的知識,更可能的發展反而是接更多的專案,以賺取更多的利潤。然而能力退化的隱憂,反應在系統的品質及開發人員的價值。昇陽教育訓練中心經理王森曾打趣地表示:「這是國力的掏空。」也許對岸中國大陸已經意識到這個隱憂,所以傾向禁止簡易化的發展,仍然強調底層技術的重要性。開發人員若要塑造不可取代的價值,應深思「那要我做什麼?」這個問題。文⊙李延華

熱門新聞

Advertisement