1.web前端框架是无障a无什么意思(web前端框架是干嘛的)
2.Delphi7.0ç¨åºè®¾è®¡è¯è¨çä¼ç¹å缺ç¹
web前端框架是什么意思(web前端框架是干嘛的)
前端框架有什么用?
web前端框架是做什么的?5分
前端框架一般指用于简化网页设计的框架,比如,碍类jquery,库源extjs,障碍bootstrap等等,类库这些框架封装了一些功能,无障a无cmseasy5.5源码比如html文档操作,碍类漂亮的库源各种控件(按钮,表单等等)。障碍
使用前段框架可以降低界面开发周期和提高界面的类库美观性。
有些框架比较轻量,无障a无比如jquery,碍类有些框架比较重量,库源比如extjs。障碍一般来说重量的类库框架会封装更多的功能,比如extjs,封装的grid控件有很强的数据展示和操作功能。
前端框架是什么?有什么用、有什么好处?
可以简单的理解成是:使用广泛的前端开发套件,可以帮助你快速的网液橡念站。
前段框架的好处:对于互联网的产品而言,前端用户体验往往决定了一款产品的竞争力和吸引力;而对于前端工程师来说,考虑的问题更为复杂,他们既要为网站上提供的产品和服务实现一流的Web页面、优化代码,保证体验的最佳,更要考虑与市面上各大浏览器的兼容性,还需顾及Web前端表现层和前后端交互的架构,以及模块化、通闹困用类库、框架编写等一系列问题,由此提升前端开发的效率,降低开发成本和周期。
html的框架到底是用来干嘛的?什么时候用到?
你接触了后台就知道了,这样可以做到页面地址不需要变动,但却可以利用iframe的tagert属性把显示数据的页面包含进来,div就不行,因为它没有这个target属性,文件独立出来方便重用,且结构清晰;
前端开发框架有哪些
首先我想说明一下,我们通常说的js不是框架,是语言,即javascript,据最新世界编程语言排行榜来看,已经上升到了第7位,发展迅猛,其标准是ECMAScript,现在基本上是基于ECMAScript5。jQuery是用js写的框架,其在DOM操作上有很明显的优势,也是时下很常用的一个js框架。
至于之外还要学习那些框架呢?
如果你说的是js框架,建议先掌握好jQuery,然后还有很多的,比如楼上提到的pc手机网站源码extjs,近几年比较流行的AngularJS,基于移动端考虑的轻量级仿jquery框架zepto,还有jquerymobile,还有适合写后端或服务端的node,等等。如果是web前端框架,就不仅仅是涉及的js了,还有html和css。个人觉如备得只有这三种语言都涉及到的框架才能说得上是web前端框架。现在比较火的是Bootstrap,还有Foundation,比较古老的有jqueryUI,easyUI等等,还有其他很多很多。如果还有算上处理方案及版本升级代码迭代等,就要用到百度团队研发的fis这种了。其实内容真的很多很多,前端任重而道远啊~
web前端框架是什么意思分
前端架构师必须懂得真正的编程知识,而这正是很多自封为前端架构师的人所缺乏的。我的意思不是能够剪切粘贴改进代码就行了,而是能够跟老练的工程师商讨如何能够最好地结合前端。
这就是说,前端架构师需要真正理解结构遭遇商业逻辑的问题。如果工程师说某些东西使用ASP.NetDataGrid是不可能实现的,前端架构师必须能够解释如何与为何要使用DataList或Repeater取代,解释为何DataGrid在该情景下是个错误的选择……
这只是个例子,问题还在于仅知道客户端编程也是不够的。能够使用与工程师相同的术语,能够讨论(前后端)关键集成的最佳解决方案,这是绝对必须的。
断线的风筝
我们今天正处在一个不妙的处境中,原因在于几乎没有人能够为前后端的沟壑搭桥。一般工程师不会有兴趣或实践标记,CSS,或DOM脚本编程,大部分客户端开发者也没有与后端技术协作的经验。几周入门PHP不会成为程序员,几周入门XHTML也不会成为真正的客户端开发者。
罪魁祸首
我首先想到的十足例子是,ASP.Net完全漠视Web标准,同样地,web氛围(我们指表格和占位gif)让Web标准郁闷。企业项目的大多数框架输出的标记,即使使用年的标准来衡量,都是糟糕无比的。
如此巨大和“专业”的产品怎么能才够不忽视,按理说是整个项目最简单的方面?只有静态代码。理由是,基于技术的立场衡量产品,结构,CSS和其他客户端技术都是“事后诸葛亮”。表现逻辑,结构和行为混杂,压根无助于无障碍,Web标准,任务计划管理系统源码或者前端技术干净的分离。擡起你的头来,就在,这些都成受欢迎的惯例了。
总结
如果这个世界上姿态最鲜明的产品和项目都如此低劣的方式来处理事情,其他的还有什么好说?毫无疑问,我们需要前端架构师,而且就在昨天。
归结于归结,我们有一堆相互关联的技术,很少人能够埋头钻研它们之间的关系,这很不幸。正确做事的真正价值在于容易的维护和长期的适应性。虽然在关键时刻,有些方式更容易选择其他的方法和拼凑起另外的东西。对某些人来说,这可能是可接受的做事方式。但是,对我们大部分人来说,这是拙劣的抉择,也非常不专业。
我交给你去想了。我假设你把车交给技工修理,修好了时候,瞧瞧引擎罩内大量的输送管,我不知道你对技工作何感想?
为什么需要自己实现前端框架
前端对框架(库)的大小更敏感
前端内容的渲染和交互效果的实现如果依赖JS框架(库),需要先将这些框架(库)下载到客户端,此时框架(库)的大小将直接影响到前端的首屏渲染速度。框架(库)越小,加载的速度就越快,而随着功能的越来越全,框架(库)必然会越来越大,要保证性能,需要制定加载策略。
便于制定加载策略
解决框架(库)变大的常见加载策略是将框架分为核心部分和扩展部分,核心部分在首屏渲染前必须下载完成,并且这部分的加载文件尽可能的少和小,扩展部分则可以模块化方式来懒加载。
核心部分的JS在发布时,可对文件合并,数量尽可能少,单个文件在gzip压缩后最好不要超过K。核心部分可以是实现“JS语言扩展(面向对象),DOM操作API,数据交互方法(ajax),导航策略,模块化底层实现,事件底层实现,模版解析”等。扩展部分一般是一些可异步加载的UI组件,例如:输入控件、弹出窗、动画API、文件上传及预览、易语言射击游戏源码图表控件、富文本编辑器等。
上面的实现模式,在主流的JS框架(库)中,有三类选择:一类是以ExtJS为代表的大而全的框架(库),这类框架虽然功能满足,但往往无法拆分为核心部分和扩展部分来加载,因此基本不予考虑;一类是相对轻量的YUI3、Dojo等框架(库);一类是近来流行的前端MV*系列Backbone、Ember、Angular,这类在充当核心部分时,还需要组合Underscore、RequireJS,jQuery等第三方库。
后面两类可以满足要求,但个人觉得不是完美的方案,因为在开发实际产品时,将这两类作为核心部分时,往往里面有很多是不需要的,而还有些需要自己来额外补充近来,可以是自己开发,也可以集成第三方的实现。而核心部分框架(库)如果是自己实现,则可以保证在功能完整的情况下,不多出其它的东西,加载的JS可以控制到最小,而且代码风格也统一。
便于扩展
前端代码与用户的交互直接相关,而交互的设计变化和不确定性非常大,现成的第三方实现往往难以直接利用,需要改造。有时改造第三方的框架,先要非常熟悉框架,当这个框架比较复杂时,这样的工作量和难度就大大加大了。而自实现的框架(库)则可以根据需要任意扩展,可以根据需求制定对应的规范和API。
前端开发框架有哪些
1.Bootstrap
Boostrap绝对是目前最流行用得最广泛的一款框架。它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。
Bootstrap是用动态语言LESS写的,主要包括四部分的内容:
脚手架——全局样式,响应式的列栅格布局系统。记住Bootstrap在默认情况下并不包括响应式布局的功能。因此,如果你的设计需要实现响应式布局,那么你需要手动开启这项功能。
基础CSS——包括基础的HTML页面要素,比如表格(table),表单(form),网贷系统源码 免费按钮(button),以及(image),基础CSS为这些要素提供了优雅,一致的多种样式。
组件——收集了大量可以重用的组件,如下拉菜单(dropdowns),按钮组(buttongroups),导航面板(navigationcontrol)——包括:tabs,pills,lists标签,面包屑导航(breadcrumbs)以及页码(pagination),缩略图(thumbnails),进度条(progressbars),媒体对象(mediaobjects)等等。
JavaScript——包括一系列jQuery的插件,这些插件可以实现组件的动态页面效果。插件主要包括模态窗口(modals),提示效果(tooltips),“泡芙”效果(popovers),滚动监控(scrollspy),旋转木马(carousel),输入提示(typeahead),等等。
Bootstrap已经足够强大,能够实现各种形式的Web界面。为了更加方便地利用Bootstrap进行开发,很多工具和资源可以用来配合使用,下面列举了其中的一部分工具和资源。
jQueryUIBootstrap——对于jQuery和Bootstrap爱好者来说这是个非常好的资源,能够把Bootstrap的清爽界面组件引入到jQueryUI中。
jQueryMobileBootstrapTheme——和上面提到的jQueryUI主题类似,这是一个为jQueryMobile建立的主题。如果你想让用Bootstrap开发的网站在手机端也可以优雅访问,那么这个资源对你来说很方便易用。
FuelUX——它为Bootstrap添加了一些轻量的JavaScript控件。FuelUI安装,修改,更新以及优化都很简单方便。
StyleBootstrap.——Bootstrap提供了自己的几种界面风格,StyleBootstrap提供了更多的配色选项,并且你可以给每个组件都应用不同的配色。
BootSwatchr——利用这个工具你可以立刻查看主题修改后的效果。对于每一次变动的效果,这个应用都会生成一个唯一的URL方便你与他人分享,你也可以在任意时刻修改你的主题。
Bootswatch——提供大量免费的Bootstrap主题。
Bootsnipp——在线前端框架交互组件制作工具,是一个供给设计师和开发者的基于BootstrapHTML/CSS/JavaScript架构的免费元素。
LayoutIt——通过界面拖放生成器简便快捷地创建基于Bootstrap的前端代码。通过拖放动作将Bootstrap风格的组件加入到你的个人设计里并且可以方便地修改他们的属性,......
前端开发框架有哪些
1.BootstrapBoostrap绝对是目前最流行用得最广泛的一款框架。它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。Bootst...
前端框架用哪个好
1、flex
Apache基金会今天发布了Flex4.8版本,这是Adobe将Flex捐献给Apache基金会后发布的第一个版本。
需要注意的是,Flex目前还在孵化阶段,还不是Apache的正式项目,Flex4.8也不是一个正式的Apache版本。
Apache称,该版本标志著Flex新时代的开始,Flex的未来将由社区来驱动,而不是由一个公司驱动。开发者可以通过贡献代码,来帮助改进Flex,如修复bug、增加功能等。
从Macromedia卖给Adobe,然后又捐给apache,不知道搞什么名堂。不过还好没有经过大幅重构,否则就真的是悲哀了!
2、extjs
ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。
功能丰富,无人能出其右。
无论是界面之美,还是功能之强,ext的表格控件都高居榜首。
华丽的界面,灵活的功能,还有开发工具都是配套的,但有个最大的问题,用就得花钱!
3、easyui
easyui帮助你构建你的web应用更加容易。
它是一个基于jquery的插件,开发出来的一套轻量级的ui框架,非常小巧而且功能丰富。
但是她有一个最大的问题就是代码只能找到以前的开源的版本,到了1.2以后的版本源代码都是经过混淆的,如果遇到问题修改起来会非常麻烦!不过一个比较大的优势是开源免费,并且界面做的还说的过去!
4、MiniUI
又一个基于jquery的框架,开发的界面功能都很丰富。
jQueryMiniUI-快速开发WebUI。
它能缩短开发时间,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验。
使用MiniUI,开发者可以快速创建Ajax无刷新、B/S快速录入数据、CRUD、Master-Detail、菜单工具栏、弹出面板、布局导航、数据验证、分页表格、树、树形表格等典型WEB应用系统界面。
界面做的挺不错,功能也挺丰富,但是有两个比较大的问题,一个是收费,一个是没有源码,说白了,不开源!基于这个开发如果想对功能做扩展就需要找他们的团队进行升级!
5、jQueryUI
jQueryUI是一套jQuery的页面UI插件,包含很多种常用的页面空间,例如Tabs(如本站首页右上角部分)、拉帘效果(本站首页左上角)、对话框、拖放效果、日期选择、颜色选择、数据排序、窗体大小调整等等非常多的内容。
功能非常全面,界面也挺漂亮的,可以整体使用,也可以分开使用其中的几个模块,免费开源!
6、DWZ
DWZ富客户端框架(jQueryRIAframework),是中国人自己开发的基于jQuery实现的AjaxRIA开源框架.
设计目标是简单实用,快速开发,降低ajax开发成本。
欢迎大家提出建议,我们将在下一版本中进一步调整和完善功能.共同推进国内整体ajax开发水平。
毕竟是国产的,支持一下,而且源码完全公开,可以选择一下!不过性能怎么样不敢确定!
7、GWT
Google网页工具包——GWT提供了一组基于Java语言的开发包,这个开发包的设计参考JavaAWT包设计,类命名规则、接口设计、事件监听等都和AWT非常类似。熟悉JavaAWT的开发者不需要花费多大的力气就能够快速的理解GWT开发工具包,将更多地时间投入到GWT应用的开发过程中。
你不用......
web前端开发框架有哪些
bootstrap是twitter出的一款不错的UI框架,或者与其说是框架不如说是类库(lib),当然这里边牵扯到一个“究竟什么是框架什么是类库?”的问题,我们暂时不谈。毕竟是有大公司背景的代码堆,我觉得没什么“落伍”可言。
angular是前两年之内突然火得一塌糊涂的一个fe框架,这个我觉得可以算的上是真正意义上的框架了,MVVM双向绑定,包括它拥有足够完善的社区、生态,甚至chrome上都有很多好用的相关插件(这一点可以说是占了google出品的光),比较完整的大型项目都是可以考虑引入的。但如果你的网站只是做一些轻量级的东西,杀鸡焉用宰牛刀吧我觉得。
backbone主要针对的MVC中的M层,至少我是这么理解的。对UI层它几乎没什么太多的限制,一方面给出了coder自由度进行发挥,另一方面也等于在这方面框架本身对开发没提供什么太大的帮助。我觉得这更像是一个高手向的框架,另外对于underscore前端模板那一套东西,说实话作为一名phpjava啥都能写的FE我始终觉得这套东西有那么一种纯JS工程师的一厢情愿的意味。这是个人看法了,不一定准确,况且有人会搬出ajax动态渲染时前端模板的作用来反驳我,别急着反驳,至少往下看完我说的话。
相比之下,react可以说是一个在MVC中V层做的十分出色和新颖的框架了,独特的jsx编译机制就已经让你的代码变得高大上了,我是觉得这个类库在UI层做的更彻底更专业,或者说让FE的代码更专业了。更何况,react比angular更年轻,而且同样拥有大公司背景,reactnative一出更是让JS工程师的地位取得了革命性的提升,(不要跟我提phonegap,用过两个东西后你会明白,react打包的app性能甩phonegap几条街没问题)。另外既然楼主提到了之前的网站是bootstrap,不妨可以看一看react-bootstrap这个东西,或许这就是你想要的。
web框架是什么,有什么作用?
其实框架类似于模板的意思,不同的人用同一模板,其模板的大体功能无需修改,只需要针对不同的人修改不同的地方即可!
WEB框架主要作用是提高WEB前端开发烂拦春效率,降低开发难饥耐度。目前常用的一些前端的框架如下:bootstrap、衡清easyui、miniui、jqueryUI等。
web前端框架是做什么的?前端前景是很不错的,像前端这样的专业还是一线城市比较好,师资力量跟得上、就业的薪资也是可观的,学习前端可以按照锋搏路线图的顺序,
0基础学习前端是没有问题的,关键是找到靠谱的前端培训机构,你可以深度了解机构的口碑情况,问问周围知银扰祥道这家机构的人,除了口碑再了解机构的以下几方面:
1.师资力量雄厚
要想有1+的实际效果,很关键的一点是师资队伍,你接下来无论是找个工作还是工作中出任哪些的人物角色,都越来越爱你李拦本身的技术专业前端技术性,也许的技术专业前端技术性则绝大多数来自你的技术专业前端教师,一个好的前端培训机构必须具备雄厚的师资力量。
2.就业保障完善
实现1+效果的关键在于能够为你提供良好的发展平台,即能够为你提供良好的就业保障,让学员能够学到实在实在的知识,并向前端学员提供一对一的就业指导,确保学员找到自己的心理工作。
3.学费性价比高
一个好的前端培训机构肯定能给你带来1+的效果,如果你在一个由专业的前端教师领导并由前端培训机构自己提供的平台上工作,你将获得比以往更多的投资。
希望你早日学有所成。
什么是web开发,web开发框架web开发框架也举裤判可以理解为B/S(Brouser/Server)开发框架,是一种基于浏览器载体的框架,包含前端、纯蔽后端和数据库三个大的技术方向,各个方向的技术都不一样,现在主流的技术包JAVA、.NET、SqlServer、Bootstrap、Jquery等,学会了这些也就能深刻了解什么是web开发了。
Web开发框架
Web前端开发技术包括三个要素:HTML、CSS和JavaScript,还有很多高级的前端框架,比如bootstrap、Jquery等,前端开发也是比较的复杂,如果找到规律,开发起来也比较的快。
Web后端技术也有很多,比如.Net、JAVA、PHP等,各大语言都有其开发架构,像.NET的MVC架构,JAVA的JavaEE,一般web后端技术的知识面是很广的,语言、设计模式、需求分析、性能优化等。
数据库现在有三种主流的关系型数据库:Mysql\SQLserver\Oracle,还有Nosql等结构性正改数据库:Redis、Mogodb等。
web前端三大主流框架都是什么?AngularJS是一个客户端的JavaScriptMVC开源框架,特别为使用MVC架构模式的单页面web应用而设计,可用于开发动态Web应用程序。它不是一个完整的堆栈,而是一个处理web页面的前端框架。包含的东西比较完善,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能。React是一个开源的JavaScript库,由Facebook和一个大型开发者判谈慧社区共同维护。此库(也可转换为web开发框架)广泛用于开发web应用程序的用户界面。这个特殊的框架是为了构建大型应用程序而设计的,这些应用程序的数据会随着时间的推移不断变化。本身比较容易理解,他的结构很清晰,就是由十几个API组成,然后异步渲染,我们只需要处理好接口和维护就好了。
Vue是一个开源JavaScript框架,能够开发单页面应用程序。它还可以用作Web应用程序框架,目的在于简化Web开发。它的流行有很多原因,其中一个关键原因是它能够在没有任何动侍毕作的情况下重新渲染,它允许构建可重用,是一个小巧但功能强大的组件而且允许我们在需要时随时添加组件。号称是最简单,最容易上手的框架,同时也是行内的大趋势,还可以用来开发最火的小程序。毕竟用这神器,代码码的飞快,项目也能快速上线。千锋教育截止目前已在北京、深圳、上海、掘答广州、郑州、成都、大连等余个核心城市建立直营校区,服务近万学员、近千所高校和数万家企业。
Delphi7.0ç¨åºè®¾è®¡è¯è¨çä¼ç¹å缺ç¹
æ¨èä½ ä¸ç¯ä¸éçæç« ï¼æè®¸å¯¹ä½ æäºå¸®å©ã
VCåDelphiä½ä¸ºå¼åå¹³å°ï¼å¾éè¦çä¸ç¹å°±æ¯æä¾äºä¸ä¸ª"æ æä¸å "çåºç¨æ¡æ¶ï¼VCçMFCåDelphiçVCLãMFCæ¯ç¨C++åçï¼VCLæ¯ç¨Object Pascalåçãå½ç¶ï¼æ们é½ç¥éï¼C++ç使ç¨èå´æ¯Object Pascal广å¾å¤ï¼ç§»æ¤æ§ä¹å¥½å¾å¤ãè¿æ¬æ¥æ¯ä¼ç¹ï¼ä½å¾æææçæ¯ï¼æ£å 为å¦æ¤ï¼å¾®è½¯åMFCæ¶å¿ é¡»èèæ大é度åå°å¯¹è¯è¨æ¬èº«çæ¹å¨ï¼èæå夫ä¸å¨æºä»£ç 级ï¼ä»¥ä¾¿è½å°½å¯è½æ¯æANSIçæ åï¼ç»æ导è´MFCçå°è£ å¤æèä¸ç´è§ã(å°¤å ¶æ¯å®å¯¹æ¶æ¯çå°è£ ï¼ä¸æè¿ä¼æå°)ã太å¤çå®å®ä¹åå«ä¹æ¨¡ç³ä¸èªå¨çæãä¸å¾æ¹å¨ç注é使MFCä¹è³VC让å¾å¤æ°ææèççï¼ä¸æ¢"ä¸æ°´"æ·±å ¥å¦ä¹ ãèObject Pascalå ä¹æ¯Inprise"ä¸ç¨"çï¼ä¸å¿ èè"æ å"é®é¢ï¼å æ¤InpriseåVCLæ¶å°±æå ¨é¨ç²¾åæ¾å¨äºç»æä¸æ§è½ä¸ï¼ç»æè¯è¨ä¸æ¡æ¶ç磨åç¨åº¦é常好ãVCLæ¡æ¶çç»ææ¸ æ°ï¼VCL代ç çå¯è¯»æ§é常好ã许å¤äººè¯´Delphiæ¯è¾å®¹æä¸æï¼ä¹æ¯è¿ä¸ªç¼æ ã天ä¸æ²¡æç½åçåé¤ãä½ è¦å·¥ä¸æ ååï¼ä½ è¦å¯ç§»æ¤æ§å(å ³äºå¯ç§»æ¤æ§åå ¼å®¹æ§ï¼ä¸æä¼è¯¦ç»æ¯è¾)ï¼é£ä¹è¯·é¢å¯¹MFCç"天书"级代ç å§ã
ç¼è¯åè¿æ¥ï¼The Need For Speed
ä¸åçè¯è¨å¸¦æ¥çå¦ä¸ä¸ªä¸åæ¯ï¼ç¼è¯åè¿æ¥çé度çä¸åï¼ä»¥åæ§è¡é度çä¸åãDelphiçç¼è¯åè¿æ¥é度ï¼æ¯«ä¸å¤¸å¼ å°è¯´ï¼æ¯VCå¿«å ååãå³ä½¿æVCçIncremental Linké项æå¼ï¼Delphiçç¼è¯åè¿æ¥é度ä»æ¯VC快好å åã并ä¸æ¯è¯´å¾®è½¯çç¼è¯å¨ä¸è¡ï¼è¿æ¯ç±C++çå¤ææ§å³å®çã模æ¿çå¤çãé¢å¤çåå®çå±å¼é½æ¯å¾è´¹æ¶çãåæä¸æ¯æå°Object Pascal没æ模æ¿ãé¢å¤çåå®åï¼è¿æ¬æ¥æ¯ç¼ºç¹ï¼ä½å¸¦æ¥çä¸ä¸ªå¥½å¤å°±æ¯ç¼è¯é度æå¿«ãè³äºç¼è¯å®çäºè¿å¶ä»£ç ï¼å¨æå¼ç¸åçä¼åé项çæ åµä¸ï¼DelphiåVCæ§è¡é度并没æ太大çå·®å«ã
为äºå æç¼è¯çé度é®é¢ï¼C++ç¼è¯å¨ä¸è¬éè¦å¢å¼ºçè¿æ¥å¨åé¢å¤çæºå¶ãä½æ¯é¢å¤çæºå¶ä»ç¶åå¨è¥å¹²é®é¢ï¼1ï¼ç¨åºè°è¯çæç¹è¡å¯è½å代ç è¡ä¸åï¼2ï¼æ²¡æå°ææ°ç代ç ä¿¡æ¯ç»¼åè¿å»ï¼3ï¼å®¹æ产çé误çé»è¾ï¼4ï¼å 为读éæ件头èå¾å®¹æ产ç类似"Unexpected End of File"çé误ã
两个ç¼è¯å¨æä¸ªå ±åç¹æ¯é½è½è¯å«æ ç¨ç"æ»"代ç ï¼æ¯å¦ä¸ä¸ªæ²¡æç¨çå½æ°ççãç¼è¯åçç¨åºå°ä¸å å«è¿äºå¤ä½çä¿¡æ¯ãDelphiå¨è¿æ¹é¢ä½å¾æ´å åºè²ãå®å¯ä»¥è®©ä½ å¨ç¼è¾å¨ä¸å¯è§åå°æ示åºé£è¡ä»£ç æ¯"æ´»"çãé£è¡ä»£ç æ¯"æ»"çãè¿æ ·ä½ å°±è½æ´çåºæç²¾ç®ç代ç ãDelphiå¨ç¼è¯åå°å¨å·¦è¾¹æ¾ç¤ºä¸ä¸ªå°èç¹è¡¨ç¤ºè¿è¡ä»£ç æ¯"æ´»"çãVisual C++åä¸å°è¿ç¹ã
Delphiç¼è¯åå¯æ§è¡æ件è³å°æKï¼å¦æä¸ä½¿ç¨VCLï¼ä» ä» ä½¿ç¨WinAPIï¼æ件ç大å°å°å¤§å¤§ç¼©å°ï¼ä½æ¯Visual C++ç¼ç¨ä½¿ç¨MFCç¼è¯åçå¯æ§è¡æ件é常åªæå åKï¼ä¸»è¦æ¯å 为微软已ç»å°ç³»ç»è¿è¡åºå å«å¨Windowsç³»ç»äºï¼Borlandå ¬å¸æ¾ç»å微软ååè¿ä¸ªæ¥å£ï¼ä½æ¯å¾®è½¯å©ç¨æä½ç³»ç»çä¼å¿ä¸æ¿æå ¬å¼ï¼ãåæ ·éçï¼ä½¿ç¨BDEå¼åççæ°æ®åºç¨åºå¿ é¡»é带3-5Mçé¢å¤ç³»ç»æ件ï¼ä¹æ¯é常ä¸åè°çã
é常æ趣çæ¯ï¼Delphiè½å¤ä½¿ç¨ç±C++ Builderå建ççOBJæ件ï¼ä½æ¯ä½¿ç¨ä¸åå¾å¤§çå±éæ§ã
æåï¼Visual C++çç¼è¯åè¿æ¥æ¶çé误信æ¯æ¯Delphiè¦è¯¦ç»åå ·ä½çå¤ãç¹å«æ¯ä½¿ç¨ATLå¼åæ´å å¦æ¤ã
åºç¨æ¡æ¶ï¼MFCï¼æKFCæµè¡åï¼
åºç¨ç¨åºæ¡æ¶(Application Frame)ï¼ææ¶ä¹ç§°ä¸ºå¯¹è±¡æ¡æ¶ãVisual C++éç¨çæ¡æ¶æ¯MFCãMFCä¸ä» ä» æ¯äººä»¬é常ç解çä¸ä¸ªç±»åº(åæ ·ï¼DelphiçVCLä¹ä¸ä» ä» æ¯ä¸ä¸ªæ§ä»¶åºï¼å°½ç®¡å®çååå«"å¯è§æ§ä»¶åº")ãä½ å¦æéæ©äºMFCï¼ä¹å°±éæ©äºä¸ç§ç¨åºç»æï¼ä¸ç§ç¼ç¨é£æ ¼ãMFCæ©å¨Windows 3.xçæ¶ä»£å°±åºç°äºï¼é£æ¶çVisual C++è¿æ¯ä½çãç»è¿è¿äºå¹´çä¸æè¡¥å åå®åï¼MFCå·²ç»ååæçãä½ç±äºåååºç°å¾æ¯è¾æ©ï¼MFCç¸æ¯äºVCLè½åäºä¸ä¸ªæ¶ä»£ã尽管微软对MFCçæ´æ°æ²¡æåæ¢ï¼æä¹ç»å¸¸è¯»å°"åªè¦Windowsä¸è¿æ¶ï¼MFCå°±ä¸ä¼è¿æ¶"ä¹ç±»è§ç¹çæç« ï¼ä½å°±è±¡Inprise(åBorland)çOWLæ¡æ¶çæ·¡åºä¸æ ·ï¼MFCçæ·¡åºä¹æ¯æ©æçäºãå ¶å®MFCæ¯åOWLåä¸ä¸ªæ¶ä»£ç产ç©ãOWLå·²ç»ä¸å¨äºï¼MFCæè½ä¸"å± å®æå±"å¢ï¼å¦æMFCéæ¥æ°¸é©»ï¼å¾®è½¯çå¼å人åä¹ä¸ä¼"ç§èª"å¼ååºåºäºATLçWTLåãå½ç¶ï¼WTLçå°ä½ä¸è½åMFCæ¯ï¼å®å¹¶ä¸æ¯å¾®è½¯å®æ¹æ¯æçæ¡æ¶ï¼å°è£ çåè½ä¹ç¸å½æéãä½è³å°ä¹å衬åºäºMFCåå¨çä¸è¶³ã
æ们以为ï¼æè½ä½ç°ä¸ä¸ªåºç¨ç¨åºæ¡æ¶çå è¿æ§çæ¯å®çå§æ模åï¼å³å¯¹Windowsæ¶æ¯çå°è£ æºå¶ã对Windows APIçå°è£ å°±ä¸ç¨è¯´äºå§ã大åå°å¼ï¼ä¹æ²¡ä»ä¹ææ¯å«éãå¦æé«å ´ï¼ä½ ä¹å¯ä»¥èªå·±åä¸ä¸ªç±»åºæ¥å°è£ ãä½å¯¹Windowsæ¶æ¯é©±å¨æºå¶çå°è£ å°±ä¸æ¯é£ä¹å®¹æçäºãæèªç¶çå°è£ æ¹å¼æ¯éç¨èæåå½æ°ãå¦æè¦ååºæ个æ¶æ¯å°±éè½½ç¸åºçèå½æ°ãä½åºä¹æçææï¼MFCéç¨çæ¯"å¤è"çå®å®ä¹æ¹æ³ãç¨å®å®ä¹æ¹æ³ç好å¤æ¯çå»äºèå½æ°VTableçç³»ç»å¼é(ç±äºWindowsçæ¶æ¯ç§ç±»å¾å¤ï¼å¼éä¸ç®å¤ªå°)ãä¸è¿å¸¦æ¥ç缺ç¹å°±æ¯æ å°ä¸å¤ªç´è§ã对äºMFCï¼åæ¯"太ä¸ç´è§"äºãå®çæ¶æ¯æ å°ä»£ç è½ç¶æ¯å¯è§çï¼ä½"ååè«ç¢°"ã好å¨VCçClassWizardå¯ä»¥èªå¨çææ¶æ¯æ å°ä»£ç ï¼ä½¿ç¨èµ·æ¥è¿ç®æ¹ä¾¿ãä½åVCLçå§æ模åç¸æ¯ï¼MFCçæ å°æ¹æ³å°±æ¾å¾å¤ªè½åäºãèDelphiçObject Pascalå 为没æ"æ åè´æ "ï¼è¯è¨å¼å ¥äºç»ä»¶ãäºä»¶å¤çãå±æ§çæ°ç¹æ§ãç±äºå夫åå¨ç¼è¯å¨çº§ï¼çæçæºä»£ç å°±æ¾å¾ååç®æ´ãä¼¼ä¹VCæ¯"让æ¡æ¶è¿å°±è¯è¨"ï¼èDelphiæ¯"让è¯è¨è¿å°±æ¡æ¶"ã
ææ³ä¸¾ä¸ä¸ªå¯¹å符串æä½çå°è£ çä¾åæ¥è¯´æMFCåVCLçä¼ç¼ºç¹ãå¨MFCä¸ï¼CStringListç±»æå å ¥ãè·åãå é¤çåè½ï¼ä½VCLçTStringListç±»é¤äºä¸è¿°åè½è¿ææåºãä»éå·åéçåä¸²è¯»å ¥ãæµè¾å ¥è¾åºçåè½ãä½åæ ·çå符串æ¿æ¢åè½ï¼VCLçStringReplaceè¦æ¯MFCçCString::Replaceæ ¢2ï¼3åãæ»çæ¥è¯´ï¼VCLçå°è£ æ¯MFCæ´ä¸ºé«å±ï¼æ´ä¸ºæ½è±¡ï¼ä½ä¸å¯é¿å å°å¸¦æ¥çé®é¢æ¯æäºé¨åæ§è¡æçæ¯MFCç¥ä½ãè¿å°±è±¡ä½çº§è¯è¨(å¦æ±ç¼)çæ§è¡æçæ¯é«çº§è¯è¨(å¦Basic)é«ï¼ä½ç¼ç¨æçè¾ä½ãé±¼åçæä¸å¯å ¼å¾åã
VCLæ¯ä¹MFCçå¦ä¸ä¼ç¹æ¯å¯¹å¼å¸¸å¤ççæ¯æï¼èä¸å¤§ç¼ºç¹æ¯å¯¹å¤çº¿ç¨æ¯æå·®ãVCLç大é¨åé½ä¸æ¯é对å¤çº¿ç¨ä¼åçãè½è¯´VCLæä¾äºç®åå¤çº¿ç¨æä½çç±»ï¼ä½åªæ¯å·¥ä½è 线ç¨(worker threads)使ç¨èµ·æ¥æ¯è¾ç®åãå¦æ线ç¨è¦åçé¢æ交éçè¯äºæ å°±åå¾éº»ç¦äºï¼å 为é¤äºåºç¨ç¨åºç主线ç¨ï¼ä»»ä½çº¿ç¨ä¸è½è®¿é®ä»»ä½å¯è§çVCLé¨ä»¶ãä½ ä¸å¾ä¸ä½¿ç¨Synchronizeæ¹æ³çå¾ ä¸»çº¿ç¨å¤çå®çæ¶æ¯ï¼ç¶åå¨ä¸»çº¿ç¨ä¸è®¿é®VCLé¨ä»¶ãèMFC就没æè¿æ ·çéå¶ã
稳å®æ§ä¸å®åç¨åº¦ï¼VCæ¯è大å¥
VCè¦æ¯Delphi稳å®åå®åãVCçåå±åå²æ¯Delphié¿ï¼å¾®è½¯çæ»ä½å®åæ¯Inprise强ãVCçæ¡æ¶MFCç»åäºé£ä¹å¤å¹´çåå±åå®åï¼åè½éå¸¸å ¨é¢ï¼èä¸åå稳å®ï¼bugå¾å°ãå ¶ä¸ä½ å¯è½éå°çbugä¹æ´å°ãèä¸æ第ä¸æ¹çä¸é¨å·¥å ·å¸®å©ä½ é¿å¼è¿äºbugãå¦æ¤è§æ¨¡çä¸ä¸ªç±»åºï¼è½åå°è¿ä¸ç¹ä¸å®¹æãä¸è¦å°çäºè¿ä¸ç¹ï¼å¾å¤ä¸ä¸ç¨åºåå°±æ¯ä¸ºè¿ä¸ªéæ©VCçãå 为尽管VCLæ¯MFCçæ½è±¡ç¨åº¦é«ï¼å°è£ è¾ä¸ºé«å±ï¼ä½ç±æ¤å¸¦æ¥çå¼åæççæé«å¯¹é«ææ¥è¯´æ¯ç«æ¯æéçãèå¦æä½ éå°ä¸ä¸ªæªé®é¢ï¼è°è¯äºå天ï¼åç°ä¸æ¯ä½ ç代ç æéï¼èæ¯VCLçbugï¼ä½ ä½ä½ææ³ï¼è½è¯´éå°è¿ç±»é®é¢çå¯è½æ§å¾å°ï¼ä½å¯¹VCLç形象çå½±åå¯ä¸å°ãDelphiçIDE太å èµæºï¼å¯å¨éåº¦å¤ªæ ¢ï¼åæäºæ¾å¡é©±å¨ç¨åºå²çªï¼VCLä¸æbugï¼è°è¯å¨ä¸å¤å¥å£®ï¼å¯¹ä¸ç¨³å®ç第ä¸æ¹æ§ä»¶æ²¡æé²æ¤æªæ½ â¦â¦ é®é¢å¤å¤ï¼å¨è¿æ¹é¢Delphiä¸å¦VCãå¸æInpriseè½æ´ä¸ä¸å±æ¥¼ã顺便说ä¸ä¸ï¼æ们å¨ç½ä¸çå°æäºäººæè¨Delphiçä¸ç¨³å®ï¼è¯´å åéåºç°å¤æ¬¡éæ³æä½ãDelphiçç¡®ä¸å¦Visual C++稳å®ï¼ä½ä¹ä¸è³äºå¦æ¤åãæ估计æ¯é£ä½æåçDelphiè£ äºæäºæé®é¢ç第ä¸æ¹æ§ä»¶ï¼å¯¼è´äºDelphiçé¢é¢åºéãä¸å¦¨å¸ä¸é£äºæ§ä»¶è¯è¯ï¼
å¯ç§»æ¤æ§ï¼ç«è¶³ç°å®ï¼æ¾ç¼æªæ¥
Inpriseæ£å¨å¼åDelphiçLinuxçæ¬ï¼ä»£å·ä¸ºKylixãä¹è®¸éè¿Kylixï¼ç¨VCLææ¶ç¼åçWindowsç¨åºåLinux移æ¤æ为å¯è½ãä½è¿åªæ¯å¯è½ãå 为å¨ç®åInpriseçå ¼å®¹æ§å·¥ä½åå¾å¹¶ä¸å¥½ãä½çæ¬çDelphiä¸è½ä½¿ç¨é«çæ¬çVCLç»ä»¶ï¼èé«çæ¬çDelphiç«ç¶ä¸è½ä½¿ç¨ä½çæ¬çVCLç»ä»¶ãçæ¯å²ææ¤çï¼æ们å¾å°çè§è½¯ä»¶æä¸åä¸äºè¿å¶å ¼å®¹çãå¦æWindows ä¸è½è¿è¡çç¨åºï¼Windows ä¸è½è¿è¡3.xçç¨åºï¼Win 3.xä¸è½è¿è¡DOSç¨åºï¼ä½ è¿ä¼ç¨Windowsåï¼å¦æWindows çç¨åºå¿ é¡»ç»è¿éæ°ç¼è¯æè½å¨ä¸è¿è¡ï¼ä¼åå¾é£ä¹å¥½åï¼"åé¨å å¼"C++BuilderåDelphiä¹ä¸è½äºç¸ä½¿ç¨å¯¹æ¹çç»ä»¶ï¼çè³åä¸å¥VCLåºçæ件åä¹ä¸ä¸æ ·ãæ以ä¸ä¸ªç»ä»¶æfor D1/D2/D3/D4/D5/C1/C3/C4/C5è¿äºä¸åçæ¬æ¯å¸¸æçäºï¼èä¸éçDelphiåC++Builderçæ¬çå级å¯è½è¿ä¼å¢å ãå¸æInpriseè½å 解å³åé¨å å¼çå ¼å®¹æ§é®é¢ãè微软çVC就没æè¿ç±»é®é¢ãMFC1.0çç¨åºä¹å¯ä»¥æ¯«æ éç¢å°å¨VC6.0ä¸ç¼è¯éè¿ã
éæçé¢ï¼å®è§ä¸å¾®è§
就大å¤è¯´ï¼VCçéæçé¢æ¯ä¸å¦DelphiçãDelphiä» ä» ä¸ä¸ªObject Inspectorå°±å¯ä»¥å°VCçä¸å Wizardsæ¯ä¸å»ï¼ä½åµå®è¿æCode ExplorerãToDo Listçãä½ä»å°å¤ï¼åå¯ä»¥çåºDelphiçä¸æçãæ¯å¦"èªå¨å®æ"åè½çæºè½åç¨åº¦åæ示详ç»ç¨åº¦ä¸å¦VCï¼ååºé度ä¹æ²¡æVCå¿«ã
Visual C++æ带çMSDNæ¯ä¸é¨"å¼åè çç¾ç§å ¨ä¹¦"ï¼ä¿¡æ¯åºå¤§ï¼æ¥è¯¢æ¹ä¾¿ï¼è¿æ¹é¢æ¯Delphiæ´ä¸ä¸ãå¾å¤å¸®å©é¡¹é½ææºç¨åºç¤ºèã
DelphiçOpenToolsæ¯å®å ¨é¢å第ä¸æ¹çå¼æ¾ç³»ç»ï¼å¼åè å¯ä»¥ä¿®æ¹å¾å¤Borlandå ¬å¸èªèº«çåè½ï¼ä»IDEçå¯æ©å æ§ä¸è¯´Delphiæ´å¥½ã
è°è¯ï¼ç»å¾®ä¹å¤è§çå
Visual C++åDelphiçè°è¯åè½é½é常强大ï¼åæ¶é½å ·æåæ¥å¯è§åè°è¯ãæç¹è·è¸ªãè¿è¡æ¶æ¹ååéãé¼ æ æåå¯ä»¥å¾å°åéå¼ççåè½ã对DLLçè¾å ¥è¾åºä¹è½æ¹ä¾¿ç管çï¼è½å¤è¿è¡æºç 级å«çè°è¯ã
ç¸å¯¹èè¨ï¼Visual C++è½å¤æ´å æ¹ä¾¿å°çå°åéçååæ åµï¼è¿å æ¬å¯¹ç»æå¯ä»¥å±å¼ææ°æ®æ ï¼ä»èäºè§£æ¯ä¸ä¸ªåéçå¼ï¼æ¯ä¸æ¥è°è¯ï¼ååäºçåéä¼å 红ï¼ä»è使è°è¯æ´å æ¹ä¾¿ãå¦å¤ï¼Visual C++çåå åå¯çæ¯Delphiä¹è¦æ¹ä¾¿ã
å½ç¶ï¼Delphiä¹æå¾å¤ä½è´´çç»å¾®ä¹å¤ï¼æ¯å¦å¨çº¿ç¨è°è¯çæ¶åï¼Delphiè½å¤å¾æ¹ä¾¿å°å¯ç线ç¨çååï¼Visual C++å´å¿ é¡»è¦å¼¹åºä¸ä¸ªæ¨¡å¼å¯¹è¯æ¡ã
æ°æ®åºå¼åï¼Delphiä¸æç¬ç§
æ°æ®åºæ¯ææ¯Delphiç强项ãè¿ä¸»è¦ä½ç°å¨Delphiä¸BDEçæ ç¼éæï¼ä»¥åDelphiæä¾çé£ä¸å¤§å ç°æçæ°æ®åºæä½æ§ä»¶ãè¿æ¯VCæå°è«åçãç®åDelphiæ¯æBDEãADOãInterBaseä¸ç§æ°æ®åºè®¿é®æ¹å¼ãææçæ¹å¼é½è½ææå°åºç¨ç¨åºä¸å®ç°å¯è§åæä½ãæ£æ¯å 为Delphi对æ°æ®åºç±»çå è£ ï¼ä½¿å¾ç¨æ·æä½æ°æ®åºä¸åå¨Visual C++ä¸å¿ é¡»ä»å¼å§å°æåé½è¦å¹²é¢ãææ¾å°æé«äºå¼åé度ã
Delphiä¸ä½¿ç¨WebBrokeræ§ä»¶è¿è½å¾æ¹ä¾¿å°æé åºåºäºæ°æ®åºçWeb页é¢ï¼éè¿HTML管çWebæ°æ®åºã Visual C++访é®æ°æ®ä¸»è¦éè¿ADOåOLEDBï¼å¾å¤ActiveXæ§ä»¶ä¹è½æ·»å æ°æ®åºåè½ãä½æ¯æ²¡æåParadoxè¿æ ·çæ¡é¢æ°æ®åºï¼Accessç¸å¯¹åè½å¤ªå¼±äºãä¹è®¸SQL Serveræ¯ä¸éçéæ©ã
COMï¼æ°ææ¯çåé
COMæ¯ç»ä»¶å¯¹è±¡æ¨¡åç缩åãå®æ¯OLEåActiveXææ¯çåºç¡ï¼COMå®ä¹äºä¸ç»APIåä¸ä¸ªäºè¿å¶æ åï¼è®©ä¸åçç¼ç¨è¯è¨ãä¸åå¹³å°çå½¼æ¤ç¬ç«ç对象ç¸äºè¿è¡é讯ã
COMæ¯Microsoftå¶è®¢çè¡ä¸æ åãä½Delphiä¹ä¸ºCOMæä¾äºå¼ºå¤§çè¯è¨æ¯æãæ¯ææ¥å£ãvariantã宽å符串åè½ãè¿äºå¯¹COMçå°è£ ç¡®å®æ¯C++æ´æ¹ä¾¿ãæ¯å¦å¨C++ï¼æ²¡æç±»æ¡æ¶ï¼è¿è¡COMç¼ç¨æ¶ï¼åä½å®ä¹ä¸ºoaidl.hæ件ä¸çVARIANTç»æãè¦å¤çåä½ï¼å¿ é¡»æå·¥è°æ´oleaut.dllä¸VariantXXXX() APIå½æ°å¯¹å ¶è¿è¡åå§åå管çï¼å¦VariantInit()ãVariantCopy()ãVariantClear()ççã
Visual C++å®ç°COMç¼ç¨æä¸ç§ç¹æ®çæ¹æ³å°±æ¯ä½¿ç¨ATLãATL使ç¨Visual C++ç¹æçå¤é继æ¿æ¥å®ç°COMæ¥å£ãè½ç¶ä¸è§å¾å®ç°COMæå¡åæ§å¶æ´å®¹æï¼ä½æ¯ATLåææ°COMææ¯çæ¥å£ï¼åºäºæ¨¡æ¿çæé é½æ¯Delphi强ãATLæ´æå©äºå»ºç«å°å·§ãå¿«æ·çCOMç»ä»¶ç¨åºã
æç®åéç¨çè§ç¹ï¼Visual C++åºç¨å°COMæå¡ç¨åºæ´æä¼å¿ï¼Delphiåºç¨å°COMç»ä»¶ç¨åºæ´åéã
æ¨å¤©ï¼ä»å¤©ï¼æ天
ææ¯çè¿æ¥å¨å¾å¤æ¶åæ¯æ¤æ¶å½¼é¿çãå½åBorlandçTurbo CåBorland C++å ä¹æ¯C/C++ç¨åºåå¯ä¸çéæ©ã微软çQuick C(ç°å¨è¿æ人ç¥éè¿ä¸ªäº§ååï¼)åMicrosoft C/C++ä»æ¥ä¹æ²¡ææ为è¿ä¸»æµãä½Borland C++åæµè¡äºå¤å°å¹´å¢ï¼ä¸ä¹ 就被æ°å´èµ·çMicrosoft Visual C/C++åä¸å»äºãäºæ¯Inprise(åBorland)æ£èµ·äºå½å¹´Turbo PascalåBorland Pascalçè¾ç (äºå®ä¸Borlandçæåä½å°±æ¯ç¬¬ä¸ä¸ªPascalç¼è¯å¨)ï¼å ¨åæ¨åºäºDelphiãDelphiå½åæ¨åºæ¶è¢«ç§°ä¸ºVBææï¼ä½VBç°å¨ä»ç¶æ´»å¾æºå¥½ãæ¯ç«å¾®è½¯æ¯é Basic起家çåï¼VBä¸æ¯é£ä¹å®¹æ被æè´¥çãInpriseæ³äºæ³ä¸åVBäºäºï¼ä½¿ç¨DelphiçIDEåVCLé ä¸C++è¯è¨ï¼æ¨åºäºC++Builderï¼ååVisual C++çå¸åºåèµ·äºå¤¹æ»ãC++Builderä¼¼ä¹æ¯ä¸ªä¸éçæè¡·éæ©äºï¼åä»ç»æ³æ³ï¼C++Builderçä¼ç¹Delphié½æï¼ä½Delphiçä¼ç¹C++Builderæªå¿ æãæ¯å¦C++Builderçç¼è¯é度æ¯VCè¿æ ¢ï¼åªè½åDelphiæ¯ï¼èä¸å 为VCLæ¯Object Pascalåçï¼C++è¯è¨åVCL磨åå¾å¹¶ä¸å¥½ãC++Builderçbugæ¯Delphiè¿å¤ï¼çè³Sample代ç ä¸è¿æéãVCLçé¨ååè½ä¸è½ä½¿ç¨ï¼è¦é åµå ¥pascal代ç 访é®ãC++Builderå¯ç¨ç第ä¸æ¹æ§ä»¶è¿æ²¡æDelphiå¤ã
åï¼çæ¯éæ 足赤ãMicrosoftåInpriseï¼è°ä¼ç¬å¨æåå¢ï¼
é±¼åçæï¼è°é¾çéæ©
éæ©ä¸ä¸ªå¼åå·¥å ·ä¾èµäºå¾å¤ä¸åçå ç´ ï¼æ¯ä¸ªäººé½è½å 为æç§è¯è¨çæ个缺é·èæ¾å¼å¦ä¹ æ使ç¨è¿ç§è¯è¨ãä»»ä½ç¨åºåé½å¸æèªå·±å欢çå·¥å ·è½è¾¾å°çæ³çå¢çï¼éè¿ä¸é¢ä¸å®åçæ¯è¾ï¼ææ³å¤§å®¶é½æèªå·±ççæ³ãæ们认为影å大家éæ©å¼åè¯è¨çå ç´ ä¸»è¦å æ¬ï¼
1ï¼ åªé¨è¯è¨æ´å®¹æå ¥é¨ï¼
å¦ä¹ ä¸ç§è¯è¨éè¦æå ¥å¤§éçæ¶é´åç²¾åãå¼åç¨åºçå¼åææ¬æ¯å¼å¾èèçç°å®ãä¸ä¸ªçç»çDelphiç¨åºååä¸ä¸ªçç»çVCç¨åºåå·¥ä½æçæ¯ä¸æ ·çãä½æ¯ï¼æ为çç»çç¨åºåå¿ é¡»å¾å¿«ææ¡ä¸é¨è¯è¨çæå·§ãä¸å¹¸çæ¯ï¼ç®åçç»çVisual C++ç¨åºåæ¯åéæä¸ãç¸å¯¹èè¨ï¼Delphiæ´éååå¦è ã
2ï¼ åªé¨è¯è¨ææ´å¤å¯ç»§æ¿ç代ç ï¼
è¯è¨ä»£ç çå¯éç¨æ§æ¯å å¿«å¼åæçææ¾æ¹é¢ï¼ä»æ©æçè¿ç¨ãå½æ°å°ç°å¨çç»ä»¶ææ¯é½æ¯æè¿ä¸ªç®æ å¨å¥æãè¿ä¸¤ç§è¯è¨å¯¹ä»£ç éç¨çç解æ¯ä¸ä¸æ ·çï¼Delphi主è¦éè¿VCLæ§ä»¶æ¥å®ç°ä»£ç éç¨ï¼Visual C++å®ç°èµ·æ¥å°±æ¯è¾å¤æã
3ï¼ è¯è¨èªèº«çæ¬æ§ã
å°±ææ¯(主è¦æåºç¨æ¡æ¶)æ¥è¯´ï¼Delphiç®åé¢å äºVisual C++ãä½ç¨³å®æ§åå¥å£®æ§çä¸è¶³å让æ对Inprise"æ³è¯´ç±ä½ ä¸å®¹æ"ãèVC尽管åå±å°ä»æ¥å·²ååå®åï¼ä½MFCæ¡æ¶å·²æ¯ææ¥é»è±äºãå¦æä¸ä½¿ç¨MFCï¼ç®åå没æåéçæ¿ä»£åãæ ¹æ®ä½ çéè¦åå®é æ åµåéæ©å§ãå®é ä¸Visual C++åDelphiä¹ä¸æ¯ç®åç«äºå ³ç³»ãå®ä»¬å¨è®¸å¤é¢å并ä¸éå ï¼çè³æ¯äºè¡¥çãå°åºææ ·åèï¼è¦æ ¹æ®ä½ ç项ç®ç¹æ§å³å®ãå¦æä½ å¼åç³»ç»åºå±çä¸è¥¿ï¼éè¦æ好çå ¼å®¹æ§å稳å®æ§ï¼éVisual C++å§ãä½ å¯ä»¥åªè°ç¨Windowsçåç§APIï¼ä¸ç¨MFCãå¦æä½ åä¼ ç»çWindowsæ¡é¢åºç¨ç¨åºï¼Visual C++çMFCæ¡æ¶æ¯"æ£ç»"çéæ©ï¼å¦æçé¢é¨åå è¿ä¸ªåºç¨ç¨åºä»£ç æ¯ä¾è¾å¤§çè¯ï¼æè Delphiä¸æç¸å ³åè½çæ§ä»¶çè¯ï¼Delphiæ¯äºåååçéæ©ãå¦æä½ ä¸ºä¼ä¸å¼åæ°æ®åºãä¿¡æ¯ç®¡çç³»ç»çé«å±åºç¨("é«å±"æ¯ç¸å¯¹äº"ä½å±/åºå±"èè¨çï¼ä¸æ¯è¯´ææ¯é«çº§æä½çº§)ï¼èä¸ææ¯è¾ç´§çæééå¶ï¼éDelphiæ¯è¾å¥½ãå¦æä½ çæçè¯è¨æ¯Object Pascalï¼åä¸æç®å¦å¤æçC++ï¼é£ä¹Delphiå ä¹æ¯å¯ä¸çéæ©ãä¼ ç»çè§ç¹æ¯ï¼Delphiéåç¼åInternet/Intranetãè¡¨æ ¼å¶å¾ãæ°æ®åºæä½ãé«çº§ç¨æ·çé¢ççãVisual C++éåç¼å设å¤é©±å¨ãCOMæå¡ç¨åºãç§å¦è®¡ç®ãæ§å¶å°ï¼consoleï¼ç¨åºãWinCEçåºç¨åä¸äºå°çå·¥å ·ççãåºç¨èå´çä¸åè¦æ±å¥½çç¨åºååæ¶ç²¾éè¿ä¸¤é¨è¯è¨ã
4ï¼ è¯è¨çåæ¯åå¯æ©å æ§ã
Delphiæ¯Inpriseçæè°äº§åä¹ä¸ï¼åæ¯åºå½è¿æ¯æ¯è¾ä¹è§çï¼èä¸Inpriseå·²ç»å¨åLinuxè¿åäºï¼è微软è¿è¿è¿æ²¡æå¨ä½ãéæ¾çæ¯ï¼Inpriseå ¬å¸Delphiçåå§äººå·²ç»è·³æ§½å°å¾®è½¯å»ä¸»æVisual J++åC#项ç®äºãä½æ¿å¯¹Inpriseå²å»ä¸ä¼å¤ªå¤§ã
微软çVisual C++çåæ¯åææ ·å¢ï¼Visual Studio 7.0å°±è¦æ¨åºäºãè¿ä¸çæ¬å°å 强ç½ç»å¼åçç¹æ§ãçæ¥å¾®è½¯è½ç¶è¢«å¤è§£ä½ï¼å¼åå®åå¯æ¯ä¸ç¹æ²¡æææ£ã
å¦å¤ï¼è½è¯´MFCå·²ç¨æ¾è½åï¼ä½ä¸æ¯è¯´å®ä¸å¼å¾å¦ãäºå®ä¸ï¼ä¸å¦MFCå°±çäºæ²¡å¦VCãå©ç¨MFCæ¡æ¶å¼åç¨åºä»ç¶æ¯ç®åå¼åæ¡é¢åºç¨ç主æµæ¨¡å¼ï¼èä¸è¿ä¼ä¿æç¸å½é¿çæ¶é´ãå¾®è½¯å ¬å¸CEOå²è夫·巴å°é»(Steve Ballmer)æ¾è¯´ï¼.NETæµè¡è¿å¾ç2ï¼3å¹´ãé£ä¹ï¼MFCè³å°è¿æ2ï¼3å¹´ççå½ç©ºé´ãå¨ææ¯æ¥æ°æå¼çITçï¼2ï¼3å¹´å®å¨æ¯å¾é¿ä¸æ®µæ¶é´äºã好好ææ¡å§ãå³ä½¿ä½ ä¸ä½¿ç¨MFCæ¡æ¶ï¼è±ç¹æ¶é´çä¸ä¸MFCçå°è£ æºå¶å¯¹ä½ çæC++çOOPæºå¶åWindowsåºå±åè½ä¹æ¯å¾æ好å¤çãèVCLçæºä»£ç æ¯Object Pascalçï¼å¯¹C/C++ç¨åºå就没æè¿ä¸ª"é¢å¤"çä½ç¨äºã