转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
李维:Windows 原生開發工具的瑰寶 – Delphi 6         ★★★★

李维:Windows 原生開發工具的瑰寶 – Delphi 6

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1479 更新时间:2009/4/23 18:41:50
ap不但強化了MIDAS原有的功能,
更加入了許多新的元件,讓程式師可以使用它開發出更為強勁的應用系統,此外
DataSnap也改善了MIDAS的執行效率,讓使用它的應用程式能夠執行得更快速。下圖
是Delphi 6中DataSnap的元件組,從圖中可以看到數個新的元件。


Delphi 6的DataSnap元件組


此外在許多細節方面DataSnap也提供了以前MIDAS沒有的功能,例如直接以XML的形
式呈現MIDAS的Data Packet,和更細階的控制等。對於使用MIDAS開發應用系統的程
式師來說,新的DataSnap將會讓程式師更為滿意。

XML/XSL的支援


Delphi 6的另外一個重要的改良就是對於XML/XSL的支援了。除了增加許多新的VCL
元件讓程式師不必使用低階的COM介面或是複雜的API就可以輕易的處理XML/XSL文
件和資料之外,MIDAS的資料更可以直接輸出成XML,或是把XML的資料直接匯入
成MIDAS的Data Packet,Delphi的程式師再也不需要為複雜的XML程式設計傷腦筋了
。下圖就是Delphi 6和XML有關的元件。從圖中我們可以看到Delphi 6以VCL元件封裝
了XML Document,讓程式師直接使用Object Pascal來處理XML封裝的資料,並且允許
程式師選擇使用Microsoft的XML分析引擎,或是使用由IBM開發的XML分析引擎。



Delphi 6 中支援開發XML的元件組


除此之外,如果程式師需要處理大量以固定格式封裝的XML資料,那麼Delphi 6更提
供了一個視覺化精靈,讓程式師先匯入此XML檔案。此精靈便會自動分析此XML文
件,然後自動產生以Object Pascal封裝的程式碼,讓程式師直接可以呼叫自動產生的
程式碼中的方法來存取XML封裝的資料,不再需要使用XML Document元件來辛苦的
自己分析XML之中的資料,而且執行效率也比較好。
例如下面的圖形就是Delphi 6中XML Data Binding精靈的畫面。在這個精靈中我匯入
了一個封裝股市資訊的XML檔案,那麼這個這個精靈便會自動產生如下的Object

Pascal程式碼:




Delphi 6 的XML Data Binding精靈


在下面的程式碼中,我只需要存取TXMLStockType類別之中的功能,例如Get_Price,
就可以輕易的取得XML文件之中股票的價格,不再需要使用XML Document元件來分
析,這樣是不是快多了,而且不容易出錯呢?在支援XML方面,Borland的確為程式師
設想了許多的東西,也提昇了Delphi程式師許多的生產力,而XML Data Binding精靈
特別適合使用在程式師需要經常處理大量格式固定的XML文件。

  IXMLStockListType = interface;
  IXMLStockType = interface;

{ IXMLStockListType }

  IXMLStockListType = interface(IXMLNodeCollection)
    [''''{F56A36C4-4014-11D5-8B76-E593B0087905}'''']
    { Property Accessors }
    function Get_Stock(Index: Integer): IXMLStockType;
    { Methods & Properties }
    function Add: IXMLStockType;
    function Insert(const Index: Integer): IXMLStockType;
    property Stock[Index: Integer]: IXMLStockType read Get_Stock; default;
  end;

{ IXMLStockType }

  IXMLStockType = interface(IXMLNode)
    [''''{F56A36C5-4014-11D5-8B76-E593B0087905}'''']
    { Property Accessors }
    function Get_Exchange: WideString;
    function Get_Name: WideString;
    function Get_Price: WideString;
    function Get_Symbol: WideString;
    function Get_Volume: WideString;
    procedure Set_Exchange(Value: WideString);
    procedure Set_Name(Value: WideString);
    procedure Set_Price(Value: WideString);
    procedure Set_Symbol(Value: WideString);
    procedure Set_Volume(Value: WideString);
    { Methods & Properties }
    property Exchange: WideString read Get_Exchange write Set_Exchange;
    property Name: WideString read Get_Name write Set_Name;
    property Price: WideString read Get_Price write Set_Price;
    property Symbol: WideString read Get_Symbol write Set_Symbol;
    property Volume: WideString read Get_Volume write Set_Volume;
  end;

{ Forward Decls }

  TXMLStockListType = class;
  TXMLStockType = class;

{ TXMLStockListType }

  TXMLStockListType = class(TXMLNodeCollection, IXMLStockListType)
  protected
    { IXMLStockListType }
    function Get_Stock(Index: Integer): IXMLStockType;
    function Add: IXMLStockType;
    function Insert(const Index: Integer): IXMLStockType;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLStockType }

  TXMLStockType = class(TXMLNode, IXMLStockType)
  protected
    { IXMLStockType }
    function Get_Exchange: WideString;
    function Get_Name: WideString;
    function Get_Price: WideString;
    function Get_Symbol: WideString;
    function Get_Volume: WideString;
    procedure Set_Exchange(Value: WideString);
    procedure Set_Name(Value: WideString);
    procedure Set_Price(Value: WideString);
    procedure Set_Symbol(Value: WideString);
    procedure Set_Volume(Value: WideString);
  end;


開發Web Service的精靈和元件


Web Service也是現在最熱門的Web技術了,不管是IBM或是Microsoft都在發展Web
Service的解決方案。Delphi 6在這方面也不落後,Delphi 6提供了SOAP和Web Service
精靈,讓程式師能夠快速的開發SOAP應用系統,也可以匯入WSDL自動產生骨架程
式碼。由於SOAP是未來Web和分散式應用系統的主流技術,而Web Service更是未來
Web應用系統的主要軟體架構,因此對於程式師來說,掌握這些技術便成了非常重要
的課題。

Delphi 6是Borland支援SOAP的第一個產品,由於SOAP是標準的協定,因此藉由
Delphi 6開發的SOAP應用系統可以和COM+,EJB或是Microsoft的.NET溝通,Delphi的
程式師現在就可以使用它開發未來的應用系統。下圖便是Delphi 6提供的SOAP精靈,
在Delphi 6中也提供了6個VCL元件讓程式師開發SOAP和Web Service的應用系統。


Delphi 6 允許程式師快速建立SOAP應用程式和Web Service


由Delphi 6 自動產生的SOAP模組


由於SOAP是Delphi 6重要的功能,又是現在最流行的技術,因此希望在未來的
RUN!PC文章中能夠有機會詳細的為各位介紹如何使用Delphi 6的SOAP和Web Service
技術開發應用系統 並且和其他的系統整合。

重新再造的執行時期函式館


對於Delphi 6和Kylix來說,Borland進行的隱形工程就是它們的執行時期函式館(Run
Time Library-RTL)了。Delphi 6的RTL不但為了跨平台而重新的整理過,而且加入了許
多新的RTL公用函式,以便讓程式師呼叫。這些新增的函式數目超過了數10個,例如
,光是有關DateTime的函式就有數10個。此外Borland為了讓Delphi 6中的Variant型態
和函式也能夠使用在Linux平台,因此特別新增了Variants.PAS這個程式單元,讓兩個
平台同時擁有Variant型態的變數和函式可以使用。
也許應該謝謝Kylix,在Delphi的執行時期函式館將近3個版本沒有什麼大幅改善的情
形下,在Delphi 6中Borland終於再次的重整和改善了核心函式館,也許對於大部份的
Delphi程式師來說可能沒有什麼感覺,但是經過改善的RTL不但功能更豐富,也避免
了因為VCL和RTL持續增加功能而會大幅增加編譯出來的執行程式大小巨幅增加的可
能。

第14版的Object Pascal編譯器


Delphi 6的編譯器為了支援視窗和Linux平台以及為了支援SOAP和Interface RTTI,因此
也進行了不小的改善。在Delphi 6中,以往以I Unknown為基礎介面的架構已經被更改
為IInterface,所有其他的介面都可以從IInterface繼承下來。IInterface定義了類似COM
中IUnknown介面所有的方法。Borland如此做是為了讓Window和Linux平台上的介面
機制都趨於一致。

此外Delphi 6也加入了一個新的介面IInvokable,任何從IInvokable介面繼承的介面以
及實作的類別都具備遠端啟動的能力。這個功能對於Web和分散式應用系統有重要的
影響。當然對於提昇Delphi成為分散式開發工具也有相當的效果,Borland在編譯器方
面持續的進步是值得肯定的。
不過,很可惜的是Borland並沒有在Delphi 6的Object Pascal加入try…except…finally這
個被許多Delphi程式師要求加入的語言架構,雖然這個架構在目前也可以使用巢狀的
try…try…except…end…finally來達成相同的效果,但是前者明顯的比較簡潔,而
Microsoft的C#和VB.NET則吸收了Object Pascal的這個語言優點,再加入了try…except
…finally架構。希望Borland能夠在未來的Delphi版本中也可以從善如流的加入。

產品總評


雖然前面的文章介紹了許多Delphi 6新增加的功能,但是仍然有許多的功能是本文沒
有介紹的,例如Delphi 6對於CORBA的支持和CLX等。下面的表格整理了Delphi 6中
重要的支援功能,並且附加了評語和得分以供讀者參考。




Delphi 6最主要的功能重點是在XML/XSL,Internet/Intranet以及SOAP和Web Service方
面的加強。又為了跨平台的目的,因此也在資料存取引擎,視覺化元件架構和執行
時期函式館方面進行了大幅度的改善。至於在BDE,ADO和COM+方面則只有小幅的
進步。

結論


當Microsoft不再推出VB/VC原生視窗開發工具,而Power Builder等其他視窗開發工具
也逐漸被淘汰出視窗平台之際,Delphi 6可以說是唯一最新的原生視窗開發工具,也
是最好的原生視窗開發工具。如果你仍然需要在視窗下開發應用系統,或是需要使
用/整合最新的資訊技術,那麼Delphi 6仍然是非常值得購買和昇級的開發工具。
不過希望在Borland全力發展Linux平台上的RAD工具時,不要忘記了視窗平台仍然有
許多的程式師需要最好的視窗開發工具,Borland仍然需要投注相當的資源和人力繼
續發展未來版本的Delphi。

Edited by - Gordon Li on 06/01/2001 18:43:15

相关帖子:

李维:.net vs delphi 6

   delphi6 爆发还是灭亡?

李维:我的回忆和一些有趣的事

看IT风云变幻,宝兰与微软背后的故事,

李维:2001 年軟體界的巨星 - Kylix

看宝兰, 一年之间连续推出kylix1.0 ,interbase6.0, delphi6,jbuilder5 ,c++builder6也不日即出,敬请关注宝兰2001年与微软对绝的杀手锏kylix

陈宽达: 遊戲程式設計初學者常遇之疑問   

明修栈道,暗渡陈仓,陈宽达点指开发工具


 

上一页  [1] [2] 


[系统软件]InstallShield Express for delphi制作安装程序定…  [常用软件]InstallShield Express制作Delphi数据库安装程序
[Delphi程序]为什么选择Delphi.Net ?  [Delphi程序]《关于VisiBroker For Delphi的使用》(4)
[Delphi程序]Delphi 程序员代码编写标准指南  [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro…
[Delphi程序]Borland Delphi 9 的新特性  [Delphi程序]Delphi 键盘码表
[Delphi程序]Chuck Jazdzewski的离开意味着Delphi的终结吗?  [Delphi程序]Delphi Access violations 问题的解决之道
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台