vs
Visual Studio(简称VS)是微软开发的一款集成开发环境(IDE)产品,可用于编辑、调试和生成代码,然后发布应用。可用于构建Web、云、桌面、移动应用、服务和游戏等。除了大多数IDE都提供的标准编辑器和调试器之外,Visual Studio还包括编译器、代码补全工具、图形设计器等其他功能,以增强软件开发过程。
Visual Studio支持几乎所有主流编程语言,例如C++、C#、JavaScript、TypeScript、Python等。支持跨平台开发,AI辅助开发等协作功能。Visual Studio有三个版本,分别是社区版、专业版和企业版,其中社区版供学生、开源和个人开发者免费使用。
截至2024年1月,VS的最新版本为Visual Studio 2022。W3Techs的报告指出,在2022年调查的7万多名开发人员中,Visual Studio是最受欢迎的IDE,尤其在网站内容管理系统的使用上表现突出。
历史
20 世纪 90 年代中期,Windows操作系统发布后,在开发Visual Studio之前,微软发布了 两个关键产品:Visual Basic和Visual C++,Visual Studio的第一个版本是Visual Studio 97,于1997年2月发布等。
Visual Studio 97
微软于1997年2月发布了Visual Studio 97(代号“波士顿(Boston)”以同名城市命名,从而开启了与地名相关的 VS 代号的先河),首次将多种编程工具集成于一个软件包中。此前,Visual Basic、Visual C++、Visual FoxPro和Visual SourceSafe作为独立产品销售。Visual Studio 97提供了专业版和企业版两个版本,分别包含三张和四张CD。Visual Studio 97支持的语言包括用于Java编程的Visual J++ 1.1,以及用于Active Server Pages开发的Visual InterDev等。Visual Studio 97还尝试为多种编程语言提供统一的集成开发环境,Visual J++、InterDev和MSDN Library共享一个名为Developer Studio的环境。
Visual Studio 6.0 (1998)
Visual Studio 6.0,代号为阿斯彭(Aspen),于1998年6月发布,是最后一个在Windows 9x平台上运行的版本。Visual Studio 6.0支持多种语言的多个版本包括Visual J++的早期版本和Visual InterDev的首发版本等。6.0版本为后续四个版本奠定了核心环境,提供了一个统一的平台。这促使微软将开发重心转向了平台无关的.NET Framework。由于微软与太阳微系统(Sun Microsystems)达成的和解协议,Visual Studio 6.0不再包含Visual J++。Visual Studio 6.0分为专业版和企业版,后者提供了额外的功能,如应用程序性能资源管理器、自动化管理器、Microsoft可视化建模器、RemAuto连接管理器和Visual Studio分析器。
Visual Studio .NET 2002
2002年2月,微软发布了Visual Studio .NET,内部版本号为7.0,代号雷尼尔(Rainier),标志着.NET Framework托管代码集成开发环境的引入。.NET开发程序编译成中间语言(MSIL或CIL),而非机器语言,允许跨平台移植。Visual Studio .NET 2002有四个版本,包括学术版、专业版、企业开发版和企业架构师版。微软推出了新编程语言C#,并发布了Visual J++的后续版本Visual J#,后者仅面向.NET Framework。Visual Basic也经历了重大变化,成为Visual Basic .NET。Visual Studio .NET环境重写,部分使用.NET,界面更简洁,内聚力更强,具有更强的自定义功能。Visual FoxPro 7最初是VS.NET的一部分,但在发布前被移除。C++增加了托管扩展功能,允许.NET程序用C++创建。VS.NET可生成面向Windows、Web和可移植设备的应用程序。2005年3月发布了VS.NET 2002的Service Pack 1。
Visual Studio .NET 2003
2003年4月,微软发布了Visual Studio .NET 2003,代号埃弗里特(Everett),内部版本号为7.1版,文件格式版本为8.0版。这一版本包括.NET Framework 1.1的升级,并首次支持使用ASP.NET或.NET Compact Framework为移动设备开发程序。Visual C++编译器在标准符合性方面有所提升,特别是在部分模板专用化方面。Visual C++ Toolkit 2003是微软免费提供的与Visual Studio .NET 2003附带的C++编译器相同版本,但不包含集成开发环境。截至2010年,该版本不再提供,由Express Editions取代。Visual Studio .NET 2003还支持托管C++,这是C++/CLI的前身。该版本不再支持Windows NT 4.0,也是最后一个支持Windows 2000 SP3以下版本和Windows XP SP2之前的版本。
Visual Studio .NET 2003提供五个版本:学术版、标准版、专业版、企业开发版和企业架构版。企业架构版包括微软 Visio 2002建模技术,提供基于统一建模语言的应用程序架构可视化工具,以及对象角色建模(ORM)和逻辑数据库建模解决方案。此外,引入了“企业模板”以帮助大型开发团队实现编码风格的标准化,并强制执行有关组件和属性设置。送达 Pack 1于2006年9月13日发布。
Visual Studio 2005
Visual Studio 2005,代号惠德贝(Whidbey),于2005年10月在线发布。尽管微软移除了“.NET”名称,但它仍然主要面向已升级到 2.0 版的 .NET Framework。这是最后一个能在Windows 2000上运行的版本,也是最后一个支持在Windows 98、Windows Me和Windows Server 2003 RTM上创建C++项目的版本。
Visual Studio 2005支持.NET Framework 2.0的所有新特性,包括ASP.NET 2.0。IntelliSense功能得到升级,新增了支持ASP.NET网络服务的项目类型。该版本引入了基于任务的构建平台微软 Build Engine (MSBuild),采用新的XML项目文件格式。Visual Studio 2005还包括一个本地Web服务器,可在开发和测试期间独立于IIS托管ASP.NET应用程序,并支持所有SQL Server 2005数据库。数据库设计器升级以支持ADO.NET 2.0,C++也增加了C++/CLI以取代托管C++。新功能还包括“部署设计器”(Deployment Designer),用于在部署前验证应用程序设计,以及负载测试,用于评估应用程序在不同用户负载下的性能。自2005版起,Visual Studio增加了广泛的64位支持,尽管开发环境本身仅作为32位应用程序运行,但Visual C++ 2005支持x86-64(AMD64和Intel 64)以及IA-64(Itanium)编译。
微软还发布了Visual Studio Tools for Applications(VSTA),作为Visual Basic for Applications (Visual Basic for Applications)和Visual Studio for Applications(VSA)的继任者。VSTA 1.0与Office 2007一同发布,包含在Office 2007中,也是Visual Studio 2005 SDK的一部分。VSTA提供了一个定制的集成开发环境和一个运行库(运行库可嵌入到应用程序中,通过.NET对象模型公开其功能)。Office 2007应用程序继续与VBA集成,只有InfoPath 2007与VSTA集成。VSTA 2.0版(基于Visual Studio 2008)于2008年4月发布,引入了动态编程和对WPF、WCF、WF、LINQ和.NET 3.5 Framework的支持。
Visual Studio 2005的内部版本号为8.0,文件格式版本为9.0。微软于2006年12月14日发布了Visual Studio 2005 Service Pack 1,2007年6月3日提供了Service Pack 1的附加更新,提供了Windows Vista的兼容性。
Visual Studio 2008
Visual Studio 2008,代号奥卡斯(Orcas),内部版本号为9.0,文件格式版本为10.0,于2007年11月19日发布。Visual Studio 2008的源代码以共享源代码许可的方式提供给微软的合作伙伴和独立软件供应商(ISV)。Visual Studio 2008是最后一个支持在Windows XP SP2、Windows Server 2003 SP1和Windows Vista RTM上开发C++应用程序的版本。2008年8月11日,微软发布了Visual Studio 2008的Service Pack 1。
Visual Studio 2008主要用于开发Windows Vista、2007 Office系统和Web应用程序。它包括新的Windows Presentation Foundation(WPF)可视化设计器和受微软 Expression Web影响的新HTML/CSS编辑器。Visual Studio 2008需要.NET 3.5框架,并默认将编译的程序集配置为在.NET Framework 3.5上运行。同时它支持多目标,允许开发人员选择程序集运行的.NET框架版本。它还包含新的代码分析工具,包括代码度量工具(仅适用于团队版和团队套件版)。Visual Studio 2008引入了 微软 Foundation Classes (mfc 9.0),由此增加了Visual C++在Windows Vista系统中可引入的可视化样式和UI控件的支持,并引入了STL/CLR以实现本机代码和托管代码的互操作性。
Visual Studio 2008的功能包括基于XAML的设计器(代号“苹果酒Cider”)、工作流设计器、LINQ to SQL设计器、XSLT调试器、JavaScript Intellisense支持、JavaScript调试支持、UAC清单支持、并发编译系统等。Visual Studio 2008还提供了增强的UI小部件,适用于Windows Forms和WPF,并包含多线程构建引擎(MSBuild),支持跨多个线程同时编译项目中的多个源文件。此外,它还支持在Windows Vista中引入的以PNG格式编译图标资源。Visual Studio 2008发布后,还单独发布了更新的XML模式设计器。
Visual Studio 2008的调试器提供了简化多线程应用程序调试的功能。在调试模式下,“线程”窗口列出所有线程,悬停鼠标可显示线程的堆栈跟踪,可以直接对线程进行命名和标记。代码窗口中,除了显示当前线程中正在执行的指令的位置外,还会指出其他线程中正在执行的指令。 调试器支持.NET 3.5 Framework基类库(BCL)的集成调试,可动态下载BCL源代码和调试符号,并允许在调试期间步入BCL源代码。
Visual Studio 2010
2010年4月12日,微软发布了Visual Studio 2010,这是最后一个支持Windows XP SP3、Windows Server 2003 SP2、Windows Vista SP1、Windows Server 2008 SP2以及Windows 7 SP1和Windows Server 2008 R2 SP1的Visual Studio版本。Visual Studio 2010 Service Pack 1于2011年3月发布。
Visual Studio 2010的集成开发环境(IDE)经过重新设计,旨在简化用户界面。新的集成开发环境可以更好地支持多个文档窗口和浮动工具窗口,并提供改进的多显示器支持。IDE的命令解析器使用Windows Presentation Foundation (WPF)重写,而内部则采用Managed Extensibility Framework (MEF)重新设计,提供了更多的可扩展点,允许插件修改IDE的行为。Visual Studio 2010还引入了新的多范式通用代码F#。
该版本配备了.NET Framework 4,支持开发针对Windows 7的应用程序,并支持Microsoft SQL Server、IBM Db2和Oracle数据库。它集成了对微软 Silverlight应用程序开发的支持,包括交互式设计器。Visual Studio 2010提供了多种工具简化并行编程,包括.NET Framework的并行扩展、本地代码的并行模式库,以及用于调试并行应用程序的工具。英特尔和微软共同支持Visual Studio 2010中的新并发运行库(Concurrency Runtime),英特尔还推出了Parallel Studio中的并行支持作为Visual Studio的附加组件。
Visual Studio 2010的代码编辑器可以高亮显示引用,选择符号时会高亮显示所有其他用法。它还提供了快速搜索功能,支持子串匹配和camelCase搜索。调用层次结构功能允许查看当前代码块调用的所有函数以及调用当前代码块的方法。在这种模式下,IntelliSense不会自动完成标识符,允许使用未定义的标识符后再定义它们。如果Visual Studio 2010能根据使用情况推断出标识符的类型,它也能通过自动定义这些标识符来帮助开发人员。然而,当前版本的Visual Studio存在一个已知bug,导致IntelliSense无法在纯C项目中使用。
Visual Studio 2010的新帮助系统取代了MSDN库查看器,不再基于微软 Help 2,也不使用文档File Explorer(Microsoft Document Explorer)。动态帮助项目链接在最终版本中被移除,但可以通过下载重新添加。Visual Studio 2010不再支持Windows Phone 7之前的Windows Mobile开发。
Visual Studio Ultimate 2010
Visual Studio Ultimate 2010取代了Visual Studio 2008 Team Suite,引入了一系列新功能。它包括架构资源管理器等建模工具,能够图形化显示项目和类及其关系,支持统一建模语言活动图、组件图、类图、序列图和用例图。此外,它还提供了测试影响分析功能,能够预测源代码修改对测试用例的影响,从而减少不必要的测试运行,提高测试效率。
Visual Studio Ultimate 2010还引入了IntelliTrace,一个用于托管代码的历史调试器。与传统调试器仅记录当前活动堆栈不同,IntelliTrace记录了所有事件,包括过去的函数调用、方法参数、事件和异常。这使得在未设置断点的错误位置也能够重新执行代码。尽管使用IntelliTrace调试时应用程序运行速度会变慢,且占用更多内存,但微软允许配置记录数据的数量,使开发人员能够在性能和资源使用之间做出权衡。实验室管理组件利用虚拟化技术为测试和开发人员创建一致的执行环境,虚拟机被标记为检查点,便于后续问题调查和问题重现。此外,Visual Studio Ultimate 2010还具备记录测试运行的功能,能够捕捉特定运行环境状态和测试执行步骤,以便回放以重现问题。
Visual Studio 2012
Visual Studio 2012于2012年8月1日公布,正式发布会则在同年9月12日举行。与前一版本相比,Visual Studio 2012移除了宏录制和播放功能,并删除了宏编辑器。新版本增加了对WinRT、C++/CX(组件扩展)和C++ AMP(GPGPU编程)的支持。
2011年9月16日,微软发布了Visual Studio 11的“开发者预览版”,需要运行在Windows 7、Windows Server 2008 R2、Windows 8或更高版本的操作系统中。该版本中的微软基础类库(mfc)和 C 运行库(CRT)不支持生成与Windows XP或Windows Server 2003兼容的软件,除非调用多目标代码并放弃最新的库、编译器和标头。微软在2012年秋季发布的Visual C++版本中重新引入了对Windows XP目标的本机支持,并增加了其他新工具和功能,如改进的诊断功能和对Windows Store应用程序的测试支持。Visual C++团队项目经理Sumit Kumar在博客文章中列出了即将推出的Visual Studio C++ IDE版本的新功能,包括改进的语法着色、新的解决方案资源管理器、自动显示的IntelliSense、使用模糊逻辑的IntelliSense、以及包含在IntelliSense中的代码片段。
在Visual Studio 11测试版中,微软最初取消了工具中的颜色使用,但在用户反馈后恢复了颜色的使用。Visual Studio 2012候选发布版(RC)中,菜单栏使用了全大写字母,以与微软其他用户界面保持一致,并为顶部菜单栏区域提供结构。这一设计被批评为难以阅读,与开发人员的趋势不符,但Windows注册表中提供了禁用全大写界面的选项。
Visual Studio 2013
Visual Studio 2013最终版本于2013年11月13日正式发布。Visual Studio 2013引入了多项新功能,包括自定义文档选项卡位置、电源命令、快速任务、彩色参数帮助、解决方案资源管理器错误和警告的可视化效果、双击最大化工具窗口、以及按住Ctrl键快速查看定义和启动任务等。Visual Studio 2013的更新版本,包括Update 1、Update 2、Update 3和Update 4,分别在2014年和2015年发布,解决了客户反馈的关键问题,并提供了禁用全大写菜单的选项。
Visual Studio 2013新增了Visual Studio Express 2013 for Windows,支持在Windows 8.1上创建Windows Phone和Windows Store应用程序。该版本包括代码编辑器、调试器、剖析器和丰富的语言支持,适用于使用html5/JavaScript、C++、C#或Visual Basic编写的应用程序。Visual Studio Express 2013 for Windows还包括Windows Phone 8.0开发工具、设备模拟器和Windows Phone模拟器,用于在多种设备上测试应用程序的运行情况。
Visual Studio 2015
Visual Studio 2015,最初代号为Visual Studio "14",于2014年6月3日发布了其社区技术预览版(CTP),并在2015年4月29日发布了候选发布版。该版本引入了多项新功能,包括跨平台开发的Visual Studio C++、适用于Apache Cordova的工具、Android模拟器、通用Windows应用开发工具以及可视化C++。随后,Visual Studio 2015在2015年11月30日、2016年3月30日和2016年6月27日分别发布了Update 1、Update 2和Update 3版本。这些更新增强了跨平台移动开发、Web和云开发的能力,并提升了IDE的生产力。
Visual Studio 2017
Visual Studio 2017,最初代号为Visual Studio "15",于2016年3月30日发布了首个预览版,并在2017年3月7日推出正式版。随后,该版本经历了多个更新,包括2017年3月14日的首个修复程序,解决了安装或打开解决方案时的故障问题;4月5日的15.1版本增加了对.NET Framework 4.7的支持;5月10日的15.2版本引入了“数据科学与分析应用工作负载”;5月12日发布了深色主题修复更新;8月14日的15.3版本添加了对.NET Core 2.0的支持,并在随后的15.3.1版本中修复了Git漏洞(CVE 2017-1000117);10月10日的15.4版本新增了对.NET Standard 2.0的支持;12月4日的15.5版本包含了性能改进、新功能和错误修复;2018年3月6日的15.6版本更新了单元测试和性能;5月7日的15.7版本进行了全面更新,Visual C++符合C++17标准;9月20日的15.8.5版本中Xamarin工具支持了Xcode 10。
Visual Studio 2017引入了多项新功能,如EditorConfig支持、NGen、.NET Core和Docker工具集(预览版)、Xamarin 4.3(预览版)、XAML编辑器、改进的IntelliSense、实时单元测试、调试增强以及提升了IDE体验和工作效率。此外,它是最后一个支持维护Windows 10移动版项目的Visual Studio版本。
Visual Studio 2019
微软于2018年6月6日发布了Visual Studio 2019(内部版本号16)。该版本在2019年4月2日正式推出,并随后几乎每月都有版本更新,直至2023年11月14日发布了Visual Studio 2019 16.11.32。Visual Studio 2019引入了Fluent Design设计理念,并加入了新的开始界面。新版本还增加了一键清除代码功能,允许用户通过单击处理所有警告信息。此外,Visual Studio 2019提供了AI支持的IntelliCode以及实时共享功能。微软还对Visual Studio的调试功能进行了优化。
Visual Studio 2022
Microsoft于2021年4月19日发布了Visual Studio 2022(版本17),这是首个作为64位进程运行的版本,它允许Visual Studio主进程访问超过4GB的内存,从而防止了大型项目可能出现的内存不足问题。Visual Studio 2022在2021年11月8日正式发布,版本号为17.0.0。随后在2023年12月5日,微软发布了Visual Studio 2022的版本17.8.3。此版本更新了AI辅助功能IntelliCode,它能够自动完成整行代码,开发人员只需连续两次敲击Tab键即可。IntelliCode还能识别重复的代码编辑,并提出改进建议。Visual Studio 2022还引入了.NET和C++的Hot Reload功能,允许开发者在不重新部署和启动应用程序的情况下更新代码,并立即查看运行结果。此外,Visual Studio 2022还包括了调试器和.NET语言服务的改进,以及Web实时预览和Linux跨平台测试等新功能。
版本历史
架构
Visual Studio作为一个集成开发环境 (IDE),本身并不直接支持编程语言、解决方案或工具,而是通过VSPackage(Visual Studio Package)的形式扩展功能。安装后,这些功能作为服务提供。IDE提供三种核心服务:SVsSolution用于枚举项目和解决方案;SVsUIShell提供窗口和用户界面功能,包括选项卡、工具栏和工具窗口;SVsShell处理VSPackage的注册。集成开发环境负责协调和启用服务间的通信。所有编辑器、设计器、项目类型和其他工具都是通过VSPackage实现的。Visual Studio使用COM(Component Object Model)访问VSPackage,而Visual Studio SDK包含了托管软件包框架(MPF),它是一个托管包装器,允许使用任何CLI(Common Language Infrastructure)兼容语言编写软件包,但并不提供所有Visual Studio COM接口的功能。
编程语言的支持是通过特定的VSPackage——语言服务来实现的。语言服务定义了一系列接口,VSPackage通过实现这些接口来支持语法着色、代码补全、括号匹配、参数信息提示、成员列表以及错误标记等功能。语言服务可以是本地代码或托管代码实现,对于本地代码,可以使用本地COM接口或Babel Framework;对于托管代码,MPF提供了封装器。
Visual Studio不内置源代码控制支持,但提供了两种集成方式:自定义用户界面的源代码管理VSPackage或MSSCCI(微软 Source Code ctrl 接口)。MSSCCI提供了一组函数,用于实现源代码控制功能,并具有标准的Visual Studio用户界面。Visual Studio支持多个运行实例,每个实例都有自己的VSPackage配置,并通过AppId区分。不同的Visual Studio产品版本使用不同的AppId创建,Express版本有自己的AppId,而标准版、专业版和团队套件产品共享相同的AppId。Visual Studio Shell利用了AppId系统,自动完成建议显示在代码编辑器窗口上方的无模式列表框中,可以设置为半透明以查看被遮挡的代码。
组件
代码编辑器
Visual Studio的代码编辑器具备语法高亮显示功能,并集成了IntelliSense,后者能够自动补全变量、函数、方法、循环以及LINQ查询的代码。在开发网站和网络应用程序时,IntelliSense支持所有包含的语言,以及XML、层叠样式表和JavaScript。自动完成建议以无模式列表框的形式显示在代码编辑器窗口上方,靠近编辑光标。自Visual Studio 2008起,用户可以临时将该列表框设置为半透明,以便查看被遮挡的代码。代码编辑器支持所有Visual Studio支持的语言。
此外,代码编辑器允许用户在代码中设置书签以便于快速导航,提供折叠代码块和增量搜索功能,以及普通文本搜索和正则表达式搜索。编辑器还包含多项目剪贴板和任务列表功能。代码片段功能允许用户保存和自定义重复代码的模板,并在需要时插入到代码中。代码片段管理工具以浮动窗口的形式呈现,可设置为自动隐藏或停靠在屏幕一侧。代码编辑器还支持代码重构,包括参数重新排序、变量和方法重命名、接口提取以及在属性中封装类成员等操作。
调试器
Visual Studio提供了一个多功能调试器,它支持源代码级和机器级调试,能够处理托管和本地代码,适用于使用Visual Studio支持的任何语言编写的应用程序。调试器能够附加到运行中的进程进行监控和调试,如果源代码可用,则显示源代码;否则,显示反汇编代码。它还支持创建内存转储以便于后续调试,并可在应用程序在Visual Studio环境外崩溃时自动启动。
调试器功能包括设置断点和观察点,断点可以是有条件的,仅在满足特定条件时触发。代码执行可以单步进行,即逐行执行源代码。调试器支持进入函数内部进行调试,也可以跨过函数执行。它支持“编辑和继续”功能,允许在调试过程中对代码进行编辑。在调试过程中,鼠标悬停在变量上会显示当前值,并且可以修改这些值。此外,Visual Studio调试器允许从即时工具窗口手动调用函数,并在立即工具窗口中提供方法参数。
可视化设计器
Windows Forms设计器
Windows Forms设计器是用于通过Windows Forms构建图形用户界面(GUI)应用程序。它允许开发者通过在用户界面中放置控件或将它们锁定在特定位置来控制布局。数据展示控件,例如文本框、列表框和网格视图,可以与数据库或查询等数据源绑定。通过将数据源窗口中的项目拖拽到设计界面,可以创建数据绑定控件。用户界面采用事件驱动编程模型,与代码实现连接。设计器会自动为应用程序生成C#或VB.NET代码。
WPF 设计器
WPF(Windows Presentation Foundation)设计器于Visual Studio 2008中引入,它支持拖放操作并允许隐藏控件,类似于Windows窗体设计器。该工具用于创建基于WPF的用户界面,支持WPF的所有功能,包括数据绑定和自动布局管理。WPF设计器为用户界面生成XAML代码,这些代码与微软 Expression 设计兼容,并且可以通过代码隐藏模型与代码进行链接。
网页设计器
Visual Studio集成了网站编辑器和设计器,允许开发者通过拖放组件来创建网页,主要用于ASP.NET应用程序的开发。它支持HTML、层叠样式表和JavaScript,并采用代码隐藏模型与ASP.NET代码进行集成。自Visual Studio 2008起,网页设计器的布局引擎与已停产的Expression Web共享。此外,ASP.NET MVC技术的支持可以单独下载,微软还提供了ASP.NET动态数据项目。
类设计器
类设计器利用统一建模语言(UML)来创建和编辑类(包括类的成员和访问权限)。该工具支持在C#、Visual Basic或C++项目中设计、可视化和重构类图。通过在可视化设计界面中展示代码元素及其相互关系,类图有助于开发者更清晰地理解项目结构,并据此对代码进行重构。
数据集设计器
数据集设计器用于建立与数据库的连接,对内存中的数据进行模型化处理,并将数据呈现在用户界面上。它同时支持关系型数据库和XML数据格式。
实体框架工具
实体框架工具允许用户从现有的数据库创建概念模型,并通过图形界面对其进行可视化和编辑。此外,用户也可以先通过图形界面创建概念模型,然后生成相应的数据库。在这两种情况下,当基础数据库发生变化时,模型能够自动更新,并且可以自动为应用程序生成对象层代码。数据库的生成和对象层代码的生成过程都是可定制的。
其他工具
属性编辑器
属性编辑器是Visual Studio中的一个工具,它允许用户在GUI窗格中编辑对象的属性。该工具显示了所有对象(如类、窗体、网页等)的属性列表,包括只读属性和可设置属性。
对象浏览器
对象浏览器是Microsoft .NET框架中的一个组件,它充当命名空间和类库的浏览器。它允许用户浏览托管程序集中的命名空间,这些命名空间按照层次结构排列,但这种层次结构可能与文件系统中的实际组织结构相符,也可能不相符。
解决方案资源管理器
在Visual Studio环境中,解决方案是一个集合,包含了用于构建应用程序所需的代码文件和其他资源。这些文件在解决方案中按照层次结构组织,这种结构可能与文件系统中的组织方式相吻合,也可能不吻合。解决方案资源管理器是一个工具,它用于管理和浏览解决方案内的所有文件。
团队资源管理器
团队资源管理器(Team Explorer)用于将Microsoft Azure DevOps(包括Azure DevOps Services和Azure DevOps Server)的功能集成到集成开发环境(IDE)中。除了提供版本控制的集成,它还允许用户查看和管理单个工作项,如用户故事、缺陷、任务以及其他文档。团队资源管理器是Visual Studio安装的一部分,也可以作为单独的下载提供。
服务器资源管理器
服务器资源管理器(Server Explorer)用于管理计算机上可访问的数据库连接。此外,它还允许用户浏览正在运行的Windows服务、性能计数器、Windows事件日志和消息队列,并将这些资源作为数据源进行利用。
Dotfuscator 轻量版
Visual Studio集成了dotfuscator的免费“轻量级”版本,该工具提供全面的.NET应用程序保护,能够无缝适应安全软件开发生命周期。它能够增强、保护和精简桌面、手持移动设备、服务器和嵌入式应用程序,以保护商业机密和其他知识产权,减少软件盗版和仿冒,并防止未经授权的修改和调试。Dotfuscator适用于已编译的程序集,无需额外编程或访问源代码。
文本生成框架
Visual Studio集成了一个名为T4(文本 Template Transformation Toolkit)的文本生成框架,它允许开发者在IDE内部或通过代码从模板生成文本文件。
Visual Studio Tools for Office
Visual Studio Tools for Office(VSTO)是Visual Studio的软件开发工具包(SDK)和插件,它提供了开发Microsoft Office套件的工具。在Visual Studio .NET 2003和Visual Studio 2005中,VSTO作为一个单独的销售单元(SKU)存在,仅支持Visual C#和Visual Basic语言,并作为团队套件的一部分。自Visual Studio 2008起,VSTO不再作为单独的SKU,而是包含在专业版及以上版本中。在部署VSTO解决方案时,需要一个独立的运行库环境。
测试工具
微软 Visual Studio提供了一套全面的测试工具,旨在帮助开发者编写高质量的代码以开发应用程序。这些工具包括单元测试、IntelliTest、Live Unit Testing、Test Explorer、CodeLens测试指示器、代码覆盖率分析以及Fakes。
扩展
Visual Studio允许开发人员通过编写扩展来增强其功能,这些扩展可以以宏、加载项和包的形式存在。宏用于记录可重复的任务和操作,但无法创建新命令或工具窗口。加载项则允许实现新功能和添加工具窗口,通过COM接口与IDE交互。包提供最高级别的扩展性,可以创建设计器、工具和集成其他编程语言,使用Visual Studio SDK创建。Visual Studio 2005标准版及以上版本支持扩展,但Express Edition不支持托管扩展。
Visual Studio 2008引入了Visual Studio Shell,允许开发自定义IDE版本,通过定义VSPackage提供IDE所需的功能,并可添加其他软件包进行自定义安装。Shell的隔离模式会在安装包位置创建新的AppId,用于开发特定语言或方案的自定义开发环境。Visual Studio Shell可免费下载。
此外,微软在Visual Studio 2008发布后创建了Visual Studio库,作为发布扩展信息的中心位置。社区和商业开发者可以通过Visual Studio 2010将扩展信息上传到Visual Studio .NET 2002。用户可以对扩展进行评分和查看,以评估质量。扩展存储在VSIX文件中,这些文件是包含XML文件和可能的DLL的ZIP文件。扩展的一个主要优点是不需要管理员权限进行安装,并计划提供RSS提要以通知用户网站的更新和标记功能。
支持的软件
Microsoft Visual C++
Microsoft Visual C++是微软提供的C和C++编译器,包括相关语言服务和与Visual Studio集成的特定工具。它支持在C模式或C++模式下编译代码。自15.7版本起,Visual C++符合C++17标准,但Visual Studio 2015的C模式实现并不支持完整标准,特别是不支持C99中引入的复数标头complex.h。
Visual C++支持C++/CLI规范,允许编写托管代码和混合模式代码,即本机代码与托管代码的结合。微软定位Visual C++用于本机代码开发,以及包含本机和托管组件的代码开发。它支持COM和mfc库,为MFC开发提供了创建和自定义MFC样板代码的向导,以及使用MFC创建GUI应用程序的能力。Visual C++还可以利用Visual Studio的窗体设计器进行图形化UI设计,并与Windows API一起使用。此外,Visual C++支持内部函数,这些函数由编译器识别而非作为库函数实现,用于公开现代CPU的SSE指令集。Visual C++还集成了openmp(2.0版)规范。
Microsoft Visual C#
Microsoft Visual C#是微软的C#开发软件,它面向.NET Framework,并提供Visual Studio集成开发环境(IDE)支持C#项目的语言服务。尽管语言服务是Visual Studio的一部分,但编译器作为.NET Framework的一部分是独立提供的。Visual C#编译器的2008、2010和2012版本分别支持C#语言规范的3.0、4.0和5.0版本。Visual C#支持Visual Studio中的类设计器、窗体设计器和数据设计器等功能。
Microsoft Visual Basic
Microsoft Visual Basic是微软用于VB.NET语言及其相关工具和语言服务的软件,首次引入于Visual Studio .NET(2002)。微软将Visual Basic定位为快速应用程序开发工具,它既适用于控制台应用程序的创建,也适用于GUI应用程序的开发。与Visual C#相似,Visual Basic支持Visual Studio的类设计器、窗体设计器和数据设计器。VB.NET编译器作为.NET Framework的一部分提供,而使用Visual Studio开发VB.NET项目的语言服务也是.NET Framework的一部分。
Microsoft Visual Web Developer
Microsoft Visual Web Developer专门用于使用ASP.NET技术创建网站、Web应用程序和Web服务。它支持使用C#或VB.NET语言进行开发。通过Visual Studio Web设计器,开发者可以以图形化的方式设计网页布局。
Azure DevOps
Azure DevOps是一个专为协作软件开发项目设计的平台,它提供了一系列功能,包括版本控制、工作规划、跟踪、数据收集和报告。此外,它还集成了Visual Studio中的团队资源管理器。在2018年9月10日,微软宣布将Visual Studio Team Services(VSTS)更名为Azure DevOps Services,同时将Team Foundation Server(TFS)更名为Azure DevOps Server。
版本
社区版
Visual Studio Community版于2014年11月12日发布,作为一个新的免费版本,它提供了与Visual Studio Professional相似的功能。在此之前,Visual Studio的唯一免费版本是功能受限的Express版本。与Express版本不同,Community版本支持多种编程语言并提供扩展支持。个人开发者可以无限制地使用Community版本。此外,为开源项目、学术研究、教育环境以及开发和测试Windows操作系统设备驱动程序的贡献者也可以无限制地使用。对于组织而言,除非其被分类为大型企业(即拥有超过250名员工或年收入超过100万美元的微软企业),否则最多可以无限制地使用5份副本,超过6名用户需要商业许可证。企业组织在上述例外情况之外使用时也需要商业许可证。Visual Studio Community版主要面向个人开发者和小型团队。
专业版
自Visual Studio 2010起,专业版成为了Visual Studio的入门级商业版本,取代了之前功能更为受限的标准版。它为所有受支持的开发语言提供了一个集成开发环境(IDE),并根据许可提供MSDN支持,可以选择MSDN Essentials或完整的MSDN库。该版本支持XML和XSLT编辑,能够创建仅通过ClickOnce和MSI部署的软件包。此外,它还包含了服务器资源管理器等工具,并集成了Microsoft SQL Server。在Visual Studio 2005标准版中包含了Windows Mobile开发支持,但在Visual Studio 2008中,这一支持仅限于专业版及以上版本。Visual Studio 2010的所有版本都增加了对Windows Phone 7开发的支持,而不再支持Windows Mobile开发,后者已被Windows Phone 7所取代。
企业版
企业版在专业版的基础上,进一步提供了一套全面的软件开发工具,包括数据库开发、协作、性能指标监控、架构设计、测试和报告功能。它是一个全面的解决方案,能够满足不同规模团队在质量和规模上的需求。
市场情况
根据2023年的市场调查报告,Visual Studio在集成开发环境(IDE)和文本编辑器类别中占有25.60%的市场份额,位居第二,仅次于CKEditor(31.65%),领先于Xcode(10.45%)和Visual Studio Code(5.20%)。截至2024年,全球超过34,894家公司采用微软 Visual Studio,其中软件开发(1,090家)、商业智能(783家)和咨询(638家)行业排名前三。美国、英国和印度分别拥有14,758个(56.97%)、2,330个(8.99%)和2,019个(7.79%)客户。
W3Techs的报告显示,2022年对7万多名开发人员进行的调查中,Visual Studio是最受欢迎的IDE,特别是在网站内容管理系统的使用上。
争议事件
微软和太阳计算机公司的诉讼
1997年10月,太阳微系统(Sun Microsystems)就两家公司之间的Java技术许可协议对微软提起诉讼。2001年1月23日,微软宣布与太阳计算机公司达成和解协议,根据协议内容,双方之间的技术许可协议终止。微软被允许在七年内继续交付所有当前产品及其包含太阳技术测试版的产品,同时向太阳计算机公司支付2000万美元作为和解费用。微软同意不再使用太阳计算机公司的Java Compatible商标,这一决定导致Visual Studio 6.0版本中不再包含Visual J++。
用户投诉VS中的圣诞帽图标
在2019年12月19日,Visual Studio Code(visual studio code)团队在软件的设置按钮上添加了一个圣诞帽ICON,点击后会触发一个充满窗口的动画效果。然而,这一改变引起了一位用户的不满,该用户在GitHub上提交了一个issue,认为这一行为是对其宗教信仰的冒犯,并附上了关于圣诞节与阿道夫·希特勒迫害犹太人历史的链接。开发团队随后决定移除这一彩蛋。这一决定在Twitter和GitHub上引起了大量用户的不满,他们开始大量提交issue以表达抗议。微软随后暂时冻结了visual studio code的仓库,并在四天后解禁。最终,微软提供了一个选项,允许用户修改节日ICON,并默认显示为不带装饰的图标。
影响和评价
根据TrustRadius上的用户评论,Visual Studio被认为是一个功能强大的集成开发环境(IDE)。它提供了基于工作负载的安装程序,允许用户仅安装所需的组件。Visual Studio集成了IntelliCode,这是一个智能的自动代码完成工具,能够理解代码上下文并一次性完成整行代码的编写,以促进精确编码。此外,它还配备了强大的调试工具,帮助开发者迅速定位和解决代码问题。尽管一些开发者指出Visual Studio的学习曲线陡峭且对设备资源的需求较高,但鉴于其丰富的功能和工具,Visual Studio仍然是开发者的首选工具之一。
参考资料
The Faces Behind Microsoft Visual Studio.thurrott.2024-01-06
What is Visual Studio?.microsoft.2024-01-07
What I’m doing in Redmond.windowsphonesecrets.2024-01-06
Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器.microsoft.2024-01-12
Visual Studio 2022 version 17.8 Release Notes.microsoft.2024-01-07
Microsoft Visual Studio.6sense.2024-01-08
Usage statistics and market share of Visual Studio.w3techs.2024-01-08
VS Code and Visual Studio Rock the 2022 Stack Overflow Developer Report.visualstudiomagazine.2024-01-08
Visual Studio 97.itprotoday.2024-01-06
EPS Custom Software.code-magazine.2024-01-06
Software.theregister.2024-01-06
Microsoft Visual Studio 97 (5.x).winworldpc.2024-01-06
MSDN VS 97.winworldpc.2024-01-06
MICROSOFTVISUALSTUDIO.microsoftvisualstudio.2024-01-06
The History of Microsoft - 1997.microsoft.2024-01-06
System Requirements.microsoft.2024-01-06
Visual Studio.winehq.2024-01-06
WineHQ.winehq.2024-01-06
Visual J++ 6.0.microsoft.2024-01-06
Features by Edition.microsoft.2024-01-06
Visual Studio.winehq.2024-01-06
Visual Studio .NET 2002 SP1 Released.pietschsoft.2024-01-06
Visual Studio.winehq.2024-01-06
operating system supports for Visual Studio 2003 and 2005.MSDN(微软).2024-01-06
Microsoft Visual Studio .NET 2003.microsoft.2024-01-06
Visual Studio.NET 2003 Service Pack 1 Released.microsoft.2024-01-06
Visual Studio.winehq.2024-01-06
Breaking Changes.microsoft.2024-01-06
How to: Modify WINVER and _WIN32_WINNT.microsoft.2024-01-06
Building, Testing, and Deployment.microsoft.2024-01-06
Visual Studio 2005 Retired documentation.microsoft.2024-01-06
64-bit and Visual Studio 2005.microsoft.2024-01-06
Redirecting.MicrosoftCommunity.2024-01-06
Microsoft Details Dynamic IT Strategy at Tech-Ed 2007.earthtimes.2024-01-06
Visual Studio Team System 2008 ships!.msdn.2024-01-06
Microsoft Windows Visual Studio Team System 2008.msdn.2024-01-06
Windows Platforms (CRT).microsoft.2024-01-06
Visual Studio.winehq.2024-01-06
Developing Windows Applications by Mykola Dudar.microsoft.2024-01-06
C++ Team Blog.microsoft.2024-01-06
Somasegar's blog.microsoft.2024-01-06
JOHN ROBBINS' BLOG.wintellect.2024-01-06
Multi-threaded Debugging in Visual Studio 2008.hanselman.2024-01-06
Releasing the Source Code for the .NET Framework Libraries.azurewebsites.2024-01-06
Visual Studio 2010 aka. Dev10 Beta available for download.microsoft.2024-01-06
Microsoft Releases Visual Studio 2010, .NET Framework 4.eweek.2024-01-06
Microsoft launches Visual Studio 2010 and .NET Framework 4 [download].digit.2024-01-06
Visual Studio.winehq.2024-01-06
Access Denied.microsoft.2024-01-06
Don Syme's WebLog on F# and Related Topics.microsoft.2024-01-06
Debugging Parallel Applications with VS2010.danielmoth.2024-01-06
Intel, Microsoft converge on parallel computing.sdtimes.2024-01-06
Bug: Intellisense believes itself in C++ while working on a C file..MSDN(微软).2024-01-06
"Microsoft Unveils Next Version of Visual Studio and .NET Framework.microsoft.2024-01-06
Doing Architecture with Team System Rosario.visualstudiomagazine.2024-01-06
Visual Studio 2010 Architecture Edition.wordpress.2024-01-06
Skip to main content.msdn.2024-01-06
Habib Heydarian's Blog @ Microsoft.msdn.2024-01-06
Visual Studio 2010 Lab Management.microsoft.2024-01-06
Visual Studio.winehq.2024-01-06
Visual Studio 2012 - A More Productive IDE for Modern Applications.microsoft.2024-01-06
Microsoft Visual Studio 2012 completed; launches Sept. 12th.neowin.2024-01-06
Can I record/play macros in Visual Studio 2012/2013/2015/2017/2019?.stackoverflow.2024-01-06
What's New for Visual C++ in Visual Studio 2012.microsoft.2024-01-06
Visual Studio 11 Developer Preview Announced.microsoft.2024-01-06
A Review of Visual Studio 11 Developer Preview.visualstudiomagazine.2024-01-06
What' s new in Visual Studio 11.microsoft.2024-01-06
First Look at the New C++ IDE Productivity Features in Visual Studio 11.microsoft.2024-01-06
Color Returns to Visual Studio 11 User Interface.visualstudiomagazine.2024-01-06
Visual Studio 11 User Interface Updates Coming in RC.microsoft.2024-01-06
A DESIGN WITH ALL-CAPS.microsoft.2024-01-06
Microsoft Ignores Usability and Users - VS 2012 Keeps ALL-CAPS Menus.i-programmer.2024-01-06
On Visual Studio 11's redesign awkwardness.arktronic.2024-01-06
How To Prevent Visual Studio 2012 ALL CAPS Menus!.richard-banks.2024-01-06
Visual Studio 2013 Launched!.microsoft.2024-01-07
Description of Visual Studio 2013 Update 1.Microsoft支持.2024-01-07
Visual Studio 2013 Update 2 Release Notes.microsoft.2024-01-07
Visual Studio 2013年 更 新 3 的 说 明.Microsoft支持.2024-01-07
WineHQ.winehq.2024-01-07
Visual Studio " 14" CTP Now Available.microsoft.2024-01-07
BUILD2015News:VisualStudioCode,VisualStudio2015RC,TeamFoundationServer2015RC,VisualStudio2013Update5.microsoft.2024-01-07
Visual Studio 2015 Release Notes.microsoft.2024-01-07
Visual Studio 2015 Update 3 Release Notes.microsoft.2024-01-07
Visual Studio “ 15” Preview Now Available.microsoft.2024-01-07
Join Us: Visual Studio 2017 Launch Event and 20th Anniversary.microsoft.2024-01-07
Announcing Visual Studio 2017 General Availability… and more.microsoft.2024-01-07
Visual Studio 2017 version 15.1 Release Notes.microsoft.2024-01-07
Visual Studio 2017 version 15.2 Release Notes.microsoft.2024-01-07
Visual Studio 2017 version 15.3 Release Notes.microsoft.2024-01-07
Visual Studio 2017 Version 15.4 Released.microsoft.2024-01-07
Visual Studio 2017 Version 15.5, Visual Studio for Mac Released.microsoft.2024-01-07
Visual Studio 2017 version 15.6, Visual Studio for Mac version 7.4 Released.microsoft.2024-01-07
Announcing: MSVC Conforms to the C++ Standard.microsoft.2024-01-07
Visual Studio 2017 version 15.8 Release Notes.microsoft.2024-01-07
Visual Studio 2019 Platform Targeting and Compatibility.microsoft.2024-01-07
What’ s Next for Visual Studio.microsoft.2024-01-07
Visual Studio 2019 version 16.11 Release Notes.microsoft.2024-01-07
Microsoft Visual Studio 2022 will (finally) enter the 64-bit world.arstechnica.2024-01-07
Visual Studio 2022.microsoft.2024-01-07
Visual Studio 2022 version 17.0 Release Notes.microsoft.2024-01-07
Visual Studio 2022 now available.microsoft.2024-01-07
Visual Studio 25 周年.microsoft.2024-01-07
Visual Studio 2013 Preview Available Now!.microsoft.2024-01-07
Visual Studio Development Environment Model.microsoft.2024-01-07
Visual Studio SDK.microsoft.2024-01-07
Welcome to the Visual Studio IDE | Visual Basic.microsoft.2024-01-07
Create a console calculator in C++.microsoft.2024-01-07
Wednesday Featured Forums: Visual Studio Languages Forum.microsoft.2024-01-07
Language Server Extension Guide.visualstudio.2024-01-07
What is " managed code" ?.microsoft.2024-01-07
Source Control Integration Essentials.microsoft.2024-01-07
Source Control Plug-ins.microsoft.2024-01-07
Microsoft Source Code Control Interface (MSSCCI).alinconstantin.2024-01-07
Visual Studio .NET IDE, windows and features.vskills.2024-01-07
Nice VS 2008 Code Editing Improvements.azurewebsites.2024-01-07
Bookmark code in Visual Studio.microsoft.2024-01-07
In this article.microsoft.2024-01-07
First look at the Visual Studio Debugger.microsoft.2024-01-07
Walkthrough: Debugging at Design Time.archive.2024-01-07
Bind controls to data in Visual Studio.microsoft.2024-01-07
Tutorial:UseWindowsPresentationFoundation(WPF).microsoft.2024-01-07
Using ASP.NET Dynamic Data.microsoft.2024-01-07
Overview of ASP.NET Core.microsoft.2024-01-07
Design,visualize,&refactorwithClassDesigner.microsoft.2024-01-07
Visual Studio data tools for .NET Framework development.microsoft.2024-01-07
Entity Framework Tools in Visual Studio.microsoft.2024-01-07
Customize the Properties window.microsoft.2024-01-07
In this article.microsoft.2024-01-07
Learn about Solution Explorer.microsoft.2024-01-07
Team Explorer 2005 (.img file).microsoft.2024-01-07
Visual Studio Team Explorer component directory.microsoft.2024-01-07
View and manage storage resources in Visual Studio.microsoft.2024-01-07
About Dotfuscator Community & Visual Studio.microsoft.2024-01-07
Code Generation and T4 Text Templates.microsoft.2024-01-07
Visual Studio 中的办公室和 SharePoint 开发.microsoft.2024-01-07
代码测试工具和服务 | Visual Studio.microsoft.2024-01-07
开始在 Visual Studio 中开发扩展.microsoft.2024-01-07
更新 Visual Studio 2022 的 Visual Studio 扩展.microsoft.2024-01-07
Microsoft Furthers Visual Studio Extension Writing Revamp.visualstudiomagazine.2024-01-07
Compiler intrinsics.microsoft.2024-01-07
OpenMP in Visual C++.microsoft.2024-01-07
A tour of the C# language.microsoft.2024-01-07
Make Your Components Really RAD with Visual Studio .NET Property Browser.microsoft.2024-01-07
Intro to Visual Web Developer.microsoft.2024-01-07
IntroducingAzureDevOps.microsoft.2024-01-07
Licensing Whitepaper for the Microsoft Visual Studio Product Family and Visual Studio Subscriptions .microsoft.2024-01-07
比较 Visual Studio 产品 | Visual Studio.microsoft.2024-01-07
Microsoft Launches Free, Unrestricted Version Of Visual Studio For Small Teams.techcrunch.2024-01-07
Microsoft debuts Visual Studio 2015 and .NET 2015 previews, free Visual Studio Community 2013.venturebeat.2024-01-07
开发人员工具和服务 | Visual Studio Professional.microsoft.2024-01-07
MICROSOFT® VISUAL STUDIO 2010 Overview.microsoft.2024-01-07
https://news.microsoft.com/2001/01/23/microsoft-reaches-agreement-to-settle-contract-dispute-with-sun-microsystems/.microsoft.2024-01-07
Santa Hat on vscode insiders and pushing of religion is very offensive to me.github.2024-01-07
Updated 12/23: The repository is open again.github.2024-01-07
Visual Studio.trustradius.2024-01-07
All Microsoft Visual Studio Reviews.softwareadvice.2024-01-07