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. 简单读!zookeeper单机模式的启动逻辑

    zk用处如此之多,以至于每个地方都要你理解zk原理! 请按如下操作姿势打开: 1. 打开zk的git仓库地址:https://github.com/apache/zookeeper , 确认过眼神,它 ...

  2. 4.alembic数据迁移工具

    alembic是用来做ORM模型与数据库的迁移与映射.alembic使用方式跟git有点类似,表现在两个方面,第一个,alemibi的所有命令都是以alembic开头: 第二,alembic的迁移文件 ...

  3. mysql的学习笔记(六)

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

  4. was cached in the local repository, resolution will not be reattempted until the update interval of fintech has elapsed or updates are forced

    今天使用命令mvn compile编译maven项目时提示错误信息,错误信息如下: [ERROR] Failed to execute goal on project <project_name ...

  5. GC参考手册 —— GC 算法(基础篇)

    本章简要介绍GC的基本原理和相关技术, 下一章节再详细讲解GC算法的具体实现.各种垃圾收集器的实现细节虽然并不相同,但总体而言,垃圾收集器都专注于两件事情: 查找所有存活对象 抛弃其他的部分,即死对象 ...

  6. ZooKeeper 03 - ZooKeeper集群的脑裂问题 (Split Brain问题)

    目录 1 ZooKeeper的主从机制 2 什么是ZooKeeper的脑裂 2.1 脑裂现象的表现 2.2 为什么会出现脑裂 3 ZooKeeper如何解决"脑裂" 3.1 3种可 ...

  7. Windows下SVN服务器搭建和基本操作(服务端、客户端)

    自己打算打一个SVN服务器了解一下,所以顺便记录一下整个的过程 下载 服务端 https://www.visualsvn.com/server/download/ 客户端 https://www.vi ...

  8. .NET ORM框架 SqlSugar4.0 功能快速预览【开源】

    SqlSugar 4.0 ORM框架的优势 为了未来能够更好的支持多库分布式的存储,并行计算等功能,将SqlSugar3.x全部重写,现有的架构可以轻松扩展多库. 源码下载: https://gith ...

  9. 【转】Redis一般会遇到的问题以及解析

    单线程的 Redis 为什么这么快 这个问题是对 Redis 内部机制的一个考察.根据我的面试经验,很多人都不知道Redis 是单线程工作模型.所以,这个问题还是应该要复习一下的. 回答主要是以下三点 ...

  10. java集合(1)

    java集合类存放于java.util包里,只能存放对象,存放的是对象的引用,可以是不同类型,不限数量的数据类型. 顶层接口:Iterator(迭代器),Map Iterator:核心方法hasNex ...