The most basic edition of Visual Studio, the Community edition, is available free of charge. The slogan for Visual Studio Community edition is "Free, fully-featured IDE for students, open-source and individual developers". As of February 19, 2024[update], Visual Studio 2022 is a current production-ready version. Visual Studio 2013, 2015 and 2017 are on Extended Support, while 2019 is on Mainstream Support.[9]
Visual Studio does not support any programming language, solution or tool intrinsically; instead, it allows the plugging of functionality coded as a VSPackage. When installed, the functionality is available as aService. TheIDE provides three services: SVsSolution, which provides the ability to enumerate projects and solutions; SVsUIShell, which provides windowing and UI functionality (including tabs, toolbars, and tool windows); and SVsShell, which deals with registration of VSPackages. In addition, the IDE is also responsible for coordinating and enabling communication between services.[10] All editors, designers, project types and other tools are implemented as VSPackages. Visual Studio usesCOM to access the VSPackages. The Visual StudioSDK also includes theManaged Package Framework (MPF), which is a set ofmanaged wrappers around the COM-interfaces that allow the Packages to be written in anyCLI compliant language.[11] However, MPF does not provide all the functionality exposed by the Visual Studio COM interfaces.[12]The services can then be consumed for creation of other packages, which add functionality to the Visual Studio IDE.
Support for programming languages is added by using a specific VSPackage called aLanguage Service. A language service defines various interfaces which the VSPackage implementation can implement to add support for various functionalities.[13] Functionalities that can be added this way include syntax coloring, statement completion, brace matching, parameter information tooltips, member lists, and error markers for background compilation.[13] If the interface is implemented, the functionality will be available for the language. Language services are implemented on a per-language basis. The implementations can reuse code from the parser or the compiler for the language.[13] Language services can be implemented either innative code ormanaged code. For native code, either the native COM interfaces or the Babel Framework (part of Visual Studio SDK) can be used.[14] For managed code, the MPF includes wrappers for writing managed language services.[15]
Visual Studio does not include anysource control support built in but it defines two alternative ways for source control systems to integrate with the IDE.[16] A Source Control VSPackage can provide its own customised user interface. In contrast, a source control plugin using theMSSCCI (Microsoft Source Code Control Interface) provides a set of functions that are used to implement various source control functionality, with a standard Visual Studio user interface.[17][18] MSSCCI was first used to integrateVisual SourceSafe with Visual Studio 6.0 but was later opened up via the Visual Studio SDK. Visual Studio .NET 2002 used MSSCCI 1.1, and Visual Studio .NET 2003 used MSSCCI 1.2. Visual Studio 2005, 2008, and 2010 use MSSCCI Version 1.3, which adds support for rename and delete propagation, as well as asynchronous opening.[18]
Visual Studio supports running multiple instances of the environment (each with its own set of VSPackages). The instances use differentregistry hives (seeMSDN'sdefinition of the term "registryhive" in the sense used here) to store their configuration state and are differentiated by their AppId (Application ID). The instances are launched by an AppId-specific .exe that selects the AppId, sets the root hive, and launches the IDE. VSPackages registered for one AppId are integrated with other VSPackages for that AppId. The various product editions of Visual Studio are created using the different AppIds. TheVisual Studio Express edition products are installed with their own AppIds, but the Standard, Professional, andTeam Suite products share the same AppId. Consequently, one can install the Express editions side-by-side with other editions, unlike the other editions which update the same installation. The professional edition includes a superset of the VSPackages in the standard edition, and the team suite includes a superset of the VSPackages in both other editions. The AppId system is leveraged by theVisual Studio Shell in Visual Studio 2008.[19]
The code editor in Visual Studio also supports setting bookmarks in code for quick navigation. Other navigational aids includecollapsing code blocks andincremental search, in addition to normal text search andregex search.[23] The code editor also includes a multi-itemclipboard and a task list.[23] The code editor supports code snippets, which are saved templates for repetitive code and can be inserted into code and customized for the project being worked on. A management tool for code snippets is built in as well. These tools are surfaced as floating windows which can be set to automatically hide when unused or docked to the side of the screen. The code editor in Visual Studio also supportscode refactoring including parameter reordering, variable and method renaming,interface extraction, and encapsulation of class members inside properties, among others.
Visual Studio includes adebugger that works both as a source-level debugger and as a machine-level debugger. It works with bothmanaged code as well asnative code and can be used for debugging applications written in any language supported by Visual Studio. In addition, it can also attach to running processes, monitor, and debug those processes.[24] If source code for the running process is available, it displays the code as it is being run. If source code is not available, it can show thedisassembly. The Visual Studio debugger can also creatememory dumps as well as load them later for debugging.[25] Multi-threaded programs are also supported. The debugger can be configured to be launched when an application running outside the Visual Studio environment crashes.
The Visual Studio Debugger allows settingbreakpoints (which allow execution to be stopped temporarily at a certain position) and watches (which monitor the values of variables as the execution progresses).[26] Breakpoints can be conditional, meaning they get triggered when the condition is met. Code can bestepped over, i.e., run one line (of source code) at a time.[27] It can eitherstep into functions to debug inside it, orstep over it, i.e., the execution of the function body isn't available for manual inspection.[27] The debugger supportsEdit and Continue, i.e., it allows code to be edited as it is being debugged. When debugging, if the mouse pointer hovers over any variable, its current value is displayed in a tooltip ("data tooltips"), where it can also be modified if desired. During coding, the Visual Studio debugger lets certain functions be invoked manually from theImmediate tool window. The parameters to the method are supplied at the Immediate window.[28]
Visual Studio includes many visual designers to aid in the development of applications. These tools include:
Windows Forms Designer
The Windows Forms designer is used to buildGUI applications usingWindows Forms. Layout can be controlled by housing the controls inside other containers or locking them to the side of the form. Controls that display data (like textbox, list box and grid view) can bebound to data sources likedatabases orqueries. Data-bound controls can be created by dragging items from the Data Sources window onto a design surface.[29] The UI is linked with code using anevent-driven programming model. The designer generates eitherC# orVB.NET code for the application.
WPF Designer
The WPF designer, codenamedCider,[30] was introduced with Visual Studio 2008. Like the Windows Forms designer it supports the drag and drop metaphor. It is used to authoruser interfaces targetingWindows Presentation Foundation. It supports all WPF functionality includingdata binding andautomatic layout management. It generatesXAML code for the UI. The generatedXAML file is compatible withMicrosoft Expression Design, the designer-oriented product. The XAML code is linked with code using acode-behind model.
Web designer/development
Visual Studio also includes a web-site editor and designer that allows web pages to be authored by dragging and dropping widgets. It is used for developingASP.NET applications and supportsHTML,CSS andJavaScript. It uses acode-behind model to link with ASP.NET code. From Visual Studio 2008 onwards, the layout engine used by the web designer is shared with the discontinuedExpression Web. There is alsoASP.NET MVC support forMVC technology as a separate download[31] andASP.NET Dynamic Data project available from Microsoft.[32]
Class designer
The Class Designer is used to author and edit the classes (including its members and their access) usingUML modeling. The Class Designer can generateC# andVB.NET code outlines for the classes and methods. It can also generate class diagrams from hand-written classes.
Data designer
The data designer can be used to graphically editdatabase schemas, including typed tables, primary and foreign keys and constraints. It can also be used to design queries from the graphical view.
Mapping designer
From Visual Studio 2008 onwards, the mapping designer is used byLINQ to SQL to design themapping betweendatabase schemas and theclasses that encapsulate the data. The new solution from ORM approach,ADO.NET Entity Framework, replaces and improves the old technology.
TheProperties Editor tool is used to edit properties in a GUI pane inside Visual Studio. It lists all available properties (both read-only and those which can be set) for all objects includingclasses, forms, web pages and other items.
Object Browser
TheObject Browser is anamespace andclass library browser forMicrosoft .NET. It can be used to browse the namespaces (which are arranged hierarchically) inmanagedassemblies. The hierarchy may or may not reflect the organization in the file system.
Solution Explorer
In Visual Studio parlance, a solution is a set of code files and other resources that are used to build an application. The files in a solution are arranged hierarchically, which might or might not reflect the organization in the file system. TheSolution Explorer is used to manage and browse the files in a solution.
Team Explorer
Team Explorer is used to integrate the capabilities of Azure DevOps (eitherAzure DevOps Services orAzure DevOps Server) into the IDE . In addition to version control integration it provides the ability to view and manage individual work items (including user stories, bugs, tasks and other documents). It is included as part of a Visual Studio installation and is also available as a standalone download.[33][34]
Data Explorer
Data Explorer is used to manage databases onMicrosoft SQL Server instances. It allows creation and alteration of database tables (either by issuingT-SQL commands or by using the Data designer). It can also be used to createqueries andstored procedures, with the latter in eitherT-SQL or inmanaged code viaSQL CLR. Debugging andIntelliSense support is available as well.
Server Explorer
TheServer Explorer tool is used to manage database connections on an accessible computer. It is also used to browse runningWindows Services, performance counters,Windows Event Log andmessage queues and use them as a datasource.[35]
Dotfuscator Community Edition
Visual Studio includes a free 'light' version ofDotfuscator[36]
Text Generation Framework
Visual Studio includes a full text generation framework calledT4 which enables Visual Studio to generate text files from templates either in the IDE or via code.
Visual Studio Tools for Office is a SDK and an add-in for Visual Studio that includes tools for developing for theMicrosoft Office suite. Previously (for Visual Studio .NET 2003 and Visual Studio 2005) it was a separate SKU that supported onlyVisual C# andVisual Basic languages or was included in the Team Suite. With Visual Studio 2008, it is no longer a separate SKU but is included with Professional and higher editions. A separate runtime is required when deploying VSTO solutions.
Microsoft Visual Studio can write high-quality code with comprehensive testing tools to aid in the development of applications. These tools include:[37]
Unit testing, IntelliTest, Live Unit Testing, Test Explorer, CodeLens test indicators,code coverage analysis, Fakes.[37]
Visual Studio allows developers to write extensions for Visual Studio to extend its capabilities. These extensions "plug into" Visual Studio and extend its functionality. Extensions come in the form ofmacros,add-ins, andpackages. Macros represent repeatable tasks and actions that developers can record programmatically for saving, replaying, and distributing. Macros, however, cannot implement new commands or create tool windows. They are written usingVisual Basic and are not compiled.[12] Add-Ins provide access to the Visual Studio object model and can interact with the IDE tools. Add-Ins can be used to implement new functionality and can add new tool windows. Add-Ins are plugged into the IDE viaCOM and can be created in any COM-compliant languages.[12] Packages are created using the Visual StudioSDK and provide the highest level of extensibility. They can create designers and other tools, as well as integrate other programming languages. The Visual Studio SDK provides unmanagedAPIs as well as a managed API to accomplish these tasks. However, the managed API isn't as comprehensive as the unmanaged one.[12] Extensions are supported in the Standard (and higher) versions of Visual Studio 2005.Express Editions do not support hosting extensions.
Visual Studio 2008 introduced theVisual Studio Shell that allows for development of a customized version of the IDE. The Visual Studio Shell defines a set of VSPackages that provide the functionality required in any IDE. On top of that, other packages can be added to customize the installation. The Isolated mode of the shell creates a new AppId where the packages are installed. These are to be started with a different executable. It is aimed for development of custom development environments, either for a specific language or a specific scenario. The Integrated mode installs the packages into the AppId of the Professional/Standard/Team System editions, so that the tools integrate into these editions.[19] The Visual Studio Shell is available as a free download.
After the release of Visual Studio 2008, Microsoft created the Visual Studio Gallery. It serves as the central location for posting information about extensions to Visual Studio. Community developers as well as commercial developers can upload information about their extensions to Visual Studio .NET 2002 through Visual Studio 2010. Users of the site can rate and review the extensions to help assess the quality of extensions being posted. An extension is stored in aVSIX file. Internally a VSIX file is a ZIP file that contains some XML files, and possibly one or more DLL's. One of the main advantages of these extensions is that they do not require Administrator rights to be installed. RSS feeds to notify users on updates to the site and tagging features are also planned.[38]
Microsoft Visual C++ is Microsoft's partial implementation of theC and full implementationC++compiler and associated languages-services and specific tools for integration with the Visual Studio IDE. It can compile either in C mode or C++ mode. For C++, as of version 15.7 it conforms toC++17.[40] The C implementation of Visual Studio 2015 still doesn't support the full standard; in particular, the complex number headercomplex.h introduced in C99 is unsupported.
Visual C++ supports theC++/CLI specification to writemanaged code, as well as mixed-mode code (a mix ofnative andmanaged code). Microsoft positions Visual C++ for development in native code or in code that contains both native as well as managed components. Visual C++ supportsCOM as well as theMFC library. For MFC development, it provides a set of wizards for creating and customizing MFCboilerplate code, and creating GUI applications using MFC. Visual C++ can also use the Visual Studio forms designer to design UI graphically. Visual C++ can also be used with theWindows API. It also supports the use ofintrinsic functions,[41] which are functions recognized by the compiler itself and not implemented as a library. Intrinsic functions are used to expose theSSE instruction set of modern CPUs. Visual C++ also includes theOpenMP (version 2.0) specification.[42]
Microsoft Visual C#, Microsoft's implementation of theC# language, targets the .NET Framework, along with the language services that lets the Visual Studio IDE support C# projects. While the language services are a part of Visual Studio, the compiler is available separately as a part of the .NET Framework. The Visual C# 2008, 2010 and 2012 compilers support versions 3.0, 4.0 and 5.0 of the C# language specifications, respectively. Visual C# supports the Visual Studio Class designer, Forms designer, and Data designer among others.[43]
Microsoft Visual Basic is Microsoft's implementation of theVB.NET language and associated tools and language services. It was introduced with Visual Studio .NET (2002). Microsoft has positioned Visual Basic forRapid Application Development.[44][45] Visual Basic can be used to author both console applications as well as GUI applications. Like Visual C#, Visual Basic also supports the Visual Studio Class designer, Forms designer, and Data designer among others. Like C#, the VB.NET compiler is also available as a part of .NET Framework, but the language services that let VB.NET projects be developed with Visual Studio, are available as a part of the latter.
Microsoft Visual Web Developer
Microsoft Visual Web Developer is used to create web sites,web applications andweb services using ASP.NET. EitherC# orVB.NET languages can be used. Visual Web Developer can use the Visual Studio Web Designer to graphically design web page layouts.
Azure DevOps is intended for collaborativesoftware development projects and providesversion control, work planning and tracking, data collection, andreporting. It also includes theTeam Explorer which is integrated inside Visual Studio. On September 10, 2018, Microsoft announced a rebranding of Visual Studio Team Services (VSTS) toAzure DevOps Services and Team Foundation Server (TFS) toAzure DevOps Server.[46]
Visual FoxPro is a data-centricobject-oriented andproceduralprogramming language produced byMicrosoft. It derives fromFoxPro (originally known asFoxBASE) which was developed by Fox Software beginning in 1984. Visual FoxPro is tightly integrated with its own relational database engine, which extends FoxPro's xBase capabilities to supportSQL queries and data manipulation. Visual FoxPro is a full-featured,[47]dynamic programming language that does not require the use of an additional general-purpose programming environment. In 2007, Visual FoxPro was discontinued after version 9 Service Pack 2. It was supported until 2015.[48]
Microsoft Visual SourceSafe is asource controlsoftware package oriented towards small software-development projects. The SourceSafe database is a multi-user, multi-process file-system database, using the Windows file system database primitives to provide locking and sharing support. All versions are multi-user, usingSMB (file server) networking.[49][50][51] However, with Visual SourceSafe 2005, otherclient–server modes were added, Lan Booster and VSS Internet (which usedHTTP/HTTPS). Visual SourceSafe 6.0 was available as a stand-alone product[52] and was included with Visual Studio 6.0, and other products such as Office Developer Edition. Visual SourceSafe 2005 was available as a stand-alone product and included with the 2005 Team Suite.Azure DevOps has superseded VSS as Microsoft's recommended platform forsource control.
Microsoft Visual J++ wasMicrosoft's implementation of theJava language (with Microsoft-specific extensions) and associated language services. It was discontinued as a result oflitigation fromSun Microsystems, and the technology was recycled into Visual J#, Microsoft's Java compiler for .NET Framework. J# was available with Visual Studio 2005 (supported until 2015) but was discontinued in Visual Studio 2008.
Visual InterDev was used to create web applications using MicrosoftActive Server Pages (ASP) technologies. It supports code completion and includesdatabase server management tools. It has been replaced with Microsoft Visual Web Developer.
The Community edition was announced on November 12, 2014, as a new free version, with similar functionality to Visual Studio Professional. Prior to this date, the only free editions of Visual Studio were the feature-limited Express variants. Unlike theExpress variants, Visual Studio Community supports multiple languages, and provides support for extensions. Individual developers have no restrictions on their use of the Community edition. The following uses also allow unlimited usage: contributing to Open Source projects, academic research, in a classroom learning environment and for developing and testing device drivers for the Windows operating system. All other use by an organization depends on its classification as an Enterprise (more than 250 employees or more than 1 millionUSD in annual revenue, per Microsoft).[54] Non-Enterprises may use up to 5 copies without restriction, user number 6 and higher require a commercial license; Enterprise organizations require a commercial license for use outside of the noted exceptions.[54][55] Visual Studio Community is oriented towards individual developers and small teams.[56][57]
As of Visual Studio 2010, the Professional edition is the entry levelcommercial edition of Visual Studio. (Previously, a more feature restricted Standard edition was available.)[58] It provides an IDE for all supported development languages.MSDN support is available as MSDN Essentials or the fullMSDN library depending on licensing. It supportsXML andXSLT editing, and can create deployment packages that only useClickOnce andMSI. It includes tools like Server Explorer and integration withMicrosoft SQL Server also. Windows Mobile development support was included in Visual Studio 2005 Standard, however, with Visual Studio 2008, it is only available in Professional and higher editions. Windows Phone 7 development support was added to all editions in Visual Studio 2010. Development forWindows Mobile is no longer supported in Visual Studio 2010. It is superseded byWindows Phone 7.
In addition to the features provided by the Professional edition, the Enterprise edition provides a new set of software development, database development, collaboration, metrics, architecture, testing and reporting tools.
The first version of Visual Studio was Visual Studio 97.[59] Before that, Visual Basic, Visual C++, Visual FoxPro and Visual SourceSafe were sold as separate products.
Microsoft first released Visual Studio (codenamedBoston,[61] for thecity of the same name, thus beginning the VS codenames related to places)[61] in 1997, bundling many of its programming tools together for the first time. Visual Studio 97 came in two editions: Visual Studio Professional and Visual Studio Enterprise, the professional edition has three CDs, and the enterprise four CDs. It included Visual J++ 1.1 for Java programming and introduced Visual InterDev for creating dynamically generated web sites using Active Server Pages.[citation needed] There was a single companion CD that contained theMicrosoft Developer Network library. Visual Studio 97 is only compatible withWindows 95 andWindows NT 4.0. It is the last version to supportWindows NT 4.0 before SP3.
Visual Studio 97 was an attempt at using the same development environment for multiple languages. Visual J++, InterDev, and theMSDN Library had all been using the same 'environment', called Developer Studio.[120]
Visual Studio was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro.[19]
The next version, version 6.0 (codenamedAspen, after theski resort in Colorado),[citation needed] was released in June 1998 and is the last version to support theWindows 9x platform, as well asWindows NT 4.0 before SP6, but after SP2.[121] Each version of each language in part also settled to v6.0, including Visual J++ which was prior v1.1, and Visual InterDev at the first release. The v6 edition of Microsoft was the core environment for the next four releases to provide programmers with an integrated look-alike platform. This led Microsoft to transition the development on the platform independent.NET Framework.
Visual Studio 6.0 was the last version to include Visual J++,[122][123] which Microsoft removed as part of a settlement withSun Microsystems that required Microsoft Internet Explorer not to provide support for theJava Virtual Machine.
Visual Studio 6.0 came in two editions: Professional and Enterprise.[124] The Enterprise edition contained extra features not found in Professional edition, including:
This was the first version of Visual Studio to require anNT-based Windows platform.[125] The installer enforces this requirement, and is the last version to supportWindows NT 4.0 SP6 or later andWindows 2000 before SP3.
Visual Studio .NET 2002 shipped in four editions: Academic, Professional, Enterprise Developer, and Enterprise Architect. Microsoft introducedC# (C-sharp), a new programming language, that targets .NET. It also introduced the successor to Visual J++ called Visual J#. Visual J# programs use Java's language-syntax. However, unlike Visual J++ programs, Visual J# programs can only target the .NET Framework, not theJava Virtual Machine that all other Java tools target.
Visual Basic changed drastically to fit the new framework, and the new version was called Visual Basic .NET. Microsoft also added extensions to C++, calledManaged Extensions for C++, so .NET programs could be created in C++.
Visual Studio .NET can produce applications targeting Windows (using the Windows Forms part of the .NET Framework), the Web (using ASP.NET andWeb Services) and, with an add-in, portable devices (using the .NET Compact Framework).
The internal version number of Visual Studio .NET 2002 is version 7.0. Microsoft released Service Pack 1 for Visual Studio .NET 2002 in March 2005.[126]
Default start page of Visual Studio .NET 2003 running onWindows XP
In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio .NET 2003, codenamedEverett (for thecity of the same name).[citation needed] It includes an upgrade to the .NET Framework, version 1.1, and is the first release to support developing programs for mobile devices, using ASP.NET or the .NET Compact Framework. The Visual C++ compiler's standards-compliance improved, especially in the area ofpartial template specialization. Visual C++ Toolkit 2003 is a version of the same C++ compiler shipped with Visual Studio .NET 2003 without the IDE that Microsoft made freely available. As of 2010[update] it is no longer available and the Express Editions have superseded it. Visual Studio .NET 2003 also supports Managed C++, which is the predecessor of C++/CLI. The internal version number of Visual Studio .NET 2003 is version 7.1 while the file format version is 8.0.[127] Visual Studio .NET 2003 drops support for Windows NT 4.0, and is the last version to supportWindows 2000 SP3 andWindows XP before SP2 and the only version to supportWindows Server 2003 before SP1.
Visual Studio .NET 2003 shipped in five editions: Academic, Standard, Professional, Enterprise Developer, and Enterprise Architect. The Visual Studio .NET 2003 Enterprise Architect edition includes an implementation ofMicrosoft Visio 2002's modeling technologies, including tools for creatingUnified Modeling Language-based visual representations of an application's architecture, and anobject-role modeling (ORM) and logical database-modeling solution. "Enterprise Templates" were also introduced, to help larger development teams standardize coding styles and enforce policies around component usage and property settings.
Service Pack 1 was released September 13, 2006.[128]
Visual Studio 2005 Beta 2 Team Suite installation disc
Visual Studio 2005, codenamedWhidbey (a reference toWhidbey Island inPuget Sound region),[citation needed] was released online in October 2005 and to retail stores a few weeks later. Microsoft removed the ".NET" moniker from Visual Studio 2005 (as well as every other product with .NET in its name), but it still primarily targets the .NET Framework, which was upgraded to version 2.0. It requiresWindows 2000 with Service Pack 4,Windows XP with at least Service Pack 2 orWindows Server 2003 with at least Service Pack 1. It is the last version to run onWindows 2000 and also the last version able to targetWindows 98 andWindows Me for C++ applications.[129][130]
Visual Studio 2005's internal version number is 8.0 while the file format version is 9.0.[127] Microsoft released Service Pack 1 for Visual Studio 2005 on December 14, 2006.[131] An additional update for Service Pack 1 that offers Windows Vista compatibility was made available on June 3, 2007.[132]
Visual Studio 2005 was upgraded to support all the new features introduced in .NET Framework 2.0, including generics and ASP.NET 2.0. TheIntelliSense feature in Visual Studio was upgraded for generics and new project types were added to support ASP.NET web services. Visual Studio 2005 additionally introduces support for a new task-based build platform called Microsoft Build Engine (MSBuild) which employs a new XML-based project file format.[133] Visual Studio 2005 also includes a local web server, separate fromIIS, that can host ASP.NET applications during development and testing. It also supports allSQL Server 2005 databases. Database designers were upgraded to support theADO.NET 2.0, which is included with .NET Framework 2.0. C++ also got a similar upgrade with the addition ofC++/CLI which is slated to replace the use ofManaged C++.[134] Other new features of Visual Studio 2005 include the "Deployment Designer" which allows application designs to be validated before deployments, an improved environment for web publishing when combined with ASP.NET 2.0 and load testing to see application performance under various sorts of user loads. Starting with the 2005 edition, Visual Studio also added extensive 64-bit support. While the host development environment itself is only available as a 32-bit application, Visual C++ 2005 supports compiling forx86-64 (AMD64 and Intel 64) as well asIA-64 (Itanium).[135] ThePlatform SDK included 64-bit compilers and 64-bit versions of the libraries.
Microsoft also announcedVisual Studio Tools for Applications as the successor toVisual Basic for Applications (VBA) and VSA (Visual Studio for Applications). VSTA 1.0 was released to manufacturing along withOffice 2007. It is included with Office 2007 and is also part of the Visual Studio 2005 SDK. VSTA consists of a customized IDE, based on the Visual Studio 2005 IDE, and a runtime that can be embedded in applications to expose its features via the .NET object model. Office 2007 applications continue to integrate with VBA, except for InfoPath 2007 which integrates with VSTA. Version 2.0 of VSTA (based on Visual Studio 2008) was released in April 2008.[136] It is significantly different from the first version, including features such as dynamic programming and support forWPF,WCF,WF,LINQ, and .NET 3.5 Framework.
Visual Studio 2008,[137] and Visual Studio Team System 2008[138][139] codenamedOrcas (a reference toOrcas Island, also an island inPuget Sound region, like Whidbey for the previous 2005 release), were released to MSDN subscribers on November 19, 2007, alongside .NET Framework 3.5. The source code for the Visual Studio 2008 IDE is available under ashared source license to some ofMicrosoft's partners andISVs.[86] Microsoft released Service Pack 1 for Visual Studio 2008 on August 11, 2008.[140] The internal version number of Visual Studio 2008 is version 9.0 while the file format version is 10.0. Visual Studio 2008 requiresWindows XP Service Pack 2 plusWindows Installer 3.1,Windows Server 2003 Service Pack 1 or later. It is the last version available forWindows XP SP2,Windows Server 2003 SP1, as well as the only version to supportWindows Vista before SP2 andWindows Server 2008 before SP2 and the last version to support targetingWindows 2000 for C++ applications.[141]
Visual Studio 2008 is focused on development ofWindows Vista, 2007 Office system, and Web applications. For visual design, a newWindows Presentation Foundation visual designer and a newHTML/CSS editor influenced byMicrosoft Expression Web are included.J# is not included. Visual Studio 2008 requires .NET 3.5 Framework and by default configures compiled assemblies to run on .NET Framework 3.5, but it also supports multi-targeting which lets the developers choose which version of the .NET Framework (out of 2.0, 3.0, 3.5,Silverlight CoreCLR or .NET Compact Framework) the assembly runs on. Visual Studio 2008 also includes newcode analysis tools, including the newCode Metrics tool (only in Team Edition and Team Suite Edition).[142] ForVisual C++, Visual Studio adds a new version ofMicrosoft Foundation Classes (MFC 9.0) that adds support for the visual styles and UI controls introduced withWindows Vista.[143] For native and managed code interoperability, Visual C++ introduces the STL/CLR, which is a port of theC++Standard Template Library (STL) containers and algorithms tomanaged code. STL/CLR defines STL-like containers,iterators and algorithms that work onC++/CLImanaged objects.[144][145]
Visual Studio 2008 features include anXAML-based designer (codenamedCider),workflow designer,LINQ toSQL designer (for defining the type mappings and object encapsulation for SQL Server data),XSLT debugger,JavaScriptIntellisense support, JavaScript Debugging support, support forUACmanifests, aconcurrent build system, among others.[146] It ships with an enhanced set of UI widgets, both forWindows Forms andWPF. It also includes a multithreaded build engine (MSBuild) to compile multiple source files (and build the executable file) in a project across multiplethreads simultaneously. It also includes support for compilingiconresources inPNG format, introduced in Windows Vista. An updatedXML Schema designer was released separately some time after the release of Visual Studio 2008.[147]
Visual Studio Debugger includes features targeting easier debugging of multi-threaded applications. In debugging mode, in theThreads window, which lists all the threads, hovering over a thread displays thestack trace of that thread in tooltips.[148] The threads can directly be named and flagged for easier identification from that window itself.[149] In addition, in the code window, along with indicating the location of the currently executing instruction in the current thread, the currently executing instructions in other threads are also pointed out.[149][150] The Visual Studio debugger supports integrated debugging of the .NET 3.5 FrameworkBase Class Library (BCL) which can dynamically download the BCL source code anddebug symbols and allow stepping into the BCL source during debugging.[151] As of 2010[update] a limited subset of the BCL source is available, with more library support planned for later.
The Visual Studio 2010IDE was redesigned which, according toMicrosoft, clears the UI organization and "reduces clutter and complexity."[154] The new IDE better supports multiple document windows and floating tool windows,[154] while offering better multi-monitor support. The IDE shell has been rewritten using theWindows Presentation Foundation (WPF), whereas the internals have been redesigned using Managed Extensibility Framework (MEF) that offers more extensibility points than previous versions of the IDE that enabled add-ins to modify the behavior of the IDE.[155]
Visual Studio 2010 comes with.NET Framework 4 and supports developing applications targetingWindows 7.[154] It supportsIBM Db2 andOracle databases, in addition toMicrosoft SQL Server.[154] It has integrated support for developingMicrosoft Silverlight applications, including an interactive designer.[154] Visual Studio 2010 offers several tools to makeparallel programming simpler: in addition to theParallel Extensions for the .NET Framework and theParallel Patterns Library fornative code, Visual Studio 2010 includes tools for debugging parallel applications. The new tools allow the visualization of parallelTasks and their runtimestacks.[157] Tools for profiling parallel applications can be used for visualization of thread wait-times and thread migrations across processor cores.[158] Intel and Microsoft have jointly pledged support for a new Concurrency Runtime in Visual Studio 2010[159]and Intel has launched parallelism support inParallel Studio as an add-on for Visual Studio.[160]
The Visual Studio 2010 code editor now highlights references; whenever a symbol is selected, all other usages of the symbol are highlighted.[161] It also offers aQuick Search feature toincrementally search across all symbols in C++, C# and VB.NET projects. Quick Search supports substring matches andcamelCase searches.[161] TheCall Hierarchy feature allows the developer to see all the methods that are called from a current method as well as the methods that call the current one.[161]IntelliSense in Visual Studio supports aconsume-first mode which developers can opt into. In this mode, IntelliSense does not auto-complete identifiers; this allows the developer to use undefined identifiers (like variable or method names) and define those later. Visual Studio 2010 can also help in this by automatically defining them, if it can infer their types from usage.[161] Current versions of Visual Studio have a known bug which makes IntelliSense unusable for projects using pure C (not C++).[162]
Visual Studio 2010 features a newHelp System replacing theMSDN Library viewer. The Help System is no longer based onMicrosoft Help 2 and does not use Microsoft Document Explorer. Dynamic help containing links to help items based on what the developer was doing at the time was removed in the final release,[163] but can be added back using a download from Microsoft.[164]
Visual Studio 2010 no longer supports development for Windows Mobile prior toWindows Phone 7. Visual Studio 2010 Service Pack 1 was released in March 2011.[165]
Visual Studio Ultimate 2010 replaces Visual Studio 2008 Team Suite.[166] It includes new modeling tools,[167] such as theArchitecture Explorer, which graphically displays projects and classes and the relationships between them.[168][169]It supportsUML activity diagram, component diagram, (logical) class diagram, sequence diagram, and use case diagram.[169] Visual Studio Ultimate 2010 also includesTest Impact Analysis which provides hints on which test cases are impacted by modifications to the source code, without actually running the test cases.[170] This speeds up testing by avoiding running unnecessary test cases.
Visual Studio Ultimate 2010 also includes ahistorical debugger formanaged code calledIntelliTrace. Unlike a traditional debugger that records only the currently active stack, IntelliTrace records all events, such as prior function calls, method parameters, events and exceptions. This allows the code execution to be rewound in case a breakpoint was not set where the error occurred.[171] Debugging with IntelliTrace causes the application to run more slowly than debugging without it, and uses more memory as additional data needs to be recorded. Microsoft allows configuration of how much data should be recorded, in effect, allowing developers to balance the speed of execution and resource usage. TheLab Management component of Visual Studio Ultimate 2010 uses virtualization to create a similar execution environment for testers and developers. Thevirtual machines are tagged with checkpoints which can later be investigated for issues, as well as to reproduce the issue.[172] Visual Studio Ultimate 2010 also includes the capability to record test runs that capture the specific state of the operating environment as well as the precise steps used to run the test. These steps can then be played back to reproduce issues.[173]
The final build of Visual Studio 2012 was announced on August 1, 2012, and the official launch event was held on September 12, 2012.[174]
Unlike prior versions, Visual Studio 2012 cannot record and play macros and the macro editor has been removed.[175] Also unlike prior versions, Visual Studio 2012 requireWindows 7 SP1 andWindows Server 2008 R2 SP1.
New features include support forWinRT andC++/CX (Component Extensions) andC++ AMP (GPGPU programming) Semantic Colorization.[176]
Cross-compiling to ARM32 is supported from an x86 command prompt.
On September 16, 2011, a complete 'Developer Preview' of Visual Studio 11 was published on Microsoft's website. Visual Studio 11 Developer Preview requires Windows 7, Windows Server 2008 R2, Windows 8, or later operating systems.[177] Versions ofMicrosoft Foundation Class Library (MFC) and C runtime (CRT) included with this release cannot produce software that is compatible with Windows XP or Windows Server 2003 except by using native multi-targeting and foregoing the newest libraries, compilers, and headers.[178] However, on June 15, 2012, a blog post on the VC++ Team blog announced that based on customer feedback, Microsoft would re-introduce native support for Windows XP targets (though not for XP as a development platform) in a version of Visual C++ to be released later in the fall of 2012.[179] "Visual Studio 2012 Update 1" (Visual Studio 2012.1) was released in November 2012. This update added support for Windows XP targets and also added other new tools and features (e.g. improved diagnostics and testing support for Windows Store apps).[180]
On August 24, 2011, a blog post by Sumit Kumar, a Program Manager on the Visual C++ team, listed some of the features of the upcoming version of the Visual Studio C++ IDE:[181]
Semantic colorization: Improved syntax coloring, various user-defined or default colors for C++ syntax such as macros, enumerations, typenames and functions.[181]
Reference highlighting: Selection of a symbol highlights all of the references to that symbol within scope.[181]
New Solution Explorer: The new Solution Explorer allows for visualization of class and file hierarchies within a solution/project. It can search for calls to functions and uses of classes.[181]
Automatic display of IntelliSense list: IntelliSense is automatically displayed whilst typing code, as opposed to previous versions where it had to be explicitly invoked through use of certain operators (i.e. the scope operator (::)) or shortcut keys (Ctrl-Space orCtrl-J).[181]
Member list filtering: IntelliSense usesfuzzy logic to determine which functions/variables/types to display in the list.[181]
Code snippets: Code snippets are included in IntelliSense to automatically generate relevant code based on the user's parameters, custom code snippets can be created.[181]
The source code of Visual Studio 2012 consists of approximately 50 million lines of code.[182]
During Visual Studio 11 beta, Microsoft eliminated the use of color within tools except in cases where color is used for notification or status change purposes. However, the use of color was returned after feedback demanding more contrast, differentiation, clarity and "energy" in the user interface.[183][184]
In the Visual Studio 2012release candidate (RC), a major change to the interface is the use of all-caps menu bar, as part of the campaign to keep Visual Studio consistent with the direction of other Microsoft user interfaces, and to provide added structure to the top menu bar area.[185] The redesign was criticized for being hard to read, and going against the trends started by developers to useCamelCase to make words stand out better.[186] Some speculated that the root cause of the redesign was to incorporate the simplistic look and feel of Metro programs.[187] However, there exists aWindows Registry option to allow users to disable the all-caps interface.[188]
The preview for Visual Studio 2013 was announced at the Build 2013 conference and made available on June 26, 2013.[189] The Visual Studio 2013 RC (Release Candidate) was made available to developers on MSDN on September 9, 2013.[190]
The final release of Visual Studio 2013 became available for download on October 17, 2013, along with .NET 4.5.1.[191] Visual Studio 2013 officially launched on November 13, 2013, at a virtual launch event keynoted by S. Somasegar and hosted onevents.visualstudio.com.[192] "Visual Studio 2013 Update 1" (Visual Studio 2013.1) was released on January 20, 2014.[193]Visual Studio 2013.1 is a targeted update that addresses some key areas of customer feedback.[194]"Visual Studio 2013 Update 2" (Visual Studio 2013.2) was released on May 12, 2014.[195]Visual Studio 2013 Update 3 was released on August 4, 2014. With this update, Visual Studio provides an option to disable the all-caps menus, which was introduced in VS2012.[196]"Visual Studio 2013 Update 4" (Visual Studio 2013.4) was released on November 12, 2014.[197]"Visual Studio 2013 Update 5" (Visual Studio 2013.5) was released on July 20, 2015.[198]
Initially referred to as Visual Studio "14", the firstCommunity Technology Preview (CTP) was released on June 3, 2014[199] and theRelease Candidate was released on April 29, 2015; Visual Studio 2015 was officially announced as the final name on November 12, 2014.[200]
Initially referred to as Visual Studio "15", it was released on March 7, 2017.[201] The first Preview was released on March 30, 2016.[202] Visual Studio "15" Preview 2 was released May 10, 2016.[203][204] Visual Studio "15" Preview 3 was released on July 7, 2016.[205][206] Visual Studio "15" Preview 4 was released on August 22, 2016.[207][208] Visual Studio "15" Preview 5 was released on October 5, 2016.[209]
On November 14, 2016, for a brief period of time, Microsoft released a blog post revealing Visual Studio 2017 product name version alongside upcoming features.[210]
On November 16, 2016, "Visual Studio 2017" was announced as the final name,[211] and Visual Studio 2017RC was released.[212]
On March 14, 2017, first fix was released for Visual Studio 2017 due to failures during installation or opening solutions in the first release.[212]
On April 5, 2017, Visual Studio 2017 15.1 was released and added support for targeting the .NET Framework 4.7.
On May 10, 2017, Visual Studio 2017 15.2 was released and added a new workload, "Data Science and Analytical Applications Workload". An update to fix the dark color theme was released on May 12, 2017.
On October 10, 2017, Visual Studio 15.4 was released.[213]
On December 4, 2017, Visual Studio 15.5 was released. This update contained major performance improvements, new features, as well as bug fixes.[214]
On March 6, 2018, Visual Studio 15.6 was released. It includes updates to unit testing and performance.[215]
On May 7, 2018, Visual Studio 15.7 was released. It included updates across the board including, the installer, editor, debugger among others. Almost all point releases, the latest of which is15.7.6 released August 2, 2018, include security updates. With the release of Visual Studio 2017 15.7, Visual C++ now conforms to theC++17 standard.[40]
On September 20, 2018, Visual Studio 15.8.5 was released. Tools for Xamarin now supports Xcode 10.[216]
On November 15, 2018, Visual Studio 2017 15.9 was released and support for targeting ARM64 for Windows 10 was provided. Previously only ARM32 was supported as a target.[217]
Visual Studio 2017 offers new features like support for EditorConfig (a coding style enforcement framework),NGen support,.NET Core andDocker toolset (Preview), andXamarin 4.3 (Preview).[212] It also has aXAML Editor, improved IntelliSense, live unit testing, debugging enhancement and better IDE experience and productivity. Additionally, it is the last version of Visual Studio to support maintaining Windows 10 Mobile projects.[218]
On June 6, 2018, Microsoft announced Visual Studio 2019 (version 16).[219]
On December 4, 2018, Visual Studio 2019 Preview 1 was released.[220]
On January 24, 2019, Visual Studio 2019 Preview 2 was released.[221]
On February 13, 2019, Visual Studio 2019 Preview 3 was released.[222]
On February 27, 2019, Visual Studio 2019 RC was released while setting April 2, 2019 for its general availability.[223]
It is generally available (GA) since April 2, 2019 and available for download.[113]
On September 23, 2019, Visual Studio 2019 16.3 was released and added support for targeting the .NET Framework 4.8.
Visual Studio 2019 is the first version of Visual Studio to supportWindows 11, and also requiresWindows 7 SP1,Windows 8.1 with KB2919355,Windows Server 2012 R2 with KB2919355 orWindows 10, version 1703 at the minimum. It is the last 32-bit version of Visual Studio as later versions are only 64-bit. It is also the last version to support Windows 7 SP1, Windows 8.1 and Windows Server 2012 R2, with later versions requiring at least Windows 10 and Windows Server 2016.
On April 19, 2021, Microsoft announced Visual Studio 2022 (version 17).[224][225] It is the first version to run as a 64-bit process allowing Visual Studio main process to access more than 4 GB of memory, preventing out-of-memory exceptions which could occur with large projects.
On June 17, 2021, Visual Studio 2022 Preview 1 was released.[226]
On July 14, 2021, Visual Studio 2022 Preview 2 was released.[227]
On August 10, 2021, Visual Studio 2022 Preview 3 was released.[228]
On September 14, 2021, Visual Studio 2022 Preview 4 was released.[229]
On October 12, 2021, Visual Studio 2022 RC and Preview 5 was released while setting November 8, 2021 for its general availability.[230]
It is generally available (GA) since November 8, 2021 and available for download.[231]
It is available only for Windows 10 and Windows Server 2016 or later, and also supportsWindows Server 2022.
On August 9, 2022, Visual Studio 17.3 was released and added support for targeting the .NET Framework 4.8.1.
On November 8, 2022, Visual Studio 17.4 was released and provided an ARM64 native version of the compiler itself, not just the ability to target ARM from x86/x64 (real or emulated on ARM64).[232]
On November 13, 2013, Microsoft announced the release of asoftware as a service offering of Visual Studio onMicrosoft Azure platform; at the time, Microsoft called it Visual Studio Online. Previously announced as Team Foundation Services, it expanded over the on-premises Team Foundation Server (TFS; now known asAzure DevOps Server) by making it available on the Internet and implementing arolling release model.[233][234] Customers could use Azure portal to subscribe to Visual Studio Online. Subscribers receive a hostedGit-compatibleversion control system, a load-testing service, atelemetry service and an in-browser code editor codenamed "Monaco".[235] During theConnect(); 2015 developer event on November 18, 2015, Microsoft announced that the service was rebranded as "Visual Studio Team Services (VSTS)".[236] On September 10, 2018, Microsoft announced another rebranding of the service, this time to "Azure DevOps Services".[46]
Microsoft offers Stakeholder, Basic, and Visual Studio subscriber access levels for Azure DevOps Services. The Basic plan is free of charge for up to five users. Users with a Visual Studio subscription can be added to a plan with no additional charge.[237]
Visual Studio Application Lifecycle Management (ALM) is a collection of integrated software development tools developed by Microsoft. These tools currently consist of the IDE (Visual Studio 2015 Community and greater editions), server (Team Foundation Server), and cloud services (Visual Studio Team Services).[238] Visual Studio ALM supports team-based development and collaboration, Agile project management,DevOps, source control, packaging, continuous development, automated testing, release management, continuous delivery, and reporting tools for apps and services.[239]
In Visual Studio 2005 and Visual Studio 2008, the brand was known as Microsoft Visual Studio Team System (VSTS). In October 2009, the Team System brand was renamed[167][240] Visual Studio ALM with the Visual Studio 2010 (codenamed 'Rosario') release.[241]
Visual Studio Team Services debuted as Visual Studio Online in 2013 and was renamed in 2015.[242]
Visual Studio Lab Management is a software development tool developed byMicrosoft for software testers to create and manage virtual environments. Lab Management extends the existingVisual Studio Application Lifecycle Management platform to enable an integratedHyper-V based test lab. Since Visual Studio 2012, it is already shipped as a part of it; and, can be set up after Azure DevOps and SCVMM are integrated.[243]
Microsoft Visual Studio LightSwitch is an extension and framework specifically tailored for creating line-of-business applications built on existing .NET technologies and Microsoft platforms. The applications produced are architecturally3-tier: the user interface runs on eitherMicrosoft Silverlight orHTML 5 client,[244] or as a SharePoint 2013 app;[245] the logic and data-access tier is built onWCF Data Services and exposed as anOData feed hosted[246] in ASP.NET; and the primary data storage supportsMicrosoft SQL Server Express,Microsoft SQL Server andMicrosoft SQL Azure. LightSwitch also supports other data sources includingMicrosoft SharePoint, OData and WCF RIA Services.
LightSwitch includes graphical designers for designing entities and entity relationships, entity queries, and UI screens. Business logic may be written in eitherVisual Basic orVisual C#. LightSwitch is included with Visual Studio 2012 Professional and higher. Visual Studio 2015 is the last release of Visual Studio that includes the LightSwitch tooling.[247]
The user interface layer is now an optional component when deploying a LightSwitch solution, allowing a service-only deployment.[248]
The first version of Visual Studio LightSwitch, released July 26, 2011,[249] had many differences from the current[when?] release of LightSwitch. Notably the tool was purchased and installed as a stand-alone product. If Visual Studio 2010 Professional or higher was already installed on the machine, LightSwitch would integrate into that.[250] The second major difference was the middle tier was built and exposed using WCF RIA Services.
As of October 14, 2016, Microsoft no longer recommends LightSwitch for new application development.[251]
Visual Studio Code is a freewaresource code editor, along with other features, for Linux, Mac OS, and Windows.[252] It also includes support fordebugging and embeddedGit Control. It is built onopen-source,[253] and on April 14, 2016, version 1.0 was released.[254]
Visual Studio Team System Profiler (VSTS Profiler) is a tool to analyze the performance of .NET projects that analyzes the space and time complexity of the program.[255] It analyzes the code and prepares a report that includes CPU sampling, instrumentation, .NET memory allocation andresource contention.
^"VS 2005 SP1 is released!".Somasegar's blog. Microsoft. December 15, 2006.Archived from the original on December 22, 2019. RetrievedDecember 22, 2019.
^Dudla, Nikola."What Is STL/CLR?".Developing Windows Applications by Mykola Dudar.Microsoft.Archived from the original on May 12, 2010. RetrievedJanuary 2, 2008.
^"Bug: apps created with CRT and MFC vNext (11) cannot be used on Windows XP SP3".Microsoft Connect. Microsoft Corporation. September 24, 2011.Archived from the original on December 16, 2011. RetrievedOctober 14, 2011.This behavior is by design in MFC and CRT for Visual Studio vNext. The minimum supported operating systems are Windows Server 2008 SP2 and Windows Vista.
^"Visual Studio 2013 Update 1".Visual Studio site. Microsoft Corporation. January 20, 2014.Archived from the original on April 1, 2016. RetrievedJanuary 23, 2014.
^"Visual Studio 2013 Update 1".Somasegar's blog. Microsoft Corporation. January 20, 2014.Archived from the original on January 22, 2014. RetrievedJanuary 23, 2014.
^"Visual Studio 2013 Update 4 RTM".Visual Studio site. Microsoft Corporation. November 12, 2014.Archived from the original on December 16, 2016. RetrievedNovember 16, 2014.
^"LightSwitch Update".Visual Studio LightSwitch Team Blog.Microsoft. October 14, 2016.Archived from the original on March 19, 2017. RetrievedMarch 19, 2017.