Visual Studio Code和Visual Studio之间有什么区别?

微软最近发布了Visual Studio代码,我对它的用法有点困惑,因为Visual Studio与它有很多功能相似之处。

1014446 次浏览

Visual Studio Code是编辑器,而Visual Studio是IDE。

Visual Studio Code是跨平台且快速的,而Visual Studio并不快速。

请注意,Visual Studio for Mac现在可用,但与Visual Studio(Windows)相比是不同的产品。它基于Xamarin Studio,缺乏对某些较旧的. NET项目类型的支持。它确实成功构建了在Visual Studio 2017中创建的解决方案。Visual Studio for Mac的UI更有限(例如,没有可自定义的工具栏)。因此,对于跨平台工作,Visual Studio Code可能仍然是首选。

Visual Studio(完整版)是一个“功能齐全”和“方便”的开发环境。

Visual Studio(免费的“Express”版本-仅限2017年)是以功能为中心的完整版本和简化版本。以功能为中心意味着根据您的目标有不同的版本(Visual Studio Web Developer、Visual Studio C#等)。

Visual Studio(免费社区版-自2015年起)是完整版本的简化版本,取代了2015年之前使用的单独的快速版本。

Visual Studio Code(VSCode)是一个跨平台(Linux,Mac OS,Windows)编辑器,可以根据您的需要使用插件进行扩展。

例如,如果您想使用Visual Studio Code创建ASP.NET应用程序,您需要自己执行几个步骤来设置项目。每个操作系统都有一个单独的教程。

作为对前面答案的补充,两者之间的一个重大区别是Visual Studio Code提供了所谓的“可移植”版本,该版本不需要在Windows上运行的完整管理权限,并且可以放置在可移动驱动器中以方便使用。

我将在下面提供Visual Studio和Visual Studio Code之间的详细区别。

如果你真的看它,最明显的区别是. NET被分成了两个:

  • . NET Core(Mac、Linux和Windows)
  • . NET Framework(仅限Windows)

所有原生用户交互界面技术(Windows演示文稿基金会windows窗体等)都是框架的一部分,而不是核心。

Visual Studio中的“Visual”(来自Visual Basic)在很大程度上是可视UI(拖放所见即所得)设计的同义词,因此从这个意义上说,Visual Studio Code是没有Visual的Visual Studio!

第二个最明显的区别是Visual Studio倾向于围绕项目和解决方案。

Visual Studio代码:

  • 它是一个轻量级的源代码编辑器,可用于查看、编辑、运行和调试应用程序的源代码。
  • 简单地说,它是没有Visual UI的Visual Studio,主要是超人的文本编辑器。
  • 它主要面向文件,而不是项目。
  • 它没有任何脚手架支撑。
  • 它是电子崇高文本Atom的竞争对手。
  • 它基于Electron框架,用于使用Web技术构建跨平台桌面应用程序。
  • 它不支持Microsoft的版本管理系统;Team Foundation Server。
  • 它对Microsoft文件类型和类似功能具有有限的IntelliSense。
  • 它主要由Mac上处理客户端技术(超文本标记语言、JavaScript和CSS)的开发人员使用。

Visual Studio:

  • 顾名思义,它是一个IDE,它包含项目开发所需的所有功能。如代码自动完成、调试器、数据库集成、服务器设置、配置等。
  • 它是一个完整的解决方案,主要由. NET相关开发人员使用。它包括从源代码控制到bug跟踪器到部署工具等所有内容,它具有开发所需的一切。
  • 它广泛用于. NET相关项目(尽管您可以将其用于其他事情)。社区版本是免费的,但如果您想充分利用它,那么它就不是免费的。
  • Visual Studio旨在成为世界上最好的IDE(集成开发环境),它提供全栈开发工具集,包括一个名为IntelliSense的强大代码完成组件,一个可以调试源代码和机器代码的调试器,有关ASP.NET开发的一切,以及有关SQL开发的内容。

  • 在最新版本的Visual Studio中,您无需离开IDE即可开发跨平台应用程序。而Visual Studio占用的磁盘空间超过8 GB(根据您选择的组件)。

  • 简而言之,Visual Studio是一个终极开发环境,它非常繁重。

参考:https://www.quora.com/What-is-the-difference-between-Visual-Studio-and-Visual-Studio-Code

Visual Studio Code与命令提示符/终端集成,因此当需要在IDE和终端/命令提示符之间切换时会很方便,例如:连接到Linux。

Visual Studio

  • IDE
  • 除了免费版本,它是一个付费的IDE。
  • 它在CPU上很重,在低端PC上滞后。
  • 它主要用于Windows软件开发,包括DirectX程序、Windows API等。
  • 高级智能感知(有史以来最好的;Visual Studio Code的智能感知扩展排在第二位)
  • 它具有内置调试器,易于配置的项目设置(尽管开发人员倾向于不使用GUI)
  • Microsoft支持(超过Visual Studio Code)
  • 主要用于C/C++(Windows)、. NET和C#项目以及SQLServer、数据库等。
  • 极端大的下载大小,空间利用率和随着时间的推移而减速。
    • 这是迫使我将Visual Studio Code用于较小项目的唯一缺点*
  • 包括生成依赖关系图的工具。重构工具对Visual Studio有很好的支持。
  • 有一个用于VB.NET、C++. NET和C#的VYSIWYG编辑器。(对于第一次使用的用户来说,这很容易,而不是通过windows.h

Visual Studio代码

  • 免费开源文本编辑器
  • 具有IntelliSense(但如果未安装Visual Studio,则无法开箱即用,需要配置指向MinGW等)
  • 较小的下载大小和内存要求。使用IntelliSense,它需要大约300 MB的内存。(编辑:一些头文件往往会将内存需求增加到7-8 GB,例如OpenGL和GLM库)
  • 它适用于低端PC。(启动速度仍然很慢,特别是如果使用PowerShell而不是CMD)
  • 较低的支持(开源,所以你可以自己修改)
  • 构建任务是特定于项目的。即使您想在普通配置中构建它。
  • 主要用于Web开发(这适用于所有自由文本编辑器)。它们倾向于展示C/C++上的JavaScript/超文本标记语言支持。Visual Studio展示了Visual Basic/C++而不是其他语言。
  • 缺乏良好的扩展(但它仍然是新的)
  • 让您很难重新配置项目/工作区设置。我更喜欢GUI方式。
  • 跨平台
  • 有一个集成的终端(PowerShell在启动时太慢了)
  • 它最适合较小的项目和测试代码(你知道如果你很无聊,想打印“你好,世界!”,等待3-5分钟Visual Studio加载是没有意义的,然后在项目创建时再等一两分钟,然后最终让它打印“Hello, World!”)。

一个巨大的区别(对我来说)是Visual Studio Code只是一个显示器。使用Visual Studio,您可以使用多屏幕设置。

对我来说,Mac上的Visual Studio不支持Node.js(编辑和调试),而Visual Studio Code做得很好。

对于Unity3D用户…

  • VSCode比VS难以置信的快。VSCode中Unity的文件立即打开。而VS非常慢。

  • VS实际上可以编译代码、构建应用程序等,它是一个巨大的IDE,就像Unity本身或XCode一样。VSCode确实“只是”一个功能齐全的文本编辑器。VSCode不是编译器:VSCode实际上“只是一个文本编辑器”。

  • 使用VSCode,您需要安装中的项目“Visual Studio Code”包。

在此处输入图片描述

  • 当您第一次下载并安装VSCode时,只需打开计算机上的任何C#文件。它会立即提示您安装所需的C#包。这是无害且简单的。

  • 不幸的是VSCode通常只有一个窗口!打开另一个窗口是大惊小怪的。

  • 在VS中,几乎不可能更改编辑器字体等。相比之下,VSCode具有出色的偏好-非常简单,从来没有问题

  • 据我所知,您在Unity中使用的VS中的每一个功能都存在于VSCode中。(因此,代码着色,跳转到定义,它理解/自动完成Unity中的每一件事,它从Unity打开,双击Unity控制台中的某些内容将文件打开到该行,等等)

  • 如果你习惯了VS.并且你想改成VSCode.这总是很难改变编辑器,他们是如此亲密,但它的漂亮相似;你不会有一个大的心痛。

简而言之,如果你是一个VS for Unity3D用户,

你要试试VSCode…

  1. VSCode在各方面都19万亿次更快。它会让你大吃一惊。

  2. 它似乎有每个功能

  3. 基本上VS是世界上最大的IDE和应用程序构建系统:VSCode是只是个编辑。(事实上,这正是您在Unity中排名第一的原因,因为Unity本身就是IDE。)

  4. 不要忘记点击安装相关的Unity

如果我没弄错的话,有没有任何理由可以在Unity中使用VS。

Unity是一个IDE,所以你只需要一个文本编辑器,这就是VSCode。VSCode在速度和偏好方面都要好得多。唯一可能的问题-VSCode中的多窗口有点笨重!

VS中那个可怕的“双拷贝”问题…解决了!

如果您在Unity中使用VS。有一个令人愤怒的问题,通常VS会尝试打开两次,那就是您最终会运行两个或多个VS副本。没有人能够解决这个问题或找出到底是什么原因导致的。幸运的是,这个问题永远不会发生在VSCode

在Mac上安装VSCode-令人难以置信的简单。

没有安装程序等。在下载页面上,您下载了一个压缩的Mac应用程序。把它放在应用程序文件夹中,就完成了。

折叠!(Mac/Windows按键不同)

奇怪的是,没有任何用于折叠的菜单条目/docu,但这里有键:

https://stackoverflow.com/a/30077543/294884

在VSCode中设置颜色等-关键提示

特别是对于可能觉得颜色奇怪的Mac用户:

无价之宝#1:

https://stackoverflow.com/a/45640244/294884

无价之宝#2:

https://stackoverflow.com/a/63303503/294884

元文件…

要保持左侧文件的“资源管理器”列表整洁,在Unity情况下:

在此处输入图片描述

开箱即用,Visual Studio可以编译、运行和调试程序。

开箱即用的Visual Studio Code除了打开和编辑文本文件之外几乎什么都做不了。它可以扩展为编译、运行和调试,但您需要安装其他软件。这是一个PITA

如果您正在寻找记事本替代品,Visual Studio Code是您的首选。

如果您想开发和调试代码,而不必花几天时间摆弄设置和安装东西,那么Visual Studio就是您的选择。

Visual Studio Code更多的是一种纯代码开发工具,而VS2019/VS2017等更多的是一种用于开发程序的非编码方法。在VS中,你可以获得按钮工具、窗口工具栏工具和所有那些花哨的东西。在VSC中,你必须从头开始编写整件事。我推荐VSC适合刚刚学习编码的人,但VS适合高级开发人员。

截至2021年,我认为主要区别是:

  • Visual Studio Code是一个全新的代码库(基于Electron),比“旧的”Visual Studio,它是开源的,并且是“在开放中”(在github上)积极开发的。
  • Visual Studio更专注于“传统”的Windows GUI应用程序开发,它包含电池,包括GUI的所见即所得编程风格(“视觉”)
  • Visual Studio Code虽然本身相当“裸露”,但吸引了许多社区开发的扩展来做最疯狂的事情。社区开发的扩展存在于几乎任何编程语言的集成开发编辑器的基础上(例如,我为Julia使用它)

简而言之,VSCode大力推广(Microsoft的)TypeScript编译器,并捆绑了对该语言的一流支持,这使得编辑器以Web为中心,而Visual Studio主要用于Microsoft的原生,C系列,Windows/XBox的东西。

由于VS Code每个月都在大量开发,一个新的答案是值得的。

我在Visual Studio中做了十年的ASP.net开发人员。当我在Stackoverflow调查(https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-integrated-development-environment)中看到VS Code是首选的IDE时,我决定尝试一下,将其用作我的主要开发环境,这是一个月后的结果:

我可以说,如果只有VS Code拥有像VS一样可扩展且稳定的智能感知,我会将其作为我在dotnet上的首选IDE。 Omnisharp(VS Code C#intellisense)对于小型项目来说是令人满意的,但是随着工作区变得更大(例如,当您的工作区中有多个项目时),不稳定性开始成为一个问题。

我仍然将VS Code用于小型dotnet项目,也作为数据库客户端,PowerShell ISE,Python等,因为它轻巧,功能丰富,可定制性以及拥有如此活跃的社区和开发团队。

显然,无论VS Code获得VS级别的网络智能感知,还是VS获得更多改变游戏规则的功能,情况都可以改变。