Visual Studio .NET IDE, windows and features

Visual Studio .NET IDE, windows and features

Visual Studio .NET

Visual Studio .NET is an IDE from Microsoft for developing .Net based applications in supported programming languages usually in C#.  It can also be used to develop ASP Web applications, XML Web services, desktop applications, and mobile applications. Various supporting programming languages includes, Visual Basic .NET, Visual C++ .NET, Visual C# .NET, and Visual J# .NET thus, enabling tools and facilitates sharing for the creation of mixed-language solutions. .

Features and IDE


A correlation of .NET Framework, CLR, and Visual Studio versions is provided for each version.

.NET Framework version Introduced with IDE Description
1.0 Visual Studio .NET Contained the first version of the CLR and the first version of the base class libraries.
1.1 Visual Studio .NET 2003 Included updates to ASP.NET and ADO.NET. It  was subsequently updated twice, with Service Pack 1 (SP1) and SP2. It added side-by-side execution, enabling apps on a single computer to run against multiple versions of the CLR.
2.0 Visual Studio 2005 Introduced a new version of the CLR with additions to the base class libraries, including generics, generic collections, and significant additions to ASP.NET. This version was updated with SP1 and SP2.
3.0 Visual Studio 2005 This version is essentially .NET Framework 2.0 with the addition of Windows Presentation Foundation (WPF), Windows Communications Foundation (WCF), Windows Workflow Foundation (WF), and CardSpace. It was updated with SP1 and SP2.
3.5 Visual Studio 2008 Added new features such as AJAX-enabled websites and LINQ. The SP1 update added Dynamic Data, and a small set of additional enhancements.
4 Visual Studio 2010 Included a new version of the CLR, expanded base class libraries, and new features such as the Managed Extensibility Framework (MEF), dynamic language runtime (DLR), and code contracts.
4.5 Visual Studio 2012 Includes an updated version of the CLR, support for building Windows Store apps, and updates to WPF, WCF, WF, and ASP.NET.

Visual Studio Components

  • Visual Studio has a code editor with IntelliSense as well as code refactoring.
  • The integrated debugger works not only as a source-level debugger but also as a machine-level debugger.
  • Forms designer provided in visual studio is used for building GUI applications.
  • Web designer
  • Class designer
  • Database schema designer.

Visual Studio also accepts plug-ins to enhance it’s functionality like adding support for source-control systems (like Subversion and Visual SourceSafe) or 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 by it’s language services, to support different programming language and enable support in it’s code editor and debugger. The supporting programming languages includes C/C++ (via Visual C++), VB.NET (via Visual Basic .NET), C# (via Visual C#), and F# (as of Visual Studio 2010). Support for  XML/XSLT, HTML/XHTML, JavaScript and CSS is also present.

Microsoft provides “Express” editions of its Visual Studio 2010 components Visual Basic, Visual C#, Visual C++, and Visual Web Developer are made available to the public and developer community at large for no cost. Visual Studio 2012, 2010, 2008 and 2005 Professional Editions, along with language-specific versions (Visual Basic, C++, C#, J#) of Visual Studio Express 2010 are also available for free to academic community and students as downloads under the Microsoft’s DreamSpark program.

Architecture
Visual Studio does not have any native support for a specific programming language but it provides the plugging of functionality coded as a VSPackage. If installed, the functionality is available as a Service and available as three services namely

  • SVsSolution, which provides the ability to enumerate projects and solutions
  • SVsUIShell, which provides windowing and UI functionality (including tabs, toolbars and tool windows)
  • SVsShell, which deals with registration of VSPackages.

Visual Studio is responsible for coordinating and enabling communication between the three services.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 any CLI compliant language.

A language service outlines the different interfaces which the VSPackage implementation can implement for adding 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.

A source control support is also built in the IDE, but two alternative ways are defined for source control systems to integrate with the Visual Studio.

  • A Source Control VSPackage can provide its own customised user interface.
  • 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 integrated as Visual SourceSafe with Visual Studio 6.0. 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) which uses different registry hives for storing their configuration state and are identified 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 have 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. Hence, the Express editions can be installed side-by-side with other editions. 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 of Visual Studio .NET

Various features of Visual Studio are summarized as

Feature Description
Annotations reporting Allows developer to extract C# annotations and
render them in HTML or store them in XML documents
Auto-hide Allows developer to stow minimized documents along the edges of
the development environment and pops up docs as developer mouse-over them
Cascading Style Sheets Full support for creating styles
that can be applied to HTML or XML elements
Command window Allows developer to invoke commands within the IDE
Debugging support Enhanced debugging support for C#, C++,
and Visual Basic directly in the environment, as well as support for managed-code
and remote debugging
Deployment tools Allows developer to take advantage of Windows Installer to deploy
applications; supports installation rollback and app advertising; graphical
editor allows developer to create installers; merge modules allow developer to standardize
component installation for multiple apps
Document navigation Maintains such things as cursor history,
allowing developer to navigate back to parts of a document or to different windows
Editor features Too numerous to cover; includes auto-indent, color highlighting,
auto-complete, clipboard rings, document navigation, and many more
Enhanced automation support Allows developer to access and control parts of
the IDE programmatically, such as the Code Editor, projects, tool windows,
and debugging, building, and deployment tools
HTML WYSIWYG design and source code editing of HTML documents
Macro recording Allows developer to record and play macros directly
in the development environment
Object browser Supports all languages and allows developer to browse objects in
projects, class libraries, and and so forth
Schemas Supports the automatic creation of a schema
from an XML document instance
Start page Acts as a personal home page for developer .Net development and
provides access to news, updates, downloads, and documentation
Tabbed documents Allows developer to tab through multiple windows
in one part of the screen
Web browser Allows developer to display Web pages directly in the development
environment
XML Allows developer to edit XML with syntax-directed
highlighting
Data types The Deftype statements (DefBool, DefByte, and
so on) are not supported. Currency type is replaced by Decimal type. Dates
are now stored as 8-byte integers, matching the CLR DateTime type.
Dim, ReDim Developer can no longer use ReDim in an initial array declaration.
Developer must first declare the array using Dim. The array can then be
resized using ReDim.
Integers Short refers to a 16-bit signed
integer. Integer (type character %) now refers to a 32-bit signed
integer. Long (type character &) refers to a 64-bit signed integer.
Strings The string data type now corresponds to the .NET
Framework String class, which cannot be modified after initialization. If
strings must be modified, the StringBuilder class is used.
Variable scope Variables declared in blocks have a block
scope rather than a procedure scope. Variables declared in procedures but
not within a block (a set of statements terminated by End, Loop,
or Next) will have a procedure scope.
Variants Variant is replaced by the keyword Object.
Variant, however, remains a keyword in the language.
Visual Basic 6.0 language elements that
are not in Visual Basic .NET
As Any, Atn, Calendar,
Circle, Currency, Date, Date$, Debug.Assert,
Debug.Print, Deftype, DoEvents, Empty, Eqv,
GoSub, Imp, Initialize, Instancing, IsEmpty,
IsMissing, IsNull, IsObject, Let, Line,
LSet, MsgBox, Now, Null, On…GoSub,
On…GoTo, Option Base, Option Private Module, Property
Get
, Property Let, Property Set, PSet, Rnd,
Round, RSet, Scale, Set, Sgn, Sqr,
String, Terminate, Time, Time$, Timer,
Variant, VarType, Wend.

Visual Studio Window Types

The Visual Studio integrated development environment (IDE) contains two basic window types: tool windows and document windows. These two window types behave differently as tool windows and document windows cannot be grouped together in the IDE.

Tool windows

Tool windows are listed on the View menu and are defined by the current application and its add-ins. Developer can arrange tool windows in the IDE to:

  • Show or hide automatically
  • Tab link with other tool windows
  • Dock against the edges of the IDE
  • Float over
  • Display on other monitors

In addition, developer can display more than one instance of certain tool windows at a time. For example, developer could display more than one Web browser window. Developer can create another instance of a tool window by choosing New Window on the Window menu. Also, developer can determine how the Close and Auto Hide buttons affect a group of tool windows docked together.

Document windows

Document windows are dynamically created when developer open or create files or other items. The list of open document windows appears in the Window menu in the current z-order, with the top-most window listed first.

The ways in which developer manage document windows depends greatly upon the interface mode selected on the General page of the Environment folder in the Options dialog box. Developer can choose to work in either Multiple Document Interface (MDI) or Tabbed Documents mode. Experiment with these settings to create a document editing environment that satisfies  needs and preferences.

Dockable windows

In Tabbed Mode, developer can make document windows dockable or undockable by selecting or clearing Dockable on the Window menu. In MDI mode, document windows are undockable.

Tiled/Cascading windows

Windows can be arranged into cascading stacks or tiled only in MDI mode.

Tab Groups

Tab Groups are available only in Tabbed Documents mode. They extend  ability to manage limited workspace while working with two or more open documents in the IDE. Developer can organize multiple document windows into either vertical or horizontal Tab Groups and easily shuffle documents from one Tab Group to another.

Split Windows

When developer find needing to be in two places at once in a document, viewing script in the HEAD of an html document while debugging code in the BODY for example, split windows are useful.

To divide document into two independently scrolling sections, choose Split from the Window menu. Select Remove Split from the Window menu to eliminate it.

Recycling windows

In addition, developer can choose to have a document window behave like a Web browser by displaying each new document as it is opened within the same window. Choose the option Re-use current document window, if saved, which is available on the General page under the Environment folder in the Options dialog box.

Displaying help topics in windows

Help topics can be displayed internally or externally. These options are available on the Help page under the Environment folder in the Options dialog box.

Internal help launches Help topics in a Web browser window inside the IDE. Internal help windows are dockable, floating and can be auto hidden like other tool windows. Using internal help is recommended for situations where developer will be accessing help topics on an as-needed basis.

External help launches Help topics in an external application, the Microsoft Document Explorer. Topic and tool windows such as Contents and Index can be docked and hidden in the MSDN Library. However, these windows cannot be auto hidden or docked in the Visual Studio .NET IDE. Using external help is recommended when developer wish to study the contents of the MSDN Library in greater depth.

IDE
Project Types

Get industry recognized certification – Contact us

keyboard_arrow_up
Open chat
Need help?
Hello 👋
Can we help you?