程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 全面剖析Delphi 2006新增特性

全面剖析Delphi 2006新增特性

編輯:Delphi

一直以來,Borland公司與其它軟件供應商之間明顯區別的地方在於其注重實用的方式-為今天的開發人員提供最恰當的極具競爭性的開發工具,而同時引導他們了解未來即將使用的新技術,並使其堅信自己的開發投資會保證會在未來的相關性,可適應性和可擴展性方面立於不敗之地。

本文從一個Delphi開發者角度,對這個最新發行的產品作全面的入門性介紹。其中涉及到橫跨Delphi,C++和C#等語言的一些特性,但只專注於介紹Delphi的開發能力。

Delphi 2006是Delphi的第十個版本,是Borland的旗艦快速應用程序開發(RAD)環境,並且秉承了Delphi的RAD傳統而為軟件開發者在許多方面作出了重大擴展。

一、 新特性

現在,Delphi 2006被認為是Borland Developer Studio(BDS)產品集合的一部分;整個產品包括Delphi 2006,C++Builder 2006和C#Builder 2006(獨立銷售),而且每個部分僅因版本(專業版,企業版和架構版)的不同而對另外其它語言提供不同程度的支持能力。在此,我們想集中探討Delphi 2006架構版本所提供的能力。由圖1可以看出,整套產品共有四個不同的語言"個性"。

圖1:Delphi 2006的"個性"

(一) 個性

由於許多組織已經在運行大量的各種的軟件應用程序和軟件服務,所以他們常常更注重於完美的業務功能,重用現有的、書寫良好的和已經被證實可用的系統,而不是僅為了使用最新技術而進行"割裂和替換"——只有極少數的公司能夠承擔這樣的冒險。而這正是Delphi 2006的優勢之一,由圖2所示,作為一種不同工程類型的混合,它可以經常地被應用於一種多方面構成的商業系統開發當中。

圖2:Delphi 2006工程組的靈活性

正如你在圖2中所見,我們有一組包含某種設備(例如生產,銀行設備或數據饋送)的接口的Win32 C++ DLL,我們也有一個Delphi Win32應用程序——在此是一個多層的數據快照程序;它能夠實現與C++ DLL的接口並把信息持續到一種數據庫;然後實現Web存取,由一個C#的ASP.NET工程完成這一系列功能。作為一組軟件工程,所有這些工程能夠用單個的Delphi 2006工程組進行開發和管理。

這使得Delphi 2006開發者能夠靈活地利用各種類型的開發機會。如下面圖3所示,你可以看到其中所提供的相當寬的范圍。

圖3:Delphi 2006架構

在Delphi 2006中引入了許多針對不同層次的新特征,從高級的應用程序生命周期管理(ALM)到低級別的編碼增強。在這個新版本中,Borland還對性能和響應性表示出特別的關注,這可以由IDE所提供的一種更新版的內存管理器來幫助支持和增強。我將在後面詳細講述這些新特征。而且,IDE的啟動速度也有一定改善,通過選擇僅安裝某種語言可以進一步縮短啟動時間。事實上,這只是一個簡單的命令行"-p"參數的使用。例如"-p DelphiDotNet"只裝載Delphi.NET部分,而且這樣的快捷方式可以被添加到"開始"菜單中作為BDS安裝相應語言的一部分。

(二) 提高開發效率

一些新特征非常有趣,簡直為開發者提供了分鐘級上的優勢來改進其編碼水平。這也是Delphi 2006所不可少的一部分。這些新特征包括:

1. 塊完成

如果你僅了解IDE能夠為你輸入的"begin"和"end"。那麼,這一功能可能加速你的編碼。

2. 改變欄

如圖4所示,這種特征准確即時地指示已經保存了哪幾行代碼以及自從上次你保存文件以來你已經插入或改變了哪幾行。

圖4:沿著左邊的改變欄中,你可以清晰地看到自從上次保存以來作了哪些改變。

3. 重構

如果僅想改進其設計而不是改變其行為,那麼重構提供了一種方式,使我們能夠自動地改變源代碼。Delphi 2006在引入Delphi 2005重構引擎的基礎上,又加入了一些新的重構特征,例如引入變量,引入字段,內聯變量,安全刪除,我最喜歡的一項功能是改變參數(如圖5所示)。為了加入新的可用的重構功能,你可以從模型視圖中使用Together重構。

圖5:Delphi 2006中新的"Change Parameters"重構

4. 實時模板

Delphi 2006的一項新增功能是,新的上下文敏感和動態的實時模板。這會在一段時間內成為Delphi以前所使用的Code Snippets和Code Templates的一個極有價值的替代(順便說一下,ctrl+J組合鍵還可以用於即時地激活實時模板。)。隨著各種常用模板的使用,開發者還可以自由地復制,擴展、改變或添加你自己的新模板。每個模板都以XML文件格式存儲在objrepos\code_templates文件夾下,而且針對每個語言類型都有一個相應的子文件夾。模板或者被自動地完成,或被經由CodeInsights機制從代碼編輯器中提供給開發者,見於圖6。

圖6:實時的模板選擇

模板可以自動幫助開發者整理代碼結構。從圖7中看到各種"for"循環模板是如何提供的。

圖7:實時的模板能夠實現不僅僅是插入代碼的功能

一旦你選擇了一個模板,那麼它不會停下來僅把相應代碼輸入到代碼編輯器中,而這正是"實時"之所在。在一個模板的執行期間,"stop points"提供給開發者機會(諸如上下文重構操作以及其它基於該模板xml代碼中的子腳本的活動內容)來與模板一起工作以影響模板執行結果。

(三) 包圍

現在,當你選擇一塊代碼時,你可以右擊鼠標並從加速菜單中選擇"surround"選項。這將為你提供如圖8所示的一些選項。所以,現在你可以快速地添加你的代碼所包括的條件和循環結構。

圖8:Surround選項

(四) 調試器

Delphi小組在調試器設計上做出了偉大的貢獻,他們所實現的直觀性能夠使開發者無論在哪個環節上都是快速而容易地實現特定功能。調試功能的改進包括提供可擴充的視圖和使更多的信息出現在調試檢查的每一級上。正如你從圖9中所見,有多種方式來使用可展開的信息,如內嵌的可展開的工具提示,可展開的局部變量和觀察窗。這樣就提供了最方便的方式來直接觀察程序員所關心點的數據值。

圖9:調試過程中內嵌的可展開的工具提示,局部變量和觀察窗

另外一些新的顯著的調試特征包括,對於可用的CUP細節視圖上的改進,這樣以來,你就可以選擇多項並把它們復制到剪貼板中。另外,現在的遠程調試也可用於本機Win32應用程序,托管應用程序和ASP.NET應用程序方面。

(五) 數據庫

持續性是幾乎所有的商業軟件開發的一個極為重要的部分,Delphi 2006繼續改進對於Borland開發者所喜愛的主流企業數據庫服務器的支持。另外,還提供給開發者一種一致的完全功能的,然而卻是本地的對於不同數據庫的存取。

對於Win32開發者來說,增加了一項他們所喜歡的功能:dbExpress現在被完整地集成到數據庫資源管理器中。

從.NET角度來看,完整的連接池功能被添加到Borland Data Providers(BDP),這大大提高了應用程序性能,特別是那些服務於來自於多個客戶端,例如ASP.NET Web應用程序,的許多請求的應用程序。現在你可以使用連接池來減少連接時間,這可以使用一個現有的池中的連接來實現。從圖10中你可以看出,在"Connections Editor"對話框中出現可用的數據庫連接池選項。

圖10:在連接編輯器中的BDP連接池選項

(六) Delphi中的Together

Delphi 2006最激動人心的新增功能之一是,它包含了一種完全符合標准的UML 1.5和UML 2.0 Together建模能力。這一功能的優點是它可適用於所有的開發者。

隨著核心Together引擎被重新編寫以確保無縫集成的響應性能,LiveSource能夠對現有代碼提供一種刷新視圖,並且能夠使你觀察和改變該視圖中的代碼以及通過改變設計來創建代碼。我們感興趣的幾個方面有:圖類型,設計模式,審計,標准與文檔生成。隨著Together的集成還出現一些新內容,例如很好地提供代碼編輯器重構功能的模型重構。

圖11顯示了一段代碼及其相應描述,該代碼已經准備好從模型視圖中進行改變和調整。隨著你改變圖形,代碼也隨著改變;而隨著你改變代碼,該圖形重構該代碼。

圖11:工作中的LiveSource

1. 圖類型

在Delphi 2005中對於UML圖類型的支持也被一步增強,現在可用的一些圖和結構有:類圖,用例圖,序列圖,協作圖,狀態表圖,活動圖,組件圖,發布圖,類,接口,結構,枚舉,代理,命名空間,對象,約束和結點。圖12中顯示了你現在可以在"Add New Diagram"對話框中使用的UML圖類型。

圖12:Delphi 2006 UML圖類型

2. 設計模式

通過多年的使用強面向對象的語言和基於組件的開發,Delphi開發者經常能夠達到最高層次的重用目標。由於系統中包括了一個已裝配有最常用的工業設計模式的設計模式倉庫,所以重用級別可以被進一步擴展,例如顯示於圖13中的Iterator模式。這種強有力的工具的一個關鍵之處在於,開發者還可以把組織存儲起來並且共享來自你自己開發的模型或共享從逆向工程所獲取的代碼的設計模式。當把這種新工具通過XMI以及MDL應用於輸入和輸出時,你甚至可以共享來自於其它工具,語言或甚至其它平台的設計,例如Java。

圖13:來自設計模式倉庫中的Iterator模式

3. 質量保證工具

Delphi 2006提供了新的能力來使開發者能夠提供有關代碼質量方面的信息。Delphi 2006可以用兩種方式來公開地幫助你實現質量保證,審計和標准化。

這些功能或者可以用來證明作為移交的一部分的軟件的質量,也因此一同幫助開發者遵從特定的編碼標准;或者用於在工程中提高對質量進度的檢查。

審計工具用於檢查代碼符合特定的規則集合。你所用的規則是可配置的,而且配置是可以被存儲和重用的。你也可以把一個審計的結果保存到XML或者HTML格式的文件中。有大量的審計工具可供你使用,從設計問題到命名約定,等等。這些工具的使用,可以給開發者提供有關每一種審計所尋找內容的描述和如何修改可能發生的破壞。

為了保證質量,標准提供了一定量的信息並且將能夠建立更好的信息決策分析。在代碼上運行標准能夠提供給有關某部分代碼的復雜程度的詳細信息並且能立即高亮顯示可能導致設計問題的代碼;另外,還可以提供關於怎樣使用標准和怎樣解釋該結果的提示信息。最終,該標准的結果以一個表格形式輸送到一個集成的窗口中,圖14顯示了一個Kiviat圖表視圖,這是一種圖表方式,Delphi 2006可以幫助你驗明自己的代碼或理解與他人協作的代碼。

圖14:Kiviat圖表提供即時的標准分析結果的"瞬間"信息

4. 文檔生成

在模型視圖中,開發人員可以自動生成全面的基於HTML的文檔。當然,也可以配置你希望應用的范圍,而且你能夠選擇你想包括的文檔部分,例如圖表本身和一個基於applet的導航樹。

這種能力把團隊從許多方面解放出來。例如,以前他們必須手工書寫文檔並根據變更加以維護;而通過使用文檔自動生成技術會使得,隨著工程的不斷進展而使開發者更容易專注於創建實際的代碼。這種技術的另一種用途在於,在可能由其它開發者編寫的系統上或在已經被實現而沒有全面支持文檔的代碼上運行文檔。你可以在圖15中看到一個生成的文檔集合。

圖15:根據要求使用文檔生成器完成的最新的文檔。

(七) ECO III-模型驅動開發

企業核心對象(ECO),Borland的模型驅動框架被首先引入到C#Builder 1中,隨後在Delphi 2005中使用了ECO II。從此以後,ECO在開發生產效率和傳送應用程序質量方面一直在作出巨大的改進。

ECO能夠大大提高軟件開發效率,因為它可以自動生成絕大多數應用程序需要實現的架構,以及使用任何其它建模方案都需要手工實現的代碼。實現這些功能的途徑是,在運行時刻查詢模型信息,然後使用該信息自動執行服務,例如把對象持續化到數據庫中,強制業務約束和在運行時刻不要求開發者實現任何其它代碼,在設計時結合高度集成的Together創建模型,並使用如ECO那樣的運行時框架使該模型最終達到以最快的方式來構建和維護.NET應用程序。

有關普通ECO開發的更多背景知識,請參考Borland站點上的相應資料。在此,我們集中討論Delphi 2006所提供的其它功能以及Borland Deliver ECO III所提供的特征,例如狀態機支持,ASP.NET AutoForms和域模式。

1. 狀態機

在ECO III中的一個主要的新特點是,增加了狀態機支持,它允許你用模型來表達你的應用程序的更多的行為。反過來,ECO能在運行時刻查詢這個信息並且自動生成比以前更多的你的應用程序架構。

圖16:ECO將自動地執行狀態圖

如圖16所示,Delphi 2006使用集成的Together UML設計器來創建狀態圖。你可以設計一個對象的不同狀態,並且通過使用OCL(對象約束語言)來定義Guard條件,這基本上就是一種規則——在對象能夠從一種狀態轉變為另一種狀態前其值必須為真。你也可以定義Effects,這是一種行為——當一個對象從一種狀態轉變為另一種狀態時必須發生。

一旦定義了這些,就能自動強制Guard條件和執行Effects,ECO框架就能夠在運行時刻執行你的狀態機而不需要任何編碼。以前在開發和維護期間曾經相當耗時且容易出錯的任務現在變得非常直觀而且更有效率。

2. ASP.NET Autoforms

當構建一個ASP.NET前端應用程序時,ECO能動態地生成web頁面以允許你與域模型進行交互。你可以在圖17中看到一個具有Autoforms的ASP.NET應用程序的示例。

圖17:一個動態生成的ASP.NET UI的快速原型

這允許你流暢地使用模型定義的應用程序並在校驗變化之間移動;如果有必要,可以返回進一步修改模型。這種反復的方式具有不可思議的生產能力,但是,如果在測試模型的變化之前需要定義UI元素的話,是很難成功的。

3. ECO Action語言

為了在模型中而不是在代碼中繼續表示更多的應用程序邏輯,ECO III引入了ECO Action語言。這是對OCL的一個擴展,允許你不但可以定義自己模型中的方法實現,而且可以從你的模型中激活其它方法。這甚至會減少在構建復雜的應用程序時手工編碼的需求。

4. 域模式

通過進一步把Together深度集成到BDS 2006中,現在你可以定義普通的域模式,(其實就是通常發生的業務對象的集合)並把它們存儲到一個中央倉庫中。這樣以來,你的所有團隊就可以一致地利用你在解決業務問題上定義的集合。

5. ECO無處不在

既然Borland首先在C#Builder的第一個版本中使用了ECO,那麼開發者可能已經發現這會幫助他們大大提高開發效率並帶來構建應用程序的愉快感。記住,現在所有的Delphi開發者都可以體驗一下ECO,並且最終,ECO被包含到Delphi 2006的所有版本中。

Delphi 2006專業版用戶將能夠構建基於Winform的ECO應用程序並且把他們的數據持續化到XML文件中。另外,企業版開發者還可以使用ASP.NET來把他們的ECO應用程序擴展到Web上,並且把其對象持續化到關系數據庫,例如Interbase,SQL Server,Oracle甚至更多。最後,Delphi 2006架構開發者還可以得到狀態機支持,以用於跨多個服務器來發布他們的服務器端應用程序所需要的同步特性。

(八) 團隊生產力

在Delphi 2005中,Borland引入了業界領先的活動集成,這些活動包括,配置管理,錯誤追蹤,特征變更請求和團隊討論等。這些活動處於每一個高效的軟件開發團隊的核心位置,不管這些開發團隊是處於不同的工作室,還是不同樓層甚至是在不同的國家。

Delphi 2006繼續支持並通過增強現有能力和把它們擴展到新的領域如需求管理等方面來簡化團隊開發。

1. 需求

需求就是你的客戶的呼聲。這是他們期望在你正構建的軟件中所看到的事情。因此,參與該工程的所有人員是否都能聽到你的客戶的呼聲對於工程的成功至關重要。

如果你能打開一些源碼並且,除了開發者注釋之外,你還能看到代碼正在試圖完成的准確的客戶要求,以及由在該團隊中的其他人進行的所有討論和注釋,那麼你就可以得到作出更佳決策的更好的參考。

圖18:Delphi 2006提供充分集成的需求管理

由於以上原因,BDS 2006引入了對於存儲在CaliberRM中的需求的深入存取的集成,正如你在圖18中所見。然而,這遠不只是一個對於靜態的,只讀視圖的需求的問題。開發者應該能夠全面地加入到新業務需求的開發過程中:你可以編輯現有需求,創建新需求,加入有關需求的在線討論,甚至使用鼠標拖放來創建在需求和源碼資產之間的跟蹤。

2. 變更和配置管理

在Delphi的上一個版本已經支持集成變更和配置管理的同時,正如你在圖19中所見,Delphi 2006進一步推進了這一支持。

圖19:其中包含了變更管理集成和服務器軟件。

很多情況下,需要在工作的同時跟蹤倉庫中的多個項目。你可以建立同一個問題的兩個錯誤報告,還有一個你作為其中之一參予討論項目的線程。在Delhi 2006中,Shortcuts窗口允許你在IDE中顯示一個鎖定的格子以允許通過點擊來存取與你的當前工作相關的所有項目。

你還會看到一個Pending Checkins窗口,它允許你粗略地查看自己正在工作的卻尚未通過檢查而被納入到倉庫中的項目。同樣,該Pending Checkouts格子還允許你觀看你還未從倉庫中取出卻已經由其它開發者所做出的變更。這兩種新視圖的結合極大地簡化了對你和其他團隊成員所做出的變更的跟蹤問題。

二、總結

隨著Delphi的第十個版本的上市,Borland繼續專注於兩個主要領域,軟件提交生產方面的更新;為應用程序生命周期管理提供擴展支持。提供在Windows上混合應用主流語言和平台這種注重實效的方式,以及能夠在Win32和.NET之間實現遷移和互操作性使得Borland Delphi(Borland Developer Studio)成為商業開發者的一種非常靈活的選擇。

盡管許多開發者繼續使用著.NET平台,但是仍然有許多組織繼續需要支持開發Win32軟件,或者從頭開發或與.NET相結合。為此,Delphi 2006為開發者提供了最有效的管理方式。

Borland連續幾年來一直提供可擴展的應用程序生命周期支持,事實上,Delphi開發者早在2003年的Delphi 7中就已經體驗到這一點。對於以開發者為中心的應用程序生命周期管理(ALM)的支持如今在這個新版本中進一步成熟起來,這使得開發團隊能夠選擇基於開放標准和基礎來使用ALM,而不是被強迫使用任何特別的過程。這使開發者能夠有選擇地深入到後端企業開發服務中,而同時能夠以最適合其自身的風格和他們的顧客或用戶的方式來開展工作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved