企业级桌面架构如何选,MFC、WinForm 还是 WPF?一文说清

221 阅读4分钟

前言

作为一个技术总监,曾主导过数个桌面的应用程序,从早期的 MFC 一直到现在的 WPF 企业应用,说实话每一项技术都是有其独特的价值和应用场景。

接下来我将从技术架构、性能优化,和项目实战等多个维度,介绍一下这三个框架的关系。

一、技术架构分析

1、MFC,Win32 API的 C++ 封装

核心原理:MFC 本质就是对 Win32 API 的封装,采用了文档/视图的架构模式。能直接操作 Windows 消息,为程序员提供了最接近 OS 底层的开发经验。

内存管理策略

2、WinForm,托管代码的 RAD 框架

设计哲学:WinForm 是基于 .Net Framework 的 Windows Forms 命名空间命名的,事件驱动的模型架构。为程序员提供基于拖拉拽形式操作的控件,大大提高了开发速度。

WinForm 同时也支持自定义控件的开发,增强了控件的复用性。

3、WPF,XAML 驱动的现代化架构

核心理念:依赖属性和数据绑定

WPF 基于 DirectX 渲染引擎,采用 MVVM 架构模式,核心技术依赖属性系统和强大的数据绑定机制。

WPF 应用程序启动流程和 MVVM 绑定机制

MVVM 绑定机制核心要点

DataContext 设置:在文件中设置窗口的 DataContext 为 ViewModel 实例

属性绑定:在 XAML 中使用{Binding PropertyName}语法绑定 ViewModel 属性

命令绑定:按钮等控件通过 Command 属性绑定 ViewModel 中的 ICommand 实现

二、性能对比

曾经测试过,在功能相同的情况下,无论是 启动时间,内存占用率,CPU 使用率,画面渲染性能:MFC > WInForm > WPF

这个结论大家了解就好了,不用纠结。

三、实际项目中的选型

1、MFC,现在使用这个框架的项目已经很少了,除非以下几个场景

系统级别工具的开发、对性能要求极高的应用、需要与系统深度集成的项目以及历史遗留的项目。

我的建议是能不用 MFC 就不用 MFC,这个框架自 2005 年之后就没有在维护了。

2、WinForm 应用场景

WinForm 适合相对比较小的项目,比如一些数据录入查询啊、快速原型开发啊、上位机软件和一些传统桌面应用迁移程序。

3、WPF 使用场景

相对比较的企业级应用主要是 MVVM 架构的应用,易于开发和维护,一些数据可视化、多媒体应用的开发,以及一些复杂的 UI 交互系统等。

四、未来前景分析

1、MFC

这个框架在系统工具和驱动程序等领域依然很有市场,但是用的企业不多,会的人也不多,不过薪资还是很有竞争力的。

2、WinForm

被很多人认为只是很小项目,因为这个框架是事件驱动的,耦合度比较高,维护起来比较麻烦,不过快速开发和快速原型实践领域还是用的很多的。

我就用 WinForm 开发了很多实用的小工具,主要是开发速度快。

3、WPF

新特性加持,企业化应用的首选。

4、新兴技术

比如:Blazor Desktop、MAUI、Avalonia 等技术,大家也不要错过,作为一个程序员虽然不支持盲目地追求新技术,但是还是要了解的。

其实从一个程序的角度出发,技术没有好坏,只有适合与否,与业务高度契合的框架才是好的框架。

我们平时要做的事就是:理解每一种技术的特点,根据实际需求做出选择,持续了解新技术,积累项目经验,做一个有准备的人。你说呢?

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!

作者:全小鱼

出处:zhihu.com/question/435492936/answer/1936037106221839580

声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!