我眼里的delphi 8

yyanghhong 2004-01-03 02:27:11
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进行修改, 这对于程序员来说没有提供对性能做优化的途径.






...全文
38 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
michaelpeng7799 2004-01-03
  • 打赏
  • 举报
回复
delphi还是个好东西,不过现在看来,我还是考虑用vs.net和C#。
炎热的夏季已经过去,家乡想必也要开始落叶了。如果我是小学生,让我以《秋》为题目作文,开头一定是“秋天是收获的季节”。是的,经过了春天的骚动,夏季的彷徨,来到了秋。这是新生报到的季节,动物贮藏食物的季节,马上就到十一长假的季节,这个季节更是收获的季节。 我们在播种时,势必首先考虑收成。种庄稼如此,学习语言更是如此。于是,“语言之争”是各个编程论坛必定讨论的话题,很多甚至是“X经”话题。对此,我的观点是:语言没有好坏之分,只有顺手不顺手和你能发挥到什么程度的问题。我们没有必要追求最新,“最先进”的编程方式,只需要学习好力所能及的语言。 VC的无所不能缺点是繁杂,稍有不慎就不知道什么地方出了包;VB常常被人耻笑过于简单,发布之后要带上一个“仓库”;Delphi虽然有快速开发的优势,但却姥姥不疼舅舅不爱的日渐西山…… 其实对于大多数人来说,我们使用什么应该是需求决定而不是语言本身决定需求,比如:我们希望自动根据数据生成表格,没有必要非用Delphi VC 调用 COM ,我们用用VBA就好了。因此,眼中只有那三种基本结构:判断 循环 跳转就差不多了,再高级一点,弄清楚什么是面向对象面向过程,随便一门语言都不会逃出这点东西。 我很佩服俄罗斯的软件,他们就是将语言工具发挥到极致的例子。比如:我在网上搜索到DOS下硬盘速度测试软件,竟然是Pascal编写的。 至于“学习好力所能及的语言”,我的意思是如果你身边有C语言的高手不妨向他请教或者同他切磋;如果你有学好数据结构的理想,不妨买一本Java描述数据结构的图书慢慢啃;如果你有网络数据库+界面的需求不妨考虑一下Delphi…… 因此,我的观点就是“语言没有好坏之分”,关键是你能掌握到什么程度。 当然,如果你能掌握汇编语言,这一切就更不在话下了。我很希望各位能够将学习语言当作乐趣,我们的杂志也将会以如何让读者在阅读中感到快乐感到成就感为目的。

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧