What is Visual Studio?
Microsoft Visual Studio is an integrated development environment
(IDE) from Microsoft. It is 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 (to varying degrees)
nearly any programming language, provided a language-specific service
exists. Built-in languages include C, C++ and C++/CLI (via Visual C++),
VB.NET (via Visual Basic .NET), C# (via Visual C#), and F# (as of Visual
Studio 2010). Support for other languages such as M, Python, and Ruby
among others is available via language services installed separately. It
also supports XML/XSLT, HTML/XHTML, JavaScript and CSS. Java (and J#)
were supported in the past.
Before Visual Studio 2015, Commercial versions of Visual Studio were
available for free to students via Microsoft's DreamSpark program , when
only commercial versions supported plugins.
Starting with Visual Studio 2015, Microsoft provides "Community"
editions of its Visual Studio at no cost to any one, where Community
edition supports installing plugins.
Toolbar is Visual Studio:
Menus and toolbars are the way users access commands in your
VSPackage. Commands are functions that accomplish tasks, such as
printing a document, refreshing a view, or creating a new file. Menus
and toolbars are convenient graphical ways to present your commands to
users. Typically, related commands are clustered together on the same
menu or toolbar.
- Menus typically are
displayed as one-word strings clustered in a row at the top of the
integrated development environment (IDE) or a tool window. Menus also
can be displayed as the result of a right-click event, and are referred
to as shortcut menus in that context. When clicked, menus expand to
display one or more commands. Commands, when clicked, can carry out
tasks or launch submenus that contain additional commands. Some
well-known menu names are File, Edit, View, and Window. For more
information, see Extending Menus and Commands.
- Toolbars
typically are rows of buttons and other controls, such as combo boxes,
list boxes, text boxes, and menu controllers. All toolbar controls are
associated with commands. When you click a toolbar button, its
associated command is activated. Toolbar buttons usually have icons that
suggest the underlying commands, such as a printer for a Print command.
In a drop-down list control, each item in the list is associated with a
different command. A menu controller is a hybrid in which one side of
the control is a toolbar button and the other side is a down arrow that
displays additional commands when clicked. For more information, see Adding a Menu Controller to a Toolbar.
- When
you create a command, you also must create an event handler for it. The
event handler determines when the command is visible or enabled, allows
you to modify its text, and ensures that the command responds
appropriately ("routes") when activated. In most instances, the IDE
handles commands using the IOleCommandTarget
interface. Commands in Visual Studio route in a hierarchical manner,
starting with the innermost command context, based on the local
selection, and proceeding to the outermost context, based on the global
selection. Commands added to the main menu are immediately available for
scripting. For more information, see MenuCommands Vs. OleMenuCommands and Selection Context Objects.