Delphi巧克力的滋味(2)

发布时间:2008-08-23 20:24:40 阅读次数:

   WebSnap提供的组件可以方便地完成上传服务、Session服务、查询服务、登录登出的服务等,图6为WebSnap的组件栏。
   此外Delphi 6提供了Web App Debugger公用程序,允许设计师开发和除错Web应用程序。而WebSnap向导更允许设计师建立不同的Web应用程序。由于WebSnap结合了脚本语言,因此设计者也可以指定WebSnap在自动生成脚本语言时使用的脚本语言种类,以及产生的PageProducer的形态。
   总之,WebSnap让Delphi 6在开发Internet/Intranet应用系统方面有长足的进步,提供了非常优秀的整合开发环境。在未来WebSnap也将移植到Linux平台上,让Kylix的程序开发人员也能够使用相同的组件。
   MIDAS的进化版本DataSnap
   在Delphi 6中,MIDAS将改名为DataSnap。DataSnap不但强化了MIDAS原有的功能,更加入了许多新的组件,让设计者可以用它开发出更为强劲的应用系统,此外DataSnap也改善了MIDAS的执行效率,让使用它的应用程序能够执行得更快速。图8就是DataSnap的组件栏,从图中可以看到几个新的组件。
   另外,在许多细节方面DataSnap也提供了以前MIDAS没有的功能,例如直接以XML的形式呈现MIDAS的Data Packet和更细节的控制等。对于使用MIDAS开发应用系统的设计师来说,新的DataSnap将会让他更满意。
   对CML/XSL的支持
   Delphi 6的另外一个重要的改良就是对于XML/XSL的支持了。除了增加了许多新的VCL组件让设计师不必用底层的COM界面或是复杂的API就可以轻易地处理XML/XSL文件和资料之外,MIDAS的资料更可以直接导出为XML,或是把XML的资料直接导入成MIDAS的Data Packet。图9就是和XML有关的元件,从图中我们可以看到Delphi 6以VCL组件封装了XML Document,让设计师直接使用Object Pascal来处理XML封装的资料,并允许选择使用Microsoft的XML分析引擎,或是使用由IBM开发的XML分析引擎。
   除此之外,如果设计师需要处理大量以固定格式封装的XML资料,那么Delphi 6提供了一个可视化的向导,让设计师先导入XML档案。该向导便会自动分析此XML文件,然后自动生成以Object Pascal封装的源代码,让设计师可以直接调用自动产生的源代码中的函数来存取XML封装的资料,不再需要使用XML Document组件来辛苦地分析XML之中的资料,而且执行效率也有提高。
   开发Web Service的向导和组件
   Web Service是现在最热门的Web技术,不管是IBM或是微软都在发展Web Service的解决方案。Delphi 6在这方面也不落后,它提供了SOAP和Web Service向导,让程序设计者可以快速地开发SOAP应用系统,也可以导入WSDL自动产生框架程序。由于SOAP是未来Web Service和分散式应用系统的主流技术,而Web Service更是未来Web应用系统的主要软件构架,因此对于设计师来说,掌握这些技术便成了非常重要的课题。
   Delphi 6是Borland支持SOAP的第一个产品,由于SOAP是标准的协定,因此通过Delphi 6开发的SOAP应用系统可以和COM+/EJB或微软的.NET沟通,Delphi的程序设计者现在就可以用它来开发未来的应用系统。
   重新打造运行库
   对于Delphi 6和Kylix来说,Borland进行的隐形工程就是它们的运行库(RTL-Run Time Library)了。Delphi 6的RTL不但为了跨平台重新整理过,而且加入了许多新的RTL公用函数。这些新增的函数数目超过了数十个,例如,光是有关DateTime的函数就有数十个。此外Borland为了让Delphi 6中的Variant形态和函数也能够使用在Linux平台,因此特别新增了Variants.PAS这个程序单元,让两个平台同时拥有Variant形态的变量和函数可以使用。
   也许应该感谢Kylix,在Delphi的运行库将近3个版本没有什么大幅改善的情形下,Borland终于在Delphi 6中再次重整和改善了核心函数库,也许对于大部分的Delphi设计师而言可能没有什么感觉,但是经过改善的RTL不但功能更丰富,也避免了因为VCL和RTL持续增加功能而增加编译出来的执行程序大小的可能。
   第14版的Object Pascal编译器
   Delphi 6的编译器为了支持Windows和Linux平台,以及为了支持SOAP和Interface RTTI而进行了不小的改善。在Delphi 6中,以往以IUnknown为基础界面的构架已经被更改为IInterface,所有其它的界面都可以从IInterface继承下来。IInterface定义了类似COM中IUnknown界面所有的方法。Borland这样做是为了让Windows和Linux平台上的界面都趋于一致。
   此外Delphi 6也加入了一个新的界面IInvokable,任何从IInvokable界面继承的界面以及完成的类别都具备远程启动的能力。这个功能对于Web和分散式应用系统有重要的影响。当然对于提升Delphi成为分布式开发工具也有相当的效果,Borland在编译器方面持续的进步是值得肯定的。
   不过很可惜的是Borland并没有在Delphi 6的Object Pascal加入try……except……finally这个被许多设计师要求加入的语法结构,虽然这个构架在目前也可以使用嵌套的try……try……except……end……finally来完成相同的效果,但是前者明显比较简洁,而微软的C#和VB.NET则吸收了Object Pascal的这个语言优点,再加入了try……except……finally构架。希望Borland能够在未来的Delphi版本中加以改善。