Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft. Used to develop computer programs for Microsoft Windows, as well as web sites, web applications and web services. Visual Studio uses Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, Windows Store and Microsoft Silverlight. It can produce both native code and managed code.
Visual Studio includes a code editor supporting IntelliSense (the code completion component) as well as code refactoring. The integrated debugger works both as a source-level debugger and a machine-level debugger. Other built-in tools include a forms designer for building GUI applications, web designer, class designer, and database schema designer. It accepts plug-ins that enhance the functionality at almost every level—including adding support for source-control systems (like Subversion) and adding new toolsets like editors and visual designers for domain-specific languages or toolsets for other aspects of the software development lifecycle (like the Team Foundation Server client: Team Explorer)
Visual Studio supports different programming languages and allows the code editor and debugger to support nearly any programming language, provided a language-specific service exists. Built-in languages include
Microsoft provides "Express" editions of its Visual Studio at no cost. Commercial versions of Visual Studio along with select past versions are available for free to students via Microsoft's DreamSpark program..
Visual Studio supports running multiple instances of the environment (each with its own set of VSPackages). The instances use different registry hives to store their configuration state and are differentiated by their AppID (Application ID).
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.
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.
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.
Like any other IDE, it includes a code editor that supports syntax highlighting and code completion using IntelliSense for variables, functions, methods, loops and LINQ queries.
Autocomplete suggestions appear in a modeless list box over the code editor window, in proximity of the editing cursor.
Visual Studio features background compilation (also called incremental compilation). As code is being written, Visual Studio compiles it in the background in order to provide feedback about syntax and compilation errors, which are flagged with a red wavy underline. Warnings are marked with a green underline. Background compilation does not generate executable code, since it requires a different compiler than the one used to generate executable code.Background compilation was initially introduced with Microsoft Visual Basic but has now been expanded for all included languages
Visual Studio includes a debugger that works both as a source-level debugger and as a machine-level debugger. It works with both managed code as well as native code and can be used for debugging applications written in any language supported by Visual Studio. In addition, it can also attach to running processes and 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.
Windows Forms Designer
The Windows Forms designer is used to build GUI applications using Windows Forms. Layout can be controlled by housing the controls inside other containers or locking them to the side of the form. Controls that display data (like textbox, list box, grid view, etc.) can be bound to data sources like databases 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 model. The designer generates either C# or VB.NET code for the application.
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 interfaces targeting Windows Presentation Foundation. It supports all WPF functionality including data binding and automatic layout management. It generates XAML code for the UI. The generated XAML file is compatible with Microsoft Expression Design, the designer-oriented product. The XAML code is linked with code using a code-behind model.
The Class Designer is used to author and edit the classes (including its members and their access) using UML modeling. The Class Designer can generate C# and VB.NET code outlines for the classes and methods. It can also generate class diagrams from hand-written classes.
The data designer can be used to graphically edit database schemas, including typed tables, primary and foreign keys and constraints. It can also be used to design queries from the graphical view.
From Visual Studio 2008 onwards, the mapping designer is used by LINQ to SQL to design the mapping between database schemas and the classes that encapsulate the data. The new solution from ORM approach, ADO.NET Entity Framework, replaces and improves the old technology.
Visual Studio 97
Visual Studio 6.0
Visual Studio .NET (2002)
February 13, 2002
Visual Studio .NET 2003
April 24, 2003
Visual Studio 2005
November 7, 2005
Visual Studio 2008
2.0, 3.0, 3.5
November 19, 2007
Visual Studio 2010
2.0, 3.0, 3.5, 4.0
April 12, 2010
Visual Studio 2012
2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2
September 12, 2012
Visual Studio 2013
2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2
October 17, 2013
Visual Studio 2015
Visual Studio "14"
2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6
Visual Studio 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 on 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 Microsoft's first attempt at using the same development environment for multiple languages. Visual J++, InterDev, and the MSDN Library 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.
Visual Studio 6.0 (1998)
The next version, version 6.0 (codenamed Aspen, after the ski resort in Colorado), was released in June 1998 and is the last version to run on the Windows 9x 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 1st release. The v6 edition of Microsoft was the core environment for the next four releases to provide programmers with an integrated look-alike platform. This led Microsoft to transition the development on the platform independent .NET Framework.
Visual Studio 6.0 was the last version to include Visual J++, which Microsoft removed as part of a settlement with Sun Microsystems that required Microsoft Internet Explorer not to provide support for the Java virtual machine.
Visual Studio 6.0 came in two editions: Professional and Enterprise. The Enterprise edition contained extra features not found in Professional edition, including:
Microsoft released Visual Studio .NET (VS.NET), codenamed Rainier (for Washington's Mount Rainier), in February 2002 (the beta version was released via Microsoft Developer Network in 2001). The biggest change was the introduction of a managed code development environment using the .NET Framework. Programs developed using .NET are not compiled to machine language (like C++ is, for example) but instead to a format called Microsoft Intermediate Language (MSIL) or Common Intermediate Language (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. It is possible to run CIL programs in Linux or Mac OS X using non-Microsoft .NET implementations like Mono and DotGNU.
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 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++, 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).
Visual Studio .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. Visual C++ Toolkit 2003 is a version of the same C++ compiler shipped with Visual Studio .NET 2003 without the IDE that Microsoft made freely available. As of 2010 it is no longer available and the Express Editions have superseded it. 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 shipped in four editions: Academic, Professional, Enterprise Developer, and Enterprise Architect. The Visual Studio .NET 2003 Enterprise Architect edition includes an implementation of Microsoft Visio 2002's modeling technologies, including tools for creating Unified Modeling Language-based visual representations of an application's architecture, and an object-role modeling (ORM) and logical database-modeling solution. "Enterprise Templates" were also introduced, to help larger development teams standardize coding styles and enforce policies around component usage and property settings.
Service Pack 1 was released 13 September 2006.
Visual Studio 2005
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 feature in Visual Studio was upgraded for generics and new project types were added to support ASP.NET web services. 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 which is slated to replace the use of Managed C++. 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 (AMD64 and Intel 64) as well as IA-64 (Itanium). The Platform SDK included 64-bit compilers and 64-bit versions of the libraries.
Visual Studio 2008
Visual Studio 2008 is focused on development of Windows Vista, 2007 Office system, and Web applications. For visual design, a new Windows Presentation Foundation visual designer and a new HTML/CSS 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 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++ Standard Template Library (STL) containers and algorithms to managed code. STL/CLR defines STL-like containers, iterators and algorithms that work on C++/CLI managed objects.
Visual Studio 2010
Visual Studio 2010 comes with .NET Framework 4 and supports developing applications targeting Windows 7. It supports IBM DB2 and Oracle databases, in addition to Microsoft SQL Server. It has integrated support for developing Microsoft Silverlight 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 Parallel Patterns Library for native code, Visual Studio 2010 includes tools for debugging parallel applications. The new tools allow the visualization of parallel Tasks and their runtime 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.
Visual Studio 2010 features a new 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 related help topics based on where the developer was in the IDE has been removed in the shipping product. but can be added back using a download from Microsoft.
Visual Studio Ultimate 2010
Visual Studio Ultimate 2010 also includes a Historical Debugger for managed code 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 wasn't set where the error occurred. Debugging with IntelliTrace will cause the application to run more slowly than debugging without it, and will use 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 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.
Visual Studio 2012
Unlike prior versions, Visual Studio 2012 cannot record and play macros and the macro editor has been removed.
A major new feature is support for WinRT and C++/CX (Component Extensions). Support for C++ AMP (GPGPU programming) is also included.
On 16 September 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 15 June 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).
Visual Studio 2013
The preview for Visual Studio 2013 was announced at the Build 2013 conference and made available on 26 June 2013. The Visual Studio 2013 RC (Release Candidate) was made available to developers on MSDN on 9 September 2013.
The final release of Visual Studio 2013 became available for download on 17 October 2013 along with .NET 4.5.1. Visual Studio 2013 officially launched on 13 November 2013 at a virtual launch event keynoted by S. Somasegar and hosted on events.visualstudio.com. "Visual Studio 2013 Update 1" (Visual Studio 2013.1) was released on 20 January 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 12 May 2014. Visual Studio 2013 Update 3 was released on 4 August 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 12 November 2014.
Visual Studio 2015
The first CTP for Visual Studio "14" was announced and made available on 3 June 2014. The second CTP for Visual Studio "14" was announced and made available on 8 July 2014. CTP 3 was released on 18 August 2014. CTP 4 was released on 6 October 2014, CTP 5 was released on 16 January 2015, and CTP 6 was released on 23 February 2015.
Like the previous version, the help file can be consulted on-line or off-line (after downloading it). However in this version, not all help can be consulted off-line. Help related to the Win32 API can only be consulted on-line.
Visual Studio 2015 was officially announced as the final name on 12 November 2014.
Products and Milestones
1975 – Bill Gates and Paul Allen write a version of Basic for Altair 8080
1982 – IBM releases BASCOM 1.0 (developed by Microsoft)
1983 – Microsoft Basic Compiler System v5.35 for MS-DOS release
1984 - Microsoft Basic Compiler System v5.36 release
1985 – Microsoft QuickBASIC 1.0
1986 – Microsoft QuickBASIC 1.01, 1.02, 2.00
1987 – Microsoft QuickBASIC 2.01, 3.00, 4.00
1987 – Microsoft BASIC 6.0
1988 – Microsoft QuickBASIC 4.00, 4.00b, 4.50
1989 – Microsoft BASIC Professional Development System 7.0
1990 - Microsoft BASIC Professional Development System 7.1
1991 – Microsoft Visual Basic released May 20-Windows World Convention –Atlanta
1992 – Microsoft Visual Basic 2.0
1993 – Microsoft Visual Basic 3.0 in Standard and Professional versions
1995 – Microsoft Visual Basic 4.0 released, supported the new Windows 95
1997 – Microsoft Visual Basic 5.0 – introduction of IntelliSense
1998 – Microsoft Visual Studio 6.0 that included Visual Basic 6.0 released (first VS)
2002 – Microsoft Visual Basic .NET 7.0
2002 – Visual Studio .NET
2003 – Microsoft Visual Basic .NET 7.1
2003 – Microsoft Visual Studio w/Intellisense
2003 – Visual Studio .NET
2004 – Announce Visual Studios 2005 – Code name Whidbey
2005 – Visual Studio 2005 release w/Extensibility
2005 – Visual Studio Express released
2006 - Expression Tool Set released - devs and designers work together
2006 – Visual Studio Team release – November 30th
2007 – Visual Studio 2008 (code name Orcas) ships November = Video Studio Shell