Delphi巧克力的滋味(2)
發(fā)布時(shí)間:2008-08-23 閱讀數(shù): 次 來源:網(wǎng)樂原科技
WebSnap提供的組件可以方便地完成上傳服務(wù)、Session服務(wù)、查詢服務(wù)、登錄登出的服務(wù)等,圖6為WebSnap的組件欄。
此外Delphi 6提供了Web App Debugger公用程序,允許設(shè)計(jì)師開發(fā)和除錯(cuò)Web應(yīng)用程序。而WebSnap向?qū)Ц试S設(shè)計(jì)師建立不同的Web應(yīng)用程序。由于WebSnap結(jié)合了腳本語言,因此設(shè)計(jì)者也可以指定WebSnap在自動(dòng)生成腳本語言時(shí)使用的腳本語言種類,以及產(chǎn)生的PageProducer的形態(tài)。
總之,WebSnap讓Delphi 6在開發(fā)Internet/Intranet應(yīng)用系統(tǒng)方面有長足的進(jìn)步,提供了非常優(yōu)秀的整合開發(fā)環(huán)境。在未來WebSnap也將移植到Linux平臺(tái)上,讓Kylix的程序開發(fā)人員也能夠使用相同的組件。
MIDAS的進(jìn)化版本DataSnap
在Delphi 6中,MIDAS將改名為DataSnap。DataSnap不但強(qiáng)化了MIDAS原有的功能,更加入了許多新的組件,讓設(shè)計(jì)者可以用它開發(fā)出更為強(qiáng)勁的應(yīng)用系統(tǒng),此外DataSnap也改善了MIDAS的執(zhí)行效率,讓使用它的應(yīng)用程序能夠執(zhí)行得更快速。圖8就是DataSnap的組件欄,從圖中可以看到幾個(gè)新的組件。
另外,在許多細(xì)節(jié)方面DataSnap也提供了以前MIDAS沒有的功能,例如直接以XML的形式呈現(xiàn)MIDAS的Data Packet和更細(xì)節(jié)的控制等。對(duì)于使用MIDAS開發(fā)應(yīng)用系統(tǒng)的設(shè)計(jì)師來說,新的DataSnap將會(huì)讓他更滿意。
對(duì)CML/XSL的支持
Delphi 6的另外一個(gè)重要的改良就是對(duì)于XML/XSL的支持了。除了增加了許多新的VCL組件讓設(shè)計(jì)師不必用底層的COM界面或是復(fù)雜的API就可以輕易地處理XML/XSL文件和資料之外,MIDAS的資料更可以直接導(dǎo)出為XML,或是把XML的資料直接導(dǎo)入成MIDAS的Data Packet。圖9就是和XML有關(guān)的元件,從圖中我們可以看到Delphi 6以VCL組件封裝了XML Document,讓設(shè)計(jì)師直接使用Object Pascal來處理XML封裝的資料,并允許選擇使用Microsoft的XML分析引擎,或是使用由IBM開發(fā)的XML分析引擎。
除此之外,如果設(shè)計(jì)師需要處理大量以固定格式封裝的XML資料,那么Delphi 6提供了一個(gè)可視化的向?qū)В屧O(shè)計(jì)師先導(dǎo)入XML檔案。該向?qū)П銜?huì)自動(dòng)分析此XML文件,然后自動(dòng)生成以O(shè)bject Pascal封裝的源代碼,讓設(shè)計(jì)師可以直接調(diào)用自動(dòng)產(chǎn)生的源代碼中的函數(shù)來存取XML封裝的資料,不再需要使用XML Document組件來辛苦地分析XML之中的資料,而且執(zhí)行效率也有提高。
開發(fā)Web Service的向?qū)Ш徒M件
Web Service是現(xiàn)在最熱門的Web技術(shù),不管是IBM或是微軟都在發(fā)展Web Service的解決方案。Delphi 6在這方面也不落后,它提供了SOAP和Web Service向?qū)?,讓程序設(shè)計(jì)者可以快速地開發(fā)SOAP應(yīng)用系統(tǒng),也可以導(dǎo)入WSDL自動(dòng)產(chǎn)生框架程序。由于SOAP是未來Web Service和分散式應(yīng)用系統(tǒng)的主流技術(shù),而Web Service更是未來Web應(yīng)用系統(tǒng)的主要軟件構(gòu)架,因此對(duì)于設(shè)計(jì)師來說,掌握這些技術(shù)便成了非常重要的課題。
Delphi 6是Borland支持SOAP的第一個(gè)產(chǎn)品,由于SOAP是標(biāo)準(zhǔn)的協(xié)定,因此通過Delphi 6開發(fā)的SOAP應(yīng)用系統(tǒng)可以和COM+/EJB或微軟的.NET溝通,Delphi的程序設(shè)計(jì)者現(xiàn)在就可以用它來開發(fā)未來的應(yīng)用系統(tǒng)。
重新打造運(yùn)行庫
對(duì)于Delphi 6和Kylix來說,Borland進(jìn)行的隱形工程就是它們的運(yùn)行庫(RTL-Run Time Library)了。Delphi 6的RTL不但為了跨平臺(tái)重新整理過,而且加入了許多新的RTL公用函數(shù)。這些新增的函數(shù)數(shù)目超過了數(shù)十個(gè),例如,光是有關(guān)DateTime的函數(shù)就有數(shù)十個(gè)。此外Borland為了讓Delphi 6中的Variant形態(tài)和函數(shù)也能夠使用在Linux平臺(tái),因此特別新增了Variants.PAS這個(gè)程序單元,讓兩個(gè)平臺(tái)同時(shí)擁有Variant形態(tài)的變量和函數(shù)可以使用。
也許應(yīng)該感謝Kylix,在Delphi的運(yùn)行庫將近3個(gè)版本沒有什么大幅改善的情形下,Borland終于在Delphi 6中再次重整和改善了核心函數(shù)庫,也許對(duì)于大部分的Delphi設(shè)計(jì)師而言可能沒有什么感覺,但是經(jīng)過改善的RTL不但功能更豐富,也避免了因?yàn)閂CL和RTL持續(xù)增加功能而增加編譯出來的執(zhí)行程序大小的可能。
第14版的Object Pascal編譯器
Delphi 6的編譯器為了支持Windows和Linux平臺(tái),以及為了支持SOAP和Interface RTTI而進(jìn)行了不小的改善。在Delphi 6中,以往以IUnknown為基礎(chǔ)界面的構(gòu)架已經(jīng)被更改為IInterface,所有其它的界面都可以從IInterface繼承下來。IInterface定義了類似COM中IUnknown界面所有的方法。Borland這樣做是為了讓W(xué)indows和Linux平臺(tái)上的界面都趨于一致。
此外Delphi 6也加入了一個(gè)新的界面IInvokable,任何從IInvokable界面繼承的界面以及完成的類別都具備遠(yuǎn)程啟動(dòng)的能力。這個(gè)功能對(duì)于Web和分散式應(yīng)用系統(tǒng)有重要的影響。當(dāng)然對(duì)于提升Delphi成為分布式開發(fā)工具也有相當(dāng)?shù)男Ч?,Borland在編譯器方面持續(xù)的進(jìn)步是值得肯定的。
不過很可惜的是Borland并沒有在Delphi 6的Object Pascal加入try……except……finally這個(gè)被許多設(shè)計(jì)師要求加入的語法結(jié)構(gòu),雖然這個(gè)構(gòu)架在目前也可以使用嵌套的try……try……except……end……finally來完成相同的效果,但是前者明顯比較簡潔,而微軟的C#和VB.NET則吸收了Object Pascal的這個(gè)語言優(yōu)點(diǎn),再加入了try……except……finally構(gòu)架。希望Borland能夠在未來的Delphi版本中加以改善。