Misplaced Pages

Visual Studio

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
#516483

112-468: Visual Studio is an integrated development environment (IDE) developed by Microsoft . It is used to develop computer programs including websites , web apps , web services and mobile apps . Visual Studio uses Microsoft software development platforms including Windows API , Windows Forms , Windows Presentation Foundation (WPF), Microsoft Store and Microsoft Silverlight . It can produce both native code and managed code . Visual Studio includes

224-636: A code editor supporting IntelliSense (the code completion component) as well as code refactoring . The integrated debugger works as both a source-level debugger and as a machine-level debugger. Other built-in tools include a code profiler , designer for building GUI applications, web designer , class designer, and database schema designer. It accepts plug-ins that expand the functionality at almost every level—including adding support for source control systems (like Subversion and Git ) and adding new toolsets like editors and visual designers for domain-specific languages or toolsets for other aspects of

336-492: A code obfuscation technique as a measure against disassembly and tampering. The principle is also used in shared code sequences of fat binaries which must run on multiple instruction-set-incompatible processor platforms. This property is also used to find unintended instructions called gadgets in existing code repositories and is used in return-oriented programming as alternative to code injection for exploits such as return-to-libc attacks . In some computers,

448-549: A concurrent build system, among others. It ships with an enhanced set of UI widgets, both for Windows Forms 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 icon resources in PNG format, introduced in Windows Vista. An updated XML Schema designer

560-522: A console or terminal . Early systems could not support one, since programs were submitted to a compiler or assembler via punched cards , paper tape , etc. Dartmouth BASIC was the first language to be created with an IDE (and was also the first to be designed for use while sitting in front of a console or terminal). Its IDE (part of the Dartmouth Time-Sharing System ) was command-based, and therefore did not look much like

672-412: 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, monitor, and debug those processes. If source code for the running process is available, it displays the code as it

784-579: A modeless list box over the code editor window, in proximity of the editing cursor . 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 code editor in Visual Studio 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. The code editor also includes

896-420: A source-code editor , build automation tools, and a debugger . Some IDEs, such as IntelliJ IDEA , Eclipse and Lazarus contain the necessary compiler , interpreter or both; others, such as SharpDevelop and NetBeans , do not. The boundary between an IDE and other parts of the broader software development environment is not well-defined; sometimes a version control system or various tools to simplify

1008-439: 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. 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

1120-499: 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

1232-518: 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. 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 support

SECTION 10

#1732776670517

1344-562: A complete development environment, capable of developing large programs such as the Linux kernel and its environment. In this sense, the entire Unix system functions as an IDE. The free software GNU toolchain (including GNU Compiler Collection (GCC), GNU Debugger (GDB), and GNU make ) is available on many platforms, including Windows. The pervasive Unix philosophy of "everything is a text stream" enables developers who favor command-line oriented tools to use editors with support for many of

1456-657: A computer's central processing unit (CPU). For conventional binary computers , machine code is the binary representation of a computer program which is actually read and interpreted by the computer. A program in machine code consists of a sequence of machine instructions (possibly interspersed with data). Each machine code instruction causes the CPU to perform a specific task. Examples of such tasks include: In general, each architecture family (e.g., x86 , ARM ) has its own instruction set architecture (ISA), and hence its own specific machine code language. There are exceptions, such as

1568-520: A concrete implementation of some specified functionality. Visual programming is a usage scenario in which an IDE is generally required. Visual Basic allows users to create new applications by moving programming, building blocks, or code nodes to create flowcharts or structure diagrams that are then compiled or interpreted. These flowcharts often are based on the Unified Modeling Language . This interface has been popularized with

1680-416: A direct map between the numerical machine code and a human-readable mnemonic. In assembly, numerical opcodes and operands are replaced with mnemonics and labels. For example, the x86 architecture has available the 0x90 opcode; it is represented as NOP in the assembly source code . While it is possible to write programs directly in machine code, managing individual bits and calculating numerical addresses

1792-433: 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

1904-594: A limited subset of the BCL source is available, with more library support planned for later. On April 12, 2010, Microsoft released Visual Studio 2010, codenamed Dev10 , and .NET Framework 4 . It is available for Windows Server 2003 SP2, Windows XP SP3, Windows Vista SP2 and Windows Server 2008 SP2 and has support for Windows Server 2008 R2 , as well as for Windows 7 . It is the last version to support Windows XP SP3 , Windows Server 2003 SP2 , Windows Server 2003 R2 , Windows Vista SP2 and Windows Server 2008 SP2 , and

2016-475: 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

2128-486: A machine with a single accumulator , the accumulator is implicitly both the left operand and result of most arithmetic instructions. Some other architectures, such as the x86 architecture, have accumulator versions of common instructions, with the accumulator regarded as one of the general registers by longer instructions. A stack machine has most or all of its operands on an implicit stack. Special purpose instructions also often lack explicit operands; for example, CPUID in

2240-640: A multi-item clipboard 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 code editor in Visual Studio also supports code refactoring including parameter reordering, variable and method renaming, interface extraction, and encapsulation of class members inside properties, among others. Visual Studio includes

2352-403: 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)

SECTION 20

#1732776670517

2464-734: 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

2576-433: A one-to-one mapping to machine code. The assembly language decoding method is called disassembly . Machine code may be decoded back to its corresponding high-level language under two conditions: The first condition is to accept an obfuscated reading of the source code. An obfuscated version of source code is displayed if the machine code is sent to a decompiler of the source language. The second condition requires

2688-400: A paging based system, if the current page actually holds machine code by an execute bit — pages have multiple such permission bits (readable, writable, etc.) for various housekeeping functionality. E.g. on Unix-like systems memory pages can be toggled to be executable with the mprotect() system call, and on Windows, VirtualProtect() can be used to achieve a similar result. If an attempt

2800-637: A replacement for make rather than relying on any IDE features. Some Linux IDEs such as Geany attempt to provide a graphical front end to traditional build operations. On the various Microsoft Windows platforms, command-line tools for development are seldom used. Accordingly, there are many commercial and non-commercial products. However, each has a different design commonly creating incompatibilities. Most major compiler vendors for Windows still provide free copies of their command-line tools, including Microsoft ( Visual C++ , Platform SDK , .NET Framework SDK, nmake utility). IDEs have always been popular on

2912-613: 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 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

3024-523: A specific programming language , allowing a feature set that most closely matches the programming paradigms of the language. However, there are many multiple-language IDEs. While most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were in popular use before the availability of windowing systems like Microsoft Windows and the X Window System (X11). They commonly use function keys or hotkeys to execute frequently used commands or macros. IDEs initially became possible when developing via

3136-444: A tag and a Y field. In addition to transfer (branch) instructions, these machines have skip instruction that conditionally skip one or two words, e.g., Compare Accumulator with Storage (CAS) does a three way compare and conditionally skips to NSI, NSI+1 or NSI+2, depending on the result. The MIPS architecture provides a specific example for a machine code whose instructions are always 32 bits long. The general type of instruction

3248-444: A web IDE or cloud IDE, is a browser based IDE that allows for software development or web development. An online IDE can be accessed from a web browser, allowing for a portable work environment. An online IDE does not usually contain all of the same features as a traditional or desktop IDE although all of the basic IDE features, such as syntax highlighting, are typically present. A Mobile-Based Integrated Development Environment (IDE)

3360-543: Is a modern on-the-fly syntax checking extension for GNU Emacs 24 with support for 39 languages. Another example is JDoodle, an online cloud-based IDE that supports 88 languages. [1] Eclipse , and Netbeans have plugins for C / C++ , Ada , GNAT (for example AdaGIDE ), Perl , Python , Ruby , and PHP , which are selected between automatically based on file extension, environment or project settings. IDEs can be implemented in various languages, for example: Unix programmers can combine command-line POSIX tools into

3472-463: Is a software application that provides a comprehensive suite of tools for software development on mobile platforms. Unlike traditional desktop IDEs, mobile-based IDEs are designed to run on smartphones and tablets, allowing developers to write, debug, and deploy code directly from their mobile devices. Native code In computer programming , machine code is computer code consisting of machine language instructions , which are used to control

Visual Studio - Misplaced Pages Continue

3584-655: Is an autocompletion feature in many integrated development environments (IDEs) that speeds up the process of coding applications by fixing common mistakes and suggesting lines of code. This usually happens through popups while typing, querying parameters of functions, and query hints related to syntax errors. Modern code completion software typically uses generative artificial intelligence systems to predict lines of code. Code completion and related tools serve as documentation and disambiguation for variable names, functions , and methods , using static analysis . Advanced IDEs provide support for automated refactoring . An IDE

3696-489: Is available as MSDN Essentials or the full MSDN library depending on licensing. It supports XML and XSLT editing, and can create deployment packages that only use ClickOnce and MSI . It includes tools like Server Explorer and integration with Microsoft SQL Server 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

3808-479: 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

3920-527: Is available in the following editions or SKUs : 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

4032-518: Is available via plug-ins . Java (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". As of February 19, 2024, Visual Studio 2022 is a current production-ready version. Visual Studio 2013, 2015 and 2017 are on Extended Support, while 2019

4144-542: 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. Visual Studio includes many visual designers to aid in

4256-452: 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. 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 breakpoints (which allow execution to be stopped temporarily at

4368-580: Is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. This contrasts with software development using unrelated tools, such as vi , GDB , GNU Compiler Collection , or make . One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities. Instead, it provides the same set of capabilities as one cohesive unit. Reducing setup time can increase developer productivity, especially in cases where learning to use

4480-610: Is expected to provide integrated version control , in order to interact with source repositories. IDEs are also used for debugging, using an integrated debugger , with support for setting breakpoints in the editor, visual rendering of steps, etc. IDEs may provide support for code search. Code search has two different meanings. First, it means searching for class and function declarations, usages, variable and field read/write, etc. IDEs can use different kinds of user interface for code search, for example form-based widgets and natural-language based interfaces. Second, it means searching for

4592-477: Is generally different from bytecode (also known as p-code), which is either executed by an interpreter or itself compiled into machine code for faster (direct) execution. An exception is when a processor is designed to use a particular bytecode directly as its machine code, such as is the case with Java processors . Machine code and assembly code are sometimes called native code when referring to platform-dependent parts of language features or libraries. From

Visual Studio - Misplaced Pages Continue

4704-449: Is given by the op (operation) field, the highest 6 bits. J-type (jump) and I-type (immediate) instructions are fully specified by op . R-type (register) instructions include an additional field funct to determine the exact operation. The fields used in these types are: rs , rt , and rd indicate register operands; shamt gives a shift amount; and the address or immediate fields contain an operand directly. For example, adding

4816-409: 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)

4928-428: Is made to execute machine code on a non-executable page, an architecture specific fault will typically occur. Treating data as machine code , or finding new ways to use existing machine code, by various techniques, is the basis of some security vulnerabilities. Similarly, in a segment based system, segment descriptors can indicate whether a segment can contain executable code and in what rings that code can run. From

5040-538: Is on Mainstream Support. 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,

5152-510: 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, and is the last version to support Windows NT 4.0 SP6 or later and Windows 2000 before SP3. Visual Studio .NET 2002 shipped in four editions: Academic, Professional, Enterprise Developer, and Enterprise Architect. Microsoft introduced C# (C-sharp),

5264-425: Is rarely a problem. Systems may also differ in other details, such as memory arrangement, operating systems, or peripheral devices . Because a program normally relies on such factors, different systems will typically not run the same machine code, even when the same type of processor is used. A processor's instruction set may have fixed-length or variable-length instructions. How the patterns are organized varies with

5376-512: Is tedious and error-prone. Therefore, programs are rarely written directly in machine code. However, an existing machine code program may be edited if the assembly source code is not available. The majority of programs today are written in a high-level language . A high-level program may be translated into machine code by a compiler . Every processor or processor family has its own instruction set . Instructions are patterns of bits , digits, or characters that correspond to machine commands. Thus,

5488-448: Is the last version available for Windows XP SP2 , Windows Server 2003 SP1 , as well as the only version to support Windows Vista before SP2 and Windows Server 2008 before SP2 and the last version to support targeting Windows 2000 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 visual designer and

5600-445: Is the last version to run on Windows 2000 and also the last version able to target Windows 98 and Windows Me 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

5712-419: Is typically set to a hard coded value when the CPU is first powered on, and will hence execute whatever machine code happens to be at this address. Similarly, the program counter can be set to execute whatever machine code is at some arbitrary address, even if this is not valid machine code. This will typically trigger an architecture specific protection fault. The CPU is oftentimes told, by page permissions in

SECTION 50

#1732776670517

5824-619: The Federal Republic of Germany . Maestro was arguably the world leader in this field during the 1970s and 1980s. Today one of the last Maestro I can be found in the Museum of Information Technology at Arlington in Texas. One of the first IDEs with a plug-in concept was Softbench . In 1995 Computerwoche commented that the use of an IDE was not well received by developers since it would fence in their creativity. As of August 2023 ,

5936-539: The Kruskal count , sometimes possible through opcode-level programming to deliberately arrange the resulting code so that two code paths share a common fragment of opcode sequences. These are called overlapping instructions , overlapping opcodes , overlapping code , overlapped code , instruction scission , or jump into the middle of an instruction . In the 1970s and 1980s, overlapping instructions were sometimes used to preserve memory space. One example were in

6048-518: The Lego Mindstorms system and is being actively perused by a number of companies wishing to capitalize on the power of custom browsers like those found at Mozilla . KTechlab supports flowcode and is a popular open-source IDE and Simulator for developing software for microcontrollers. Visual programming is also responsible for the power of distributed programming (cf. LabVIEW and EICASLAB software). An early visual programming system, Max ,

6160-698: The VAX architecture, which includes optional support of the PDP-11 instruction set; the IA-64 architecture, which includes optional support of the IA-32 instruction set; and the PowerPC 615 microprocessor, which can natively process both PowerPC and x86 instruction sets. Machine code is a strictly numerical language, and it is the lowest-level interface to the CPU intended for a programmer. Assembly language  provides

6272-572: The Windows Presentation Foundation (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. Integrated development environment An integrated development environment ( IDE ) is a software application that provides comprehensive facilities for software development . An IDE normally consists of at least

6384-599: The Zilog Z80 processor, the machine code 00000101 , which causes the CPU to decrement the B general-purpose register , would be represented in assembly language as DEC B . The IBM 704, 709, 704x and 709x store one instruction in each instruction word; IBM numbers the bit from the left as S, 1, ..., 35. Most instructions have one of two formats: For all but the IBM 7094 and 7094 II, there are three index registers designated A, B and C; indexing with multiple 1 bits in

6496-434: 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

6608-589: The software development lifecycle (like the Azure DevOps client: Team Explorer). Visual Studio supports 36 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++ , C++/CLI , Visual Basic .NET , C# , F# , JavaScript , TypeScript , XML , XSLT , HTML , and CSS . Support for other languages such as Python , Ruby , Node.js , and M among others

6720-401: 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

6832-508: The Apple Macintosh's classic Mac OS and macOS , dating back to Macintosh Programmer's Workshop , Turbo Pascal , THINK Pascal and THINK C environments of the mid-1980s. Currently macOS programmers can choose between native IDEs like Xcode and open-source tools such as Eclipse and Netbeans . ActiveState Komodo is a proprietary multilanguage IDE supported on macOS. An online integrated development environment , also known as

SECTION 60

#1732776670517

6944-559: 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 in annual revenue, per Microsoft). Non-Enterprises may use up to 5 copies without restriction, user number 6 and higher require

7056-729: 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 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

7168-460: The IDE is faster than manually integrating and learning all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks. For example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced, thus allowing developers to debug code much faster and more easily with an IDE. Some IDEs are dedicated to

7280-534: The IDE that Microsoft made freely available. As of 2010 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 drops support for Windows NT 4.0, and is the last version to support Windows 2000 SP3 and Windows XP before SP2 and

7392-479: The IDE via COM 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 APIs as well as a managed API to accomplish these tasks. However, the managed API isn't as comprehensive as

7504-507: The MPF includes wrappers for writing managed language services. Visual Studio does not include any source control 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

7616-688: 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 2008 features include an 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 ,

7728-434: The Visual Studio 2008 IDE is available under a shared source license to some of Microsoft '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 requires Windows XP Service Pack 2 plus Windows Installer 3.1, Windows Server 2003 Service Pack 1 or later. It

7840-610: 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. In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio .NET 2003, codenamed Everett (for

7952-479: 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

8064-438: 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. As of 2010

8176-429: The construction of a graphical user interface (GUI) are integrated. Many modern IDEs also have a class browser , an object browser , and a class hierarchy diagram for use in object-oriented software development . Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces . IDEs present a single program in which all development

8288-520: The development of applications. These tools include: Microsoft Visual Studio can write high-quality code with comprehensive testing tools to aid in the development of applications. These tools include: Unit testing , IntelliTest, Live Unit Testing, Test Explorer, CodeLens test indicators, code coverage analysis, Fakes. 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

8400-475: 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: Visual Studio

8512-533: 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, 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

8624-595: 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 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

8736-436: 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. Microsoft Visual Studio

8848-412: The flexibility of a full programming language, without the traditional learning curve associated with one. Some IDEs support multiple languages, such as GNU Emacs , IntelliJ IDEA , Eclipse , MyEclipse , NetBeans , MonoDevelop , JDoodle or PlayCode. Support for alternative languages is often provided by plugins , allowing them to be installed on the same IDE at the same time. For example, Flycheck

8960-512: 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 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

9072-815: 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

9184-469: The implementation of error tables in Microsoft 's Altair BASIC , where interleaved instructions mutually shared their instruction bytes. The technique is rarely used today, but might still be necessary to resort to in areas where extreme optimization for size is necessary on byte-level such as in the implementation of boot loaders which have to fit into boot sectors . It is also sometimes used as

9296-544: 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

9408-511: The instruction set is specific to a class of processors using (mostly) the same architecture . Successor or derivative processor designs often include instructions of a predecessor and may add new additional instructions. Occasionally, a successor design will discontinue or alter the meaning of some instruction code (typically because it is needed for new purposes), affecting code compatibility to some extent; even compatible processors may show slightly different behavior for some instructions, but this

9520-504: 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 or managed code . For native code, either the native COM interfaces or the Babel Framework (part of Visual Studio SDK) can be used. For managed code,

9632-526: The machine code of the architecture is implemented by an even more fundamental underlying layer called microcode , providing a common machine language interface across a line or family of different models of computer with widely different underlying dataflows . This is done to facilitate porting of machine language programs between different models. An example of this use is the IBM System/360 family of computers and their successors. Machine code

9744-520: The menu-driven, graphical IDEs popular after the advent of the Graphical User Interface . However it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE. Maestro I is a product from Softlab Munich and was the world's first integrated development environment for software. Maestro I was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in

9856-450: The most commonly searched for IDEs on Google Search were Visual Studio , Visual Studio Code , and Eclipse . The IDE editor usually provides syntax highlighting , it can show both the structures, the language keywords and the syntax errors with visually distinct colors and font effects. Code completion is an important IDE feature, intended to speed up programming. Modern IDEs even have intelligent code completion . Code completion

9968-448: The only version to support Windows 7 before SP1 and Windows Server 2008 R2 before SP1. The Visual Studio 2010 IDE was redesigned which, according to Microsoft , 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

10080-714: The only version to support Windows Server 2003 before SP1. 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 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

10192-412: The other four index registers. The effective address is normally Y-C(T), where C(T) is either 0 for a tag of 0, the logical or of the selected index regisrs in multiple tag mode or the selected index register if not in multiple tag mode. However, the effective address for index register control instructions is just Y. A flag with both bits 1 selects indirect addressing; the indirect address word has both

10304-529: The particular architecture and type of instruction. Most instructions have one or more opcode fields that specify the basic instruction type (such as arithmetic, logical, jump , etc.), the operation (such as add or compare), and other fields that may give the type of the operand (s), the addressing mode (s), the addressing offset(s) or index, or the operand value itself (such constant operands contained in an instruction are called immediate ). Not all machines or individual instructions have explicit operands. On

10416-657: The point of view of a process , the code space is the part of its address space where the code in execution is stored. In multitasking systems this comprises the program's code segment and usually shared libraries . In multi-threading environment, different threads of one process share code space along with data space, which reduces the overhead of context switching considerably as compared to process switching. Various tools and methods exist to decode machine code back to its corresponding source code . Machine code can easily be decoded back to its corresponding assembly language source code because assembly language forms

10528-504: The point of view of the CPU, machine code is stored in RAM, but is typically also kept in a set of caches for performance reasons. There may be different caches for instructions and data, depending on the architecture. The CPU knows what machine code to execute, based on its internal program counter. The program counter points to a memory address and is changed based on special instructions which may cause programmatic branches. The program counter

10640-547: 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 is only compatible with Windows 95 and Windows NT 4.0 . It is the last version to support Windows NT 4.0 before SP3. Visual Studio 97

10752-412: The registers 1 and 2 and placing the result in register 6 is encoded: Load a value into register 8, taken from the memory cell 68 cells after the location listed in register 3: Jumping to the address 1024: On processor architectures with variable-length instruction sets (such as Intel 's x86 processor family) it is, within the limits of the control-flow resynchronizing phenomenon known as

10864-416: The result of a constant expression freed up by replacing it by that constant) and other code enhancements. A much more human-friendly rendition of machine language, named assembly language , uses mnemonic codes to refer to machine code instructions, rather than using the instructions' numeric values directly, and uses symbolic names to refer to storage locations and sometimes registers . For example, on

10976-616: The standard Unix and GNU build tools, building an IDE with programs like Emacs or Vim . Data Display Debugger is intended to be an advanced graphical front-end for many text-based debugger standard tools. Some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full IDE. For example, most contributors to the PostgreSQL database use make and GDB directly to develop new features. Even when building PostgreSQL for Microsoft Windows using Visual C++ , Perl scripts are used as

11088-443: The tag subtracts the logical or of the selected index registers and loading with multiple 1 bits in the tag loads all of the selected index registers. The 7094 and 7094 II have seven index registers, but when they are powered on they are in multiple tag mode , in which they use only the three of the index registers in a fashion compatible with earlier machines, and require a Leave Multiple Tag Mode ( LMTM ) instruction in order to access

11200-622: 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. Visual Studio includes a code editor that supports syntax highlighting and code completion using IntelliSense for variables , functions , methods , loops , and LINQ queries. IntelliSense is supported for the included languages, as well as for XML , Cascading Style Sheets , and JavaScript when developing web sites and web applications . Autocomplete suggestions appear in

11312-441: 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

11424-406: The x86 architecture writes values into four implicit destination registers. This distinction between explicit and implicit operands is important in code generators, especially in the register allocation and live range tracking parts. A good code optimizer can track implicit and explicit operands which may allow more frequent constant propagation , constant folding of registers (a register assigned

11536-495: Was Visual Studio 97. Before that, Visual Basic, Visual C++, Visual FoxPro and Visual SourceSafe were sold as separate products. 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,

11648-486: Was added to all editions in Visual Studio 2010. Development for Windows Mobile is no longer supported in Visual Studio 2010. It is superseded by Windows Phone 7 . 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. The first version of Visual Studio

11760-580: Was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro. 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

11872-516: Was an 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. The next version, version 6.0 (codenamed Aspen , after the ski resort in Colorado),

11984-471: Was modeled after an analog synthesizer design and has been used to develop real-time music performance software since the 1980s. Another early example was Prograph , a dataflow -based system originally developed for the Macintosh . The graphical programming environment "Grape" is used to program qfix robot kits . This approach is also used in specialist software such as Openlab, where the end-users want

12096-674: Was released September 13, 2006. Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget Sound region ), 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 requires Windows 2000 with Service Pack 4, Windows XP with at least Service Pack 2 or Windows Server 2003 with at least Service Pack 1. It

12208-546: 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 , and .NET 3.5 Framework. Visual Studio 2008, and Visual Studio Team System 2008 codenamed Orcas (a reference to Orcas Island , also an island in Puget Sound region , 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

12320-568: Was released in June 1998 and is the last version to support the Windows 9x platform, as well as Windows NT 4.0 before SP6, but after SP2. 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

12432-494: 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

12544-463: 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 additionally introduces support for a new task-based build platform called Microsoft Build Engine ( MSBuild ) which employs a new XML-based project file format. Visual Studio 2005 also includes

#516483