使用 C# 在VS 2022 上开发时,发现有多种项目类型可以创建。这些类型放一起容易搞混,于是记录一下各种类型的区别。
这里主要介绍windows控制台程序、MFC程序、WPF程序、WinForm程序的特点。
创建哪种应用?
-
创建控制台应用
Windows控制台程序(Win32控制台应用程序),没有图形用户界面,主要通过命令行进行交互,适用于编写简单的系统工具和脚本。
-
创建 MFC 应用
MFC(Microsoft Foundation Class)应用程序,是一种基于C++的Windows应用程序框架。它使用面向对象的方法来构建应用程序,并提供了丰富的类库和工具,使得开发者能够更加高效地开发Windows应用程序。然而,MFC生成本机代码,虽然是很快,但是消息循环减缓了界面显示速度。
图源:https://blog.csdn.net/shulianghan/article/details/114917935。 -
创建WPF应用
Windows Presentation Foundation (WPF)应用程序是一种新一代的Windows应用程序框架,适合构建复杂、富客户端的Windows应用程序,可以实现更好的可视化效果和用户体验。WPF的线程模型和数据绑定方式以及其对3D的支持和XAML编程模型,使其在功能上明显强于WinForm。美观上和内存使用上WPF比WinForm表现更好,但相应地在性能上会有一些牺牲。
- 创建Windows 窗体应用
Windows Forms(WinForm)应用程序是一种基于.NET Framework的Windows应用程序框架,适合传统的Windows应用程序开发。其特性包括简单易用、集成开发环境强大等,但在美观度和内存使用上不如WPF。
怎么样?
MFC,是一种早期的框架,主要用于C++编程,并且其使用逐渐被淘汰。
而WinForm则是基于.NET Framework的桌面应用程序开发技术,它允许开发者使用C#或VB.NET进行编程,且通常用于创建简单的、传统的Windows应用程序。
然而,WPF提供了更强大的功能,如数据绑定、3D支持、动画效果等。它引入了XAML(Extensible Application Markup Language)作为界面描述语言,并使用C#或VB.NET编写。
关于他们的关系,WPF被视为是WinForm的升级版本,而并非直接的替代品。其先进的功能和特性比如依赖属性、数据模板、样式模板、触发器、扩展属性、自定义控件等,使得WPF在构建复杂、富客户端的Windows应用程序时具有明显的优势。因此,尽管WinForm和WPF可能会并存发展,但从技术的角度来看,WPF最终有可能取代WinForm,实现桌面应用程序和浏览器应用程序的统一。