Home > Store

Microsoft Visual Studio 2010 Unleashed

Register your product to gain access to bonus material or receive a coupon.

Microsoft Visual Studio 2010 Unleashed


  • Sorry, this book is no longer in print.
Not for Sale


  • Copyright 2011
  • Dimensions: 7" x 9-1/8"
  • Edition: 1st
  • Book
  • ISBN-10: 0-672-33081-4
  • ISBN-13: 978-0-672-33081-0

This end-to-end deep dive into Microsoft Visual Studio 2010 Professional will help working developers squeeze maximum productivity out of Visual Studio 2010’s extraordinarily rich toolbox, whether they are writing code for the Web, Windows, Silverlight, or Microsoft’s Azure cloud computing environment.

The authors combine authoritative and detailed information about Microsoft’s latest IDE, with extensive insights and best practices drawn from decades of development experience. Developers will learn how to use Visual Studio 2010 Professional to take full advantage of the entire .NET platform, including Windows Presentation Foundation (WPF) for rich client development, Windows Communication Foundation (WCF) for building dynamic service-oriented solutions, and Windows Workflow Foundation (WF) for structured programming around business processes. The authors also present extensive new coverage of Microsoft’s powerful new tools for unit testing, application instrumentation, and code analysis.

By focusing entirely on Visual Studio 2010 Professional, the authors have gone deeper into Microsoft’s core product than ever before. Throughout, their focus is relentlessly practical: how to apply Microsoft’s tools to build better software, faster.

Detailed information on how to...

n Work with solutions, projects, browsers, explorers, editors, and designers

n Write better macros, add-ins, and wizards

n Save more time with Visual Studio 2010’s updated productivity tools

n Instrument, analyze, and test your software

n Refactor code for greater robustness, maintainability, and performance

n Share code with team members and the larger community

n Write powerful ASP.NET, ASP.NET MVC, and Silverlight web applications

n Implement robust service oriented architecture (SOA)–based applications

n Efficiently consume services with WCF

n Write advanced Windows applications with Windows Forms and WPF

n Construct data-centric applications with LINQ and Entity Framework

n Create and host workflow-based applications with WF

n Write applications for the Azure cloud

n Extend Visual Studio with the new Managed Extensibility Framework (MEF) and the Automation Object Model

n Build better object-oriented VB or C# software, and use new dynamic language features


Download all examples and source code presented in this book from informit.com/title/9780672330810




Code samples from the book

Sample Content

Online Sample Chapter

The Visual Studio IDE

Sample Pages

Download the sample pages (includes Chapter 2 and Index)

Table of Contents


Part I An Introduction to Visual Studio 2010

Chapter 1 A Quick Tour of Visual Studio 2010

The Visual Studio Product Line

    Express Editions

    Professional Edition




    Related Tools

Languages, Frameworks, and Application Templates

    Programming Language Choices

    The .NET Framework(s)

    The Many Faces of a .NET Application

Developing Rich(er) Clients

    Windows (WinForms)

    Windows Presentation Foundation (WPF)

    Office-Based Solutions

Creating Web Clients

    Building Websites with ASP.NET

    Adding Richer Features with AJAX

    Developing for Silverlight

Making the Client Choice

Coding for the Cloud

    Creating a Cloud Application

    Running a Cloud Application

    Publishing to the Cloud

Working with Data

    Design Your Data

    Separate Data Design from Storage Schema

    Build Occasionally Connected Applications

Write Connected, Service-Oriented Solutions

    Develop an Application/Business Process

    Create and Consume Services


Chapter 2 The Visual Studio IDE

Installing Visual Studio

    Choosing a Language

    Configuring Your Development Environment Settings

Getting Started

    Startup Options

Creating Your First Project

    Targeting Your Environment

Navigating the IDE

    The Menus

    The Many Toolbars

    Customizing Toolbars

    The Solution Explorer

    The Text Editors

    The Visual Designers

    The Toolbox

    The Properties Window

Managing the Many Windows of the IDE



    Navigating IDE Windows

    Customize Your Font


Chapter 3 The .NET Languages

Language Primer

    Programming Objects

    Types, Variables, and Constants


    Making Decisions and Branching Code


    Working with Groups of Items

    Programming with Attributes

    Creating and Raising Events

Language Features

    Infer a Variable’s Data Type Based on Assignment

    Create an Object and Set Its Properties with a Single Line of Code

    Define a Collection and Initialize Its Values (New)

    Create an Instance of a Nonexistent Class

    Add Methods to Existing Classes

    Add Business Logic to Generated Code

    Access and Query Data Using the .NET Languages

    Write Simple, Unnamed Functions Within Your Code

    Split an Assembly Across Multiple Files

    Work with XML Directly Within Your Code (VB Only)

    Remove Unused Arguments from Event Handlers (VB Only)

    Create an Automatically Implemented Property (New for VB)

    Drop the Underscore in VB for Line Continuation (New)

    Work with Dynamic Languages/Objects (New)

    Covariance and Contravariance (New)

The .NET Framework

    A Map to the .NET Framework


Part II An In-Depth Look at the IDE

Chapter 4 Solutions and Projects

Understanding Solutions

    Creating a Solution

    Working with Solutions

Getting Comfortable with Projects

    Creating a Project

    Working with Project Definition Files

    Working with Projects


Chapter 5 Browsers and Explorers

Solution Explorer

    Visual Cues and Icons

    Managing Solutions

    Managing Projects

Class View


    Search Bar

    Objects Pane

    Members Pane

Server Explorer

    Data Connections

    Server Components

Object Browser

    Changing the Scope

    Browsing Objects

Document Outline

    Editing Elements


Chapter 6 Introducing the Editors and Designers

The Basics

    The Text Editor

    Visual Studio Designers

Coding with the Code Editor

    Opening an Editor

    Writing Code in the Code Editor

    Anatomy of the Code Editor Window

    Code Navigation Tools

    Searching Documents

    Debugging in the Text Editor

    Printing Code

    Using the Code Definition Window

Creating and Editing XML Documents and Schema

    Inferring Schema

    Designing XML Schemas

    Editing XSLT Style Sheets

Working with Cascading Style Sheets

    Adding Style Rules

    Defining Style Sheet Attributes

Developing Windows Client Applications

    Creating a Windows Forms Project

    Creating a Windows Presentation Foundation Project

Developing Web Forms

    Designing a Web Form Application

Authoring WinForms Components and Controls

    Creating a New Component or Control

    Further Notes on Writing Component Code

Creating Classes with the Class Designer

    Creating a Class Diagram

    Adding Items to the Diagram

    Defining Relationships Between Classes

    Defining Methods, Properties, Fields, and Events


Chapter 7 The .NET Community: Interacting Online

The Community Features of Visual Studio

    The Visual Studio Start Page

Accessing Help

    Manage Your Help Settings

    Using the Visual Studio Documentation

    MSDN Forums

    Reporting a Bug and Other Customer Feedback Options


Discovering and Consuming Shared Content

    Examining Shared Content Types

    Finding the Right Content

    Installing and Storing Shared Content

Participating in the Community

    Starter Kits Versus Templates

    Creating a Project Template

    Creating Item Templates

    Packaging Your Creation for Wider Distribution


Part III Writing and Working with Code

Chapter 8 Working with Visual Studio’s Productivity Aids

Basic Aids in the Text Editor

    Change Tracking

    Coding Problem Indicators

    Active Hyperlinking

    Syntax Coloring

Outlining and Navigation

    Code Outlining

    Tag Navigation

Smart Tags and Smart Tasks

    HTML Designer

    Windows Forms Designer

    Code Editor


    Complete Word

    Quick Info

    List Members

    Parameter Info

    Organize Usings

    Code Snippets and Template Code

    Brace Matching

    Customizing IntelliSense

The Task List

    Comment Tasks

    Shortcut Tasks

    User Tasks


Chapter 9 Testing Code

Unit Testing Basics

    Creating a Test Project

    Generating Tests from Existing Code

    Writing an Actual Unit Test

    Running Your Tests

    Viewing Test Results

    Configuring Testing Options and Settings

The Unit Testing Framework

    The TestContext Class

    The Test Attribute Classes

    Unit Test Setup and Tear Down

    The Assert Classes

    Testing Your Exceptions

    Creating Data-Bound Unit Tests

Writing ASP.NET Hosted Unit Tests

    Defining ASP.NET Attributes

    Generating an ASP.NET Unit Test

    Configuring Your Test Project Host

Configuring Unit Test Attributes

    Defining a Connection with the Properties Dialog Box

Creating Ordered Tests

Organizing Your Tests

    The Test View Window

    The Test List Editor


Chapter 10 Refactoring Code

Visual Studio Refactoring Basics

    Invoking the Refactoring Tools

    Previewing Changes

Renaming Code

    Accessing the Rename Operation

    Working with the Rename Dialog Box

Extract Method

    Accessing the Extract Method Refactor

    Extracting Methods

    Generate Method Stub

Extract Interface

    Accessing the Extract Interface Refactor

    Extracting Interfaces

Refactor Parameters

    Remove Parameters

    Reorder Parameters

Encapsulate Field

    Accessing Encapsulate Field

    The Encapsulate Field Dialog Box


Chapter 11 Debugging Code

Debugging Basics

    The Scenario

    The Many Phases of Debugging

    Debugging the Application (Self-Checking)

    Debugging Basics Summary

The Visual Studio Debugger

    The Debug Menu and Toolbar

    Debug Options

    Stepping In, Out, and Over Code

    Indicating When to Break into Code

    Working with Tracepoints (When Hit Option)

    Viewing Data in the Debugger

    Using the Edit and Continue Feature

Advanced Debugging Scenarios

    Remote Debugging

    Debugging WCF Services.

    Debugging Multithreaded Applications

    Debugging Parallel Applications

    Debugging a Client-Side Script

    Debugging Crash Information (Dump Files)


Chapter 12 Deploying Code

An Overview of Client Deployment Options

    Introducing ClickOnce Deployments

    Introducing Windows Installer-Based Deployments

Publishing a Project with ClickOnce

Publishing a Project with the Windows Installer

    The File System Editor

    The Registry Editor

    The File Types Editor

    The User Interface Editor

    The Custom Actions Editor

    The Launch Conditions Editor

Publishing an ASP.NET Website or Application

    Using the Web Deployment Tool

    Using the Copy Web Site Tool


Part IV Extending Visual Studio

Chapter 13 Introducing the Automation Object Model

An Overview of the Automation Object Model

    Object Model Versions

    Automation Categories

    The DTE/DTE2 Root Object

Solution and Project Objects

    Controlling Projects in a Solution

    Accessing Code Within a Project


    Referencing Windows

    Interacting with Windows

    Text Windows and Window Panes

    The Tool Window Types

    Linked Windows

Command Bars


    Text Documents

Command Objects

    Executing a Command

    Mapping Key Bindings

Debugger Objects

Automation Events


Chapter 14 Writing Macros

Recording a Macro

Using the Macro Explorer

Writing Macros with the Macro IDE

    Working with Macro Projects

    Writing a Macro


    Handling Events

    Invoking Macros


Chapter 15 Writing Add-ins and Wizards

Creating Your First Add-in Project

    Setting Add-in Parameters

The Structure of an Add-in

    The Life Cycle of an Add-in

    Reacting to Commands

    Managing Add-ins

A Sample Add-in: Color Palette

    Getting Started

    Creating the User Control

    Finishing the Connect Class

    Exposing Add-in Settings

Creating a Visual Studio Wizard

    Examining the Wizard Structure

    Creating an Add New Item Wizard


Chapter 16 Extending the Code Editor Using MEF

The Extensibility Problem

    Creating Dynamic Applications

MEF Architecture

    MEF Principles

    Working with MEF

The Visual Studio Editor and MEF

    Editor Extension Points

    Using the Visual Studio SDK

    Using the Extension Manager

Creating Your Own MEF-Based Editor Extension


Part V Creating Enterprise Applications

Chapter 17 Creating ASP.NET Applications

The Basics of an ASP.NET Website

    Creating a New Website or Web Application

    Controlling Project Properties and Options

    Creating Web Pages

Designing Your User Interface

    Determining Page Layout and Control Positioning

    Creating a Common Look and Feel

    Creating a User-Configurable UI

Working with the ASP.NET Controls

    An Overview of the ASP.NET Controls

    The ASP.NET Standard Controls

    Validation Controls

    The Login Controls

    Site Navigation Controls

    Data Controls

    User Controls

Creating an ASP.NET MVC Application

    Understanding ASP.NET MVC

    Creating an MVC Project

    Creating Functionality Using ASP.NET MVC


Chapter 18 Building Windows Forms Applications

The Basics of Form Design

    Considering the End User

    Understanding the Role of UI Standards

    Planning the User Interface

Creating a Form

    The Windows Forms Application Project Type

    Form Properties and Events

Adding Controls and Components

    Control Layout and Positioning

    Using Containers

    Control Appearance and Behavior

    Working with ToolStrip Controls

    Displaying Data

Creating Your Own Controls

    Subclassing an Existing Control

    Designing a User Control

    Creating a Custom Control


Chapter 19 Creating Richer, Smarter User Interfaces

The Windows Presentation Foundation Platform

    Programming Model

Introducing the WPF Designer

    XAML and Design Panes

Programming with WPF


    Styles and Templates

    Data Binding

    Routed Events

Building a Simple Image Viewer Application

    Starting the Layout

    Storing the Images

    Binding to the Images

    Button Event Handlers and Image Effects

    Path Selection with a Common Dialog Box


Chapter 20 Creating Rich Browser Applications

Building Rich, Cross-Browser Interfaces with ASP.NET Ajax

    The ASP.NET Ajax Controls

    Creating a Page that Supports Partial Update

    The ASP.NET Ajax Library/Control Toolkit

Creating Unique, Rich Experiences on Windows via the Browser

    Choosing Between WPF Standalone and WPF XBAP

    Creating a WPF Browser Application

    Security Considerations

    Deploying a WPF Browser Application

Delivering Interactive Experiences Across Platforms

    Getting Started with Silverlight

    Creating a Silverlight Application

    Silverlight 4.0


Chapter 21 Working with Databases

Creating Tables and Relationships

    Creating a New SQL Server Database

    Defining Tables

    Using the Database Diagram Designer

Working with SQL Statements

    Writing a Query

    Creating Views

    Developing Stored Procedures

    Creating Triggers

    Creating User-Defined Functions

Using Database Projects

    Creating a Database Project

    The Schema View

    Building and Deploying

    A Note on Data Tier Applications

Creating Database Objects in Managed Code

    Starting a SQL CLR Project

    Creating a Stored Procedure in C#

Binding Controls to Data

    An Introduction to Data Binding

    Auto-Generating Bound Windows Forms Controls

    Editing Typed DataSets

    Manually Binding Windows Forms Controls

    Data Binding in WPF Applications

    Data Binding with Web Controls

Object Relational Mapping

    An Overview of LINQ

    Mapping Using the O/R Designer

    LINQ Code

    Working with the Entity Framework

    Querying Against the Entity Data Model


Chapter 22 Service-Oriented Applications

Service Fundamentals

    Why ASP.NET Web Services and WCF

ASP.NET Web Service Applications

    The ASP.NET Web Service Project Template

    Coding an ASP.NET Web Service

    Consuming an ASP.NET Web Service

    ASP.NET Web Service Exceptions

WCF Service Applications

    The WCF Project Template

    Creating a WCF Service

    Configuring a WCF Service

    Consuming a WCF Service

    Hosting and Deploying a WCF Service


Chapter 23 Embedding Workflow in Your Applications

Windows Workflow Fundamentals

    The Components of a Workflow

    The Workflow Project Templates

    The Workflow Designer

    The Workflow Item Templates

    The Basics of Creating a Workflow

Working with the Built-In Workflow Activities

    Controlling Flow

    Runtime and Primitives

    Error Handling

    Collection Activities

    Supporting Transactions

    Managing Messages

    Creating Flowchart Workflows

Creating a Workflow Application

    The Scenario: Travel Request

    The Application Project Templates

    Create the Database and Data Access Library

    Create the Vendor Reservation Service

    Create the Custom Activity Library

    Design the Workflow (Travel Request)

    Creating the Client Application (Request and Approval Forms)

    Running the Travel Request Workflow Application


Chapter 24 Developing Office Business Applications

An Overview of Office Extension Features

    Office Features

    Visual Studio Office Project Types

Creating an Office Add-in

    Customizing the Ribbon

    Customizing the Task Pane

    Creating Outlook Form Regions

Creating an Office Document Extension

    Hosting Controls

    Creating an Actions Pane

    Storing Data in the Data Cache

    Implementing Your Own Smart Tags


Chapter 25 Developing Applications in the Cloud with Windows Azure

Azure Fundamentals

    Azure Platform Benefits

    Setting Up Your Development Environment

    Azure Roles

    The Azure Project Templates

    Azure Storage Options

    Hello Cloud

Building and Deploying an Azure Application

    The Scenario

    Developing the Application

    Subscribing to the Azure Services (Get an Account)

    Creating a Storage Account

    Creating a Hosted Service Account

    Preparing Your Application for Publishing

    Publish and Deploy Your Application to the Cloud

    Promoting to Production

    Next Steps


9780672330810    TOC    7/8/2010


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020