VS2019 再过几天就要正式发布了,我们还在使用 VS2010 进行软件开发。由于所处行业环境及项目类型,加之之前的代码积累,所以即使不用新的开发环境、新的语言技术也能比较好的完成工作。那究竟要不要使用新的开发环境、新的技术呢?答案当然是肯定的。
过去几年一直使用 VS2010 进行开发,使用 MFC 作为界面框架,使用 C++ 中的容器、算法,使用 C 线程处理多线程,使用 Win32 中的临界区、Event、Mutex 等处理线程间通信,使用 boost 中的部分组件(如 bind、function、signals2 等)等。多年过去,是时候做些改变了。
学习 C++11
C++11 已经推出多年,现在每三年一个标准,C++14、C++17 已制定完毕,C++20 也在路上。一味追随新技术只会让自己陷入疲惫和迷茫,但对于比较成熟的技术还是要不断学习、尝试使用,同时保持对新技术的关注。
VS2010 已经提供了部分 C++11 的功能,如 auto、nullprt、std::shared_ptr、std::unique_ptr、部分 lambda 等功能,但其它如 foreach、容器初始化、多线程库、原子库、正则表达式库等大部分功能并没有包含。虽然这些可以使用 boost 中提供的相关库(C++11 中的很多功能源自 boost),但新的开发环境显然提供了更完善的支持,从编写、编译、运行调试等各方面都能够提升编码体验。
放弃 MFC
MFC 是微软提供的 Windows 桌面开发框架,主要使用面向对象思想对 Win32 API 进行了封装以便能够快速开发桌面程序。从 92 年发布距今已经 27 年,还在使用的人想必不会太多,愿意花时间学习的就更少了。
MFC 问世时,C++ 的标准(C++98)还在制定中,模板及模板元编程也还没出现。随着 VC6 的成功 MFC 也火了一段时间,在 VS2010 中也加入了大量的新组件(相关类以 CMFC 开头,其实是集成了 BCG 库),在此之后再也没有大的改进。
在安装 VS2010 时,MFC 还是默认安装的,在安装 VS2015 时,MFC 需要手动选择才会安装,之后的版本(VS2017、VS2019 预览版)也是如此。
试用 .Net Core
过去微软主推 .Net 技术,现在主推 .Net Core 技术,.Net 的桌面开发技术 WinForm、WPF 也已移植到 .Net Core 中。利用 .Net 庞大的基础类库,使用 C# 的诸多语法特性,借助 VStudio 的智能支持,使用 WinForm 能够更加快速的开发桌面程序,而且更易维护。
所以是时候放弃 MFC,转而使用新的开发框架了。
使用 VS2019
.Net Core 作为微软新一代技术平台,已经发展多年,完全开源、跨平台(WinForm、WPF 只支持 Windows 平台)。使用跨平台软件 VS Code 可以直接在各平台上进行开发并能获得一直的开发体验,只是若要使用 .Net Core + WinForm 进行桌面软件开发,还是使用 VStudio 更加便利,而这些在 VS2019 中才有更好的支持。
小结
在使用 VS2010 时,她是最新的开发环境、C++11 标准还没被各大厂商支持、微软还不是现在的微软(以前闭源,现在开源)、.Net Core 还没问世,我们使用的也是当时的新技术。随着时间的推移,各项技术(开发工具、语言)都又有了进一步的发展,我们也需要重新选择。只有不断的学习才能不断的进步。