VS2019 再过几天就要正式发布了,我们还在使用 VS2010 进行软件开发。由于所处行业环境及项目类型,加之之前的代码积累,所以即使不用新的开发环境、新的语言技术也能比较好的完成工作。那究竟要不要使用新的开发环境、新的技术呢?答案当然是肯定的。

过去几年一直使用 VS2010 进行开发,使用 MFC 作为界面框架,使用 C++ 中的容器、算法,使用 C 线程处理多线程,使用 Win32 中的临界区、Event、Mutex 等处理线程间通信,使用 boost 中的部分组件(如 bind、function、signals2 等)等。多年过去,是时候做些改变了。

学习 C++11

C++11 已经推出多年,现在每三年一个标准,C++14C++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 还没问世,我们使用的也是当时的新技术。随着时间的推移,各项技术(开发工具、语言)都又有了进一步的发展,我们也需要重新选择。只有不断的学习才能不断的进步。

- - - End - - -



欢迎扫码订阅我的微信公众号,以获得最佳阅读体验。

本文作者: Lzl678
本文链接: https://www.cnblogs.com/Lzl678/p/10618429.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

放下VS2010,拥抱VS2019的更多相关文章

  1. VS2010到VS2019各个版本的密钥

    VS2019专业版和企业版的密钥 Visual Studio 2019 EnterpriseBF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Profe ...

  2. C语言学习笔记第一章——开篇

    本文章B站有对应视频 (本文图片.部分文字引用c primer plus) 什么是C语言 顾名思义,c语言是一门语言,但是和我们所讲的话不同,它是一门编程语言,是为了让机器可以听懂人的意思所以编写的一 ...

  3. vs2010,vs2013,vs2015,vs2017, vs2019激活秘钥

    vs2010============================================== YCFHQ9DWCYDKV88T2TMHG7BHP vs2013=============== ...

  4. VS2017、VS2019没有Setup安装项目(Visual Studio Installer)_解决方案

    前言: VS2010中有一个自带的安装部署项目,叫:Visual Studio Installer ,我们通常称为:setup项目,是一个用于自定义安装部署的项目方案.但是在VS2017,VS2019 ...

  5. VS2019 实用操作

    本文列出了在编写程序过程中的几个非常实用的操作方式,通过这些操作方式,可以在一定程度上减少重复操作.提高编码效率.改善编程体验. 列模式操作 列操作是一项很常用且实用的功能,可以一次性修改不同的行. ...

  6. VS2019 实用设置

    本文记录了 VS2019 预览版使用过程中的一些设置,这些设置也同样适用于 VS2017,我们可以根据个人的实际情况进行修改. 滚动条(Scroll Bar) 将滚动条设置为 map mode 后,则 ...

  7. VS2010主题设置及插件推荐

    本文主要写了个人使用 VS2010 的一些配置及实用插件,从而打造一个符合个人风格的开发环境. 基础设置 安装 Visual Assist X 在 VS2010 中若不安装 Visual Assist ...

  8. 宇宙第一开发工具:vs2019 开发Python

    1.初步认识 现在人工智能逐步进入人们的视野,人工智能开发也越来越火. 而python语言,被作为大数据库开发的首选语言之一~.前一段时间vs2019预览版发布.相信不少小伙伴已经开始使用,vs201 ...

  9. vc6.0 PK vs2010

    从VC++6.0不足看VisualC++2010新特性 说起VC,有人想到维生素C(维C),有人想到风险投资(venture capital), 程序员们尤其是做底层开发的程序员或老程序员们第一感觉肯 ...

随机推荐

  1. mysql的学习笔记(六)

    1.字符函数 (1).CONCAT(str1,str2,...)函数,将多列信息合并输出. SELECT CATCAT('hello','mysql') as test (2).CONCAT_WS(' ...

  2. 把ABP框架部署到Docker中

    本文旨在将Abp项目部署到Docker容器中,借助Gitee存储,Jenkins持续构建,利用Docker Compose生成镜像.启动镜像,在官网给定的Abp项目中,虽然用到了Dockerfile. ...

  3. python3打开winodows文件问题

    1,解决办法 "C:\\Users\\Darkness-02\\Desktop\\test.txt" 多加一个反斜杠就行了 2,解决办法r"C:\Users\Darkne ...

  4. c#用winform开发一个简易双色球项目

    开始画面 抽奖中: 抽奖结果: 需要一个随机数Random的帮助类,让随机数唯一性 public class RandomHelper { public int GetNum(int min, int ...

  5. js中let和var的区别 不懂得加QQ 2270312758

    js中使用let定义变量的时候,是需要使用严格模式的,我看到网上有的博客说:如果在不使用严格模式的情况下,使用let会报错,但是在实验的过程中,我直接定义了let变量而且也没有使用严格模式,并没有报任 ...

  6. 【Json】fastjson与jackson常用操作记录

    本文只是记录fastjson.jackson一些常用的操作方法,没作比较,网上写比较的文章很多啦. 1.对象转Json串 // fastjson String objStr = JSON.toJSON ...

  7. java类与对象(属性,方法)的使用

    ---恢复内容开始--- 类和对象是java编程中很重要的应该面向对象的一课,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语言的基础 ...

  8. 设计模式 - 单例模式(Singleton Pattern)

    单例模式 介绍 模式:创建型 意图:保证一个类只有一个实例,并提供一个访问它的全局访问点 解决:一个全局使用的类频繁地创建与销毁 场景: 唯一序列号 web中的计数器 I/O与数据库的连接 …… 实现 ...

  9. [总结]CSS/CSS3常用样式与web移动端资源

    CSS/CSS3常用样式与知识点 IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条 ...

  10. 浏览器与android移动端视频互播技术实现

    手机端与平台之间的视频直播功能,主要通过集成多种开源视频框架以及采购第三方视频直播服务器产品来实现预定业务需求.视频直播对话功能的实现,主要经历了三个阶段:利用开源视频框架实现视频直播.采购第三方视频 ...