(干了很久的程序员了,想分享一下我的开发经历,也是对我自己经历的记录,以后自己可以回顾一下这段经历,希望大家喜欢。)

Visual Studio 是软件开发工具,很棒的工具。打个比方,木匠可以做家具,他工具有斧子,刨子,锯子,当然也可以用削洗机床,有的加工机床一个人就能操作了,有的加工机床根本不需要人,就是一整条流水线。比方说,宜家的家具工厂使用流水线加工木板配件,用户买来自己组装。这种模式非常有效率。

所以说软件开发最重要的不是软件工具,而是软件工程这个系统性工具。高度合作,工业化和自动化的编程方法才是工业化软件生产的必须条件。只有合理的软件工程方法才是提高开发效率的根本,比方说,我们使用了迅捷开发的思想组织项目,调理清晰,不折腾,写程序的过程很容易一次成稿,而且bug少。因为写代码的速度足够快,写一遍详细设计的时间和直接写代码的时间是一样多的。小型项目中,详细设计可以写得足够简单,这样最多可以省一半时间。但是我们还是绕不过程序最终是要通过编写原代码,编译成为程序,提交测试发布的流程。优秀的程序员都想要使用最顺手的IDE才能达到这种迅捷开发境界。这就是Visual Studio的生命力,自动化的编码输入过程,极力支持程序员干出有效率的项目。经验告诉我们,如果一个项目迟迟交不出来,一定是有软件工程层面上的问题的。亲眼所见,一个熟手程序员3~4天的活,新手可能来回折腾一个月。这不是夸大其词。

程序员们一定有自己热衷的IDE,放下Java体系的,开发window程序的,一定是用Visual Studio。从1997年Visual Studio第一版开始,微软推进发展了20年。我记得那时我们还在用 Turbo C++, Ansi C++, Borland C++, Delphi等开发工具。自Visual Studio第二版(Visual Studio 6.0)开始,Microsoft 把所有的语言开发工具合并起来组合成为Visual Studio套件,其他公司的IDE色彩就渐渐褪去。

第一章 先讲一下Visual Studio的历程。

1、Visual Studio 97
1997年,微软发布了 Visual Studio 97。包含有面向 Windows 开发使用的Visual Basic 5.0、Visual C++ 5.0,面向Java开发的Visual J++和面向数据库开发的 Visual FoxPro,还包含有创建 DHTML (Dynamic HTML) 所需要的 Visual InterDev。

2、Visual Studio 6.0  (内部版本号为 6.0)
1998 年,微软发布了 Visual Studio 6.0。所有开发语 言的开发环境版本均升至 6.0。

3、Visual Studio 2002 (内部版本号为 7.0)
2002 年,微软提出了.Net口号,发布了 Visual Studio .NET。在这个版本中,微软建立了 .NET 框架(版本1.0)以及一门新的语言C#(读作 C Sharp)。

4、 Visual Studio 2003 (内部版本号为 7.1)
2003 年,微软对 Visual Studio 2002 进行了部分修订,以 Visual Studio 2003 的名义发布。

5、Visual Studio 2005(内部版本号为 8.0)
2005 年,微软发布了 Visual Studio 2005.NET 字眼从各种语言的名字中被抹去,但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的 Visual Studio Express 版本。

6、Visual Studio 2008 (内部版本号为 9.0)
2007年11月,微软发布了 Visual Studio 2008。面向.NET 框架(版本3.5),取消了Visual J#,从此不再支持Java。

7、 Visual Studio 2010 (内部版本号为 10.0)
2010年4月12,微软发布了 Visual Studio 2010。 以及.NET 框架(版本4.0)。

8、Visual Studio 2012 (内部版本号为 11.0)
2012年9月12日,微软在西雅图发布 Visual Studio 2012。面向.NET 框架(版本4.5)集成了 ASP.NET MVC 4.0

9、Visual Studio 2013 (内部版本号为 12.0)
2013年11月13日,微软发布 Visual Studio 2013。

10、 Visual Studio 2015 (内部版本号为 14.0)
2014年11月,微软发布 Visual Studio 2015 以及.NET Framework 4.5。 。

11、 Visual Studio 2017 (内部版本号为 15.0)
2017年3月7日, 微软发布 Visual Studio 2017
https://docs.microsoft.com/zh-cn/visualstudio/install/visual-studio-build-numbers-and-release-dates?view=vs-2017

12、 Visual Studio 2019 (内部版本号为 16.0)
2019年4月2日, 微软发布 Visual Studio 2019
https://docs.microsoft.com/zh-cn/visualstudio/install/visual-studio-build-numbers-and-release-dates?view=vs-2019

好吧,灌水了几十行,不是为了炫耀我收藏了所有的版本ISO。是因为分清版本这件事情非常重要,曾经付出过血痛的代价。举例说明:

那是2015年的事情,一次我们的项目还在使用Visual Studio 2013开发,用C#的Win Form项目中需要调用USB Key的功能。主要提供了32位 64位两种DLL文件。要用C#调用DLL,始终不成功,一直在调整项目属性各种设置。以前都可以,就是这次不行,整整折腾了一个星期。项目快要来不及交活了,汗啊。一周后突发灵感,想起来去问一下编译DLL的人,他说是“Visual Studio C++2015”编译的。到这里,读者们都能看出问题了。Visual Studio C# 2013是不能调用Visual Studio C++2015编译的程序模块。负责C++的开发同事提前升级了Visual Studio,但没有通告,谁能想得到呢。他赶快帮忙用2013版本编译一个DLL,顺利过关。多数公司都是团队分工按模块完成项目的,容易产生隔手活,说都说不清。整个项目在模块整合的阶段,确定编译的版本非常重要。

来吧,再上一张图说明版本的重要性。这个是扩展程序集的版本,人们一般都认为最高版本是最好的。我觉得合适的版本才是最好的,引用管理的时候也需要注意细节,细节决定效率,否则容易出错,浪费时间啊。

第二章  写程序千万不要单打独斗,要有团队精神

学习写程序要跨过很多坑,真心和团队一起搞开发,从团队中学习经验很重要。新手程序员,或者新加入团队搞开发的程序员有一个致命问题。不合群,不读代码,自己搞一套。这个是非常浪费时间的动作。当然也有一些团队比较保守,老程序员不愿意教,教会徒弟饿死师傅么,规模越大的公司会这样,随着几轮员工的轮换,留下的程序员能力一般,只能应付手头工作。一般一个开发团队都会有自己的习惯和交流方式,要善于观察和学习。多阅读现有代码,了解清楚大家都是怎么分工的,就会提高很快的。

学会使用程序框架是一个非常重要的第一步,使用正确的模板和开发方法,能节省大量的时间。我们新建项目就是从模板生成的。

要记住,程序员80%的工作是 Ctrl-C和Ctrl-V。项目模板也是可以复制的。一般老程序员作完一些基础框架代码后,保存成为项目模板作为积累,老程序员一定会攒一些好工具的,谁不想早点下班呢?要善于讨教同事,获得那些模板就能干活很快。要是和同事关系不好,也不会有人告诉你这些。

第三章  写程序千万不要迷恋在语言本身:

学会计算机语言要力求准确。学会语言后不要迷恋在语法中,语言只是工具。这就是.Net的精髓。Microsoft就是想告诉你,尽管C++,C#,F#,Basic他们语法都不一样,但都可以写程序,重要的是Class的组织,和每个Methed的输入和输出。从Visual Studio 2008开始,FrameWork 3.0开始,引入了 Lambda表达式,这是非常有效率的语言特征。一些简单算法用Lambda表达式非常简洁。当时我们也不是刻意学Lambda表达式的。突然发现周围的朋友们在用,在自己项目中试了一下,就喜欢上了。

举个例子:比如说,有一个一维数组,保存着若干整数,现在需要计算出其中大于0的个数。那么按照传统方法可以这么写:

int c=0;
foreach(int i in numbers)
{
if(i>0) c++;
}

而如果在C#3.0中,使用 lambda表达式,代码就可以缩减到这样一个语句:

int c = numbers.Count(x => x>0 );

这2种方法都是对的。 但是Lambda表达式更简洁,多舒服啊。这就是不要拘泥语言本身,能获得正确结果的情况下,怎么简单怎么弄,怎么快怎么来咯。以此推开,一个问题要写程序去解决,一定是一题多解的。 那么在可能的5~6种解决方法中哪个是最高效的开发方法呢? 多请教老程序员,自己多比较,多实践吧。Lambda表达式还可以函数计算,判断条件,排序,选择等功能。完全可以用Lambda表达式替代Sql表达式。说不定今后还有更简单的办法,谁知道呢?所以不要拘泥于语言本身,与时俱进。

第四章  Visual Studio isolated:

Visual Studio就是一个壳(Shell),和 Word,Excel,PowerPoint一样,都可以编程的。自动化(Automation )是 MicroSoft的一贯提倡的习惯思维。

这个是C++的项目。

这个是C#的项目。本人更喜欢C#方式,语言本身不重要么。调试VSIX项目请记得用管理员方式打开Visual Studio,否则调试不了的。

输入for 然后按两个“Tab”键,会出现以下代码:

for (size_t i = 0; i < length; i++)
    {

}

来吧,把我们的Menu Button插件放到Visual Studio开发环境中去吧。

今天累了先写到这里吧。2021年2月6日晚  <jansenzhu@maochsoft.com>

最后,非常感谢您花了几十元读了我的文章,真知灼见,如有不妥请多海涵,祝您春节快乐。

Viusal Studio 是软件开发工具,很棒的工具。相关推荐

  1. 前端开发一些很有用的工具

    apiview.com 接口规范管理平台 restClient 谷歌浏览器接口测试工具 postman 接口测试工具 SSH Secure Shell Client 抓包工具 SSH SecureFi ...

  2. python编程软件例子-软件开发|10 个 Python 图像编辑工具

    以下提到的这些 Python 工具在编辑图像.操作图像底层数据方面都提供了简单直接的方法. 当今的世界充满了数据,而图像数据就是其中很重要的一部分.但只有经过处理和分析,提高图像的质量,从中提取出有效 ...

  3. 软件开发的43款可视化工具

    摘要: 国外站点DATAVISUALIZATION.CH为大家总结出了当前热用的43款可视化工具,包括Arbor.Chroma.js.D3.js.Google Chart Tools等,绝对让你一饱眼 ...

  4. aptana使用php,用Aptana Studio 1.5开发PHP,很强的PHP IDE,Aptana PHP,简介,安装教程

    由于工作需要,我需要一个js IDE,Aptana被誉为最好的javascript IDE之一.理所当然的下载了Aptana,发现这个东西是基于eclipse的...那么加个PHP开发插件会怎么样呢? ...

  5. Dreamweaver 8和visual studio 2003一起开发是很爽的事

    Vs.net在编码方面的功能确实不错,但是在可视化等方面还是没有预想的好,比如说usercontrol在设计模式居然就是一个控件我感觉很不爽,虽然在2005版本里已经有改进,还有对html标签的选择不 ...

  6. Java软件开发中,常用的工具有哪些?

    学习Java知识点不足以用于实践.想要操作,需要知道Java开发工具有哪些.掌握Java开发工具的使用,才能熟练地写出代码编程.可说,没有得心应手的工具,想要做好Java开发,就有了一定的难度,所以今 ...

  7. 12款很棒的浏览器兼容性测试工具

    对于前端开发工程师来说,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,让我们一起看看这些很棒的工具. Spoon Browse ...

  8. 12款很棒的浏览器兼容性测试工具推荐

    对于前端开发工程师来说,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,让我们一起看看这些很棒的工具. Spoon Browse ...

  9. 5款很棒的文本文件工具,别说没告诉过你

    尽管文本文件毫无疑问是很有用的,但是在工作中又多少有些局限性.值得庆幸的是,现在有很多工具可以转换.编辑或者操作文本文件.本文就列出了5个这样的工具. 1.TTSReader TTSReader(如图 ...

最新文章

  1. STM32的CAN总线的接收双FIFO使用方法
  2. java前端长连接框架_Java如何实现长连接
  3. html 圆球的百分比,HTML5 很酷的球形器皿中水波状的进度条
  4. Angularjs 动态添加指令并绑定事件
  5. 【插件发布】JAVA微服务框架,Jeecg-P3-Base-System 1.0.0 插件开源发布
  6. Ubuntu下MySQL root密码忘记的解决方法
  7. 2018北科大计算机学院复试方案,2018年北京交通大学考研复试及录取办法
  8. 哪些学校考研计算机自命题,计算机考研自主命题学校
  9. PDF文件如何快速转换成Word文件?两个方法教你搞定
  10. 充电+拓展+投屏三合一的Type-C适配器拆解
  11. Excel技能之实用技巧,高手私藏
  12. 【前端开源模板推荐】
  13. 驱动器中的软盘不对_在“提示”框中:基于位置的待办事项提醒,DIY软盘驱动器音乐以及易于访问的产品手册...
  14. 高等数学:第五章 定积分(2)换元积分法 分部积分法 广义积分
  15. 【读书笔记】Haskell函数式编程入门 I 基础篇 2. 类型系统和函数
  16. 群签名技术的理解和总结
  17. VUE调用高德地图之电子围栏
  18. web前端进阶_html_基础篇1
  19. 每天5个运维常用指令——find,mkdir,mv,pwd,rename
  20. 解决Arduino环境下ESP8266模块无限重启崩溃问题

热门文章

  1. C++ 程序员到高级架构师,必须经历的三个阶段
  2. 利用webpack简单搭建 .vue环境
  3. 这款C++跳棋小游戏,用技术虐杀无数单身狗!
  4. java版迅雷下载工具
  5. PHP获取SSL客户端证书信息
  6. python django签到系统
  7. 华为荣耀c4刷入linux系统,华为荣耀畅玩4C刷机教程_荣耀畅玩4C强刷官方系统包的教程...
  8. 10小时带你零基础学习大气污染模式(WRF、CMAQ、SMOKE、WRF-chem、CAMX)
  9. shell 脚本的cut使用方法
  10. Android M系统无响应一直卡住黑屏