Visual Studio 2008 SP1 editing a C# program |
|
Developed by | Microsoft |
---|---|
OS | Microsoft Windows |
Available in | Chinese (Simplified), Chinese (Traditional), English, French, German, Italian, Japanese, Korean, Spanish |
Type | Integrated Development Environment |
License | Microsoft EULA |
Website | msdn.microsoft.com/vstudio |
Microsoft Visual Studio is an Integrated Development Environment (IDE) from Microsoft. It can be used to develop console and Graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all platforms supported by Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework and Microsoft Silverlight.
Visual Studio includes a code editor supporting IntelliSense 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 allows plug-ins to be added that enhance the functionality at almost every level - including adding support for source control systems (like Subversion and Visual SourceSafe) to 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 languages by means of language services, which allow any programming language to be supported (to varying degrees) by the code editor and debugger, provided a language-specific service has been authored. Built-in languages include C/C++ (via Visual C++), VB.NET (via Visual Basic .NET), and C# (via Visual C#). Support for other languages such as Chrome, F#, Python, and Ruby among others has been made available via language services which are to be installed separately. It also supports XML/XSLT, HTML/XHTML, JavaScript and CSS. Language-specific versions of Visual Studio also exist which provide more limited language services to the user. These individual packages are called Microsoft Visual Basic, Visual J#, Visual C#, and Visual C++.
Currently, Visual Studio 2008 and 2005 Professional Editions, along with language-specific versions (Visual Basic, C++, C#, J#) of Visual Studio 2005 are available to students as downloads free of charge via Microsoft's DreamSpark program. Visual Studio 2010 is currently in development.
Contents |
Visual Studio does not support any programming language, solution or tool intrinsically. Instead, it allows various functionality to be plugged in. Specific functionality is 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.[1] All editors, designers, project types and other tools are implemented as VSPackages. Visual Studio uses COM 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 .NET languages.[2] However, MPF does not provide all the functionality exposed by the Visual Studio COM interfaces.[3] 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 functionality.[4] Functionality that can be added this way includes syntax coloring, statement completion, brace matching, parameter information tooltips, member lists and error markers for background compilation.[4] If the interface is implemented, the functionality will be available for the language. Language services are to be implemented on a per-language basis. The implementations can reuse code from the parser or the compiler for the language.[4] Language services can be implemented either in native code or managed code. For native code, either the native COM interfaces can be used, or the Babel Framework (part of Visual Studio SDK) be used.[5] For managed code, the MPF includes wrappers for writing managed language services.[6]
Visual Studio does not include any source control support built in but it defines the MSSCCI (Microsoft Source Code Control Interface) by implementing which source control systems can integrate with the IDE.[7] MSSCCI defines a set of functions that are used to implement various source control functionality.[8] MSSCCI was first used to integrate Visual SourceSafe with Visual Studio 6.0 but was later opened up via the Visual Studio SDK. Visual Studio .NET 2002 used MSSCCI 1.1, and Visual Studio .NET 2003 used MSSCCI 1.2. Both Visual Studio 2005 and 2008 use MSSCCI Version 1.3, which adds support for rename and delete propagation as well as asynchronous opening.[7] Visual Studio supports running multiple instances of the environment (each with its own set of VSPackages). The instances use different registry hives (see MSDN's definition of the term "registry hive" in the sense used here) to store their configuration state 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 edition products are installed with their own AppIDs, but the Standard, Professional and Team Suite products share the same AppId. Consequently, the Express editions can be installed 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.[9]
Visual Studio, like any other IDE, includes a code editor that supports syntax highlighting and code completion using IntelliSense for not only variables, functions and methods but also language constructs like loops and queries.[10] IntelliSense is supported for the included languages, as well as for XML and for Cascading Style Sheets and JavaScript when developing web sites and web applications.[11][12] Autocomplete suggestions are popped up in a modeless list box, overlaid on top of the code editor. In Visual Studio 2008 onwards, it can be made temporarily semi-transparent to see the code obstructed by it.[10] 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 addition to normal text search and regex search.[13] The code editor also includes a multi-item clipboard and a task list.[13] 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 including parameter reordering, variable and method renaming, interface extraction and encapsulation of class members inside properties, among others.
Visual Studio features background compilation (also called incremental compilation).[14][15] As code is being written, Visual Studio compiles it in the background with 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.[16]. Background compilation was initially introduced with Microsoft Visual Basic but has now been expanded for all included languages.[15]
Visual Studio includes a debugger that works both as a source-level debugger as well as 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.[17] 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. The Visual Studio debugger can also create memory dumps as well as load them later for debugging.[18] 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 debugger allows setting breakpoints (which allow execution to be stopped temporarily at a certain position) and watches (which monitor the values of variables as the execution progresses).[19] Breakpoints can be conditional, that is they get triggered when the condition is met. Code can be stepped over, i.e., run one line (of source code) at a time.[20] 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.[20] The debugger supports Edit and Continue, i.e., it allows code to be edited as it is being debugged.[21] When debugging, if any variable is hovered over by the mouse pointer, 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.[22]
Visual Studio includes a host of visual designers to aid in the development of applications. These tools include:
CTRL+TAB
.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 be used to implement new commands or create tool windows. They are written using Visual Basic and are not compiled.[3] 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 in to the IDE via COM and can be created in any COM-compliant languages.[3] Packages are created using the Visual Studio SDK and provide the highest level of extensibility. It is used to create designers and other tools, as well as to integrate other programming languages. The Visual Studio SDK provides both unmanaged as well as a managed API to accomplish these tasks. However, the managed API isn't as comprehensive as the unmanaged one.[3] 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.[9] 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 2008. Users of the site can rate and review the extensions to help assess the quality of extensions being posted. RSS feeds to notify users on updates to the site and tagging features are also planned. [27]
Microsoft Visual Studio is available in the following editions:[37]
Product | Extensions | External Tools | Setup Projects | MSDN Integration | Class Designer | Refactoring | Debugging | Target Native 64 bit | Target Itanium Processors | Visual Studio Tools for Office |
---|---|---|---|---|---|---|---|---|---|---|
Visual Studio Express | No | minimal | reduced functionality | MSDN Express | No | reduced functionality | reduced functionality | No | No | No |
Visual Studio Standard | Yes | Yes | reduced functionality | Yes | Yes | Yes | Yes | Yes | No | Yes |
Visual Studio Professional | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes |
Visual Studio Team System editions | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Microsoft first released Visual Studio in 1997, bundling many of its programming tools together for the first time. Visual Studio 97 was released in two editions, Professional and Enterprise. It included Visual Basic 5.0 and Visual C++ 5.0, primarily for Windows programming; Visual J++ 1.1 for Java and Windows programming; and Visual FoxPro 5.0 for database, specifically xBase programming. It introduced Visual InterDev for creating dynamically generated web sites using Active Server Pages. A snapshot of the Microsoft Developer Network library was also included.
Visual Studio 97 was Microsoft's first attempt at using the same development environment for multiple languages. Visual C++, Visual J++, InterDev, and the MSDN Library all used one environment, called Developer Studio. Visual Basic and Visual FoxPro used separate environments.[9]
The next version, version 6.0, was released in June 1998 and is the last version to run on the Windows 9x platform.[42] The version numbers of all of its constituent parts also moved to 6.0, including Visual J++ which jumped from 1.1, and Visual InterDev which was at 1.0. This version was the basis of Microsoft's development system for the next four years, as Microsoft transitioned their development focus to the .NET Framework.
Visual Studio 6.0 was the last version to include the COM-based version of Visual Basic; subsequent versions would include the version of the language based on .NET. It was also the last version to include Visual J++, which was removed as part of a settlement with Sun Microsystems that required Microsoft to stop producing programming tools that targeted the Java Virtual Machine.
Visual Basic, Visual C++, and Visual FoxPro had separate IDEs, while Visual J++ and Visual InterDev shared a common new environment. This new IDE was designed with extensibility in mind, and would go on (after several internal revisions) to become the common environment for all languages with the release of Visual Studio .NET.[9] Visual Studio 6.0 was also the last version to include Visual FoxPro.
Microsoft released Visual Studio .NET, codenamed Rainier (for Washington's Mount Rainier), in February 2002 (the beta version was released on the 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 an MSIL application is executed, 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 MSIL can be executed only on platforms which have an implementation of Common Language Infrastructure. It is possible to run MSIL 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.[43] The installer enforces this requirement.
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 was drastically changed 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 that C++ programmers could create .NET programs.
Visual Studio .NET can be used to make applications targeting Windows (using Windows Forms, part of the .NET Framework), Web (using ASP.NET and Web Services) and, with an add-in, portable devices (using the .NET Compact Framework).
The Visual Studio .NET environment was rewritten to partially use .NET. All languages are unified under one environment. Compared to previous versions of Visual Studio, it has a cleaner interface and greater cohesiveness. It is also more customizable with tool windows that automatically hide when not in use. While Visual FoxPro 7 started out as part of Visual Studio 7, and early VS betas allowed debugging inside VFP-based DLLs, it was removed before release to follow its own development track.
The internal version number of Visual Studio .NET is version 7.0. Microsoft released Service Pack 1 for Visual Studio .NET 2002 in March, 2005.[44].
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 for developing programs for mobile devices, using either ASP.NET or the .NET Compact Framework. The Visual C++ compiler's standards-compliance was improved, especially in the area of partial template specialization. Visual C++ Toolkit 2003 is a free version of the same C++ compiler shipped with Visual Studio .NET 2003 without the IDE, though it is no longer available and now superseded by the Express Editions. The internal version number of Visual Studio .NET 2003 is version 7.1 while the file format version is 8.0.[45]
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, which focuses on creating Unified Modeling Language-based visual representations of an application's architecture. "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.[46]
Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget Sound), was released online in October 2005 and hit the 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 available for Windows 2000. Visual Studio 2005's internal version number is 8.0 while the file format version is 9.0.[45] Microsoft released Service Pack 1 for Visual Studio 2005 on 14 December 2006.[47]. An additional update for Service Pack 1 that offers Windows Vista compatibility was made available on 3 June 2007.[48]
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 be used to 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++.[49] 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. Visual Studio 2005 also added extensive 64-bit support. While the 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).[50] The Platform SDK included 64-bit compilers and 64-bit versions of the libraries.
Microsoft also announced Visual Studio Tools for Applications as the successor to Visual Basic for Applications (VBA) and VSA (Visual Studio for Applications). VSTA 1.0 was released to manufacturing along with Office 2007. It is included with Office 2007 and is also part of the Visual Studio 2005 SDK. VSTA consists of a customized IDE, based on the Visual Studio 2005 IDE, and a runtime that can be embedded in applications to expose its features via the .NET object model. Office 2007 applications continue to integrate with VBA, except for InfoPath 2007 which integrates with VSTA. The next version of VSTA (version 2.0, based on Visual Studio 2008) will be released in mid-2008. It will be significantly different from the first version, including features such as dynamic programming and support for WPF, WCF, WF, LINQ, and .NET 3.5.
Visual Studio 2008,[51] codenamed Orcas, was released to MSDN subscribers on 19 November, 2007 alongside .NET Framework 3.5. The codename Orcas is, like Whidbey, a reference to an island in Puget Sound, Orcas Island. The source code for the Visual Studio 2008 IDE will be available under a shared source license to some of Microsoft's partners and ISVs.[52] Microsoft released Service Pack 1 for Visual Studio 2008 on 11 August 2008.[53]
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 Framework 3.5 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.[54] 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.[55] 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.[56][57]
Visual Studio 2008 features a XAML based designer (codenamed Cider), workflow designer, LINQ to SQL designer (for defining the type mappings and object encapsulation for SQL Server data), XSLT debugger, JavaScript Intellisense support, JavaScript Debugging support, support for UAC manifests, a concurrent build system, among others.[58] It ships with an enhanced set of UI widgets, both for WinForms and WPF. It also includes a multithreaded build engine (MSBuild) to compile multiple source files (and build the executable file) in a project across multiple threads simultaneously. It also includes support for compiling PNG compressed icon resources introduced in Windows Vista. An updated XML Schema designer will ship separately some time after the release of Visual Studio 2008. [59]
The 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 will display the stack trace of that thread in tooltips.[60] The threads can directly be named and flagged for easier identification from that window itself.[61] 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.[61][62] The Visual Studio debugger supports integrated debugging of the .NET Framework 3.5 BCL. It can dynamically download the BCL source code and debug symbols and allow stepping into the BCL source during debugging.[63]. Currently a limited subset of the BCL source is available, with more library support planned for later in the year.
This version of Visual Studio is available for three month trial.
Visual Studio 2010, codenamed "Hawaii",[64] is under development. Though the full feature set has not been finalized,[65] some features that the teams are considering have been made public. The Visual C++ team is considering using a SQL Server Compact database to store information about the source code, including IntelliSense information, for better IntelliSense and code-completion support.[66] For managed code, a Call Hierarchy feature, which will show all the code-paths from any method at design time, is being designed.[65] The Visual Studio 10 IDE is also slated to be redesigned to be more modular and with more extensibility points than the current version.[67]
Visual Studio Team System 2010, codenamed "Rosario", is the next version of Visual Studio Team System and is being touted as an "integrated Application Life-cycle Management" tool.[68] It is intended to enable and enhance development at every step of an application’s life-cycle from conceptualization to release and maintenance.
Currently a CTP version of the Visual Studio is available as a pre-installed Virtual Hard Disk.
Microsoft is offering virtual machines with Visual Studio Team System 2008 and 2005 pre-installed in the documented Virtual Hard Disk format for trial use[69].
|
|
|