Visual Studio is an
integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(IDE) from
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
. It is used to develop
computer program
A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components.
A computer program ...
s including
website
A website (also written as a web site) is a collection of web pages and related content that is identified by a common domain name and published on at least one web server. Examples of notable websites are Google Search, Google, Facebook, Amaz ...
s,
web app
A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.
History
In earlier computing models like client-serve ...
s,
web services and
mobile app
A mobile application or app is a computer program or software application designed to run on a mobile device such as a phone, tablet, or watch. Mobile applications often stand in contrast to desktop applications which are designed to run on d ...
s. Visual Studio uses Microsoft software development platforms such as
Windows API
The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
,
Windows Forms
Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono Framework, providing a platform to write client applications for desktop, laptop, and tablet PCs. While ...
,
Windows Presentation Foundation
Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initia ...
,
Windows Store
Microsoft Store (formerly known as Windows Store) is a digital distribution platform operated by Microsoft. It started as an app store for Windows 8 and Windows Server 2012 as the primary means of distributing Universal Windows Platform apps ...
and
Microsoft Silverlight
Microsoft Silverlight is a discontinued application framework designed for writing and running rich web applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. A plugin for Silverlight is still available for a v ...
. It can produce both
native code
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very ...
and
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
.
Visual Studio includes a
code editor
A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE) or web browser. Source-code ed ...
supporting
IntelliSense
Intelligent code completion is a context-aware code completion feature in some programming environments that speeds up the process of coding applications by reducing typos and other common mistakes. Attempts at this are usually done through auto-c ...
(the
code completion
Autocomplete, or word completion, is a feature in which an application predicts the rest of a word a user is typing. In Android and iOS smartphones, this is called predictive text. In graphical user interfaces, users can typically press the tab ...
component) as well as
code refactoring
In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structur ...
. The integrated debugger works both as a source-level debugger and a machine-level debugger. Other built-in tools include a
code profiler
In software engineering, profiling ("program profiling", "software profiling") is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the fr ...
, designer for building
GUI
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
applications,
web designer
Web design encompasses many different skills and disciplines in the production and maintenance of websites. The different areas of web design include web graphic design; user interface design (UI design); authoring, including standardised code an ...
,
class
Class or The Class may refer to:
Common uses not otherwise categorized
* Class (biology), a taxonomic rank
* Class (knowledge representation), a collection of individuals or objects
* Class (philosophy), an analytical concept used differentl ...
designer, and
database schema
The database schema is the structure of a database described in a formal language supported by the database management system (DBMS). The term "schema" refers to the organization of data as a blueprint of how the database is constructed (divide ...
designer. It accepts plug-ins that expand the functionality at almost every level—including adding support for
source control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
systems (like
Subversion
Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
and
Git
Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
) and adding new toolsets like editors and visual designers for
domain-specific language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
s or toolsets for other aspects of the
software development lifecycle
In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
(like the
Azure DevOps client: Team Explorer).
Visual Studio supports 36 different
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s and allows the code editor and debugger to support (to varying degrees) nearly any programming language, provided a language-specific service exists. Built-in languages include
C,
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
,
C++/CLI
C++/CLI is a variant of the C++ programming language, modified for Common Language Infrastructure. It has been part of Visual Studio 2005 and later, and provides interoperability with other .NET languages such as C#. Microsoft created C++/CLI t ...
,
Visual Basic .NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
,
C#,
F#,
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
,
TypeScript
TypeScript is a free and open source programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are ...
,
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
,
XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subseque ...
,
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
, and
CSS
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
. Support for other languages such as
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pro ...
,
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
,
Node.js
Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
, and
M among others is available via
plug-ins.
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
(and
J#) were supported in the past.
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".
, Visual Studio 2022 is a current production-ready version. Visual Studio 2012, 2013, 2015 and 2017 are on Extended Support, while 2019 is on Mainstream Support.
Architecture
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 a ''Service''. The
IDE 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.
All editors, designers, project types and other tools are implemented as VSPackages. Visual Studio uses
COM
Com or COM may refer to:
Computing
* COM (hardware interface), a serial port interface on IBM PC-compatible computers
* COM file, or .com file, short for "command", a file extension for an executable file in MS-DOS
* .com, an Internet top-level d ...
to access the VSPackages. The Visual Studio
SDK also includes the ''Managed Package Framework'' (''MPF''), which is a set of
managed wrappers around the COM-interfaces that allow the Packages to be written in any
CLI compliant language. However, MPF does not provide all the functionality exposed by the Visual Studio COM interfaces.
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 a ''Language Service''. A language service defines various interfaces which the VSPackage implementation can implement to add support for various functionalities.
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.
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.
Language services can be implemented either in
native code
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very ...
or
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
. For native code, either the native COM interfaces or the Babel Framework (part of Visual Studio SDK) can be used. For managed code, the MPF includes wrappers for writing managed language services.
Visual Studio does not include any
source control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
support built in but it defines two alternative ways for source control systems to integrate with the IDE.
A Source Control VSPackage can provide its own customised user interface. In contrast, a source control plugin using the ''MSSCCI'' (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.
MSSCCI was first used to integrate
Visual SourceSafe
Microsoft Visual SourceSafe (VSS) is a discontinued source control program oriented towards small software development projects. Like most source control systems, SourceSafe creates a ''virtual library'' of computer files. While most commonly used ...
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.
Visual Studio supports running multiple instances of the environment (each with its own set of VSPackages). The instances use different
registry hives (see
MSDN
Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing ...
'
definitionof the term "registry hive" 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. The
Visual Studio Express
Microsoft Visual Studio Express is a set of integrated development environments (IDEs) that Microsoft developed and released free of charge. They are function-limited version of the non-free Visual Studio and require mandatory registration. Exp ...
edition products are installed with their own AppIds, but the Standard, Professional, and
Team 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 the
Visual Studio Shell in Visual Studio 2008.
Features
Code editor
Visual Studio includes a
code editor
A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE) or web browser. Source-code ed ...
that supports
syntax highlighting
Syntax highlighting is a feature of text editors that are used for programming, scripting, or markup languages, such as HTML. The feature displays text, especially source code, in different colours and fonts according to the category of terms ...
and
code completion
Autocomplete, or word completion, is a feature in which an application predicts the rest of a word a user is typing. In Android and iOS smartphones, this is called predictive text. In graphical user interfaces, users can typically press the tab ...
using
IntelliSense
Intelligent code completion is a context-aware code completion feature in some programming environments that speeds up the process of coding applications by reducing typos and other common mistakes. Attempts at this are usually done through auto-c ...
for
variables,
functions,
methods
Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to:
*Scien ...
,
loops, and
LINQ
Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, originally released as a major part of .NET Framework 3.5 in 2007.
LINQ extends the langua ...
queries.
IntelliSense is supported for the included languages, as well as for
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
,
Cascading Style Sheets
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
, and
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
when developing web sites and
web application
A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.
History
In earlier computing models like client-serve ...
s.
Autocomplete suggestions appear in a
modeless
In user interface design, a mode is a distinct setting within a computer program or any physical machine interface, in which the same user input will produce perceived results different from those that it would in other settings. Modal interface c ...
list box
A list box is a graphical control element that allows the user to select one or more items from a list contained within a static, multiple line text box. The user clicks inside the box on an item to select it, sometimes in combination with the ...
over the code editor window, in proximity of the editing
cursor
Cursor may refer to:
* Cursor (user interface), an indicator used to show the current position for user interaction on a computer monitor or other display device
* Cursor (databases), a control structure that enables traversal over the records in ...
. In Visual Studio 2008 onwards, it can be made temporarily semi-transparent to see the code obstructed by it.
The code editor is used for all supported languages.
The Visual Studio Code Editor also supports setting bookmarks in code for quick navigation. Other navigational aids include
collapsing code blocks and
incremental search
In computing, incremental search, hot search, incremental find or real-time suggestions is a user interface interaction method to progressively search for and filter through text. As the user types text, one or more possible matches for the text ...
, in addition to normal text search and
regex
A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" or ...
search.
The code editor also includes a multi-item
clipboard
A clipboard is a thin, rigid board with a clip at the top for holding paper in place. A clipboard is typically used to support paper with one hand while writing on it with the other, especially when other writing surfaces are not available. Th ...
and a task list.
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 Visual Studio code editor also supports
code refactoring
In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structur ...
including parameter reordering, variable and method renaming,
interface
Interface or interfacing may refer to:
Academic journals
* ''Interface'' (journal), by the Electrochemical Society
* ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics''
* '' Inte ...
extraction, and encapsulation of class members inside properties, among others. An online version of Visual Studio Code is available a
Visual Studio Code
Debugger
Visual Studio includes a
debugger
A debugger or debugging tool is a computer program used to software testing, test and debugging, debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the pr ...
that works both as a source-level debugger and as a machine-level debugger. It works with both
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
as well as
native code
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very ...
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. 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 the
disassembly
A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly lan ...
. The Visual Studio debugger can also create
memory dump
In computing, a core dump, memory dump, crash dump, storage dump, system dump, or ABEND dump consists of the recorded state of the working memory of a computer program at a specific time, generally when the program has crashed or otherwise terminat ...
s as well as load them later for debugging. 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 setting
breakpoint
In software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause.
More generally, a breakpoint is a means of acquiring knowle ...
s (which allow execution to be stopped temporarily at a certain position) and watches (which monitor the values of variables as the execution progresses). Breakpoints can be conditional, meaning they get triggered when the condition is met. Code can be
stepped over, i.e., run one line (of source code) at a time.
It can either ''step into'' functions to debug inside it, or ''step over'' it, i.e., the execution of the function body isn't available for manual inspection.
The debugger supports ''Edit 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 the
Immediate
tool window. The parameters to the method are supplied at the Immediate window.
Designer
Visual Studio includes a host of visual designers to aid in the development of applications. These tools include:
;Windows Forms Designer: The Windows Forms designer is used to build
GUI
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
applications using
Windows Forms
Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono Framework, providing a platform to write client applications for desktop, laptop, and tablet PCs. While ...
. 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 be
bound
Bound or bounds may refer to:
Mathematics
* Bound variable
* Upper and lower bounds, observed limits of mathematical functions
Physics
* Bound state, a particle that has a tendency to remain localized in one or more regions of space
Geography
*B ...
to data sources like
database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
s or
queries. Data-bound controls can be created by dragging items from the Data Sources window onto a design surface. The UI is linked with code using an
event-driven programming
In computer programming, event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions ( mouse clicks, key presses), sensor outputs, or message passing from other programs or t ...
model. The designer generates either
C# or
VB.NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
code for the application.
;WPF Designer: The WPF designer, codenamed ''Cider'', was introduced with Visual Studio 2008. Like the Windows Forms designer it supports the drag and drop metaphor. It is used to author
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
s targeting
Windows Presentation Foundation
Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initia ...
. It supports all WPF functionality including
data binding In computer programming, data binding is a general technique that binds data sources from the provider and consumer together and synchronizes them. This is usually done with two data/information sources with different languages, as in XML data bind ...
and
automatic layout
Automatic layout is an option in graph drawing toolkits that allow to lay out the Graph (discrete mathematics), Graph according to specific rules, such as:
*reducing the length of the arcs between the Graph vertex (graph theory), vertices
*red ...
management. It generates
XAML
Extensible Application Markup Language (XAML ) is a declarative XML-based language that Microsoft developed for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.
XAML is used extensively ...
code for the UI. The generated
XAML
Extensible Application Markup Language (XAML ) is a declarative XML-based language that Microsoft developed for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.
XAML is used extensively ...
file is compatible with
Microsoft Expression Design
Microsoft Expression Design was Microsoft's commercial professional illustration vector and raster graphic design tool for web images based on Creature House Expression, which was acquired by Microsoft in 2003. It is available free of charge from ...
, the designer-oriented product. The XAML code is linked with code using a
code-behind
ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, suc ...
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 developing
ASP.NET
ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stan ...
applications and supports
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
,
CSS
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
and
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
. It uses a
code-behind
ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, suc ...
model to link with ASP.NET code. From Visual Studio 2008 onwards, the layout engine used by the web designer is shared with the discontinued
Expression Web
Microsoft Expression Web is a discontinued HTML editor and general web design software product by Microsoft. It was discontinued on December 20, 2012, and subsequently made available free of charge from Microsoft. It was a component of the also ...
. There is also
ASP.NET MVC
ASP.NET MVC is a web application framework developed by Microsoft that implements the model–view–controller (MVC) pattern. It is no longer in active development. It is open-source software, apart from the ASP.NET Web Forms component, which is ...
support for
MVC
MVC may refer to:
Science and technology
* Maximum-value composite procedure, an imaging procedure
* Multivariable calculus, a concept in mathematics
* Multivariable control, a concept in process engineering
* Mechanical vapor compression, a desal ...
technology as a separate download and
ASP.NET Dynamic Data
ASP.NET Dynamic Data is a Ruby on Rails-inspired web application scaffolding framework from Microsoft, shipped as an extension to ASP.NET, that can be used to build data-driven web applications. It exposes tables in a database by encoding it in the ...
project available from Microsoft.
;Class designer: The Class Designer is used to author and edit the classes (including its members and their access) using
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
modeling. The Class Designer can generate
C# and
VB.NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
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 edit
database schema
The database schema is the structure of a database described in a formal language supported by the database management system (DBMS). The term "schema" refers to the organization of data as a blueprint of how the database is constructed (divide ...
s, 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 by
LINQ to SQL
Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data Query language, querying capabilities to List of CLI languages, .NET languages, originally released as a major part of .NET Framework ...
to design the
mapping between
database schema
The database schema is the structure of a database described in a formal language supported by the database management system (DBMS). The term "schema" refers to the organization of data as a blueprint of how the database is constructed (divide ...
s and the
classes that encapsulate the data. The new solution from ORM approach,
ADO.NET Entity Framework
Entity Framework (EF) is an open source object–relational mapping (ORM) framework for ADO.NET. It was originally shipped as an integral part of .NET Framework, however starting with Entity Framework version 6.0 it has been delivered separately ...
, replaces and improves the old technology.
Other tools
;Open Tabs Browser: The open tabs browser is used to list all open tabs and to switch between them. It is invoked using
CTRL+TAB
.
;Properties Editor: The ''Properties 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 including
classes, forms, web pages and other items.
;Object Browser: The ''Object Browser'' is a
namespace
In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified.
Namespaces ...
and
class library
In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and su ...
browser for
Microsoft .NET
The Microsoft .NET strategy is a marketing plan that Microsoft followed in the early 2000s. Steve Ballmer described it as the company's "most ambitious undertaking since Internet Strategy Day in 1995". In support of this strategy, between 2000 and ...
. It can be used to browse the namespaces (which are arranged hierarchically) in
managed assemblies. 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. The ''Solution 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 (either
Azure DevOps Services
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such a ...
or
Azure DevOps Server
Azure DevOps Server (formerly Team Foundation Server (TFS) and Visual Studio Team System (VSTS)) is a Microsoft product that provides version control (either with Team Foundation Version Control (TFVC) or Git (software), Git), reporting, require ...
) 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.
;Data Explorer: ''Data Explorer'' is used to manage databases on
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
instances. It allows creation and alteration of database tables (either by issuing
T-SQL
Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to the SQL (Structured Query Language) used to interact with relational databases. T-SQL expands on the SQL standard to include procedural programming, local variables, vario ...
commands or by using the Data designer). It can also be used to create
queries and
stored procedure
A stored procedure (also termed proc, storp, sproc, StoPro, StoredProc, StoreProc, sp, or SP) is a subroutine available to applications that access a relational database management system (RDBMS). Such procedures are stored in the database data dic ...
s, with the latter in either
T-SQL
Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to the SQL (Structured Query Language) used to interact with relational databases. T-SQL expands on the SQL standard to include procedural programming, local variables, vario ...
or in
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
via
SQL CLR
SQL CLR or SQLCLR ( SQL Common Language Runtime) is technology for hosting of the Microsoft .NET common language runtime engine within SQL Server. The SQLCLR allows managed code to be hosted by, and run in, the Microsoft SQL Server environment.
T ...
. Debugging and
IntelliSense
Intelligent code completion is a context-aware code completion feature in some programming environments that speeds up the process of coding applications by reducing typos and other common mistakes. Attempts at this are usually done through auto-c ...
support is available as well.
;Server Explorer: The ''Server Explorer'' tool is used to manage database connections on an accessible computer. It is also used to browse running
Windows Service
In Windows NT operating systems, a Windows service is a computer program that operates in the background. It is similar in concept to a Unix daemon. A Windows service must conform to the interface rules and protocols of the Service Control Manager ...
s, performance counters,
Windows Event Log
Event Viewer is a component of Microsoft's Windows NT operating system that lets administrators and users view the event logs on a local or remote machine. Applications and operating-system components can use this centralized log service to repo ...
and
message queue
In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter- thread communication within the same process. They use a queue for messaging – the ...
s and use them as a datasource.
;Dotfuscator Community Edition: Visual Studio includes a free 'light' version of
Dotfuscator Dotfuscator is a tool performing a combination of code obfuscation, optimization, shrinking, and hardening on .NET, Xamarin and Universal Windows Platform apps. Ordinarily, .NET executables can easily be reverse engineered by free tools (such as IL ...
;Text Generation Framework: Visual Studio includes a full text generation framework called
T4 which enables Visual Studio to generate text files from templates either in the IDE or via code.
;ASP.NET Web Site Administration Tool: The
ASP.NET Web Site Administration Tool
ASP.NET Web Site Administration Tool is a utility provided along with Microsoft Visual Studio which assists in the configuration and administration of a website created using Microsoft Visual Studio 2005 and later versions.
History
The Web Site A ...
allows for the configuration of
ASP.NET
ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stan ...
websites.
;Visual Studio Tools for Office:
Visual Studio Tools for Office
Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in (project templates) and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Fra ...
is a SDK and an add-in for Visual Studio that includes tools for developing for the
Microsoft Office
Microsoft Office, or simply Office, is the former name of a family of client software, server software, and services developed by Microsoft. It was first announced by Bill Gates on August 1, 1988, at COMDEX in Las Vegas. Initially a marketin ...
suite. Previously (for Visual Studio .NET 2003 and Visual Studio 2005) it was a separate SKU that supported only
Visual C# and
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (cl ...
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.
Testing Tools
Microsoft Visual Studio can write high-quality code with comprehensive testing tools to aid in the development of applications. These tools include:
Unit testing
In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&md ...
, IntelliTset, Live Unit Testing, Test Explorer, CodeLens test indicators, Code coverage analysis, Fakes.
Extensibility
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 of ''macros'',
''add-ins'', and ''packages''. 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 using
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (cl ...
and are not compiled.
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 via
COM
Com or COM may refer to:
Computing
* COM (hardware interface), a serial port interface on IBM PC-compatible computers
* COM file, or .com file, short for "command", a file extension for an executable file in MS-DOS
* .com, an Internet top-level d ...
and can be created in any COM-compliant languages.
Packages are created using the Visual Studio
SDK 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 unmanaged
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
s as well as a managed API to accomplish these tasks. However, the managed API isn't as comprehensive as the unmanaged one.
Extensions are supported in the Standard (and higher) versions of Visual Studio 2005.
Express Editions do not support hosting extensions.
Visual Studio 2008 introduced the Visual 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.
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 a VSIX 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.
Supported products
;
Microsoft Visual C++
Microsoft Visual C++ (MSVC) is a compiler for the C, C++ and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both tria ...
:Microsoft Visual C++ is Microsoft's partial implementation of the
C and full implementation
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
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 to
C++17
C++17 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++17 replaced the prior version of the C++ standard, called C++14, and was later replaced by C++20.
History
Before the C++ Standards Committee fixed a 3-year rel ...
.
The C implementation of Visual Studio 2015 still doesn't support the full standard; in particular, the complex number header
complex.h
C mathematical operations are a group of functions in the standard library of the C programming language implementing basic mathematical functions. All functions use floating-point numbers in one manner or another. Different C standards provid ...
introduced in C99 is unsupported.
:Visual C++ supports the
C++/CLI
C++/CLI is a variant of the C++ programming language, modified for Common Language Infrastructure. It has been part of Visual Studio 2005 and later, and provides interoperability with other .NET languages such as C#. Microsoft created C++/CLI t ...
specification to write
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
, as well as mixed-mode code (a mix of
native
Native may refer to:
People
* Jus soli, citizenship by right of birth
* Indigenous peoples, peoples with a set of specific rights based on their historical ties to a particular territory
** Native Americans (disambiguation)
In arts and entert ...
and
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
). Microsoft positions Visual C++ for development in native code or in code that contains both native as well as managed components. Visual C++ supports
COM
Com or COM may refer to:
Computing
* COM (hardware interface), a serial port interface on IBM PC-compatible computers
* COM file, or .com file, short for "command", a file extension for an executable file in MS-DOS
* .com, an Internet top-level d ...
as well as the
MFC library. For MFC development, it provides a set of wizards for creating and customizing MFC
boilerplate code
In computer programming, boilerplate code, or simply boilerplate, are sections of code that are repeated in multiple places with little to no variation. When using languages that are considered ''verbose'', the programmer must write a lot of boile ...
, 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 the
Windows API
The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
. It also supports the use of ''intrinsic functions'', which are functions recognized by the compiler itself and not implemented as a library. Intrinsic functions are used to expose the
SSE instruction set of modern CPUs. Visual C++ also includes the
OpenMP
OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating syste ...
(version 2.0) specification.
;
Microsoft Visual C#: Microsoft Visual C#, Microsoft's implementation of the
C# 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.
;
Microsoft Visual Basic: Microsoft Visual Basic is Microsoft's implementation of the
VB.NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
language and associated tools and language services. It was introduced with Visual Studio .NET (2002). Microsoft has positioned Visual Basic for
Rapid Application Development
Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
. 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 application
A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.
History
In earlier computing models like client-serve ...
s and
web services using ASP.NET. Either
C# or
VB.NET
Visual Basic, originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visua ...
languages can be used. Visual Web Developer can use the Visual Studio Web Designer to graphically design web page layouts.
;
Azure DevOps:Azure DevOps is intended for collaborative
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
projects and provides
version control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
, work planning and tracking, data collection, and
report
A report is a document that presents information in an organized format for a specific audience and purpose. Although summaries of reports may be delivered orally, complete reports are almost always in the form of written documents. Usage
In ...
ing. It also includes the ''Team Explorer'' which is integrated inside Visual Studio. On September 10, 2018, Microsoft announced a rebranding of Visual Studio Team Services (VSTS) to
Azure DevOps Services
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such a ...
and Team Foundation Server (TFS) to
Azure DevOps Server
Azure DevOps Server (formerly Team Foundation Server (TFS) and Visual Studio Team System (VSTS)) is a Microsoft product that provides version control (either with Team Foundation Version Control (TFVC) or Git (software), Git), reporting, require ...
.
Previous products
;
Visual FoxPro
Visual FoxPro is a Microsoft data-centric procedural programming language with object-oriented programming (OOP) features.
It was derived from FoxPro (originally known as FoxBASE) which was developed by Fox Software beginning in 1984. Fox Techn ...
: Visual FoxPro is a data-centric
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
and
procedural programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
produced by
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
. It derives from
FoxPro
FoxPro was a text-based procedurally oriented programming language and database management system (DBMS), and it was also an object-oriented programming language, originally published by Fox Software and later by Microsoft, for MS-DOS, Windows ...
(originally known as FoxBASE) 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 support
SQL queries and data manipulation. Visual FoxPro is a full-featured,
dynamic programming language
In computer science, a dynamic programming language is a class of high-level programming languages, which at runtime execute many common programming behaviours that static programming languages perform during compilation. These behaviors cou ...
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.
;
Visual SourceSafe
Microsoft Visual SourceSafe (VSS) is a discontinued source control program oriented towards small software development projects. Like most source control systems, SourceSafe creates a ''virtual library'' of computer files. While most commonly used ...
: Microsoft Visual SourceSafe is a
source control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
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, using
SMB (file server) networking. However, with Visual SourceSafe 2005, other
client–server modes were added, Lan Booster and VSS Internet (which used
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
/
HTTPS
Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It is used for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is enc ...
). Visual SourceSafe 6.0 was available as a stand-alone product 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 for
source control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
.
;
Microsoft Visual J++/
Microsoft Visual J#: Microsoft Visual J++ was
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
's implementation of the
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
language (with Microsoft-specific extensions) and associated language services. It was discontinued as a result of
litigation
-
A lawsuit is a proceeding by a party or parties against another in the civil court of law. The archaic term "suit in law" is found in only a small number of laws still in effect today. The term "lawsuit" is used in reference to a civil actio ...
from
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
, 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 Microsoft Visual InterDev, part of Microsoft Visual Studio 97 and 6.0, is an IDE used to create web applications using Microsoft Active Server Pages ( ASP) technologies. It has code completion, database server management tools, and an integrated d ...
: Visual InterDev was used to create web applications using Microsoft
Active Server Pages
Active Server Pages (ASP) is Microsoft's first server-side scripting language and engine for dynamic web pages.
It was first released in December 1996, before being superseded in January 2002 by ASP.NET.
History
Initially released as an add ...
(ASP) technologies. It supports code completion and includes
database
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
server management tools. It has been replaced with Microsoft Visual Web Developer.
Editions
Microsoft Visual Studio is available in the following editions or
SKUs:
Community
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 the
Express 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 million
USD
The United States dollar (symbol: $; code: USD; also abbreviated US$ or U.S. Dollar, to distinguish it from other dollar-denominated currencies; referred to as the dollar, U.S. dollar, American dollar, or colloquially buck) is the official ...
in annual revenue, per Microsoft).
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.
Visual Studio Community is oriented towards individual developers and small teams.
Professional
As of Visual Studio 2010, the Professional edition is the entry level
commercial edition of Visual Studio. (Previously, a more feature restricted Standard edition was available.)
It provides an IDE for all supported development languages.
MSDN
Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing ...
support is available as MSDN Essentials or the full
MSDN library
Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing ...
depending on licensing. It supports
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
and
XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subseque ...
editing, and can create deployment packages that only use
ClickOnce
ClickOnce is a component of Microsoft .NET Framework 2.0 and later, and supports deploying applications made with Windows Forms or Windows Presentation Foundation. It is similar to Java Web Start for the Java Platform or Zero Install for Linux.
...
and
MSI. It includes tools like Server Explorer and integration with
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
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 for
Windows Mobile
Windows Mobile is a discontinued family of mobile operating systems developed by Microsoft for smartphones and personal digital assistants.
Its origin dated back to Windows CE in 1996, though Windows Mobile itself first appeared in 2000 as Pock ...
is no longer supported in Visual Studio 2010. It is superseded by
Windows Phone 7
Windows Phone 7 is the first release of the Windows Phone mobile client operating system, released worldwide on October 21, 2010, and in the United States on November 8, 2010. It runs on the Windows CE 6.0 kernel.
It received multiple large upda ...
.
Enterprise
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.
History
The first version of Visual Studio was Visual Studio 97. Before that, Visual Basic, Visual C++, Visual FoxPro and Visual SourceSafe were sold as separate products.
97
Microsoft first released Visual Studio (codenamed ''Boston'',
for the
city of the same name, thus beginning the VS codenames related to places)
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. There was a single companion CD that contained the
Microsoft Developer Network library.
Visual Studio 97 was an attempt at using the same development environment for multiple languages. Visual J++, InterDev, and the
MSDN Library
Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing ...
had all been using the same 'environment', called Developer Studio.
Visual Studio was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro.
6.0 (1998)
The next version, version 6.0 (codenamed ''Aspen'', after the
ski resort
A ski resort is a resort developed for skiing, snowboarding, and other winter sports. In Europe, most ski resorts are towns or villages in or adjacent to a ski area – a mountainous area with pistes (ski trails) and a ski lift system. In North ...
in Colorado), was released in June 1998 and is the last version to run on the
Windows 9x
Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subs ...
platform. 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
The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
.
Visual Studio 6.0 was the last version to include Visual J++, which Microsoft removed as part of a settlement with
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
that required Microsoft Internet Explorer not to provide support for the
Java Virtual Machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
.
Visual Studio 6.0 came in two editions: Professional and Enterprise. The Enterprise edition contained extra features not found in Professional edition, including:
* Application Performance Explorer
* Automation Manager
* Microsoft Visual Modeler
* RemAuto Connection Manager
* Visual Studio Analyzer
Visual Studio was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro.
.NET 2002
Microsoft released Visual Studio .NET (VS.NET), codenamed ''Rainier'' (for
Washington's Mount Rainier
Mount Rainier (), indigenously known as Tahoma, Tacoma, Tacobet, or təqʷubəʔ, is a large active stratovolcano in the Cascade Range of the Pacific Northwest, located in Mount Rainier National Park about south-southeast of Seattle. With a s ...
), in February 2002 (the
beta version
A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
was released via
Microsoft Developer Network
Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing ...
in 2001). The biggest change was the introduction of a
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
development environment using the .NET Framework. Programs developed using .NET are not compiled to
machine language
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very ...
(like C++ is, for example) but instead to a format called
Microsoft Intermediate Language
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washingt ...
(MSIL) or
Common Intermediate Language
Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL) or Intermediate Language (IL), is the intermediate language binary instruction set defined within the Common Language Infrastructure (CLI) specification. ...
(CIL). When a CIL application executes, it is
compiled while being executed into the appropriate machine language for the platform it is being executed on, thereby making code portable across several platforms. Programs compiled into CIL can be executed only on platforms which have an implementation of
Common Language Infrastructure
The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by ISO/IEC (ISO/IEC 23271) and Ecma International (ECMA 335) that describes executable code and a runt ...
. It is possible to run CIL programs in
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
or
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
using non-Microsoft .NET implementations like
Mono
Mono may refer to:
Common meanings
* Infectious mononucleosis, "the kissing disease"
* Monaural, monophonic sound reproduction, often shortened to mono
* Mono-, a numerical prefix representing anything single
Music Performers
* Mono (Japanese b ...
and
DotGNU
DotGNU is a decommissioned part of the GNU Project that started in January 2001. DotGNU aims to provide a free software replacement for Microsoft's .NET Framework by Free Software Foundation. Other goals of the project are better support for non- ...
.
This was the first version of Visual Studio to require an
NT-based Windows platform. The installer enforces this requirement.
Visual Studio .NET 2002 shipped in four editions: Academic, Professional, Enterprise Developer, and Enterprise Architect. Microsoft introduced
C# (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 the
Java Virtual Machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
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++, called
Managed Extensions for C++
Managed Extensions for C++ or Managed C++ is a now-deprecated set of language extensions for C++, including grammatical and syntactic extensions, keywords and attributes, to bring the C++ syntax and language to the .NET Framework. These extensions ...
, 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 and
Web 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.
.NET 2003
In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio .NET 2003, codenamed ''Everett'' (for the
city of the same name). 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 of
partial template specialization
Partial template specialization is a particular form of class template specialization. Usually used in reference to the C++ programming language, it allows the programmer to specialize only some arguments of a class template, as opposed to explici ...
. 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. 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.
Visual Studio .NET 2003 is the last version to support
Windows NT 4.0
Windows NT 4.0 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It is the direct successor to Windows NT 3.51, which was released to manufacturing on July 31, 1996, and then to retail ...
SP6a,
Windows 2000
Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RTM), releas ...
versions below SP3 and
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
before SP2.
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 of
Microsoft Visio
Microsoft Visio ( ) (formerly Microsoft Office Visio) is a diagramming and vector graphics application and is part of the Microsoft Office family. The product was first introduced in 1992, made by the Shapeware Corporation, later renamed Visio ...
2002's modeling technologies, including tools for creating
Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
-based visual representations of an application's architecture, and an
object-role modeling
Object-role modeling (ORM) is used to model the semantics of a universe of discourse. ORM is often used for data modeling and software engineering.
An object-role model uses graphical symbols that are based on first order predicate logic and se ...
(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.
2005
Visual Studio 2005, codenamed ''Whidbey'' (a reference to
Whidbey Island
Whidbey Island (historical spellings Whidby, Whitbey, or Whitby) is the largest of the islands composing Island County, Washington, in the United States, and the largest island in Washington State. (The other large island is Camano Island, ...
in
Puget Sound region
The Puget Sound region is a coastal area of the Pacific Northwest in the U.S. state of Washington, including Puget Sound, the Puget Sound lowlands, and the surrounding region roughly west of the Cascade Range and east of the Olympic Mountains. ...
), 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 is the last version to support
Windows Server 2003
Windows Server 2003 is the sixth version of Windows Server operating system produced by Microsoft. It is part of the Windows NT family of operating systems and was released to manufacturing on March 28, 2003 and generally available on April 24, 2 ...
below SP1, and thus the last version able to target
Windows 98
Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. The second operating system in the 9x line, it is the successor to Windows 95, and was released to ...
,
Windows 2000
Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RTM), releas ...
and
Windows Me
Windows Millennium Edition, or Windows Me (marketed with the pronunciation of the pronoun "me"), is an operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It is the successor to Windo ...
for C++ applications.
Visual Studio 2005's internal version number is 8.0 while the file format version is 9.0.
Microsoft released Service Pack 1 for Visual Studio 2005 on December 14, 2006. An additional update for Service Pack 1 that offers Windows Vista compatibility was made available on June 3, 2007.
Visual Studio 2005 was upgraded to support all the new features introduced in .NET Framework 2.0, including generics and ASP.NET 2.0. The
IntelliSense
Intelligent code completion is a context-aware code completion feature in some programming environments that speeds up the process of coding applications by reducing typos and other common mistakes. Attempts at this are usually done through auto-c ...
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
Microsoft Build Engine, or MSBuild, is a set of free and open-source build tools for managed code under the Common Language Infrastructure as well as native C and C++ code. It was first released in 2003 and was a part of .NET Framework. MSBuil ...
) which employs a new XML-based project file format. Visual Studio 2005 also includes a local web server, separate from
IIS, that can host ASP.NET applications during development and testing. It also supports all
SQL Server 2005 databases. Database designers were upgraded to support the
ADO.NET 2.0, which is included with .NET Framework 2.0. C++ also got a similar upgrade with the addition of
C++/CLI
C++/CLI is a variant of the C++ programming language, modified for Common Language Infrastructure. It has been part of Visual Studio 2005 and later, and provides interoperability with other .NET languages such as C#. Microsoft created C++/CLI t ...
which is slated to replace the use of
Managed C++
Managed Extensions for C++ or Managed C++ is a now-deprecated set of language extensions for C++, including grammatical and syntactic extensions, keywords and attributes, to bring the C++ syntax and language to the .NET Framework. These extensions ...
. 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 for
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mod ...
(AMD64 and Intel 64) as well as
IA-64
IA-64 (Intel Itanium architecture) is the instruction set architecture (ISA) of the Itanium family of 64-bit Intel microprocessors. The basic ISA specification originated at Hewlett-Packard (HP), and was subsequently implemented by Intel in coll ...
(
Itanium
Itanium ( ) is a discontinued family of 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). Launched in June 2001, Intel marketed the processors for enterprise servers and high-performance computin ...
). The
Platform SDK
Microsoft Windows SDK, and its predecessors Platform SDK, and .NET Framework SDK, are software development kits (SDKs) from Microsoft that contain documentation, header files, libraries, samples and tools required to develop applications for Micr ...
included 64-bit compilers and 64-bit versions of the libraries.
Microsoft also announced
Visual Studio Tools for Applications
Visual Studio Tools for Applications (VSTA) is a set of tools that independent software vendors (ISVs) can use to build customization abilities into their applications for both automation and extensibility. Those customization abilities can be used ...
as the successor to
Visual Basic for Applications
Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6.0 built into most desktop Microsoft Office applications. Although based on pre-.NET Visual Basic, which is no longer supported ...
(VBA) and VSA (Visual Studio for Applications). VSTA 1.0 was released to manufacturing along with
Office 2007
Microsoft Office 2007 (codenamed Office 12) is an office suite for Windows, developed and published by Microsoft. It was officially revealed on March 9, 2006 and was the 12th version of Microsoft Office. It was released to manufacturing on Novemb ...
. 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. It is significantly different from the first version, including features such as dynamic programming and support for
WPF,
WCF,
WF,
LINQ
Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, originally released as a major part of .NET Framework 3.5 in 2007.
LINQ extends the langua ...
, and .NET 3.5 Framework.
2008
Visual Studio 2008, and Visual Studio Team System 2008 codenamed ''Orcas'' (a reference to
Orcas Island
Orcas Island () is the largest of the San Juan Islands of the Pacific Northwest, which are in the northwestern corner of San Juan County, Washington.
History and naming of the island
The name "Orcas" is a shortened form of ''Horcasitas,'' fro ...
, also an island in
Puget Sound region
The Puget Sound region is a coastal area of the Pacific Northwest in the U.S. state of Washington, including Puget Sound, the Puget Sound lowlands, and the surrounding region roughly west of the Cascade Range and east of the Olympic Mountains. ...
, 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 a
shared source
The Shared Source Initiative (SSI) is a source-available software licensing scheme launched by Microsoft in May 2001. The program includes a spectrum of technologies and licenses, and most of its source code offerings are available for download aft ...
license to some of
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
's partners and
ISVs.
Microsoft released Service Pack 1 for Visual Studio 2008 on August 11, 2008. The internal version number of Visual Studio 2008 is version 9.0 while the file format version is 10.0. Visual Studio 2008 is the last version able to target
Windows XP SP2
Windows XP is a major release of Microsoft's Windows NT operating system. It was release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
, Windows Server 2003#Service Pack 1, Windows Server 2003 SP1 and Windows Vista RTM for C++ applications.
Visual Studio 2008 is focused on development of Windows Vista, 2007 Office system, and Web applications. For visual design, a new
Windows Presentation Foundation
Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initia ...
visual designer and a new
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
/
CSS
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
editor influenced by Microsoft 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, Silverlight CoreCLR or .NET Compact Framework) the assembly runs on. Visual Studio 2008 also includes new code analysis tools, including the new Code Metrics tool (only in Team Edition and Team Suite Edition). For Visual C++, Visual Studio adds a new version of Microsoft Foundation Classes (MFC 9.0) that adds support for the visual styles and UI controls introduced with Windows Vista. For native and managed code interoperability, Visual C++ introduces the STL/CLR, which is a port of the
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
Standard Template Library (STL) containers and algorithms to
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
. STL/CLR defines STL-like containers, iterators and algorithms that work on
C++/CLI
C++/CLI is a variant of the C++ programming language, modified for Common Language Infrastructure. It has been part of Visual Studio 2005 and later, and provides interoperability with other .NET languages such as C#. Microsoft created C++/CLI t ...
managed objects.
Visual Studio 2008 features include an
XAML
Extensible Application Markup Language (XAML ) is a declarative XML-based language that Microsoft developed for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.
XAML is used extensively ...
-based designer (codenamed ''Cider''), Workflow Foundation, workflow designer,
LINQ
Language Integrated Query (LINQ, pronounced "link") is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, originally released as a major part of .NET Framework 3.5 in 2007.
LINQ extends the langua ...
to
SQL designer (for defining the type mappings and object encapsulation for SQL Server data),
XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subseque ...
debugger,
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
Intellisense support, JavaScript Debugging support, support for User Account Control, UAC Manifest (CLI), manifests, a concurrent programming, concurrent build system, among others. It ships with an enhanced set of UI widgets, both for
Windows Forms
Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono Framework, providing a platform to write client applications for desktop, laptop, and tablet PCs. While ...
and
WPF. It also includes a multithreaded build engine (
MSBuild
Microsoft Build Engine, or MSBuild, is a set of free and open-source build tools for managed code under the Common Language Infrastructure as well as native C and C++ code. It was first released in 2003 and was a part of .NET Framework. MSBuil ...
) to compile multiple source files (and build the executable file) in a project across multiple thread (computing), threads simultaneously. It also includes support for compiling icon (computing), icon Resource (Windows), resources in Portable Network Graphics, PNG format, introduced in Windows Vista. An updated XML Schema (W3C), XML Schema designer was released separately some time after the release of Visual Studio 2008.
Visual Studio Debugger includes features targeting easier debugging of multi-threaded applications. In debugging mode, in the ''Threads'' window, which lists all the threads, hovering over a thread displays the stack trace of that thread in tooltips. The threads can directly be named and flagged for easier identification from that window itself.
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.
The Visual Studio debugger supports integrated debugging of the .NET 3.5 Framework Base Class Library (BCL) which can dynamically download the BCL source code and debug symbols and allow stepping into the BCL source during debugging. a limited subset of the BCL source is available, with more library support planned for later.
2010
On April 12, 2010, Microsoft released Visual Studio 2010, codenamed ''Dev10'',
and .NET Framework 4. It is the last version to support Windows XP#Service Pack 3, Windows XP SP3, Windows Server 2003#Service Pack 2, Windows Server 2003 SP2, Windows Vista#Service Pack 1, Windows Vista SP1, Windows Server 2008 below SP2, Windows 7 before SP1 and Windows Server 2008 R2 before SP1.
The Visual Studio 2010
IDE was redesigned which, according to
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
, clears the UI organization and "reduces clutter and complexity."
The new IDE better supports multiple document windows and floating tool windows,
while offering better multi-monitor support. The IDE shell has been rewritten using the
Windows Presentation Foundation
Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initia ...
(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.
The new multi-paradigm programming language, multi-paradigm ML (programming language), ML-variant F Sharp programming language, F# forms part of Visual Studio 2010.
Visual Studio 2010 comes with .NET Framework 4 and supports developing applications targeting Windows 7.
It supports IBM Db2 and Oracle Database, Oracle databases, in addition to
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
.
It has integrated support for developing
Microsoft Silverlight
Microsoft Silverlight is a discontinued application framework designed for writing and running rich web applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. A plugin for Silverlight is still available for a v ...
applications, including an interactive designer.
Visual Studio 2010 offers several tools to make parallel programming simpler: in addition to the Parallel Extensions for the .NET Framework and the Visual C++#vc10, Parallel Patterns Library for
native code
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very ...
, Visual Studio 2010 includes tools for debugging parallel applications. The new tools allow the visualization of parallel Parallel Extensions#TPL, Tasks and their runtime Call stack, stacks. Tools for profiling parallel applications can be used for visualization of thread wait-times and thread migrations across processor cores. Intel and Microsoft have jointly pledged support for a new Concurrency Runtime in Visual Studio 2010
and Intel has launched parallelism support in Parallel Studio as an add-on for Visual Studio.
The Visual Studio 2010 code editor now highlights references; whenever a symbol is selected, all other usages of the symbol are highlighted.
It also offers a ''Quick Search'' feature to Incremental find, incrementally search across all symbols in C++, C# and VB.NET projects. Quick Search supports substring matches and camelCase searches.
The ''Call 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.
IntelliSense
Intelligent code completion is a context-aware code completion feature in some programming environments that speeds up the process of coding applications by reducing typos and other common mistakes. Attempts at this are usually done through auto-c ...
in Visual Studio supports a ''consume-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.
Current versions of Visual Studio have a known bug which makes IntelliSense unusable for projects using pure C (not C++).
Visual Studio 2010 features a new Microsoft Help Viewer, Help System replacing the MSDN Library viewer. The Help System is no longer based on Microsoft 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, but can be added back using a download from Microsoft.
Visual Studio 2010 no longer supports development for Windows Mobile prior to
Windows Phone 7
Windows Phone 7 is the first release of the Windows Phone mobile client operating system, released worldwide on October 21, 2010, and in the United States on November 8, 2010. It runs on the Windows CE 6.0 kernel.
It received multiple large upda ...
. Visual Studio 2010 Service Pack 1 was released in March 2011.
Ultimate 2010
Visual Studio Ultimate 2010 replaces Visual Studio 2008 Team Suite. It includes new modeling tools,
such as the ''Architecture Explorer'', which graphically displays projects and classes and the relationships between them.
It supports
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
activity diagram, component diagram, (logical) class diagram, sequence diagram, and use case diagram.
Visual Studio Ultimate 2010 also includes ''Test Impact Analysis'' which provides hints on which test cases are impacted by modifications to the source code, without actually running the test cases. This speeds up testing by avoiding running unnecessary test cases.
Visual Studio Ultimate 2010 also includes a historical debugger for
managed code
Managed code is computer program code that requires and will execute only under the management of a Common Language Infrastructure (CLI); Virtual Execution System (VES); virtual machine, e.g. .NET, CoreFX, or .NET Framework; Common Language Runti ...
called ''IntelliTrace''. 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. 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. The ''Lab Management'' component of Visual Studio Ultimate 2010 uses virtualization to create a similar execution environment for testers and developers. The virtual machines are tagged with checkpoints which can later be investigated for issues, as well as to reproduce the issue. 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.
2012
The final build of Visual Studio 2012 was announced on August 1, 2012, and the official launch event was held on September 12, 2012.
Unlike prior versions, Visual Studio 2012 cannot record and play macros and the macro editor has been removed.
New features include support for WinRT and C++/CX (Component Extensions) and C++ AMP (GPGPU programming) Semantic Colorization.
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. Versions of Microsoft 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. 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. "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).
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:
* Semantic colorization: Improved syntax coloring, various user-defined or default colors for C++ syntax such as macros, enumerations, typenames and functions.
* Reference highlighting: Selection of a symbol highlights all of the references to that symbol within scope.
* 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.
* 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'' or ''Ctrl-J'').
* Member list filtering: IntelliSense uses fuzzy logic to determine which functions/variables/types to display in the list.
* 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.
The source code of Visual Studio 2012 consists of approximately 50 million lines of code.
Interface backlash
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.
In the Visual Studio 2012 release 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. The redesign was criticized for being hard to read, and going against the trends started by developers to use CamelCase to make words stand out better. Some speculated that the root cause of the redesign was to incorporate the simplistic look and feel of Metro programs. However, there exists a Windows Registry option to allow users to disable the all-caps interface.
2013
The preview for Visual Studio 2013 was announced at the Build 2013 conference and made available on June 26, 2013. The Visual Studio 2013 RC (Release Candidate) was made available to developers on MSDN on September 9, 2013.
The final release of Visual Studio 2013 became available for download on October 17, 2013, along with .NET 4.5.1. Visual Studio 2013 officially launched on November 13, 2013, at a virtual launch event keynoted by S. Somasegar and hosted on . "Visual Studio 2013 Update 1" (Visual Studio 2013.1) was released on January 20, 2014.
Visual Studio 2013.1 is a targeted update that addresses some key areas of customer feedback.
"Visual Studio 2013 Update 2" (Visual Studio 2013.2) was released on May 12, 2014.
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.
"Visual Studio 2013 Update 4" (Visual Studio 2013.4) was released on November 12, 2014.
"Visual Studio 2013 Update 5" (Visual Studio 2013.5) was released on July 20, 2015.
2015
Initially referred to as Visual Studio "14", the first Community Technology Preview (CTP) was released on June 3, 2014 and the Release Candidate was released on April 29, 2015; Visual Studio 2015 was officially announced as the final name on November 12, 2014.
Visual Studio 2015 RTM was released on July 20, 2015.
Visual Studio 2015 Update 1 was released on November 30, 2015.
Visual Studio 2015 Update 2 was released on March 30, 2016.
Visual Studio 2015 Update 3 was released on June 27, 2016.
Visual Studio 2015 is the last version to support Windows Vista#Service Pack 2, Windows Vista SP2, Windows Server 2008#Service Pack 2, Windows Server 2008 SP2 and Windows 8.
2017
Initially referred to as Visual Studio "15", it was released on March 7, 2017. The first Preview was released on March 30, 2016. Visual Studio "15" Preview 2 was released May 10, 2016. Visual Studio "15" Preview 3 was released on July 7, 2016. Visual Studio "15" Preview 4 was released on August 22, 2016.
Visual Studio "15" Preview 5 was released on October 5, 2016.
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.
On November 16, 2016, "Visual Studio 2017" was announced as the final name, and Visual Studio 2017 release candidate, RC was released.
On March 7, 2017, Visual Studio 2017 was released for general availability.
On March 14, 2017, first fix was released for Visual Studio 2017 due to failures during installation or opening solutions in the first release.
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 August 14, 2017, Visual Studio 2017 15.3 was released and added support for targeting .NET Core 2.0. An update (15.3.1) was released four days later to address
Git vulnerability with submodulesCVE 2017-1000117.
On October 10, 2017, Visual Studio 15.4 was released.
On December 4, 2017, Visual Studio 15.5 was released. This update contained major performance improvements, new features, as well as bug fixes.
On March 6, 2018, Visual Studio 15.6 was released. It includes updates to unit testing and performance.
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 i
15.7.6released August 2, 2018, include security updates. With the release of Visual Studio 2017 15.7, Visual C++ now conforms to the
C++17
C++17 is a version of the ISO/IEC 14882 standard for the C++ programming language. C++17 replaced the prior version of the C++ standard, called C++14, and was later replaced by C++20.
History
Before the C++ Standards Committee fixed a 3-year rel ...
standard.
On September 20, 2018, Visual Studio 15.8.5 was released. Tools for Xamarin now supports Xcode 10.
Visual Studio 2017 offers new features like support for EditorConfig (a coding style enforcement framework), Native Image Generator, NGen support, .NET Core and Docker (software), Docker toolset (Preview), and Xamarin 4.3 (Preview).
It also has a Extensible Application Markup Language, XAML 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.
2019
On June 6, 2018, Microsoft announced Visual Studio 2019 (version 16).
On December 4, 2018, Visual Studio 2019 Preview 1 was released.
On January 24, 2019, Visual Studio 2019 Preview 2 was released.
On February 13, 2019, Visual Studio 2019 Preview 3 was released.
On February 27, 2019, Visual Studio 2019 RC was released.
It is generally available (GA) since April 2, 2019 and available for download.
2022
On April 19, 2021, Microsoft announced Visual Studio 2022 (version 17). 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.
On July 14, 2021, Visual Studio 2022 Preview 2 was released.
On August 10, 2021, Visual Studio 2022 Preview 3 was released.
On September 14, 2021, Visual Studio 2022 Preview 4 was released.
On October 12, 2021, Visual Studio 2022 RC and Preview 5 was released while setting November 8, 2021 for its general availability.
It is generally available (GA) since November 8, 2021 and available for download.
Related products
Azure DevOps Services
On November 13, 2013, Microsoft announced the release of a software as a service offering of Visual Studio on Microsoft 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 as
Azure DevOps Server
Azure DevOps Server (formerly Team Foundation Server (TFS) and Visual Studio Team System (VSTS)) is a Microsoft product that provides version control (either with Team Foundation Version Control (TFVC) or Git (software), Git), reporting, require ...
) by making it available on the Internet and implementing a rolling release model. Customers could use Azure portal to subscribe to Visual Studio Online. Subscribers receive a hosted
Git
Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data inte ...
-compatible
version control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
system, a load-testing service, a telemetry service and an in-browser code editor codenamed "Monaco". During the ' developer event on November 18, 2015, Microsoft announced that the service was rebranded as "Visual Studio Team Services (VSTS)". On September 10, 2018, Microsoft announced another rebranding of the service, this time to "Azure DevOps Services".
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.
Visual Studio Application Lifecycle Management
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). 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.
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
Visual Studio ALM with the Visual Studio 2010 (codenamed 'Rosario') release.
Visual Studio Team Services debuted as Visual Studio Online in 2013 and was renamed in 2015.
Visual Studio Lab Management
Visual Studio Lab Management is a software development tool developed by
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
for software testers to create and manage virtual environments. Lab Management extends the existing Visual Studio Application Lifecycle Management platform to enable an integrated Hyper-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.
Visual Studio LightSwitch
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 architecturally Multitier architecture, 3-tier: the user interface runs on either Silverlight, Microsoft Silverlight or HTML5, HTML 5 client, or as a SharePoint 2013 app; the logic and data-access tier is built on WCF Data Services and exposed as an OData feed hosted in ASP.NET; and the primary data storage supports SQL Server Express, Microsoft SQL Server Express,
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
and SQL Azure, Microsoft SQL Azure. LightSwitch also supports other data sources including SharePoint, Microsoft 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 either
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic (cl ...
or
Visual 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.
The user interface layer is now an optional component when deploying a LightSwitch solution, allowing a service-only deployment.
The first version of Visual Studio LightSwitch, released July 26, 2011, had many differences from the current 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. 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.
Visual Studio Code
Visual Studio Code is a freeware source code editor, along with other features, for Linux, Mac OS, and Windows.
It also includes support for debugging and embedded Git (software), Git Control. It is built on open-source software, open-source,
and on April 14, 2016, version 1.0 was released.
Visual Studio Team System Profiler
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. It analyzes the code and prepares a report that includes CPU sampling, instrumentation, .NET memory allocation and resource contention.
See also
* Comparison of integrated development environments
* GitHub Copilot
* Microsoft Small Basic
* Microsoft Visual Studio Express
* Visual Studio Code
References
External links
*
{{JavaScript
1997 software
Distributed bug tracking systems
User interface builders
Windows-only software
Microsoft Visual Studio,
Open-source software hosting facilities