法甲

图解Delphi 8 Eco 开发实战

2019-09-12 18:27:35来源:励志吧0次阅读

下载本文源代码

如何降低软件开发维护成本、提高开发效率、减小需求变更对系统的影响以及延长系统的生命周期是每个软件开发者都在思索的问题。然而传统的开发途径中上面的问题总是很难完美的解决。 MDA(模型驱动架构,Model Driven Architecture)是由OMG组织提出的新的软件开发架构,他相对于传统的开发方式有了很大的变化,软件开发的驱动力不再来自于传统的概要设计、编码,而是由模型来驱动开发。使用MDA开发团队可以将时间和精力集中在应用的业务逻辑上,而不需要花费大量时间来设计架构。MDA不仅仅是一种开发架构,更主要的是一种方法、标准,它独立于系统平台和开发语言之外。各个软件供应商也都相继提供了MDA的解决方案,本文所讲的ECO(Enterprise Core Objects)就是其中之一。

Borland在2004年初推出的Delphi 8 for Microsoft .NET Framework称得上是Delphi历史上最重要的一个版本,这个版本能否成功关系到Delphi能否在.net平台上再现win32平台上的辉煌。Delphi在win32平台上的成功很大程度上要归功于优秀的VCL架构。正是因为微软在Win32平台上没有提供完整易用的组件库,才使得VCL有如此蓬勃的发展。而在.NET平台上微软已经提供了完善成熟的Framework,Delphi8中虽然依旧包含VCL,但现在的VCL.NET已经不能完全和.NET Framework的Winform兼容了,而是为了方便Delphi的用户平滑过渡到. NET。失去VCL的优势对于Delphi来说也并非完全是件坏事,Borland会把更多的精力放在如何提高开发工具的生产力上。Borland在收购TogetherSoft、BoldSoft、Starbase等公司后,开始对所掌握的技术进行整合,ECO正是Bold基础上发展出的.NET平台MDA解决方案。它提供了封装有各种典型业务应用的底层应用服务,可以很好的完成各种系统开发和业务应用开发。Borland软件产品的副总裁,Boz Elloy认为,"ECO不但可以减少编写和维护的代码量,同样可以减少风险,支持更高的软件产品质量,我们相信ECO至少要比市场上的同类产品领先一年。"下面我们就实际体验一下MDA在Delphi中带给我们的惊喜。

实战ECO开发

下面我们要开发的是一个汽车销售客户管理系统,汽车销售商要管理客户的资料,客户中既有个人客户也有企业客户,两者的属性各有不同。汽车的型号资料和每辆汽车的销售记录同样也要管理。根据上面的简单需求来开始我们的ECO开发之旅。

1. 使用ECO Application Wizard建立一个工程

1) 打开Delphi 8 架构版在点击File →New →Other打开新建项目对话框。选择ECO Windows Application后点击OK

2) 输入工程名称和路径后点击OK,ECO Application Wizard为我们创建了所需要的工程单元文件。(注意:因为Delphi 8 Eco中存在的一个BUG,在工程路径或工程名中存在全角字符会引起编译器编译是发生错误,这里必须保存在英文路径下)

ECO Application Wizard生成的新工程包含以下几个文件:

点击放大

文件名描述CoreClasses.pas其中包含UML packages、 interfaces、 classes之间关联关系的源代码和在模型中定义的类型EcoCRMEcoSpace.pas由Borland.Eco.Handles.EcoSpace派生出的子类TEcoCRMEcoSpace的源代码WinForm.pas 应用程序主窗体的源代码Borland.Eco.Core.dll

Borland.Eco.Handles.dll

Borland.Eco.Interfaces.dll

Borland.Eco.Ocl.ParserCore.dll

Borland.Eco.Persistence.dll 这些文件是ECO applications运行时所需要的文件,存放在C:\Program Files\Common Files\Borland Shared\BDS\Shared Assemblies\2.0目录下

2. 需求分析

由上面所提供的需求我们可以提炼出以下几个类:

名称描述Customer客户,包含属性有:Name(名字)、Phone(联系电话) Address(住址)Person 个人客户,除了包括客户的属性外还有Sex(性别)属性Company公司客户,其具有Customer的全部属性Car汽车,包含的属性有ID(汽车编号) Name(汽车名称) CarType(汽车型号)CarSell汽车的销售记录,包含的属性有BuyDate(购车时间)Fee(价格)

各个类之间的对应关系如下:

Person和Company都是Customer的子类,它们都拥有Customer的属性。汽车的销售记录中包含所销售的车辆,CarSell和Car有一对一或一对多的对应关系,也就是一条销售记录可能对应多个车辆,同样客户和销售记录也有一对一或一对多的对应关系。

3. 设计模型

根据上面的分析结果我们可以开始从ECO中进行建模,首先选择模型视图,打开CoreClasses包,然后双击CoreClasses打开模型设计面板。

Tool Palette 中的UML Class Diagram 中共包含6个组件他们分别是:

名称描述Eco Package模型包,如果系统结构复杂可用其来进行分解以降低复杂度,CoreClasses包是ECO Application Wizard默认生成的包Class类Generalization/Implementation 继承关系Association 联合关系Note 注释Note Link注释链接

小儿腹胀腹痛吃什么药好
动脉硬化中度严重吗
小儿脾胃虚弱用药
薏芽健脾凝胶服用说明
分享到: