Delphi 8 实际上是delphi for .net, borland做了两件事, 一是pascal和.net IL的映射, 这比较简单, 因为.net设计时本来就考虑了多语言支持. 定义了The Common Language Runtime (CLR), the Common Type System (CTS), and
the Common Language Specification (CLS) . 而pascal的规范和这些都很接近.二是做了VCL和net framework的映射, 在win32环境中,  net framework是win32 API的一个抽象层,  而旧的VCL也是win32 API的一个抽象层, 为了让旧的delphi程序可以移植到net里, borland只有把VCL做成net framework的一个抽象层, 这很枯燥花时间,  而且运行效率也不会高, 想想两个抽象层就可以理解了. 而且这个改后的VCL目前不兼容win32 API, borland会在未来做这个既抽象net framework, 又抽象win32 API的VCL, 但这更枯燥花时间,不用说而且还要把新的net framework类和新的win32 API集成进去,  整个被M$牵的鼻子走.为了抽象两个平台, VCL会不可避免的丧失一些东西, 比如midas, midas最初只有DCOM connection的, 后来加了TCP connection, Http connection, 为了和COM交换数据, 他的基本数据传输是用variant array,  但在net framework里, COM被抛弃了, 原因很多, 比如COM是一个二进制的标准, 不同语言的数据类型转化效率不高, , net framework里用CTS, 没数据类型转化的问题, 因为COM不将存在, delphi 的variant array也没存在的必要, 而且net framework里有ADO.net, 他对XML和web service支持的很好,  很适合做简单的多层结构, midas的分布式的优势不复存在. 所以在dephi 8 里没有Midas, borland做了一个基于ADO.net的BDP. BDP完全用了ADO.NET的dabaset, 只是在ADO.NET的data adapter上做了一个抽象层. 使不同的data adapter切换容易了点.再看一下ECO, ECO是OR Mapping框架的一个实现, 关于数据库程序, 有两种基本model, 一是table model, 象Midas, ADO.NET, 二是domain model, 以object为数据操纵元素, table model直观简单, domain model对设计良好的系统架构很有帮助, 但实现起来较复杂, OR Mapping框架主要用来提高domain model生产力, 程序员不用考虑太多的数据访问细节, 只用关注object class就行了, 这样一来好也不好, 问题就是会容易导致数据库设计性能上的问题,  而且在ECO中, sql是在运行期自动生成的, 目前不可对生成的sql进行修改, 这对于程序员来说没有提供对性能做优化的途径.