You are previewing Professional Visual Studio® 2010.
O'Reilly logo
Professional Visual Studio® 2010

Book Description

A must-have guide that covers all the new features of Visual Studio 2010

Visual Studio allows you to create and manage programming projects for the Windows platform, and the new 2010 version has undergone a major overhaul comprised of significant changes. Written by an author team of veteran programmers and developers, Professional Visual Studio 2010 gets you quickly up to speed on what you can expect from the newest version of Visual Studio.

This book's first section is dedicated to familiarizing you with the core aspects of Visual Studio 2010. Everything you need is contained in the first five chapters, from the IDE structure and layout to the various options and settings you can change to make the user interface synchronize with your own way of doing things.

From there, the remainder of the book is broken into 11 parts:

  • Getting Started: In this part, you learn how to take control of your projects and organize them in ways that work with your own style.

  • Digging Deeper: Though the many graphical components of Visual Studio that make a programmer's job easier are discussed in many places throughout this book, you often need help when you're in the process of actually writing code. This part deals with features that support the coding of applications such as IntelliSense, code refactoring, and creating and running unit tests In the latest version of the .NET framework, enhancements were added to support dynamic languages and move towards feature parity between the two primary .NET languages, C# and VB. This part covers changes to these languages, as well as looking at a range of features that will help you write better and more consistent code.

  • Rich Client and Web Applications: For support building everything from Office add-ins to cloud applications, Visual Studio enables you to develop applications for a wide range of platforms. These two parts cover the application platforms that are supported within Visual Studio 2010, including ASP.NET and Office, WPF, Silverlight 2 and ASP.NET MVC.

  • Data: A large proportion of applications use some form of data storage. Visual Studio 2010 and the .NET Framework include strong support for working with databases and other data sources. This part examines how to use DataSets, the Visual Database Tools, LINQ, Synchronization Services and ADO.NET Entity Framework to build applications that work with data. It also shows you how you can then present this data using Reporting.

  • Application Services: Through the course of building an application you are likely to require access to services that may or may not reside within your organization. This part covers core technologies such as WCF, WF, Synchronization Services and WCF RIA services that you can use to connect to these services.

  • Configuration and Internationalization: The built-in support for configuration files allows you to adjust the way an application functions on the fly without having to rebuild it. Furthermore, resource files can be used to both access static data and easily localize an application into foreign languages and cultures. This part of the book shows how to use .NET configuration and resource files.

  • Debugging: Application debugging is one of the more challenging tasks developers have to tackle, but correct use of the Visual Studio 2010 debugging features will help you analyze the state of the application and determine the cause of any bugs. This part examines the rich debugging support provided by the IDE.

  • Build and Deployment: In addition to discussing how to build your solutions effectively and getting applications into the hands of your end users, this part also deals with the process of upgrading your projects from previous versions.

  • Customizing and Extending Visual Studio: If the functionality found in the previous part isn't enough to help you in your coding efforts, Microsoft has made Visual Studio 2010 even more extensible. This part covers the automation model, how to write add-ins and macros, and then how to use a new extensibility framework, MEF, to extend Visual Studio 2010.

  • Visual Studio Ultimate: The final part of the book examines the additional features only available in the Premium and Ultimate versions of Visual Studio 2010. In addition, you'll also learn how the Team Foundation Server provides an essential tool for managing software projects.

Though this breakdown of the Visual Studio feature set provides the most logical and easily understood set of topics, you may need to look for specific functions that will aid you in a particular activity. To address this need, references to appropriate chapters are provided whenever a feature is covered in more detail elsewhere in the book.

Professional Visual Studio 2010 is for all developers new to Visual Studio as well as those programmers who have some experience but want to learn about features they may have previously overlooked.

If you are familiar with the way previous versions of Visual Studio worked, you may want to skim over Part I, which deals with the basic constructs that make up the user interface, and move on to the remainder of the book where the new features found in Visual Studio 2010 are discussed in detail. While you may be familiar with most of Part I, it is worth reading this section in case there are features of Visual Studio 2010 that you haven't seen or used before.

If you're just starting out, you'll greatly benefit from the first part, where basic concepts are explained and you're introduced to the user interface and how to customize it to suit your own style.

Table of Contents

  1. Copyright
  2. ABOUT THE AUTHORS
  3. ABOUT THE TECHNICAL EDITOR
  4. CREDITS
  5. ACKNOWLEDGMENTS
  6. INTRODUCTION
    1. WHO THIS BOOK IS FOR
    2. WHAT THIS BOOK COVERS
      1. A Brief History of Visual Studio
      2. One Comprehensive Environment
    3. HOW THIS BOOK IS STRUCTURED
    4. WHAT YOU NEED TO USE THIS BOOK
    5. CONVENTIONS
    6. SOURCE CODE
    7. ERRATA
    8. P2P.WROX.COM
  7. I. Integrated Development Environment
    1. 1. A Quick Tour
      1. 1.1. GETTING STARTED
        1. 1.1.1. Installing Visual Studio 2010
        2. 1.1.2. Running Visual Studio 2010
      2. 1.2. THE VISUAL STUDIO IDE
        1. 1.2.1. Developing, Building, Debugging, and Deploying Your First Application
      3. 1.3. SUMMARY
    2. 2. The Solution Explorer, Toolbox, and Properties
      1. 2.1. THE SOLUTION EXPLORER
        1. 2.1.1. Common Tasks
          1. 2.1.1.1. Adding Projects and Items
          2. 2.1.1.2. Adding References
          3. 2.1.1.3. Adding Service References
      2. 2.2. THE TOOLBOX
        1. 2.2.1. Arranging Components
        2. 2.2.2. Adding Components
      3. 2.3. PROPERTIES
        1. 2.3.1. Extending the Properties Window
          1. 2.3.1.1. The Browsable Attribute
          2. 2.3.1.2. DisplayName Attribute
          3. 2.3.1.3. Description
          4. 2.3.1.4. Category
          5. 2.3.1.5. DefaultValue
          6. 2.3.1.6. AmbientValue
      4. 2.4. SUMMARY
    3. 3. Options and Customizations
      1. 3.1. THE START PAGE
        1. 3.1.1. Customizing the Start Page
        2. 3.1.2. Code Behind with User Controls
      2. 3.2. WINDOW LAYOUT
        1. 3.2.1. Viewing Windows and Toolbars
        2. 3.2.2. Navigating Open Items
        3. 3.2.3. Docking
      3. 3.3. THE EDITOR SPACE
        1. 3.3.1. Fonts and Colors
        2. 3.3.2. Visual Guides
        3. 3.3.3. Full-Screen Mode
        4. 3.3.4. Tracking Changes
      4. 3.4. OTHER OPTIONS
        1. 3.4.1. Keyboard Shortcuts
        2. 3.4.2. Projects and Solutions
        3. 3.4.3. Build and Run
        4. 3.4.4. VB Options
      5. 3.5. IMPORTING AND EXPORTING SETTINGS
      6. 3.6. SUMMARY
    4. 4. The Visual Studio Workspace
      1. 4.1. THE CODE EDITOR
        1. 4.1.1. The Code Editor Window Layout
        2. 4.1.2. Regions
        3. 4.1.3. Outlining
        4. 4.1.4. Code Formatting
        5. 4.1.5. Navigating Forward/Backward
        6. 4.1.6. Additional Code Editor Features
          1. 4.1.6.1. Reference Highlighting
          2. 4.1.6.2. Code Zooming
          3. 4.1.6.3. Word Wrap
          4. 4.1.6.4. Line Numbers
        7. 4.1.7. Split View
        8. 4.1.8. Tear Away (Floating) Code Windows
        9. 4.1.9. Creating Tab Groups
        10. 4.1.10. Advanced Functionality
          1. 4.1.10.1. Commenting/Uncommenting a Code Block
          2. 4.1.10.2. Block Selection
          3. 4.1.10.3. Multiline Editing
          4. 4.1.10.4. The Clipboard Ring
          5. 4.1.10.5. Full-Screen View
          6. 4.1.10.6. Go To Definition
          7. 4.1.10.7. Find All References
      2. 4.2. THE COMMAND WINDOW
      3. 4.3. THE IMMEDIATE WINDOW
      4. 4.4. THE CLASS VIEW
      5. 4.5. THE ERROR LIST
      6. 4.6. THE OBJECT BROWSER
      7. 4.7. THE CODE DEFINITION WINDOW
      8. 4.8. THE CALL HIERARCHY WINDOW
      9. 4.9. THE DOCUMENT OUTLINE TOOL WINDOW
        1. 4.9.1. HTML Outlining
        2. 4.9.2. Control Outlining
      10. 4.10. REORGANIZING TOOL WINDOWS
      11. 4.11. SUMMARY
    5. 5. Find and Replace and Help
      1. 5.1. QUICK FIND/REPLACE
        1. 5.1.1. Quick Find
        2. 5.1.2. Quick Replace
        3. 5.1.3. Find Options
        4. 5.1.4. Wildcards
        5. 5.1.5. Regular Expressions
        6. 5.1.6. Find and Replace Options
      2. 5.2. FIND/REPLACE IN FILES
        1. 5.2.1. Find in Files
        2. 5.2.2. Find Dialog Options
        3. 5.2.3. Results Window
        4. 5.2.4. Replace in Files
      3. 5.3. FIND SYMBOL
      4. 5.4. NAVIGATE TO
      5. 5.5. INCREMENTAL SEARCH
      6. 5.6. ACCESSING HELP
        1. 5.6.1. Navigating and Searching the Help System
        2. 5.6.2. Configuring the Help System
      7. 5.7. SUMMARY
  8. II. Getting Started
    1. 6. Solutions, Projects, and Items
      1. 6.1. SOLUTION STRUCTURE
      2. 6.2. SOLUTION FILE FORMAT
      3. 6.3. SOLUTION PROPERTIES
        1. 6.3.1. Common Properties
        2. 6.3.2. Configuration Properties
      4. 6.4. PROJECT TYPES
      5. 6.5. PROJECT FILES FORMAT
      6. 6.6. PROJECT PROPERTIES
        1. 6.6.1. Application
          1. 6.6.1.1. Assembly Information
          2. 6.6.1.2. User Account Control Settings
          3. 6.6.1.3. Application Framework (Visual Basic Only)
        2. 6.6.2. Compile (Visual Basic Only)
        3. 6.6.3. Build (C# and F# Only)
        4. 6.6.4. Build Events (C# and F# Only)
        5. 6.6.5. Debug
          1. 6.6.5.1. Start Action
          2. 6.6.5.2. Start Options
          3. 6.6.5.3. Enable Debuggers
        6. 6.6.6. References (Visual Basic Only)
        7. 6.6.7. Resources
        8. 6.6.8. Services
        9. 6.6.9. Settings
        10. 6.6.10. Reference Paths (C# and F# Only)
        11. 6.6.11. Signing
        12. 6.6.12. My Extensions (Visual Basic Only)
        13. 6.6.13. Security
        14. 6.6.14. Publish
        15. 6.6.15. Code Analysis (VSTS Premium and Ultimate Editions Only)
      7. 6.7. WEB APPLICATION PROJECT PROPERTIES
        1. 6.7.1. Web
        2. 6.7.2. Silverlight Applications
        3. 6.7.3. Package/Publish Web
        4. 6.7.4. Package/Publish SQL
      8. 6.8. WEB SITE PROJECTS
      9. 6.9. SUMMARY
    2. 7. IntelliSense and Bookmarks
      1. 7.1. INTELLISENSE EXPLAINED
        1. 7.1.1. General IntelliSense
        2. 7.1.2. Completing Words and Phrases
          1. 7.1.2.1. In Context
          2. 7.1.2.2. List Members
          3. 7.1.2.3. Suggestion Mode
          4. 7.1.2.4. Stub Completion
          5. 7.1.2.5. Generate From Usage
        3. 7.1.3. Parameter Information
        4. 7.1.4. Quick Info
      2. 7.2. JAVASCRIPT INTELLISENSE
        1. 7.2.1. The JavaScript IntelliSense Context
        2. 7.2.2. Referencing another JavaScript File
      3. 7.3. INTELLISENSE OPTIONS
        1. 7.3.1. General Options
        2. 7.3.2. Statement Completion
        3. 7.3.3. C#-Specific Options
      4. 7.4. EXTENDED INTELLISENSE
        1. 7.4.1. Code Snippets
        2. 7.4.2. XML Comments
        3. 7.4.3. Adding Your Own IntelliSense
      5. 7.5. BOOKMARKS AND THE BOOKMARK WINDOW
      6. 7.6. SUMMARY
    3. 8. Code Snippets and Refactoring
      1. 8.1. CODE SNIPPETS REVEALED
        1. 8.1.1. Storing Code Blocks in the Toolbox
        2. 8.1.2. Code Snippets
        3. 8.1.3. Using Snippets in C#
        4. 8.1.4. Using Snippets in VB
        5. 8.1.5. Surround With Snippet
        6. 8.1.6. Code Snippets Manager
        7. 8.1.7. Creating Snippets
        8. 8.1.8. Reviewing Existing Snippets
      2. 8.2. ACCESSING REFACTORING SUPPORT
      3. 8.3. REFACTORING ACTIONS
        1. 8.3.1. Extract Method
        2. 8.3.2. Encapsulate Field
        3. 8.3.3. Extract Interface
        4. 8.3.4. Reorder Parameters
        5. 8.3.5. Remove Parameters
        6. 8.3.6. Rename
        7. 8.3.7. Promote Variable to Parameter
        8. 8.3.8. Generate Method Stub
        9. 8.3.9. Organize Usings
      4. 8.4. SUMMARY
    4. 9. Server Explorer
      1. 9.1. SERVER CONNECTIONS
        1. 9.1.1. Event Logs
        2. 9.1.2. Management Classes
        3. 9.1.3. Management Events
        4. 9.1.4. Message Queues
        5. 9.1.5. Performance Counters
        6. 9.1.6. Services
      2. 9.2. DATA CONNECTIONS
      3. 9.3. SHAREPOINT CONNECTIONS
      4. 9.4. SUMMARY
    5. 10. Modeling with the Class Designer
      1. 10.1. CREATING A CLASS DIAGRAM
      2. 10.2. THE DESIGN SURFACE
      3. 10.3. THE TOOLBOX
        1. 10.3.1. Entities
        2. 10.3.2. Connectors
      4. 10.4. THE CLASS DETAILS
      5. 10.5. THE PROPERTIES WINDOW
      6. 10.6. LAYOUT
      7. 10.7. EXPORTING DIAGRAMS
      8. 10.8. CODE GENERATION AND REFACTORING
      9. 10.9. Drag-and-Drop Code Generation
        1. 10.9.1. IntelliSense Code Generation
        2. 10.9.2. Refactoring with the Class Designer
      10. 10.10. MODELING POWER TOYS FOR VISUAL STUDIO
        1. 10.10.1. Visualization Enhancements
        2. 10.10.2. Functionality Enhancements
      11. 10.11. SUMMARY
  9. III. Digging Deeper
    1. 11. Unit Testing
      1. 11.1. YOUR FIRST TEST CASE
        1. 11.1.1. Identifying Tests using Attributes
          1. 11.1.1.1. TestClass
          2. 11.1.1.2. TestMethod
        2. 11.1.2. Additional Test Attributes
          1. 11.1.2.1. Description
          2. 11.1.2.2. Owner
          3. 11.1.2.3. Priority
          4. 11.1.2.4. Test Categories
          5. 11.1.2.5. Work Items
          6. 11.1.2.6. Ignore
          7. 11.1.2.7. Timeout
      2. 11.2. ASSERTING THE FACTS
        1. 11.2.1. The Assert Class
        2. 11.2.2. The StringAssert Class
        3. 11.2.3. The CollectionAssert Class
        4. 11.2.4. The ExpectedException Attribute
      3. 11.3. INITIALIZING AND CLEANING UP
        1. 11.3.1. TestInitialize and TestCleanup
        2. 11.3.2. ClassInitialize and ClassCleanup
        3. 11.3.3. AssemblyInitialize and AssemblyCleanup
      4. 11.4. TESTING CONTEXT
        1. 11.4.1. Data
        2. 11.4.2. Writing Test Output
      5. 11.5. ADVANCED UNIT TESTING
        1. 11.5.1. Custom Properties
        2. 11.5.2. Testing Private Members
      6. 11.6. TESTING CODE CONTRACTS
      7. 11.7. MANAGING LARGE NUMBERS OF TESTS
      8. 11.8. SUMMARY
    2. 12. Documentation with XML Comments
      1. 12.1. INLINE COMMENTING
      2. 12.2. XML COMMENTS
        1. 12.2.1. Adding XML Comments
        2. 12.2.2. XML Comment Tags
          1. 12.2.2.1. The <c> Tag
          2. 12.2.2.2. The <code> Tag
          3. 12.2.2.3. The <example> Tag
          4. 12.2.2.4. The <exception> Tag
          5. 12.2.2.5. The <include> Tag
          6. 12.2.2.6. The <list> Tag
          7. 12.2.2.7. The <para> Tag
          8. 12.2.2.8. The <param> Tag
          9. 12.2.2.9. The <paramref> Tag
          10. 12.2.2.10. The <permission> Tag
          11. 12.2.2.11. The <remarks> Tag
          12. 12.2.2.12. The <returns> Tag
          13. 12.2.2.13. The <see> Tag
          14. 12.2.2.14. The <seealso> Tag
          15. 12.2.2.15. The <summary> Tag
          16. 12.2.2.16. The <typeparam> Tag
          17. 12.2.2.17. The <typeparamref> Tag
          18. 12.2.2.18. The <value> Tag
      3. 12.3. USING XML COMMENTS
        1. 12.3.1. IntelliSense Information
      4. 12.4. GENERATING DOCUMENTATION WITH GHOSTDOC
      5. 12.5. COMPILING DOCUMENTATION WITH SANDCASTLE
      6. 12.6. TASK LIST COMMENTS
      7. 12.7. SUMMARY
    3. 13. Code Consistency Tools
      1. 13.1. SOURCE CONTROL
        1. 13.1.1. Selecting a Source Control Repository
          1. 13.1.1.1. Environment Settings
          2. 13.1.1.2. Plug-In Settings
        2. 13.1.2. Accessing Source Control
          1. 13.1.2.1. Creating the Repository
          2. 13.1.2.2. Adding the Solution
          3. 13.1.2.3. Solution Explorer
          4. 13.1.2.4. Checking In and Out
          5. 13.1.2.5. Pending Changes
          6. 13.1.2.6. Merging Changes
          7. 13.1.2.7. History
          8. 13.1.2.8. Pinning
        3. 13.1.3. Offline Support for Source Control
      2. 13.2. CODING STANDARDS
        1. 13.2.1. Code Analysis with FxCop
        2. 13.2.2. Style Using StyleCop
        3. 13.2.3. Code Contracts
      3. 13.3. SUMMARY
    4. 14. Code Generation with T4
      1. 14.1. CREATING A T4 TEMPLATE
      2. 14.2. T4 BUILDING BLOCKS
        1. 14.2.1. Expression Blocks
        2. 14.2.2. Statement Blocks
        3. 14.2.3. Class Feature Blocks
      3. 14.3. HOW T4 WORKS
      4. 14.4. T4 DIRECTIVES
        1. 14.4.1. Template Directive
        2. 14.4.2. Output Directive
        3. 14.4.3. Assembly Directive
        4. 14.4.4. Import Directive
        5. 14.4.5. Include Directive
      5. 14.5. TROUBLESHOOTING
        1. 14.5.1. Design-Time Errors
        2. 14.5.2. Compiling Transformation Errors
        3. 14.5.3. Executing Transformation Errors
        4. 14.5.4. Generated Code Errors
      6. 14.6. GENERATING CODE ASSETS
      7. 14.7. PREPROCESSED TEXT TEMPLATES
        1. 14.7.1. Using Preprocessed Text Templates
        2. 14.7.2. Differences Between a Standard T4 Template
      8. 14.8. TIPS AND TRICKS
      9. 14.9. SUMMARY
    5. 15. Project and Item Templates
      1. 15.1. CREATING TEMPLATES
        1. 15.1.1. Item Template
        2. 15.1.2. Project Template
        3. 15.1.3. Template Structure
        4. 15.1.4. Template Parameters
        5. 15.1.5. Template Locations
      2. 15.2. EXTENDING TEMPLATES
        1. 15.2.1. Template Project Setup
        2. 15.2.2. IWizard
        3. 15.2.3. Generating the Extended Project Template
      3. 15.3. STARTER KITS
      4. 15.4. ONLINE TEMPLATES
      5. 15.5. SUMMARY
    6. 16. Language-Specific Features
      1. 16.1. HITTING A NAIL WITH THE RIGHT HAMMER
        1. 16.1.1. Imperative
        2. 16.1.2. Declarative
        3. 16.1.3. Dynamic
        4. 16.1.4. Functional
        5. 16.1.5. What's It All Mean?
      2. 16.2. A TALE OF TWO LANGUAGES
        1. 16.2.1. Compiling without PIAs
        2. 16.2.2. Generic Variance
          1. 16.2.2.1. Covariance
          2. 16.2.2.2. Contravariance
      3. 16.3. VISUAL BASIC
        1. 16.3.1. Lambdas and Anonymous Methods
        2. 16.3.2. Implicit Line Continuation
        3. 16.3.3. Automatic Properties with Initial Values
        4. 16.3.4. Collection Initializers and Array Literals
        5. 16.3.5. Nullable Optional Parameters
        6. 16.3.6. Visual Basic PowerPacks
      4. 16.4. C#
        1. 16.4.1. Late Binding with Dynamic Lookup
        2. 16.4.2. Named and Optional Parameters
      5. 16.5. F#
        1. 16.5.1. Your First F# Program
        2. 16.5.2. Exploring F# Language Features
      6. 16.6. SUMMARY
  10. IV. Rich Client Applications
    1. 17. Windows Forms Applications
      1. 17.1. GETTING STARTED
      2. 17.2. THE WINDOWS FORM
        1. 17.2.1. Appearance Properties
        2. 17.2.2. Layout Properties
        3. 17.2.3. Window Style Properties
      3. 17.3. FORM DESIGN PREFERENCES
      4. 17.4. ADDING AND POSITIONING CONTROLS
        1. 17.4.1. Vertically Aligning Text Controls
        2. 17.4.2. Automatic Positioning of Multiple Controls
        3. 17.4.3. Tab Order and Layering Controls
        4. 17.4.4. Locking Control Design
        5. 17.4.5. Setting Control Properties
        6. 17.4.6. Service-Based Components
        7. 17.4.7. Smart Tag Tasks
      5. 17.5. CONTAINER CONTROLS
        1. 17.5.1. Panel and Splitcontainer
        2. 17.5.2. FlowLayoutPanel
        3. 17.5.3. TableLayoutPanel
      6. 17.6. DOCKING AND ANCHORING CONTROLS
      7. 17.7. SUMMARY
    2. 18. Windows Presentation Foundation (WPF)
      1. 18.1. WHAT IS WPF?
      2. 18.2. GETTING STARTED WITH WPF
        1. 18.2.1. XAML Fundamentals
        2. 18.2.2. The WPF Controls
        3. 18.2.3. The WPF Layout Controls
      3. 18.3. THE WPF DESIGNER AND XAML EDITOR
        1. 18.3.1. Working with the XAML Editor
        2. 18.3.2. Working with the WPF Designer
        3. 18.3.3. The Properties Tool Window
        4. 18.3.4. Data Binding Features
      4. 18.4. STYLING YOUR APPLICATION
      5. 18.5. WINDOWS FORMS INTEROPERABILITY
        1. 18.5.1. Hosting a WPF Control in Windows Forms
        2. 18.5.2. Hosting a Windows Forms Control in WPF
      6. 18.6. DEBUGGING WITH THE WPF VISUALIZER
      7. 18.7. SUMMARY
    3. 19. Office Business Applications
      1. 19.1. CHOOSING AN OFFICE PROJECT TYPE
        1. 19.1.1. Document-Level Customizations
        2. 19.1.2. Application-Level Add-Ins
      2. 19.2. CREATING A DOCUMENT-LEVEL CUSTOMIZATION
        1. 19.2.1. Your First VSTO Project
        2. 19.2.2. Protecting the Document Design
        3. 19.2.3. Adding an Actions Pane
      3. 19.3. CREATING AN APPLICATION ADD-IN
        1. 19.3.1. Some Outlook Concepts
        2. 19.3.2. Creating an Outlook Form Region
      4. 19.4. DEBUGGING OFFICE APPLICATIONS
        1. 19.4.1. Unregistering an Add-In
        2. 19.4.2. Disabled Add-Ins
      5. 19.5. DEPLOYING OFFICE APPLICATIONS
      6. 19.6. SUMMARY
  11. V. Web Applications
    1. 20. ASP.NET Web Forms
      1. 20.1. WEB APPLICATION VS. WEB SITE PROJECTS
      2. 20.2. CREATING WEB PROJECTS
        1. 20.2.1. Creating a Web Site Project
        2. 20.2.2. Creating a Web Application Project
        3. 20.2.3. Other Web Projects
        4. 20.2.4. Starter Kits, Community Projects, and Open-Source Applications
      3. 20.3. DESIGNING WEB FORMS
        1. 20.3.1. The HTML Designer
        2. 20.3.2. Positioning Controls and HTML Elements
        3. 20.3.3. Formatting Controls and HTML Elements
        4. 20.3.4. CSS Tools
        5. 20.3.5. Validation Tools
      4. 20.4. WEB CONTROLS
        1. 20.4.1. Navigation Components
        2. 20.4.2. User Authentication
        3. 20.4.3. Data Components
          1. 20.4.3.1. Data Source Controls
          2. 20.4.3.2. Data View Controls
          3. 20.4.3.3. Data Helper Controls
        4. 20.4.4. Web Parts
      5. 20.5. MASTER PAGES
      6. 20.6. RICH CLIENT-SIDE DEVELOPMENT
        1. 20.6.1. Developing with JavaScript
        2. 20.6.2. Working with ASP.NET AJAX
        3. 20.6.3. Using AJAX Control Extenders
      7. 20.7. ASP.NET WEB SITE ADMINISTRATION
        1. 20.7.1. Security
        2. 20.7.2. Application Settings
        3. 20.7.3. ASP.NET Configuration in IIS
      8. 20.8. SUMMARY
    2. 21. ASP.NET MVC
      1. 21.1. MODEL VIEW CONTROLLER
      2. 21.2. GETTING STARTED WITH ASP.NET MVC
      3. 21.3. CHOOSING A MODEL
      4. 21.4. CONTROLLERS AND ACTION METHODS
      5. 21.5. RENDERING A UI WITH VIEWS
      6. 21.6. ADVANCED MVC
        1. 21.6.1. Routing
        2. 21.6.2. Action Method Parameters
          1. 21.6.2.1. Model Binders
        3. 21.6.3. Areas
        4. 21.6.4. Validation
        5. 21.6.5. Partial Views
        6. 21.6.6. Custom View Templates
        7. 21.6.7. Dynamic Data Templates
          1. 21.6.7.1. Display Templates
          2. 21.6.7.2. Edit Templates
        8. 21.6.8. jQuery
      7. 21.7. SUMMARY
    3. 22. Silverlight
      1. 22.1. WHAT IS SILVERLIGHT?
      2. 22.2. GETTING STARTED WITH SILVERLIGHT
      3. 22.3. NAVIGATION FRAMEWORK
      4. 22.4. THEMING
      5. 22.5. ENABLING RUNNING OUT OF BROWSER
      6. 22.6. SUMMARY
    4. 23. Dynamic Data
      1. 23.1. CREATING A DYNAMIC DATA WEB APPLICATION
        1. 23.1.1. Adding a Data Model
        2. 23.1.2. Exploring a Dynamic Data Application
      2. 23.2. CUSTOMIZING THE DATA MODEL
        1. 23.2.1. Scaffolding Individual Tables
        2. 23.2.2. Customizing Individual Data Fields
        3. 23.2.3. Adding Custom Validation Rules
        4. 23.2.4. Customizing the Display Format
      3. 23.3. CUSTOMIZING THE PRESENTATION
        1. 23.3.1. Page Templates
        2. 23.3.2. Field Templates
        3. 23.3.3. Entity Templates
        4. 23.3.4. Filter Templates
      4. 23.4. ENABLING DYNAMIC DATA FOR EXISTING PROJECTS
      5. 23.5. SUMMARY
    5. 24. SharePoint
      1. 24.1. PREPARING THE DEVELOPMENT ENVIRONMENT
        1. 24.1.1. Installing the Prerequisites
        2. 24.1.2. Installing SharePoint 2010
      2. 24.2. EXPLORING SHAREPOINT 2010
      3. 24.3. CREATING A SHAREPOINT PROJECT
      4. 24.4. BUILDING CUSTOM SHAREPOINT COMPONENTS
        1. 24.4.1. Developing Web Parts
        2. 24.4.2. Creating Content Types and Lists
        3. 24.4.3. Adding Event Receivers
      5. 24.5. Creating SharePoint Workflows
      6. 24.6. WORKING WITH FEATURES
      7. 24.7. PACKAGING AND DEPLOYMENT
      8. 24.8. SUMMARY
    6. 25. Windows Azure
      1. 25.1. THE WINDOWS AZURE PLATFORM
        1. 25.1.1. The Development Fabric
        2. 25.1.2. Table, Blob, and Queue Storage
        3. 25.1.3. Application Deployment
        4. 25.1.4. Tuning Your Application
      2. 25.2. SQL AZURE
      3. 25.3. APPFABRIC
        1. 25.3.1. Service Bus
        2. 25.3.2. Access Control Service
      4. 25.4. SUMMARY
  12. VI. Data
    1. 26. Visual Database Tools
      1. 26.1. DATABASE WINDOWS IN VISUAL STUDIO 2010
        1. 26.1.1. Server Explorer
          1. 26.1.1.1. Table Editing
          2. 26.1.1.2. Relationship Editing
          3. 26.1.1.3. Views
          4. 26.1.1.4. Stored Procedures and Functions
          5. 26.1.1.5. Database Diagrams
        2. 26.1.2. The Data Sources Window
      2. 26.2. EDITING DATA
      3. 26.3. PREVIEWING DATA
      4. 26.4. SUMMARY
    2. 27. DataSets and DataBinding
      1. 27.1. DATASETS OVERVIEW
        1. 27.1.1. Adding a Data Source
        2. 27.2.2. The DataSet Designer
      2. 27.2. BINDING DATA
        1. 27.3.1. BindingSource
        2. 27.3.2. BindingNavigator
        3. 27.3.3. Data Source Selections
        4. 27.3.4. Saving Changes
        5. 27.3.5. Inserting New Items
        6. 27.3.6. Validation
        7. 27.3.7. Customized DataSets
        8. 27.3.8. BindingSource Chains and the DataGridView
      3. 27.3. WORKING WITH DATA SOURCES
        1. 27.4.1. The Web Service Data Source
        2. 27.4.2. Browsing Data
      4. 27.4. SUMMARY
    3. 28. Language Integrated Queries (LINQ)
      1. 28.1. LINQ PROVIDERS
      2. 28.2. OLD-SCHOOL QUERIES
      3. 28.3. QUERY PIECES
        1. 28.3.1. From
        2. 28.3.2. Select
        3. 28.3.3. Where
        4. 28.3.4. Group By
        5. 28.3.5. Custom Projections
        6. 28.3.6. Order By
      4. 28.4. DEBUGGING AND EXECUTION
      5. 28.5. LINQ TO XML
        1. 28.5.1. VB XML Literals
        2. 28.5.2. Paste XML as XElement
        3. 28.5.3. Creating XML with LINQ
          1. 28.5.3.1. Expression Holes
      6. 28.6. QUERYING XML
      7. 28.7. SCHEMA SUPPORT
      8. 28.8. LINQ TO SQL
        1. 28.8.1. Creating the Object Model
        2. 28.8.2. Querying with LINQ to SQL
          1. 28.8.2.1. Inserts, Updates, and Deletes
          2. 28.8.2.2. Stored Procedures
        3. 28.8.3. Binding LINQ to SQL Objects
      9. 28.9. LINQPAD
      10. 28.10. SUMMARY
    4. 29. The ADO.NET Entity Framework
      1. 29.1. WHAT IS THE ENTITY FRAMEWORK?
        1. 29.1.1. Comparison with LINQ to SQL
        2. 29.1.2. Entity Framework Concepts
      2. 29.2. GETTING STARTED
      3. 29.3. CREATING AN ENTITY MODEL
        1. 29.3.1. The Entity Data Model Wizard
        2. 29.3.2. The Entity Framework Designer
        3. 29.3.3. Creating/Modifying Entities
          1. 29.3.3.1. Changing Property Names
          2. 29.3.3.2. Adding Properties to an Entity
          3. 29.3.3.3. Creating Complex Types
          4. 29.3.3.4. Creating an Entity
        4. 29.3.4. Creating/Modifying Entity Associations
        5. 29.3.5. Entity Inheritance
        6. 29.3.6. Validating an Entity Model
        7. 29.3.7. Updating an Entity Model with Database Changes
      4. 29.4. QUERYING THE ENTITY MODEL
        1. 29.4.1. LINQ to Entities Overview
        2. 29.4.2. Getting an Object Context
        3. 29.4.3. CRUD Operations
          1. 29.4.3.1. Data Retrieval
          2. 29.4.3.2. Saving Data
            1. 29.4.3.2.1. Update Operations
            2. 29.4.3.2.2. Create Operations
            3. 29.4.3.2.3. Delete Operations
        4. 29.4.4. Navigating Entity Associations
      5. 29.5. ADVANCED FUNCTIONALITY
        1. 29.5.1. Updating a Database from an Entity Model
        2. 29.5.2. Adding Business Logic to Entities
        3. 29.5.3. Plain Old CLR Objects (POCO)
      6. 29.6. SUMMARY
    5. 30. Reporting
      1. 30.1. GETTING STARTED WITH REPORTING
      2. 30.2. DESIGNING REPORTS
        1. 30.2.1. Defining Data Sources
        2. 30.2.2. Reporting Controls
          1. 30.2.2.1. Text Box
          2. 30.2.2.2. Line/Rectangle
          3. 30.2.2.3. Table
          4. 30.2.2.4. Matrix
          5. 30.2.2.5. List
          6. 30.2.2.6. Image
          7. 30.2.2.7. Subreport
          8. 30.2.2.8. Chart
          9. 30.2.2.9. Gauge
        3. 30.2.3. Expressions, Placeholders, and Aggregates
        4. 30.2.4. Custom Code
        5. 30.2.5. Report Layout
        6. 30.2.6. Subreports
        7. 30.2.7. The Report Wizard
      3. 30.3. RENDERING REPORTS
        1. 30.3.1. The Report Viewer Controls
        2. 30.3.2. Generating the Report
        3. 30.3.3. Rendering Reports to Different Formats
      4. 30.4. DEPLOYING REPORTS
      5. 30.5. SUMMARY
  13. VII. Application Services
    1. 31. Windows Communication Foundation (WCF)
      1. 31.1. WHAT IS WCF?
      2. 31.2. GETTING STARTED
      3. 31.3. DEFINING CONTRACTS
        1. 31.3.1. Creating the Service Contract
        2. 31.3.2. Creating the Data Contract
      4. 31.4. CONFIGURING WCF SERVICE ENDPOINTS
      5. 31.5. HOSTING WCF SERVICES
      6. 31.6. CONSUMING A WCF SERVICE
      7. 31.7. SUMMARY
    2. 32. Windows Workflow Foundation (WF)
      1. 32.1. WHAT IS WINDOWS WORKFLOW FOUNDATION?
      2. 32.2. WHY USE WINDOWS WORKFLOW?
      3. 32.3. WORKFLOW CONCEPTS
        1. 32.3.1. Activities
        2. 32.3.2. Control Flow Activities
        3. 32.3.3. Expressions
        4. 32.3.4. Workflow Run Time/Scheduler
        5. 32.3.5. Bookmarks
        6. 32.3.6. Persistence
        7. 32.3.7. Tracking
      4. 32.4. GETTING STARTED
      5. 32.5. THE WORKFLOW FOUNDATION DESIGNER
      6. 32.6. CREATING A WORKFLOW
        1. 32.6.1. Designing a Workflow
        2. 32.6.2. Writing Code Activities
        3. 32.6.3. Executing a Workflow
        4. 32.6.4. Debugging Workflows
        5. 32.6.5. Testing Workflows
      7. 32.7. HOSTING THE WORKFLOW DESIGNER
      8. 32.8. SUMMARY
    3. 33. Client Application Services
      1. 33.1. CLIENT SERVICES
      2. 33.2. ROLE AUTHORIZATION
      3. 33.3. USER AUTHENTICATION
      4. 33.4. SETTINGS
      5. 33.5. LOGIN FORM
      6. 33.6. OFFLINE SUPPORT
      7. 33.7. SUMMARY
    4. 34. Synchronization Services
      1. 34.1. OCCASIONALLY CONNECTED APPLICATIONS
      2. 34.2. SERVER DIRECT
      3. 34.3. GETTING STARTED WITH SYNCHRONIZATION SERVICES
      4. 34.4. SYNCHRONIZATION SERVICES OVER N-TIERS
      5. 34.5. BACKGROUND SYNCHRONIZATION
      6. 34.6. CLIENT CHANGES
      7. 34.7. SUMMARY
    5. 35. Wcf Ria Services
      1. 35.1. GETTING STARTED
      2. 35.2. Domain Services
      3. 35.3. DOMAIN OPERATIONS
        1. 35.3.1. Query Operations
        2. 35.3.2. Insert/Update/Delete Operations
        3. 35.3.3. Other Operation Types
      4. 35.4. CONSUMING A DOMAIN SERVICE IN SILVERLIGHT
      5. 35.5. SUMMARY
  14. VIII. Configuration and Resources
    1. 36. Configuration Files
      1. 36.1. .CONFIG FILES
        1. 36.1.1. Machine.Config
        2. 36.1.2. Web.Config
        3. 36.1.3. App.Config
        4. 36.1.4. Security.Config
        5. 36.1.5. ApplicationHost.Config
      2. 36.2. CONFIGURATION SCHEMA
        1. 36.2.1. Section: configurationSections
        2. 36.2.2. Section: startup
        3. 36.2.3. Section: runtime
        4. 36.2.4. Section: system.runtime.remoting
        5. 36.2.5. Section: system.net
        6. 36.2.6. Section: cryptographySettings
        7. 36.2.7. Section: system.diagnostics
        8. 36.2.8. Section: system.web
          1. 36.2.8.1. webServices
        9. 36.2.9. Section: compiler
        10. 36.2.10. Configuration Attributes
      3. 36.3. APPLICATION SETTINGS
        1. 36.3.1. Using appSettings
        2. 36.3.2. Project Settings
        3. 36.3.3. Dynamic Properties
        4. 36.3.4. Custom Configuration Sections
          1. 36.3.4.1. Automation Using SCDL
          2. 36.3.4.2. IntelliSense
      4. 36.4. USER SETTINGS
      5. 36.5. REFERENCED PROJECTS WITH SETTINGS
      6. 36.6. SUMMARY
    2. 37. Connection Strings
      1. 37.1. CONNECTION STRING WIZARD
      2. 37.2. SQL SERVER FORMAT
      3. 37.3. IN-CODE CONSTRUCTION
      4. 37.4. ENCRYPTING CONNECTION STRINGS
      5. 37.5. SUMMARY
    3. 38. Resource Files
      1. 38.1. WHAT ARE RESOURCES?
        1. 38.1.1. Text File Resources
        2. 38.1.2. Resx Resource Files
        3. 38.1.3. Binary Resources
        4. 38.1.4. Adding Resources
        5. 38.1.5. Embedding Files as Resources
        6. 38.1.6. Naming Resources
        7. 38.1.7. Accessing Resources
        8. 38.1.8. Designer Files
      2. 38.2. RESOURCING YOUR APPLICATION
        1. 38.2.1. Control Images
      3. 38.3. SATELLITE RESOURCES
        1. 38.3.1. Cultures
        2. 38.3.2. Creating Culture Resources
        3. 38.3.3. Loading Culture Resource Files
        4. 38.3.4. Satellite Culture Resources
      4. 38.4. ACCESSING SPECIFICS
        1. 38.4.1. Bitmap and Icon Loading
        2. 38.4.2. Cross-Assembly Referencing
        3. 38.4.3. ComponentResourceManager
      5. 38.5. CODING RESOURCE FILES
        1. 38.5.1. ResourceReader and ResourceWriter
        2. 38.5.2. ResxResourceReader and ResxResourceWriter
      6. 38.6. CUSTOM RESOURCES
      7. 38.7. SUMMARY
  15. IX. Debugging
    1. 39. Using the Debugging Windows
      1. 39.1. THE CODE WINDOW
        1. 39.1.1. Breakpoints
        2. 39.1.2. DataTips
      2. 39.2. THE BREAKPOINTS WINDOW
      3. 39.3. THE OUTPUT WINDOW
      4. 39.4. THE IMMEDIATE WINDOW
      5. 39.5. THE WATCH WINDOWS
        1. 39.5.1. QuickWatch
        2. 39.5.2. Watch Windows 1–4
        3. 39.5.3. Autos and Locals
      6. 39.6. THE CODE EXECUTION WINDOWS
        1. 39.6.1. Call Stack
        2. 39.6.2. Threads
        3. 39.6.3. Modules
        4. 39.6.4. Processes
      7. 39.7. THE MEMORY WINDOWS
        1. 39.7.1. Memory Windows 1–4
        2. 39.7.2. Disassembly
        3. 39.7.3. Registers
      8. 39.8. INTELLITRACE (ULTIMATE EDITION ONLY)
      9. 39.9. THE PARALLEL DEBUGGING WINDOWS
        1. 39.9.1. Parallel Stacks
        2. 39.9.2. Parallel Tasks
      10. 39.10. EXCEPTIONS
        1. 39.10.1. Customizing the Exception Assistant
        2. 39.10.2. Unwinding an Exception
      11. 39.11. SUMMARY
    2. 40. Debugging with Breakpoints
      1. 40.1. BREAKPOINTS
        1. 40.1.1. Setting a Breakpoint
          1. 40.1.1.1. Simple Breakpoints
          2. 40.1.1.2. Function Breakpoints
          3. 40.1.1.3. Address Breakpoint
        2. 40.1.2. Adding Break Conditions
          1. 40.1.2.1. Condition
          2. 40.1.2.2. Hit Count
          3. 40.1.2.3. Filter
        3. 40.1.3. Working with Breakpoints
          1. 40.1.3.1. Deleting Breakpoints
          2. 40.1.3.2. Disabling Breakpoints
          3. 40.1.3.3. Changing Breakpoint Locations
          4. 40.1.3.4. Labeling Breakpoints
          5. 40.1.3.5. Import and Export of Breakpoints
      2. 40.2. TRACEPOINTS
        1. 40.2.1. Creating a Tracepoint
        2. 40.2.2. Tracepoint Actions
          1. 40.2.2.1. Output Messages
          2. 40.2.2.2. Macros
      3. 40.3. EXECUTION CONTROL
        1. 40.3.1. Stepping Through Code
          1. 40.3.1.1. Stepping Over (F10)
          2. 40.3.1.2. Stepping Into (F11)
          3. 40.3.1.3. Stepping Out (Shift+F11)
          4. 40.3.1.4. Step Filtering
        2. 40.3.2. Moving the Execution Point
      4. 40.4. EDIT AND CONTINUE
        1. 40.4.1. Rude Edits
        2. 40.4.2. Stop Applying Changes
      5. 40.5. SUMMARY
    3. 41. DataTips, Debug Proxies, and Visualizers
      1. 41.1. DATATIPS
      2. 41.2. DEBUGGER ATTRIBUTES
        1. 41.2.1. DebuggerBrowsable
      3. 41.3. DEBUGGERDISPLAY
        1. 41.3.1. DebuggerHidden
        2. 41.3.2. DebuggerStepThrough
        3. 41.3.3. DebuggerNonUserCode
        4. 41.3.4. DebuggerStepperBoundary
      4. 41.4. TYPE PROXIES
        1. 41.4.1. Raw View
      5. 41.5. VISUALIZERS
      6. 41.6. ADVANCED TECHNIQUES
        1. 41.6.1. Saving Changes to Your Object
      7. 41.7. SUMMARY
    4. 42. Debugging Web Applications
      1. 42.1. DEBUGGING SERVER-SIDE ASP.NET CODE
        1. 42.1.1. Web Application Exceptions
        2. 42.1.2. Edit and Continue
        3. 42.1.3. Error Handling
          1. 42.1.3.1. Page-Level Errors
          2. 42.1.3.2. Application-Level Errors
      2. 42.2. DEBUGGING CLIENT-SIDE JAVASCRIPT
        1. 42.2.1. Setting Breakpoints in JavaScript Code
        2. 42.2.2. Debugging Dynamically Generated JavaScript
        3. 42.2.3. Debugging ASP.NET AJAX JavaScript
      3. 42.3. DEBUGGING SILVERLIGHT
      4. 42.4. TRACING
        1. 42.4.1. Page-Level Tracing
        2. 42.4.2. Application-Level Tracing
        3. 42.4.3. Trace Output
        4. 42.4.4. The Trace Viewer
        5. 42.4.5. Custom Trace Output
      5. 42.5. HEALTH MONITORING
      6. 42.6. SUMMARY
    5. 43. Advanced Debugging Techniques
      1. 43.1. START ACTIONS
      2. 43.2. DEBUGGING WITH CODE
        1. 43.2.1. The Debugger Class
        2. 43.2.2. The Debug and Trace Classes
      3. 43.3. DEBUGGING RUNNING APPLICATIONS
        1. 43.3.1. Attaching to a Windows Process
        2. 43.3.2. Attaching to a Web Application
        3. 43.3.3. Remote Debugging
      4. 43.4. .NET FRAMEWORK SOURCE
      5. 43.5. MULTI-THREADED AND PARALLELIZED APPLICATION DEBUGGING
      6. 43.6. DEBUGGING SQL SERVER STORED PROCEDURES
      7. 43.7. MIXED-MODE DEBUGGING
      8. 43.8. POST-MORTEM DEBUGGING
        1. 43.8.1. Generating Dump Files
        2. 43.8.2. Debugging Dump Files
      9. 43.9. SUMMARY
  16. X. Build and Deployment
    1. 44. Upgrading with Visual Studio 2010
      1. 44.1. UPGRADING FROM VISUAL STUDIO 2008
      2. 44.2. UPGRADING TO .NET FRAMEWORK 4.0
      3. 44.3. SUMMARY
    2. 45. Build Customization
      1. 45.1. GENERAL BUILD OPTIONS
      2. 45.2. MANUAL DEPENDENCIES
      3. 45.3. THE VISUAL BASIC COMPILE PAGE
        1. 45.3.1. Advanced Compiler Settings
          1. 45.3.1.1. Optimizations
          2. 45.3.1.2. Compilation Constants
        2. 45.3.2. Build Events
      4. 45.4. C# BUILD PAGES
      5. 45.5. MSBUILD
        1. 45.5.1. How Visual Studio Uses MSBuild
        2. 45.5.2. The MSBuild Schema
          1. 45.5.2.1. Items
          2. 45.5.2.2. Properties
          3. 45.5.2.3. Targets
          4. 45.5.2.4. Tasks
        3. 45.5.3. Assembly Versioning via MSBuild Tasks
      6. 45.6. SUMMARY
    3. 46. Assembly Versioning And Signing
      1. 46.1. ASSEMBLY NAMING
      2. 46.2. VERSION CONSISTENCY
      3. 46.3. STRONGLY NAMED ASSEMBLIES
      4. 46.4. THE GLOBAL ASSEMBLY CACHE
      5. 46.5. SIGNING AN ASSEMBLY
      6. 46.6. SUMMARY
    4. 47. Obfuscation, Application Monitoring, And Management
      1. 47.1. THE MSIL DISASSEMBLER
      2. 47.2. DECOMPILERS
      3. 47.3. OBFUSCATING YOUR CODE
        1. 47.3.1. Dotfuscator Software Services
        2. 47.3.2. Obfuscation Attributes
          1. 47.3.2.1. ObfuscationAssemblyAttribute
          2. 47.3.2.2. ObfuscationAttribute
        3. 47.3.3. Words of Caution
          1. 47.3.3.1. Reflection
          2. 47.3.3.2. Strongly Named Assemblies
          3. 47.3.3.3. Debugging with Delayed Signing
      4. 47.4. APPLICATION MONITORING AND MANAGEMENT
        1. 47.4.1. Tamper Defense
        2. 47.4.2. Runtime Intelligence Instrumentation and Analytics
        3. 47.4.3. Application Expiry
        4. 47.4.4. Application Usage Tracking
      5. 47.5. SUMMARY
    5. 48. Packaging And Deployment
      1. 48.1. WINDOWS INSTALLERS
        1. 48.1.1. Building an Installer
        2. 48.1.2. Customizing the Installer
        3. 48.1.3. Adding Custom Actions
        4. 48.1.4. The Service Installer
      2. 48.2. CLICKONCE
        1. 48.2.1. One Click to Deploy
        2. 48.2.2. One Click to Update
      3. 48.3. SUMMARY
    6. 49. Web Application Deployment
      1. 49.1. WEB SITE DEPLOYMENT
        1. 49.1.1. Publish Web Site
        2. 49.1.2. Copy Web Site
      2. 49.2. WEB APPLICATION DEPLOYMENT
        1. 49.2.1. Publishing a Web Application
        2. 49.2.2. Packaging a Web Application
          1. 49.2.2.1. Configuring Web Application Packages
          2. 49.2.2.2. Packaging SQL Server Data
        3. 49.2.3. web.config Transformations
      3. 49.3. WEB PROJECT INSTALLERS
      4. 49.4. THE WEB PLATFORM INSTALLER
        1. 49.4.1. Extending the Web Platform Installer
      5. 49.5. SUMMARY
  17. XI. Customizing and Extending Visual Studio
    1. 50. the automation model
      1. 50.1. VISUAL STUDIO EXTENSIBILITY OPTIONS
      2. 50.2. THE VISUAL STUDIO AUTOMATION MODEL
        1. 50.2.1. An Overview of the Automation Model
        2. 50.2.2. Solutions and Projects
        3. 50.2.3. Windows and Documents
        4. 50.2.4. Commands
        5. 50.2.5. Debugger
        6. 50.2.6. Events
      3. 50.3. Summary
    2. 51. Add-Ins
      1. 51.1. DEVELOPING AN ADD-IN
        1. 51.1.1. The Add-in Wizard
        2. 51.1.2. Project Structure
        3. 51.1.3. Testing Your Add-in
        4. 51.1.4. The .AddIn File
        5. 51.1.5. The Connect Class
        6. 51.1.6. Creating a Tool Window
        7. 51.1.7. Accessing the Visual Studio Automation Model
        8. 51.1.8. Handling Visual Studio Events
      2. 51.2. DEPLOYING ADD-INS
      3. 51.3. SUMMARY
    3. 52. macros
      1. 52.1. UNDERSTANDING MACROS
      2. 52.2. The Macro Explorer Tool Window
      3. 52.3. The Macros IDE
      4. 52.4. CREATING A MACRO
        1. 52.4.1. How to Record a Macro
        2. 52.4.2. How to Develop a Macro
      5. 52.5. RUNNING A MACRO
      6. 52.6. DEPLOYING MACROS
      7. 52.7. SUMMARY
    4. 53. managed extensibility framework (mef)
      1. 53.1. GETTING STARTED WITH MEF
        1. 53.1.1. Imports and Exports
        2. 53.1.2. Contracts
        3. 53.1.3. Catalogs
        4. 53.1.4. Advanced MEF
      2. 53.2. THE VISUAL STUDIO 2010 EDITOR
        1. 53.2.1. The Text Model Subsystem
        2. 53.2.2. The Text View Subsystem
        3. 53.2.3. The Classification Subsystem
        4. 53.2.4. The Operations Subsystem
      3. 53.3. EXTENDING THE EDITOR
        1. 53.3.1. Editor Extension Points
          1. 53.3.1.1. Content Types
          2. 53.3.1.2. Classification Types and Formats
          3. 53.3.1.3. Margins
          4. 53.3.1.4. Tags
          5. 53.3.1.5. Adornments
          6. 53.3.1.6. Mouse Processors
          7. 53.3.1.7. Drop Handlers
          8. 53.3.1.8. Editor Options
          9. 53.3.1.9. IntelliSense
        2. 53.3.2. Editor Services
        3. 53.3.3. The Check Comment Highlighter Extension
      4. 53.4. SUMMARY
  18. XII. Visual Studio Ultimate
    1. 54. Visual Studio Ultimate for Architects
      1. 54.1. MODELING PROJECTS
        1. 54.1.1. UML Diagrams
          1. 54.1.1.1. Use Case Diagrams
          2. 54.1.1.2. Activity Diagrams
          3. 54.1.1.3. Sequence Diagrams
          4. 54.1.1.4. Component Diagrams
          5. 54.1.1.5. Class Diagrams
        2. 54.1.2. UML Model Explorer
        3. 54.1.3. Using Layer Diagrams to Verify Application Architecture
        4. 54.1.4. Linking to Team Foundation Server
      2. 54.2. EXPLORING CODE
        1. 54.2.1. The Architecture Explorer
        2. 54.2.2. Dependency Graphs
        3. 54.2.3. Generate Sequence Diagram
      3. 54.3. SUMMARY
    2. 55. Visual Studio Ultimate for Developers
      1. 55.1. CODE METRICS
        1. 55.1.1. Lines of Code
        2. 55.1.2. Depth of Inheritance
        3. 55.1.3. Class Coupling
        4. 55.1.4. Cyclomatic Complexity
        5. 55.1.5. Maintainability Index
        6. 55.1.6. Excluded Code
      2. 55.2. MANAGED CODE ANALYSIS TOOL
      3. 55.3. C/C++ Code Analysis Tool
      4. 55.4. PROFILING TOOLS
        1. 55.4.1. Configuring Profiler Sessions
        2. 55.4.2. Reports
      5. 55.5. STAND-ALONE PROFILER
      6. 55.6. INTELLITRACE
      7. 55.7. DATABASE TOOLS
        1. 55.7.1. SQL-CLR Database Project
        2. 55.7.2. Offline Database Schema
        3. 55.7.3. Data Generation
        4. 55.7.4. Database Refactoring
        5. 55.7.5. Schema Compare
        6. 55.7.6. Data Compare
        7. 55.7.7. Static Analysis
        8. 55.7.8. Transact-SQL Editor
        9. 55.7.9. Best Practices
      8. 55.8. SUMMARY
    3. 56. Visual Studio Ultimate for Testers
      1. 56.1. AUTOMATED TESTS
        1. 56.1.1. Web Performance Tests
        2. 56.1.2. Load Tests
          1. 56.1.2.1. Test Load Agent
        3. 56.1.3. Database Unit Test
        4. 56.1.4. Coded UI Test
        5. 56.1.5. Generic Tests
        6. 56.1.6. Ordered Test
      2. 56.2. RELATING CODE AND TESTS
        1. 56.2.1. Code Coverage
        2. 56.2.2. Test Impact Analysis
      3. 56.3. VISUAL STUDIO TEST MANAGEMENT
      4. 56.4. TEST AND LAB MANAGER
        1. 56.4.1. Testing Center
        2. 56.4.2. Lab Center
      5. 56.5. SUMMARY
    4. 57. Team Foundation Server
      1. 57.1. TEAM PROJECT
      2. 57.2. PROCESS TEMPLATES
      3. 57.3. WORK ITEM TRACKING
        1. 57.3.1. Work Item Queries
        2. 57.3.2. Work Item Types
        3. 57.3.3. Adding Work Items
        4. 57.3.4. Work Item State
      4. 57.4. EXCEL AND PROJECT INTEGRATION
        1. 57.4.1. Excel
        2. 57.4.2. Project
      5. 57.5. VERSION CONTROL
        1. 57.5.1. Working from Solution Explorer
        2. 57.5.2. Check Out
        3. 57.5.3. Check In
        4. 57.5.4. Resolve Conflicts
        5. 57.5.5. Working Offline
        6. 57.5.6. Label
        7. 57.5.7. History
        8. 57.5.8. Annotate
        9. 57.5.9. Shelve
        10. 57.5.10. Branch
        11. 57.5.11. Merge
      6. 57.6. TEAM FOUNDATION BUILD
      7. 57.7. REPORTING AND BUSINESS INTELLIGENCE
      8. 57.8. TEAM PORTAL
        1. 57.8.1. Documents
        2. 57.8.2. Process Guidance
        3. 57.8.3. SharePoint Lists
        4. 57.8.4. Dashboards
      9. 57.9. TEAM SYSTEM WEB ACCESS
      10. 57.10. ADMINISTERING TFS
      11. 57.11. TFS AUTOMATION AND PROCESS CUSTOMIZATION
        1. 57.11.1. Work Item Types
        2. 57.11.2. Customizing the Process Template
      12. 57.12. SUMMARY