Windows程序设计:MFC 、Winform 和 WPF 比较[通俗易懂]

MFC生成本机代码,自然是很快,可是消息循环减缓了界面显示速度。WinForm封装了win32的api,多次进行P/invoke操作(大部分使用p/invoke操作封装),速度慢。WPF是一种新的模型,不再使用win32模型,自己新建模型,使用dx作为新的显示技术,直接访问驱动程序,加快了运行速度,可是,这种模型,需要支持dx9的显卡,硬件要求高(你还能找到现代机器不支持dx9的吗?)…

大家好,又见面了,我是你们的朋友全栈君。

MFC生成本机代码,自然是很快,可是消息循环减缓了界面显示速度。

WinForm封装了win32的api,多次进行P/invoke操作(大部分使用p/invoke操作封装),速度慢。

WPF是一种新的模型,不再使用win32模型,自己新建模型,使用dx作为新的显示技术,直接访问驱动程序,加快了运行速度,可是,这种模型,需要支持dx9的显卡,硬件要求高(你还能找到现代机器不支持dx9的吗?)

开发效率上,MFC < WPF < WinForm

尽管MFC开发界面执行效率高但是开发效率低,作为现在的项目开发来说时间跟开发效率往往能决定项目的成败,所以除非有特别的需求,否则都回尽量避免用MFC来做开发,MFC只是一个弱封装器。

开发成本,MFC > WPF > WinForm

用MFC开发成本太高,对开发者能力要求更高,作为客服当然希望开发的费用越少越好,开发者当然希望钱赚得越多越好,这样一比,这也是MFC没落的一个很大的原因。

界面执行效率上,MFC == WPF > WinForm

随着计算机硬件的性能提高,多核cpu的普及,它们的差距会越来越小。

开发灵活性上:WPF > MFC > WinForm

美观上:WPF > WinForm > MFC

这一项中MFC下要开发出一个华丽的ui极其困难,也许你可以说你可以用控件,但是商业开发控件是要收费的!!MFC要写出这种效果不知要写到何年何月。这样一来MFC存在的价值就更低了。效率和美观不如WPF,开发效率又不如WinForm。

内存使用上:WPF > WinForm > MFC

随着计算机硬件的性能提高WPF这个缺点会被忽略。

使用范围:WPF > MFC == WinForm

有以上可知:WPF大有取代WinForm和MFC之势,从未来net的发展来看,MFC以后只会变成一种经典,作为一种技术来供开发者学习,WinForm和WPF两者会并存发展,但最终都会被WPF取代,最终实现桌面应用程序和浏览器应用程序的统一。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128914.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据结构和算法—-单向链表

    数据结构和算法—-单向链表

  • Repeater嵌套绑定Repeater「建议收藏」

    Repeater嵌套绑定Repeater「建议收藏」Repeater嵌套Repeater的结构: cs代码:  Code private void RpTypeBind()   {       //GetQuestionTypeAndCount() 返回一个datatable        this.rptypelist.DataSource = LiftQuestionCtr.GetQuestio…

  • 3_1符合python语言变量_中国大学MOOC: 以下选项中不符合Python语言变量命名规则的是以下选项中不符合Python语言变量命名规则的是 答案:3_1…[通俗易懂]

    3_1符合python语言变量_中国大学MOOC: 以下选项中不符合Python语言变量命名规则的是以下选项中不符合Python语言变量命名规则的是 答案:3_1…[通俗易懂]劳心者治人,劳力者治於人”,孟子之,其所以驳()也。俟:农人家当睫状肌缩,悬韧带弛时,晶状体者也:前面曲率增,折光力强人生直为人观之义,是指()耳:生人之用于世与人所有之用、意义量人生直之格宜为()耳:劳、贡献宜从四方来得新时两步行要之位置。中国大学MOOC口被虫伤之者其主何护问答:焦思、惧中国大学MOOC口以下于北方经制论不正者是也:邑化率增速高中国大学MOOC口补虚药为补虚扶弱,正体气血阴阳虚…

  • hack DOS 基础测试网络命令

    hack DOS 基础测试网络命令

  • 人工智能学习路线

    阶段一、人工智能基础- 高等数学必知必会本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基础,有利于大家在后续课程的学习中更好的理解机器学习和深度学习的相关算法内容。同时对于AI研究尤为重要,例如人工智能中的智能很大一部分依托“概率论”实现的。一、数据分析1)常数e2)导数3)梯度4)Taylor5)gini系数6)信息熵与…

  • XPS文件转换PDF小工具,集成了界面,方便大家使用

    XPS文件转换PDF小工具,集成了界面,方便大家使用网上有关于XPS转换PDF的工具gxps.exe,由GhostPDL的代码编译而成。但是很不方便使用,需要设置参数,不够直观。所以想出了给它集成一个外壳的想法。 利用C++语言,编写了外壳,调用gxps.exe,可以直接选择需要转换的文件和保存的地址。 完成界面后,感觉大家还需要再下gxps.exe,两个exe看起来很不爽。所以就将exe集成到了外壳程序里。需要转换时释放该文件

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号