Friday, May 30, 2008

Microsoft Visual Studio Debugger

The Microsoft Visual Studio Debugger is a debugger that ships along with all versions of Microsoft Visual Studio. This debugger owes much of its feel and functionality to CodeView, a standalone, text-based debugger that shipped with Microsoft Visual C++ version 1.5 and earlier.
More advanced features of the most recent versions of this debugger include:
* Full symbol and source integration.
* Attaching and detaching to and from processes.
* Integrated debugging across programs written in both .NET and native Windows languages (calls from C# to C++, for example).
* Remote machine debugging.
* Full support for C++, including templates and the standard library
* Debugging ASP.NET Web Services.
* Standard as well as more advanced breakpoint features, including conditional, address, data breakpoints.
* Many ways of viewing program state and data, including multiple watch windows, threads, call stack, and modules. The way library and user data types are displayed can be configured (e.g., to show contents of a container class, rather than it's raw structure).
* Scriptability or the ability to control via a macro or scripting language. Any language which can talk to COM can be used.
* Edit and continue support, enabling source code change and recompilation without having to restart the program (32 bit applications only).
* Local and remote debugging of SQL stored procedures on supported versions of Microsoft SQL Server.
The main shortcoming of the Visual Studio Debugger is its inability to trace into kernel-mode code. Kernel-mode debugging of Windows is generally performed by using WinDbg, KD, or SoftICE.

Microsoft Supported products

Microsoft Visual C++
Microsoft Visual C++ is Microsoft's implementation of the C and C++ compiler and associated languages services and specific tools for integration with the Visual Studio IDE. It can compile either in C mode or C++ mode. For C, it follows the ISO C standard with parts of C99 spec along with MS-specific additions in the form of libraries.[28] For C++, it follows the ANSI C++ spec along with a few C++0x features.[29] It also supports the C++/CLI spec to write managed code, as well as mixed mode code (a mix of native and managed code). Microsoft positions Visual C++ for development in native code or code that contains both native as well as managed components. Visual C++ supports COM as well as the MFC library. For MFC development, it provides a set of wizards for creating and customizing MFC boilerplate code, and creating GUI applications using MFC. Visual C++ can also use the Visual Studio forms designer to design UI graphically. Visual C++ can also be used with the Windows API. It also supports the use of intrinsic functions,[30] which are functions recognized by the compiler itself and not implemented as a library. Intrinsic functions are used to expose the SSE instruction set of modern CPUs. Visual C++ also includes the OpenMP (version 2.0) spec.
Microsoft Visual C#
Microsoft Visual C# is Microsoft's implementation of the C# language, that targets the .NET Framework, along with the language services that lets the Visual Studio IDE support C# projects. While the language services are a part of Visual Studio, the compiler is available separately as a part of the .NET Framework. The Visual C# 2008 compiler supports version 3.0 of the C# language specifications. Visual C# supports the Visual Studio Class designer, Forms designer, and Data designer among others.
Microsoft Visual Basic
Microsoft Visual Basic is Microsoft's implementation of the VB.NET language and associated tools and language services. It was introduced with Visual Studio .NET (2002). Microsoft has positioned Visual Basic for Rapid Application Development. Visual Basic can be used to author both console applications as well as GUI applications. Like Visual C#, Visual Basic also supports the Visual Studio Class designer, Forms designer, and Data designer among others. Like C#, the VB.NET compiler also is available as a part of .NET Framework but the language services, that let VB.NET projects be developed with Visual Studio, are available as a part of the latter.
Microsoft Visual Web Developer
Microsoft Visual Web Developer is used to create web sites, web application and web services using ASP.NET. Either C# or VB.NET languages can be used. Visual Web Developer can use the Visual Studio Web Designer to graphically design web page layouts.
Team Foundation Server
Included only with Visual Studio Team System, Team Foundation Server is intended for collaborative software development projects and acts as the server side backend providing source control, data collection, reporting, and project tracking functionality. It also includes the Team Explorer, the client tool for TFS services, which is integrated inside Visual Studio Team System.
Visual FoxPro
Visual FoxPro is a data-centric object-oriented and procedural programming language produced by Microsoft. It is derived from FoxPro (originally known as FoxBASE) which was developed by Fox Software beginning in 1984. Visual FoxPro is tightly integrated with its own relational database engine, which extends FoxPro's xBase capabilities to support SQL query and data manipulation. Unlike most database management systems, Visual FoxPro is a full-featured, dynamic programming language that does not require the use of an additional general-purpose programming environment. Microsoft has stated that Visual FoxPro has been discontinued after version 9.
Visual SourceSafe
Microsoft Visual SourceSafe is a source control software package oriented towards small software development projects. SourceSafe was initially not a client/server SCM; version 6.0 could only be used locally in a single user system. With Visual SourceSafe 2005, a client-server mode was added, whereby a SourceSafe repository can be shared using SMB shared. Visual SourceSafe 6.0 was included with Visual Studio 6.0, whereas Visual SourceSafe 2005 was available as a stand-alone product and included with the 2005 Team Suite. Visual Studio Team System included Team Foundation Server for source control.
Microsoft Visual J++/Microsoft Visual J#
Microsoft Visual J++ was Microsoft's implementation of the Java language (with Microsoft-specific extensions) and associated language services. It was discontinued as a result of a litigation from Sun Microsystems, and the technology was recycled into Visual J#, Microsoft's Java compiler for .NET Framework. J# was available with Visual Studio 2005 but with version 2008, it has been discontinued.
Visual InterDev
Visual InterDev is used to create web applications using Microsoft Active Server Pages (ASP) technologies. It supports code completion and includes database server management tools. It has been replaced with Microsoft Visual Web Developer.

Microsoft Visual Studio

Microsoft Visual Studio is the main 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 as well as managed code for all platforms supported by Microsoft Windows, Windows Mobile, .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 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.
Code editor
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.[11] 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.[12][13] 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.[11] 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.[14] The code editor also includes a multi-item clipboard and a task list.[14] 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).[15][16] As code is being written, Visual Studio compiles it in the background with a view to pointing out compilation errors and warnings on-the-fly. Errors are flagged with a red wavy underline and warnings with a green underline. Background compilation does not generate executable code, and needs a different compiler than the one used to generate executable code.[17]. Background compilation was initially introduced with Microsoft Visual Basic but has now been expanded for all included languages.[16]
Debugger
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.[18] 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.[19] 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).[20] 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.[21] 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.[21] The debugger supports Edit and Continue, i.e., it allows code to be edited as it is being debugged.[22] 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.
WinForms Designer
The WinForms designer is used to build GUI applications using WinForms. It includes a palette of UI widgets and controls (including buttons, progress bars, labels, layout containers and other controls) that can be dragged and dropped on a form surface. Layout can be controlled by housing the controls inside other containers or locking them to the side of the form. Controls that display data (like textbox, list box, grid view, etc.) can be data bound to data sources like databases or queries. The UI is linked with code using an event-driven programming model. The designer generates either C# or VB.NET code for the application.
WPF Designer
The WPF designer, codenamed Cider,[24] was introduced with Visual Studio 2008. Like the WinForms designer it supports uses the drag and drop metaphor. It is used to author user interfaces targeting Windows Presentation Foundation. It supports all WPF functionality including databinding and automatic layout management. It generates XAML code for the UI. The generated XAML file is compatible with Microsoft Expression Design, the designer-oriented product. The XAML code is linked with code using a code-behind model.
Web designer
Visual Studio also includes a web site editor and designer that allows web pages to be authored by dragging and dropping widgets. It is used for developing ASP.NET applications, and supports HTML, CSS and JavaScript. It uses a code-behind model to link with ASP.NET code. Visual Studio 2008 onwards, the layout engine used by the web designer is shared with Microsoft Expression Web.
Class designer
The Class Designer is used to author and edit the classes (including its members and their access) using UML modeling. The Class Designer can generate C# and VB.NET code outlines for the classes and methods. It can also generate class diagrams from hand-written classes.
Data designer
The data designer can be used to graphically edit database schemas, including typed tables, primary and foreign keys and constraints. It can also be used to design queries from the graphical view.
Mapping designer
Visual Studio 2008 onwards, the mapping designer is used by LINQ to SQL to design the mapping between database schemas and classes that encapsulate the data.

Microsoft Visual Basic .NET

Visual Basic .NET (VB.NET) is an object-oriented computer language that can be viewed as an evolution of Microsoft's Visual Basic (VB) implemented on the Microsoft .NET framework. Its introduction has been controversial, as significant changes were made that broke backward compatibility with older versions and caused a rift within the developer community.
Visual Basic .NET (VB 7)
The original Visual Basic .NET was released alongside Visual C# and ASP.NET in 2002. C# — widely touted as Microsoft's answer to Java — received the lion's share of media attention, while VB.NET (sometimes known as VB7) was not widely covered. As a result, few outside the Visual Basic community paid much attention to it.[citation needed]
Those who did try the first version found a powerful but very different language under the hood, with disadvantages in some areas, including a runtime that was ten times as large to package as the VB6 runtime and an increased memory footprint.[citation needed]
Visual Basic .NET 2003 (VB 7.1)
Visual Basic .NET 2003 was released with version 1.1 of the .NET Framework. New features included support for the .NET Compact Framework and a better VB upgrade wizard. Improvements were also made to the performance and reliability of the .NET IDE (particularly the background compiler) and runtime.
In addition, Visual Basic .NET 2003 was also available in the Visual Studio .NET 2003 Academic Edition (VS03AE). VS03AE is distributed to a certain number of scholars from each country for free.
Visual Basic 2005 (VB 8.0)
Visual Basic 2005 is the name used to refer to the update to Visual Basic .NET, Microsoft having decided to drop the .NET portion of the title.
For this release, Microsoft added many features, including:
* Edit and Continue - probably the biggest "missing feature" from Visual Basic .NET, allowing the modification of code and immediate resumption of execution
* Design-time expression evaluation
* The My pseudo-namespace (overview, details), which provides:
o easy access to certain areas of the .NET Framework that otherwise require significant code to access
o dynamically-generated classes (notably My.Forms)
* Improvements to the VB-to-VB.NET converter [2]
* The Using keyword, simplifying the use of objects that require the Dispose pattern to free resources
* Just My Code, which hides boilerplate code written by the Visual Studio .NET IDE
* Data Source binding, easing database client/server development
The above functions (particularly My) are intended to reinforce Visual Basic .NET's focus as a rapid application development platform and further differentiate it from C#.
Visual Basic 2005 introduced features meant to fill in the gaps between itself and other "more powerful" .NET languages, adding:
* .NET 2.0 languages features such as:
o generics [3]
o Partial classes, a method of defining some parts of a class in one file and then adding more definitions later; particularly useful for integrating user code with auto-generated code
o Nullable Types
* XML comments that can be processed by tools like NDoc to produce "automatic" documentation
* Operator overloading
* Support for unsigned integer data types commonly used in other languages
IsNot Patent
One other feature of Visual Basic 2005 is the conversion of If Not X Is Y to If X IsNot Y which gained notoriety when it was found to be the subject of a Microsoft patent application.
Visual Basic 2005 Express
As part of the Visual Studio product range, Microsoft created a set of free development environments for hobbyists and novices, the Visual Studio 2005 Express series. One edition in the series is Visual Basic 2005 Express Edition, which was succeeded by Visual Basic 2008 Express Edition in the 2008 edition of Visual Studio Express.[8]
The Express Editions are targeted specifically for people learning a language. They have a streamlined version of the user interface, and lack more advanced features of the standard versions. On the other hand, Visual Basic 2005 Express Edition does contain the Visual Basic 6.0 converter, so it is a way to evaluate feasibility of conversion from older versions of Visual Basic.

Visual Basic 2008 (VB 9.0)
Visual Basic 9.0 was released together with the Microsoft .NET Framework 3.5 on November 19, 2007.
For this release, Microsoft added many features, including:
* A true ternary operator If (boolean, value, value) to replace the IIF function.
* Anonymous types
* Support for LINQ
* Lambda expressions
* XML Literals
* Type Inference
Visual Basic 'VBx' (VB 10.0)
Visual Basic 10, also known as VBx, will offer support for the Dynamic Language Runtime. VB 10 is planned to be part of Silverlight 2.0.[citation needed]
Relation to older versions of Visual Basic (VB6 and previous)
Whether Visual Basic .NET should be considered as just another version of Visual Basic or a completely different language is a topic of debate. This is not obvious, as once the methods that have been moved around and that can be automatically converted are accounted for, the basic syntax of the language has not seen many "breaking" changes, just additions to support new features like structured exception handling and short-circuited expressions. Two important data type changes occurred with the move to VB.NET. Compared to VB6, the Integer data type has been doubled in length from 16 bits to 32 bits, and the Long data type has been doubled in length from 32 bits to 64 bits. This is true for all versions of VB.NET. A 16-bit integer in all versions of VB.NET is now known as a Short. Similarly, the Windows Forms GUI editor is very similar in style and function to the Visual Basic form editor.
The things that have changed significantly are the semantics — from those of an object-based programming language running on a deterministic, reference-counted engine based on COM to a fully object-oriented language backed by the .NET Framework, which consists of a combination of the Common Language Runtime (a virtual machine using generational garbage collection and a just-in-time compilation engine) and a far larger class library. The increased breadth of the latter is also a problem that VB developers have to deal with when coming to the language, although this is somewhat addressed by the My feature in Visual Studio 2005.
The changes have altered many underlying assumptions about the "right" thing to do with respect to performance and maintainability. Some functions and libraries no longer exist; others are available, but not as efficient as the "native" .NET alternatives. Even if they compile, most converted VB6 applications will require some level of refactoring to take full advantage of the new language. Documentation is available to cover changes in the syntax, debugging applications, deployment and terminology.

Microsoft Business culture

Microsoft has often been described as having a developer-centric business culture. A great deal of time and money is spent each year on recruiting young university-trained software developers and on keeping them in the company. For example, while many software companies often place an entry-level software developer in a cubicle desk within a large office space filled with other cubicles, Microsoft assigns a private or semiprivate closed office to every developer or pair of developers. In addition, key decision makers at every level are either developers or former developers. In a sense, the software developers at Microsoft are considered the "stars" of the company in the same way that the sales staff at IBM are considered the "stars" of their company.
Within Microsoft the expression "eating our own dog food" is used to describe the policy of using the latest Microsoft products inside the company in an effort to test them in "real-world" situations. Only prerelease and beta versions of products are considered dog food. This is usually shortened to just "dogfood" and is used as noun, verb, and adjective. The company is also known for their hiring process, dubbed the "Microsoft interview", which is notorious for off-the-wall questions such as "Why is a manhole cover round?" and is a process often mimicked in other organizations, although these types of questions are rarer now than they were in the past. For fun, Microsoft also hosts the Microsoft Puzzle Hunt, an annual puzzle hunt (a live puzzle game where teams compete to solve a series of puzzles) held at the Redmond campus.
As of 2006, Microsoft employees, not including Bill Gates, have given over $2.5 billion dollars to non-profit organizations worldwide, making Microsoft the worldwide top company in per-employee donations. In January 2007, the Harris Interactive/The Wall Street Journal Reputation Quotient survey concluded that Microsoft had the world's best corporate reputation, citing strong financial performance, vision & leadership, workplace environment rankings, and the charitable deeds of the Bill & Melinda Gates Foundation.

Monday, May 5, 2008

Microsoft Visual Studio

Microsoft Visual Studio is the main Integrated Development Environment (IDE) from Microsoft. It can be used to develop console and GUI applications along with Windows Forms applications, web sites, web applications, and web services in both native code as well as managed code for all platforms supported by Microsoft Windows, Windows Mobile, .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 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.

Features
Code editor
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. 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. Autocomplete suggestions are popped up in a modeless list box, overlayed 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. 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. The code editor also includes a multi-item clipboard and a task list. The code editor supports code snippets, which are saved templates for repetitive code, that 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). As code is being written, Visual Studio compiles it in the background with a view to pointing out compilation errors and warnings on-the-fly. Errors are flagged with a red wavy underline and warnings with a green underline. Background compilation does not generate executable code, and needs a different compiler than the one used to generate executable code. Background compilation was initially introduced with Microsoft Visual Basic but has now been expanded for all included languages.

Debugger
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. 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. 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). 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. 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 is being debugged. 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.

Designer
Visual Studio includes a host of visual designers to aid in the development of applications. These tools include:

WinForms Designer
The WinForms designer is used to build GUI applications using WinForms. It includes a palette of UI widgets and controls (including buttons, progress bars, labels, layout containers and other controls) that can be dragged and dropped on a form surface. Layout can be controlled by housing the controls inside other containers or locking them to the side of the form. Controls that display data (like textbox, list box, grid view, etc.) can be data bound to data sources like databases or queries. The UI is linked with code using an event-driven programming model. The designer generates either C# or VB.NET code for the application.

WPF Designer
The WPF designer, codenamed Cider, was introduced with Visual Studio 2008. Like the WinForms designer it supports uses the drag and drop metaphor. It is used to author user interfaces targeting Windows Presentation Foundation. It supports all WPF functionality including databinding and automatic layout management. It generates XAML code for the UI. The generated XAML file is compatible with Microsoft Expression Design, the designer-oriented product. The XAML code is linked with code using a code-behind model.

Web designer
Visual Studio also includes a web site editor and designer that allows web pages to be authored by dragging and dropping widgets. It is used for developing ASP.NET applications, and supports HTML, CSS and JavaScript. It uses a code-behind model to link with ASP.NET code. Visual Studio 2008 onwards, the layout engine used by the web designer is shared with Microsoft Expression Web.

Class designer
The Class Designer is used to author and edit the classes (including its members and their access) using UML modeling. The Class Designer can generate C# and VB.NET code outlines for the classes and methods. It can also generate class diagrams from hand-written classes.

Data designer
The data designer can be used to graphically edit database schemas, including typed tables, primary and foreign keys and constraints. It can also be used to design queries from the graphical view.

Mapping designer
Visual Studio 2008 onwards, the mapping designer is used by LINQ to SQL to design the mapping between database schemas and classes that encapsulate the data.

Visual Studio 2008
Visual Studio 2008, codenamed Orcas, is the successor to Visual Studio 2005. It 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.
Visual Studio 2008 is focused on development of Windows Vista, 2007 Office system, and Web applications. Among other things, it brings a new language feature, LINQ, new versions of C# and Visual Basic languages, a Windows Presentation Foundation visual designer, and improvements to the .NET Framework. It also features a new HTML/CSS editor influenced by Microsoft Expression Web. 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. For Visual C++, Visual Studio adds a new version of Microsoft Foundation Classes (MFC 9.0) that adds support for the visual styles and UI controls introduced with Windows Vista. For native and managed code interoperability, Visual C++ introduces the STL/CLR, which is a port of the C++ Standard Template Library (STL) containers and algorithms to managed code. STL/CLR defines STL-like containers, iterators and algorithms that work on C++/CLI managed objects.
Visual Studio 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. 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.
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. The threads can directly be named and flagged for easier identification from that window itself. 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. 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. Currently a limited subset of the BCL source is available, with more library support planned for later in the year.

Microsoft Silverlight

Microsoft Silverlight is a browser plugin that allows web applications to be developed with features that characterize a rich internet application: animation, vector graphics and audio-video playback. Silverlight competes with products such as Adobe Flash, Adobe Flex, Adobe Shockwave, Java FX, and Apple QuickTime. Version 2.0 brought improved interactivity and allows developers to use .NET languages and development tools when authoring Silverlight applications.
Silverlight was developed under the codename Windows Presentation Foundation/Everywhere (WPF/E). It is compatible with multiple web browser products used on Microsoft Windows and Mac OS X operating systems. Mobile devices, starting with Windows Mobile 6 and Symbian (Series 60) phones, will also be supported.[1]. A third-party free software implementation named Moonlight is under development to bring compatible functionality to GNU/Linux.

Silverlight provides a retained mode graphics system, similar to WPF and integrates multimedia, graphics, animations and interactivity into a single runtime. It is being designed to work in concert with XAML and is basically the a set or .NET classes scripted with JavaScript. XAML can be used for marking up the vector graphics and animations. Textual content created with Silverlight would be more searchable and indexable than that created with Flash as it is not compiled, but represented as text (XAML).[2] Silverlight can also be used to create Windows Sidebar gadgets for Windows Vista.[3]
Silverlight supports playback of WMV, WMA and MP3 media content[4] across all supported browsers without requiring Windows Media Player, the Windows Media Player ActiveX control or Windows Media browser plugins. Because Windows Media Video 9 is an implementation of the SMPTE VC-1 standard, Silverlight also supports VC-1 video, though still only in an ASF file format. Furthermore, the Software license agreement says VC-1 is only licensed for the "personal and non-commercial use of a consumer".[5] Silverlight does not support playback of H.264 video.
Silverlight makes it possible to dynamically load XML content that can be manipulated through a DOM interface, a technique that is consistent with conventional Ajax techniques. Silverlight exposes a Downloader object which can be used to download content, like scripts, media assets or other data, as may be required by the application.[6] With version 2.0, the programming logic can be written in any .NET language, including some common dynamic programming languages like Ruby and Python.