第1章 Borland Developers Studio(BDS) 3.0简介
在像Delphi这样的可视化编程工具中,集成开发环境所扮演的角色有些时候甚至比编程语言更为重要。如果读者熟悉 DelPhi 7或者更早期的版本,就会发现 Delphi 2005基于一个更新、更开放的体系结构提供了一个完全重写过的IDE(集成开发环境)。对于过去习惯于使用Delphi IDE的程序员来说,熟悉这个新的 IDE将需要花费一些时间,因为Delphi IDE从Delphi 1 到 DeIphi 7从未发生过根本的变化。这也是本章将给已经使用过 Delphi早期版本的程序员提供一些技巧和建议的原因。此外,本章还将介绍一些新增的特性,以及对新入门的读者来说个太了解或者还不太熟悉的一些传统特性。但是,由于篇幅有限,本章将只提供一些介绍性的材料,而无法成为一本关于怎样使用Delphi IDE每个特性的综合性指南。
如果读者是初学Delphi编程的程序员,请不要担心。Delphi的集成开发环境 (IDE)使用起来是相当直观的。Delphi本身提供了一本参考手册和一本介绍Delphi应用程序开发的辅导材料。Delphi 2005 IDE已被引进到 Borland的 C# Builder和用于 Microsoft.NET Frame work的Delphi 8中。这也是Delphi 2005中的Borland Developers Studio(BDS)被标以版本3.0的原因。
Delphi的版本:
在开始深入研究DelPhi编程环境的具体细节之前,我们先来重点了解两个关键的概念。首先,DPIPhi并不只有一种版本,而是有许多种版本。其次,任何Delphi环境都是可定制的。由于这些缘故,本章示例中所使用的Delphi屏幕与读者在自己的计算机上所看到的Delphi屏幕可能不完全相同。
下面是Delphi的各个当前版本: · 【1】专业版(Professional)是真正的人门级版本,主要针对需求有限的专业开发人员,特别是在数据库连接和Web开发方面需求有限的开发人员。该版本包括了Delphi的 所有基本特性、数据库编程支持(不完全支持客户/服务器开发)、基本Web服务器支持(WebBroker)以及一些外挂工具。 【2】企业版(EnterPrise)主要针对的是企业应用程序的开发人员。该版本包括完整的数据库支持、所有XML和高级Web服务技术、国际化支持、3层体系结构以及许多附 件工具。本书中的部分章节将会介绍企业版中所独有的特性,并且笔者将设法指出这些部分,但相关特性的详细情况请参考Borland网站( www.borland.corn/delphi)上的 Delphi Feature Matrix文档。请注意,过去曾经出现过这样的情况:虽然提供更 新程序,但BOrland给较早期的版本已经添加了特性,因而使得笔者在这方面力求准确的目标变得非常难以实现。 【3】·设计师版(Architect)在企业版的基础上添加了对许多Borland Application lifetime Management(应用程序生存期管理,简称 ALM)工具(比如 StarTeam和Caliber)的附加支持,以及对 Enterprise Core Object(企业核心对象,简称 ECO)的附加支持。ECO框架是一种开发环境,用于开发在运行时由UML模型驱动的应用程序,以及由于其中包含了丰富的高级构件而能将其对象映射到数据库和用户界面的应用程序。关于 ECO的详细描述, 请参见本书的第18章。
注意 在Delphi的早期版本中,还有一个针对Delphi初学者的个人(Personal)版本,该版本在特性集方面是有限的(比如缺少数据库编程支持),并且在分发用它所编写的应用程序的权力方面也有限制。过去,这要么是一个免费(或者非常便宜)的下载版本,要么与杂志捆绑在一起。在编写本书的时候,delphi 2005的Personal版本还没有发布,而且也不清楚Borland是否会开发delphi的个人版本。
除了这些现有的不同版本之外,还有一些定制Delphi环境的技巧。在全书的屏幕图中,笔者尽量使用一个标准的用户界面(按照它们原来的样子)。可是,笔者当然也有自己的一些偏好,通常会安装许多附加工具,这有可能会反映到书中的屏幕图上。
IDE概述 在简单了解了Delphi的各种版本之后,现在该是开始关注其集成环境 (IDE)的时候了。即使对经验丰富的DelPhi程序员来说,仍有许多需要介绍的东西,因为DeIphi 2005 IDE有大量的新增特性。IDE的多重个性 除了有多种版本之外,Borland Developers Studio IDE还有多重个性。Borland使用术语“个性”来说明单个IDE既能用于处理不同的编程语言,又能以不同的平台为工作目标。换句话说,程序员不必运行一个用于Win32开发的IDE,又运行另一个用于.NET开发的IDE,而是可以运行单个IDE并打开不同类型的项目,也许还能够创建由不同类型的项目所组成的项目组并利用单条命令整个地编译它们。
此外,Ijelphi 2005有3重个性: ·DelPhi for Win32个性:允许程序员持续开发用于标准Win32平台的程序。 ·DelPhi for.NET个性:允许程序员将已有的DelPhi VCL。应用程序转移到.NET体系结构,或者编写特定的 WinForm和ASP.NET应用程序。 ·C #个性:仅适用于.NET,并基于 Microsoft的编译器,但本书不讨论这一个性。 为了指出程序员正在使用的当前个性,IDE在一个特定的工具栏中显示一个小圆标(单击它将打开AbOUt框)。 JDE是十分灵活的,不仅Borland可能会添加更多的个性,第三方开发者可能也会添加另外的个性(如果Borland愿意更多地透露一些关于这个过程的内部信息)。在发布Delphi2005之后不久,Borland宣称他们有意图让基于 VCL的老式 C++ Builder作为一个附加的个性,尽管在编写本书的时候他们还没有制定任何时间表和任何特性集。 注意:另一个可预见的选择是集成一个Delphi for Linux个性,这一个性也是读者几乎可以使用semon Kessil的CrossKylix工具来实现的东西。
一个用于.NET和ALM的全新IDE 读者可能很奇怪,Borland为什么选择开发一个全新的IDE,而不是选择简单地升级已有的 IDE。原因可能有许多,其中包括这样一个事实:DelPhi 7 IDE项目源于早期的Delphi,而现在该是对这个用户界面进行彻底翻新的时候了,也许是因为有了一个更好的内部体系结构。 当然,设计一个新IDE的核心原因之一是需要在保持Win32特性的同时又完全支持.NET。尤其是,这个IDE因集成.NET SDK设计器(比如 WinForm设计器和 ASP.NET设计器)而宿主了。.NET运行时引擎。然而,其他IDE特性也依赖于.NET。例如,所有的再加工支持(在第11章中加以讨论)都基于CoderDOM体系结构,而这个结构是.NET Framework的一个组成部分。
设计一个新IDE的另一个驱动原因是Borland作为一家公司有了发展。现在,Borland不是将重点放在用来编写应用程序的工具上面,而是关注包括整个软件开发过程的工具:从需求分析到 UML设计,从开发到优化、部署和测试。这一技巧早期称为 Application Lifetime Management(ALM),现在已演化并发展成一个策略,Borland将其称为hotware Delivery Optimization(软件交付优化,简称SDO)。 不考虑这个全局名称,对DelPhi开发人员有重大意义的是,这个全新的IDE被设计成能够宿主由Borland内的不同部门所开发的许多其他工具。事实上,DelPhi 2005的Architect版本包括如下工具: ·StarTeam客户:这个工具利用便于开发人员协作和提供与AI-M套件的所有其他工具相集成的强大工具,不但支持版本管理,而且支持部署过程和产品的全面管理。 ·Caliber客户:这个工具用来管理需求。 ·Together UML建模工具:这个工具支持ECO框架,并且可以部分地用来开发和维护自定义Delphi代码的UML图。 ·Optimizelt:这个工具用来检查.NET应用程序中的瓶颈。 ·一个用于 ASP.NET和 Intraweb应用程序的 Web Deplompent Wizard(Web开发向导) 本书的重点是Delphi,因此笔者将略微谈及这些ALM题目,因为其中的部分题目要求详细描述才能理解(仅仅几页的篇幅是没有用的),而且在本书将要重点讨论的专业版(Professional)和企业版(Enterprise)中没有包含这些题目。 不管怎样,都需要注意IDE主要是用DelPhi本身编写的,只有某些部分是用其他语言编写的。另外需要特别注意的是,这些新VCI一构件中的大多数已被添加进来,因为Borland在这个IDE自身内也需要它们(原因将在第6章中加以讨论)。
部分安装
Delphi带有3重个性。但是,如果不需要全部使用它们(例如,不关心C#或者不再需要Win32支持),那么可以只安装这3个个性中的部分个性,也可以在事后地除它们。在编写本书的时候,据报道,部分安装可能会增加IDE的不稳定性,因此读者可能仍选择安装全部,即使不需要使用全部特性。 需要注意的是,BSD IDE使用按需加载,这就意味着它在启动时仅加载每个个性的核心,因而将其他所需汇编的加载推迟到程序员实际开始使用某个指定特性的时候(比如程序员第一次处理一个VCI。应用程序的时候)。这意味着程序员安装但未使用的个性不会给IDE运行时引擎增加大量负担。即使程序员仅安装了Delphi Win32个性,IDE的某些特性仍需要依赖.NET(比如前面曾经提过的再加工)。从技术上说,在一台没有安装IDE运行时引擎的计算机上,将Delphi 2005用于Win32开发仍是可行的,但仅在程序员选择禁用那些特性的时候。 最后需要注意的是,程序员也可以完全禁用.NET支持,也就是说,在计算机IDE不安装.NET就使用Delphi 2005。这并没有得到Borland的官方支持,但看起来像是行得通的,尽管笔者并不赞成读者这么做,因为再加工是笔者最喜爱的Delphi特性之一。另外,这个操作似乎使帮助系统完全不可用。然而,如果读者有兴趣,可以转到 http://delphi2005.cjb.net网站上看一看这方面的详细说明。 能够删除由IDE使用的某些程序包和程序组件在任何情况下都十分重要,假如读者知道自己将不再使用那些特性。例如,可以删除Together或StarTeam支持,以便节省一些 程序装载时间。下面是需要检查的Windows注册表项目(责任自负,因为编辑注册表可能会在系统上产生麻烦): HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Know IDE Assemblies HKEY_CURRENT_USER\Software\Borland\BDS\3.0\Xnown IDE Packages
用多种配置启动IDE
应当说明的一点是,给Delphi 2005设置不同的注册表项目集也是可能的,以便在每次执行时借助于一个命令行参数来选择要使用哪个注册表项目集。这意味着程序员可以创建Delphi的一个剥离版本,但仍让完全版本保持待命状态。 Delphi有一个未正式公布的命令行参数:-r,从技术上说,程序员可以用这个参数指定要使用的基本注册表项目。例如,创建一个如下所示的快捷键(假设程序员有一个默认安装路径): C:\ProgramFiles\Borland\BDS\3.0\Bin\bds.exe-rsmall 当程序员第一次运行它时,DelPhi利用来自下面这行代码的默认设置生成一个全新的注册表键集: HKEY_LOCALNCHINE\SoftWare\Borland\BDS\3.0 并将它们复制到: HKEY_CURRENT_USER\Software\Borland\Small\3.0 换句话说,程序员所提供的名称将取代注册表树中的BDS名称。如果程序员不想用全新的设置进行启动,但希望编辑当前的配置,那么需要导出标准的 Borland\BDS\3.0注册表键值,并通过编辑它来修改键值名称,然后将它重新导人到注册表中。 除了这个r参数之外(它在elphi的早期版本中一直行得通,但未得到正式公布,而且现在仍未得到正式提及),还有程序员可以在启动DelPhi 2005时使用的其他一些命令行参数。例如-hm参数(Heap Monitor)在标题栏中显示由 IDE自身所安装的内存数量,并在空闲时更新这个信息。另一个有趣的参数是-ns(No Splash):它停止 Splash屏幕的显示。
|