Borland Delphi 2005
Delphi、Delphi for .NET及C#三合一的開發工具
新推出的Delphi 2005已非單一程式語言的開發工具,包含Delphi for Win32、Delphi for
.NET及C#等三種語言,走向與Visual Studio .NET類似的「All-in-one」模式,所以它可
說是Delphi for Win32的9.0版,也是C# Builder及Delphi for .NET的2.0版。
Delphi 2005強化IDE的功能,支援TDD(Test Design Driven),並推出ECO II(Enterpri
se Code Object II);在網頁應用程式方面,增加兩個可播放音樂及動畫的Web資料感知
元件,並提供Web部署精靈;資料庫支援BDE、ADO、DBExpress、Ado.NET及BDP等資料存取
技術,並可運用.NET Repoting技術達到分散式的架構。
Borland也整合CaliberRM及StarTeam,希望強化Delphi 2005的團隊開發機制,並在Archit
ect及Enterprise版免費提供StarTeam 6.0標準版的合法授權。目前Delphi 2005的各項功
能,與Visual Studio .NET相較並不遜色,可惜仍來不及提供行動裝置應用的設計功能,
成為小小的遺憾。
可升級既有程式
在Borland舉辦的Delphi 2005發表會中,最多用戶關心的,是如何升級既有Delphi程式及
相容性問題。事實上,只要以Delphi 2005開啟過去開發的Delphi專案,即可自動升級為
最新的版本。Delphi 2005會請使用者選擇,要將專案升級為Delphi for Win32還是Delphi
for .NET。
原先Win32的程式,除了第三方廠商的程式庫未必支援外,90%以上的開發技術都可以延用
。Delphi 8移植80%的VCL至.NET平臺,Delphi 2005則百分之百實作VCL平臺,所以既有
Delphi程式升級至.NET,不會出現相容性問題。
強化IDE的機制
程式開發往往是反反覆覆的過程,回頭看程式碼,通常已經淡忘之前做了什麼改變,Delph
i 2005提供本機自動備分及程式碼管理的功能,可儲存使用者每次按「儲存」之後所記錄
下來的程式版本,「History」可檢視過去的版本,利用「Diff」功能將運用不同顏色的區塊
,幫助使用者比對程式碼版本之間的異同,也可選擇回復至特定版本。不過,「History」
是記錄個人於本機異動的版本;團隊開發的專案,仍需藉助StartTeam、Visual Source Sa
fe、CVS等工具。
Help Insights是輔助說明的功能,當滑鼠停留在程式碼的任何語法中,IDE即出現提示視
窗,簡短描述物件來源或特性,可以節省自行搜尋的時間。
過去修改程式中的變數名稱,如果逐一修改很容易遺漏;若是利用搜尋功能一次取代,又
擔心會置換掉字串中有相同字元的其他無關程式碼,導致更多的錯誤。Delphi 2005提供「Sy
nc Edit」功能,使用者可選取一段範圍的程式碼,然後點選「Sync Edit Mode」的鉛筆符
號,系統即自動解讀程式碼,相同的字串即畫藍色底線,使用者點選要修改的字串,其他
相同的字串將同時出現藍色框線,可同步修改為相同的內容。
雖然Sync Edit是很方便且安全的程式修改工具,但無法辨別不同範圍的相同字串例如不同
專案、類別或檔案,所以只適合小規模的程式碼修改,例如單一方法(Method)或單一頁
面可選取的內容,大範圍的修改需藉助重構(Refactoring)機制。
VB與Delphi的不同在於VB是直譯式語言,可一邊執行一邊編譯程式;Delphi是編譯式語言
,因此在編譯程式之前,無法了解程式語法有無錯誤。Delphi 2005的「Error Insight」
功能則補強了這個缺點,當使用者發生語法或宣告的錯誤,系統會在程式標示紅色波浪底
線,使用者按滑鼠右鍵,即可利用重構機制,由工具自動分析程式碼修正錯誤。
重構增加程式永續維護的可能
對開發人員而言,重構是很好的程式管理工具,在Delphi部分,Borland已實作Rename、De
clare Variable、Declare Field、Extract Method、Extract Resource String及Import
Namespace等6種功能;C#則實作Rename及Import Namespace等功能。
Rename不同於Sync Edit,是大範圍的修改參數或欄位名稱,將搜尋出專案中所有包含相同
名稱的檔案,由使用者逐一檢視確認需要修改的部分,再執行重構功能。如果寫程式忘記
宣告變數,Error Insight功能顯示紅色波浪底線,利用重構選擇「Declare Variable」,De
lphi 2005將根據程式的前後語法,判斷變數應該宣告的型別並自動產生。
一般開發人員寫程式,是不會詳細規畫再開始動工,因此寫了一段時間之後,發現某部分
的程式碼重複率很高,才會開始思考是否該獨立成一個方法(Method),但又擔心修改之
後反而出現無法預期的錯誤。Delphi 2005可利用「Extract Method」將一段程式碼轉換成
方法,工具將自動剖析程式碼,由使用者定義輸出/入的參數,並自動將所有用到這段程式
的部分,全部改為呼叫方法。
也許企業不在乎開發方法論或流程,不過,重構確實使開發人員更好管理程式碼,當前任
的開發人員離職,接手的新人往往不敢更動程式,利用重構可在不影響正確性的情況下,
持續改善程式碼,是很好的程式管理功能。
語言的新增
Delphi 2005語言的新增方面,無論是Delphi for .NET或Win32程式,都支援「for-in loo
p」語法,類似C#與Java的foreach語法,foreach是由微軟的C#首先推出,可以簡化集合或
陣列於迴圈往返應用的程式寫法,Delphi在這一版也實作了IEnumerator介面,目前Java陣
營在JDK 5.0也有對應的「For-Each Loop」,由於可使程式碼更為簡潔、美化,所以編譯
器可以產生更有效率的執行碼。
此外,Delphi 2005支援內行展開(In Line),可加快執行速度。過去程式碼呼叫含式,
含式執行後再回傳結果,利用內行展開編譯器剖析程式碼時,將直接執行含式的機器碼,
不過,雖然執行速度加快,但相對的也會膨脹程式碼的大小。文⊙李延華
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.161.8.75