Professional ASP.NET 2.0 Special Edition

Book description

ASP.NET allows web sites to display unique pages for each visitor rather than show the same static HTML pages. The release of ASP.NET 2.0 is a revolutionary leap forward in the area of web application development. It brings with it a wealth of new and exciting built-in functions that reduce the amount of code you'll need to write for even the most common applications.

With more than 50 new server controls, the number of classes inside ASP.NET 2.0 has more than doubled, and in many cases, the changes in this new version are dramatic. This book will alert you to every new feature and capability that ASP.NET 2.0 provides so that you'll be prepared to put these new technologies into action. Greatly expanded from the original best-selling Professional ASP.NET 2.0, this new special edition adds hundreds of pages of new coverage of advanced and new techniques relating to data and data sources, the provider model, personalization, membership, role management, localization, configuration, migration, and Altas.

Bonus CD-ROM and DVD

  • The bonus DVD includes a 180-day trial of Microsoft Visual Studio 2005 Professional

  • The accompanying CD-ROM features a valuable library of chapters from other key Wrox books. It contains more than 1,000 pages from more than 15 Wrox ASP.NET 2.0, C# 2005, VB 2005, .NET 2.0, and SQL Server 2005 books.

  • What you will learn from this book

  • The idea of the server control and its pivotal role in ASP.NET development

  • How to create templated ASP.NET pages using the new master page feature

  • Techniques for debugging and handling errors

  • How to work with data from enterprise databases including SQL Server 2005 and Oracle(r)

  • Ways to package and deploy ASP.NET applications

  • How to retrieve, update, and delete data quickly and logically

  • How to implement the cultures and regions features to localize your web site into multiple languages for different visitors

  • How to use the new "Altas" add-in for ASP.NET 2.0 to add Ajax-style capabilities to your ASP.NET applications

  • An understanding of how to use and extend the new pro?vider model for accessing data stores, processes, and more

  • How to keep track of your application's performance and health with new monitoring tools

  • When and how to migrate your ASP.NET 1.x applications to 2.0

  • Who this book is for

    This book is for experienced programmers and developers who are looking to make the transition to ASP.NET 2.0.

    Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.

    This book is also available as part of the 5-book ASP.NET 2.0 Wrox Box (ISBN: 0-470-11757-5). This 5-book set includes:

  • Professional ASP.NET 2.0 Special Edition (ISBN: 0-470-04178-1)

  • ASP.NET 2.0 Website Programming: Problem - Design - Solution (ISBN: 0764584642)

  • Professional ASP.NET 2.0 Security, Membership, and Role Management (ISBN: 0764596985)

  • Professional ASP.NET 2.0 Server Control and Component Development (ISBN: 0471793507)

  • ASP.NET 2.0 MVP Hacks and Tips (ISBN: 0764597663)

  • CD-ROM with more than 1000 pages of bonus chapters from 15 other .NET 2.0 and SQL Server(TM) 2005 Wrox books

  • DVD with 180-day trial version of Microsoft(r) Visual Studio(r) 2005 Professional Edition

  • Table of contents

    1. Copyright
    2. About the Authors
      1. Bill Evjen
        1. Bill Evjen
        2. Scott Hanselman
        3. Farhan Muhammad
        4. S. Srinivasa Sivakumar
        5. Devin Rader
    3. Credits
    4. Acknowledgments
    5. Introduction
      1. What You Need for ASP.NET 2.0
      2. Who Should Read This Book?
      3. What This Book Covers
      4. Conventions
      5. Source Code
      6. Errata
      7. p2p.wrox.com
    6. 1. Hello ASP.NET 2.0!
      1. 1.1. A Little Bit of History
      2. 1.2. The Goals of ASP.NET 2.0
        1. 1.2.1. Developer Productivity
        2. 1.2.2. Administration and Management
        3. 1.2.3. Performance and Scalability
      3. 1.3. Additional New Features of ASP.NET 2.0
        1. 1.3.1. New Developer Infrastructures
          1. 1.3.1.1. Membership and Role Management
          2. 1.3.1.2. Personalization
          3. 1.3.1.3. The ASP.NET Portal Framework
          4. 1.3.1.4. Site Navigation
        2. 1.3.2. New Compilation System
        3. 1.3.3. Health Monitoring for Your ASP.NET Applications
        4. 1.3.4. Reading and Writing Configuration Settings
        5. 1.3.5. Localization
        6. 1.3.6. Additions to the Page Framework
          1. 1.3.6.1. Master Pages
          2. 1.3.6.2. Themes
        7. 1.3.7. New Objects for Accessing Data
        8. 1.3.8. New Server Controls
      4. 1.4. A New IDE for Building ASP.NET 2.0 Pages
      5. 1.5. Summary
    7. 2. Visual Studio 2005
      1. 2.1. The Versions of Visual Studio 2005
      2. 2.2. The Start Page
      3. 2.3. The Document Window
        1. 2.3.1. Views in the Document Window
        2. 2.3.2. The Tag Navigator
        3. 2.3.3. Page Tabs
        4. 2.3.4. Code Change Status Notifications
        5. 2.3.5. Error Notifications and Assistance
      4. 2.4. The Toolbox
      5. 2.5. The Solution Explorer
      6. 2.6. The Server Explorer
      7. 2.7. The Properties Window
      8. 2.8. Lost Windows
      9. 2.9. Other Common Visual Studio Activities
        1. 2.9.1. Creating New Projects
        2. 2.9.2. Making References to Other Objects
        3. 2.9.3. Using Smart Tags
        4. 2.9.4. Saving and Importing Visual Studio Settings
        5. 2.9.5. Validating Your HTML
        6. 2.9.6. Reaching Out to the Community
        7. 2.9.7. Working with Snippets
        8. 2.9.8. Working with Your Classes in a New Way
      10. 2.10. Summary
    8. 3. Application and Page Frameworks
      1. 3.1. Application Location Options
        1. 3.1.1. Built-In Web Server
        2. 3.1.2. IIS
        3. 3.1.3. FTP
        4. 3.1.4. Web Site Requiring FrontPage Extensions
      2. 3.2. The ASP.NET Page Structure Options
        1. 3.2.1. Inline Coding
        2. 3.2.2. New Code-Behind Model
      3. 3.3. ASP.NET 2.0 Page Directives
        1. 3.3.1. @Page
        2. 3.3.2. @Master
        3. 3.3.3. @Control
        4. 3.3.4. @Import
        5. 3.3.5. @Implements
        6. 3.3.6. @Register
        7. 3.3.7. @Assembly
        8. 3.3.8. @PreviousPageType
        9. 3.3.9. @MasterType
        10. 3.3.10. @OutputCache
        11. 3.3.11. @Reference
      4. 3.4. ASP.NET Page Events
      5. 3.5. Dealing with PostBacks
      6. 3.6. Cross-Page Posting
      7. 3.7. ASP.NET Application Folders
        1. 3.7.1. \App_Code Folder
        2. 3.7.2. App_Data Folder
        3. 3.7.3. \App_Themes Folder
        4. 3.7.4. \App_GlobalResources Folder
        5. 3.7.5. \App_LocalResources
        6. 3.7.6. \App_WebReferences
        7. 3.7.7. \App_Browsers
      8. 3.8. Compilation
      9. 3.9. Build Providers
        1. 3.9.1. Using the Built-in Build Providers
        2. 3.9.2. Using Your Own Build Providers
      10. 3.10. Global.asax
      11. 3.11. Summary
    9. 4. ASP.NET Server Controls and Client-Side Scripts
      1. 4.1. ASP.NET Server Controls
        1. 4.1.1. Types of Server Controls
        2. 4.1.2. Building with Server Controls
          1. 4.1.2.1. Working with Server Controls on a Design Surface
          2. 4.1.2.2. Coding Server Controls
        3. 4.1.3. Working with Server Control Events
      2. 4.2. Applying Styles to Server Controls
        1. 4.2.1. Examining the Controls' Common Properties
        2. 4.2.2. Changing Styles Using Cascading Style Sheets
          1. 4.2.2.1. Applying Styles Directly to HTML Elements
          2. 4.2.2.2. Working with the Visual Studio Style Builder
          3. 4.2.2.3. Creating External StyleSheets
          4. 4.2.2.4. Creating Internal Stylesheets
      3. 4.3. HTML Server Controls
        1. 4.3.1. Looking at the HtmlControl Base Class
        2. 4.3.2. Looking at the HtmlContainerControl Class
        3. 4.3.3. Looking at All the HTML Classes
        4. 4.3.4. Using the HtmlGenericControl Class
      4. 4.4. Manipulating Pages and Server Controls with JavaScript
        1. 4.4.1. Using Page.ClientScript.RegisterClientScriptBlock
        2. 4.4.2. Using Page.ClientScript.RegisterStartupScript
        3. 4.4.3. Using Page.ClientScript.RegisterClientScriptInclude
      5. 4.5. Client-Side Callback
        1. 4.5.1. Comparing a Typical Postback to a Callback
        2. 4.5.2. Using the Callback Feature—A Simple Approach
        3. 4.5.3. Using the Callback Feature with a Single Parameter
        4. 4.5.4. Using the Callback Feature—A More Complex Example
      6. 4.6. Summary
    10. 5. ASP.NET Web Server Controls
      1. 5.1. An Overview of Web Server Controls
      2. 5.2. The Label Server Control
      3. 5.3. The Literal Server Control
      4. 5.4. The TextBox Server Control
        1. 5.4.1. Using the Focus() Method
        2. 5.4.2. Using AutoPostBack
        3. 5.4.3. Using AutoCompleteType
      5. 5.5. The Button Server Control
        1. 5.5.1. The CausesValidation Property
        2. 5.5.2. The CommandName Property
        3. 5.5.3. Buttons That Work with Client-Side JavaScript
      6. 5.6. The LinkButton Server Control
      7. 5.7. The ImageButton Server Control
      8. 5.8. The HyperLink Server Control
      9. 5.9. The DropDownList Server Control
      10. 5.10. Visually Removing Items from a Collection
      11. 5.11. The ListBox Server Control
        1. 5.11.1. Allowing Users to Select Multiple Items
        2. 5.11.2. An Example of Using the ListBox Control
        3. 5.11.3. Adding Items to a Collection
      12. 5.12. The CheckBox Server Control
        1. 5.12.1. How to Determine Whether Check Boxes Are Checked
        2. 5.12.2. Assigning a Value to a Check Box
        3. 5.12.3. Aligning Text Around the Check Box
      13. 5.13. The CheckBoxList Server Control
      14. 5.14. The RadioButton Server Control
      15. 5.15. The RadioButtonList Server Control
      16. 5.16. Image Server Control
      17. 5.17. Table Server Control
      18. 5.18. The Calendar Server Control
        1. 5.18.1. Making a Date Selection from the Calendar Control
        2. 5.18.2. Choosing a Date Format to Output from the Calendar
        3. 5.18.3. Making Day, Week, or Month Selections
        4. 5.18.4. Working with Date Ranges
        5. 5.18.5. Modifying the Style and Behavior of Your Calendar
      19. 5.19. AdRotator Server Control
      20. 5.20. The Xml Server Control
      21. 5.21. Panel Server Control
      22. 5.22. The PlaceHolder Server Control
      23. 5.23. Summary
    11. 6. ASP.NET 2.0 Web Server Controls
      1. 6.1. BulletedList Server Control
      2. 6.2. HiddenField Server Control
      3. 6.3. FileUpload Server Control
        1. 6.3.1. Uploading Files Using the FileUpload Control
        2. 6.3.2. Giving ASP.NET Proper Permissions to Upload Files
        3. 6.3.3. Understanding File Size Limitations
        4. 6.3.4. Uploading Multiple Files from the Same Page
        5. 6.3.5. Placing the Uploaded File into a Stream Object
        6. 6.3.6. Moving File Contents from a Stream Object to a Byte Array
      4. 6.4. MultiView and View Server Controls
      5. 6.5. Wizard Server Control
        1. 6.5.1. Customizing the Side Navigation
        2. 6.5.2. Examining the AllowReturn Attribute
        3. 6.5.3. Working with the StepType Attribute
        4. 6.5.4. Adding a Header to the Wizard Control
        5. 6.5.5. Working with the Wizard's Navigation System
        6. 6.5.6. Utilizing Wizard Control Events
        7. 6.5.7. Using the Wizard Control to Show Form Elements
      6. 6.6. ImageMap Server Control
      7. 6.7. Summary
    12. 7. Validation Server Controls
      1. 7.1. Understanding Validation
      2. 7.2. Client-Side versus Server-Side Validation
      3. 7.3. ASP.NET Validation Server Controls
        1. 7.3.1. Validation Causes
        2. 7.3.2. The RequiredFieldValidator Server Control
          1. 7.3.2.1. Looking at the Results Generated
          2. 7.3.2.2. Using the InitialValue Property
          3. 7.3.2.3. Disallowing Blank Entries and Requiring Changes at the Same Time
          4. 7.3.2.4. Validating Drop-Down Lists with the RequiredFieldValidator Control
        3. 7.3.3. The CompareValidator Server Control
          1. 7.3.3.1. Validating against Other Controls
          2. 7.3.3.2. Validating against Constants
        4. 7.3.4. The RangeValidator Server Control
        5. 7.3.5. The RegularExpressionValidator Server Control
        6. 7.3.6. The CustomValidator Server Control
          1. 7.3.6.1. Using Client-Side Validation
          2. 7.3.6.2. Using Server-Side Validation
          3. 7.3.6.3. Using Client-Side and Server-Side Validation Together
        7. 7.3.7. The ValidationSummary Server Control
      4. 7.4. Turning Off Client-Side Validation
      5. 7.5. Using Images and Sounds for Error Notifications
      6. 7.6. Working with Validation Groups
      7. 7.7. Summary
    13. 8. Working with Master Pages
      1. 8.1. Why Do You Need Master Pages?
      2. 8.2. The Basics of Master Pages
      3. 8.3. Coding a Master Page
      4. 8.4. Coding a Content Page
        1. 8.4.1. Mixing Page Types and Languages
        2. 8.4.2. Specifying Which Master Page to Use
        3. 8.4.3. Working with the Page Title
        4. 8.4.4. Working with Controls and Properties from the Master Page
      5. 8.5. Specifying Default Content in the Master Page
      6. 8.6. Programmatically Assigning the Master Page
      7. 8.7. Nesting Master Pages
      8. 8.8. Container-Specific Master Pages
      9. 8.9. Event Ordering
      10. 8.10. Caching with Master Pages
      11. 8.11. Summary
    14. 9. Themes and Skins
      1. 9.1. Using ASP.NET 2.0 Themes
        1. 9.1.1. Applying a Theme to a Single ASP.NET Page
        2. 9.1.2. Applying a Theme to an Entire Application
        3. 9.1.3. Removing Themes from Server Controls
        4. 9.1.4. Removing Themes from Web Pages
        5. 9.1.5. Understanding Themes When Using Master Pages
        6. 9.1.6. Understanding the StyleSheetTheme Attribute
      2. 9.2. Creating Your Own Themes
        1. 9.2.1. Creating the Proper Folder Structure
        2. 9.2.2. Creating a Skin
        3. 9.2.3. Including CSS Files in Your Themes
        4. 9.2.4. Having Your Themes Include Images
      3. 9.3. Defining Multiple Skin Options
      4. 9.4. Programmatically Working with Themes
        1. 9.4.1. Assigning the Page's Theme Programmatically
        2. 9.4.2. Assigning a Control's SkinID Programmatically
      5. 9.5. Themes, Skins, and Custom Controls
      6. 9.6. Summary
    15. 10. Collections and Lists
      1. 10.1. Arrays
        1. 10.1.1. Resizing Arrays
        2. 10.1.2. Finding Objects in Arrays
          1. 10.1.2.1. Object Identity versus Object Equivalence
          2. 10.1.2.2. Overriding Equals
          3. 10.1.2.3. The Importance of Implementing IComparable
          4. 10.1.2.4. Using BinarySearch to Find Like Objects in Arrays
        3. 10.1.3. Sorting Objects in Arrays
      2. 10.2. The System.Collections Namespace
        1. 10.2.1. ArrayList
        2. 10.2.2. IEnumerable and IEnumerator
        3. 10.2.3. ICollection
        4. 10.2.4. Lists and IList
        5. 10.2.5. Dictionaries and IDictionary
        6. 10.2.6. Hashtables
        7. 10.2.7. An Important Point about Hashtables
        8. 10.2.8. SortedList
        9. 10.2.9. Queues and Stacks
      3. 10.3. Specialized Collections
        1. 10.3.1. HybridDictionary and ListDictionary
        2. 10.3.2. StringCollection, StringDictionary, and NameValueCollection
        3. 10.3.3. BitArray
      4. 10.4. The Microsoft.VisualBasic.Collection Class
      5. 10.5. Strongly Typed Collections
      6. 10.6. System.Collections.Generics
        1. 10.6.1. What Are Generics?
        2. 10.6.2. Generic Lists
        3. 10.6.3. Generic Dictionary
        4. 10.6.4. Other Generic Collections
      7. 10.7. Collection Changes from .NET 1.1 to .NET 2.0
      8. 10.8. Collections and List Guidance
      9. 10.9. Summary
    16. 11. Data Binding in ASP.NET 2.0
      1. 11.1. Data Source Controls
        1. 11.1.1. SqlDataSource Control
          1. 11.1.1.1. Configuring a Data Connection
          2. 11.1.1.2. Data Source Mode Property
          3. 11.1.1.3. Filtering Data Using SelectParameters
          4. 11.1.1.4. Conflict Detection Property
          5. 11.1.1.5. SqlDataSource Events
          6. 11.1.1.6. Using the Data Source Events to Handle Database Errors
          7. 11.1.1.7. Using the SqlDataSource with Oracle
        2. 11.1.2. AccessDataSource Control
        3. 11.1.3. XmlDataSource Control
        4. 11.1.4. ObjectDataSource Control
          1. 11.1.4.1. ObjectDataSource Events
        5. 11.1.5. SiteMapDataSource Control
      2. 11.2. Configuring Data Source Control Caching
      3. 11.3. Storing Connection Information
      4. 11.4. Using Bound List Controls with Data Source Controls
        1. 11.4.1. GridView
          1. 11.4.1.1. Displaying Data with the GridView
          2. 11.4.1.2. Using the EmptyDataText and EmptyDataTemplate Properties
          3. 11.4.1.3. Enabling GridView Column Sorting
          4. 11.4.1.4. Enabling the GridView Pager
          5. 11.4.1.5. Customizing Columns in the GridView
          6. 11.4.1.6. Using the TemplateField Column
        2. 11.4.2. Editing GridView Row Data
          1. 11.4.2.1. Handling Errors When Updating Data
          2. 11.4.2.2. Using the TemplateField's EditItemTemplate
        3. 11.4.3. Deleting GridView Data
          1. 11.4.3.1. Other GridView Formatting Features
        4. 11.4.4. DetailsView
          1. 11.4.4.1. Customizing the DetailsView Display
          2. 11.4.4.2. Using the DetailsView and GridView Together
          3. 11.4.4.3. SelectParameters versus FilterParameters
        5. 11.4.5. Inserting, Updating, and Deleting Data Using DetailsView
        6. 11.4.6. FormView
      5. 11.5. Other Databound Controls
        1. 11.5.1. DropDownList, ListBox, RadioButtonList, and CheckBoxList
        2. 11.5.2. TreeView
        3. 11.5.3. Ad Rotator
        4. 11.5.4. Menu
      6. 11.6. Inline Data-Binding Syntax
        1. 11.6.1. Data-Binding Syntax Changes
        2. 11.6.2. XML Data Binding
      7. 11.7. Expressions and Expression Builders
      8. 11.8. Summary
    17. 12. Data Management with ADO.NET
      1. 12.1. Basic ADO.NET Features
        1. 12.1.1. Common ADO.NET Tasks
          1. 12.1.1.1. Selecting Data
          2. 12.1.1.2. Inserting Data
          3. 12.1.1.3. Updating Data
          4. 12.1.1.4. Deleting Data
        2. 12.1.2. Basic ADO.NET Namespaces and Classes
        3. 12.1.3. Using the Connection Object
        4. 12.1.4. Using the Command Object
        5. 12.1.5. Using the DataReader Object
        6. 12.1.6. Using Data Adapter
        7. 12.1.7. Using Parameters
        8. 12.1.8. Understanding DataSet and DataTable
          1. 12.1.8.1. Deciding When to Use a DataSet
          2. 12.1.8.2. The Typed DataSet
        9. 12.1.9. Using Oracle as Your Database with ASP.NET 2.0
      2. 12.2. Newly Added Features in ADO.NET 2.0
        1. 12.2.1. Bulk Loading of Data from a Variety of Sources
          1. 12.2.1.1. SqlBulkCopy class
            1. 12.2.1.1.1. Properties
            2. 12.2.1.1.2. Constructors
            3. 12.2.1.1.3. Methods
          2. 12.2.1.2. SqlBulkCopyColumnMapping
            1. 12.2.1.2.1. Properties
            2. 12.2.1.2.2. Constructors
            3. 12.2.1.2.3. Method
          3. 12.2.1.3. A Bulk Copy Example Using a Data Reader
          4. 12.2.1.4. SqlRowsCopied Event
        2. 12.2.2. Batch Processing Multiple Updates
        3. 12.2.3. Multiple Active Result Sets
        4. 12.2.4. Asynchronous Command Execution
          1. 12.2.4.1. Asynchronous Methods of the SqlCommand Class
          2. 12.2.4.2. IAsyncResult Interface
          3. 12.2.4.3. AsyncCallback
          4. 12.2.4.4. WaitHandle Class
          5. 12.2.4.5. Approaches of Asynchronous Processing in ADO.NET
            1. 12.2.4.5.1. The Poll Approach
            2. 12.2.4.5.2. The Wait Approach
            3. 12.2.4.5.3. Using Multiple Wait Handles
            4. 12.2.4.5.4. The Callback Approach
          6. 12.2.4.6. Canceling Asynchronous Processing
        5. 12.2.5. Asynchronous Connections
      3. 12.3. Summary
    18. 13. Working with XML
      1. 13.1. The Basics of XML
        1. 13.1.1. The XML InfoSet
        2. 13.1.2. XSD-XML Schema Definition
        3. 13.1.3. Editing XML and XML Schema in Visual Studio 2005
      2. 13.2. XmlReader and XmlWriter
        1. 13.2.1. Using Schema with XmlTextReader
        2. 13.2.2. Including NameTable Optimization
        3. 13.2.3. Retrieving .NET CLR Types from XML
        4. 13.2.4. ReadSubtree and XmlSerialization
        5. 13.2.5. Creating XML with XmlWriter
        6. 13.2.6. Improvements for XmlReader and XmlWriter in 2.0
      3. 13.3. XmlDocument and XPathDocument
        1. 13.3.1. Problems with the DOM
        2. 13.3.2. XPath, the XPathDocument, and XmlDocument
      4. 13.4. DataSets
        1. 13.4.1. Persisting DataSets to XML
        2. 13.4.2. XmlDataDocument
      5. 13.5. The XmlDataSource Control
      6. 13.6. XSLT
        1. 13.6.1. XslCompiledTransform
        2. 13.6.2. XML Web Server Control
        3. 13.6.3. XSLT Debugging
      7. 13.7. Databases and XML
        1. 13.7.1. FOR XML AUTO
        2. 13.7.2. SQL Server 2005 and the XML Data Type
          1. 13.7.2.1. Generating Custom XML from SQL 2005
          2. 13.7.2.2. Adding a Column of Untyped XML
          3. 13.7.2.3. Adding an XML Schema
          4. 13.7.2.4. Associating a XML Typed Column with a Schema
          5. 13.7.2.5. Inserting XML Data into an XML Column
      8. 13.8. Summary
    19. 14. Introduction to the Provider Model
      1. 14.1. Understanding the Provider
      2. 14.2. Bringing a Provider Model to ASP.NET 2.0
        1. 14.2.1. Setting Up Your Provider to Work with Microsoft SQL Server 7.0, 2000, or 2005
          1. 14.2.1.1. The ASP.NET SQL Server Setup Wizard Command-Line Tool
          2. 14.2.1.2. The ASP.NET SQL Server Setup Wizard GUI Tool
          3. 14.2.1.3. Connecting Your Default Provider to a New SQL Server Instance
        2. 14.2.2. Membership Providers
          1. 14.2.2.1. System.Web.Security.SqlMembershipProvider
          2. 14.2.2.2. System.Web.Security.ActiveDirectoryMembershipProvider
        3. 14.2.3. Role Providers
          1. 14.2.3.1. System.Web.Security.SqlRoleProvider
          2. 14.2.3.2. System.Web.Security.WindowsTokenRoleProvider
          3. 14.2.3.3. System.Web.Security.AuthorizationStoreRoleProvider
        4. 14.2.4. The Personalization Provider
        5. 14.2.5. The SiteMap Provider
        6. 14.2.6. SessionState Providers
          1. 14.2.6.1. System.Web.SessionState.InProcSessionStateStore
          2. 14.2.6.2. System.Web.SessionState.OutOfProcSessionStateStore
          3. 14.2.6.3. System.Web.SessionState.SqlSessionStateStore
        7. 14.2.7. Web Event Providers
          1. 14.2.7.1. System.Web.Management.EventLogWebEventProvider
          2. 14.2.7.2. System.Web.Management.SimpleMailWebEventProvider
          3. 14.2.7.3. System.Web.Management.TemplatedMailWebEventProvider
          4. 14.2.7.4. System.Web.Management.SqlWebEventProvider
          5. 14.2.7.5. System.Web.Management.TraceWebEventProvider
          6. 14.2.7.6. System.Web.Management.WmiWebEventProvider
        8. 14.2.8. Configuration Providers
          1. 14.2.8.1. System.Configuration.DpapiProtectedConfigurationProvider
          2. 14.2.8.2. System.Configuration.RsaProtectedConfigurationProvider
        9. 14.2.9. The WebParts Provider
      3. 14.3. Configuring Providers
      4. 14.4. Summary
    20. 15. Extending the Provider Model
      1. 15.1. Providers Are One Tier in a Larger Architecture
      2. 15.2. Modifying through Attribute-Based Programming
        1. 15.2.1. Simpler Password Structures through the SqlMembershipProvider
        2. 15.2.2. Stronger Password Structures through the SqlMembershipProvider
      3. 15.3. Examining ProviderBase
      4. 15.4. Building Your Own Providers
        1. 15.4.1. Creating the CustomProviders Application
        2. 15.4.2. Constructing the Class Skeleton Required
        3. 15.4.3. Creating the XML User Data Store
        4. 15.4.4. Defining the Provider Instance in the web.config File
        5. 15.4.5. Not Implementing Methods and Properties of the MembershipProvider Class
        6. 15.4.6. Implementing Methods and Properties of the MembershipProvider Class
          1. 15.4.6.1. The ApplicationName Property
          2. 15.4.6.2. Extending the Initialize() Method
          3. 15.4.6.3. Validating Users
          4. 15.4.6.4. Building the ReadUserFile() Method
        7. 15.4.7. Using the XmlMembershipProvider for User Login
      5. 15.5. Extending Pre-Existing Providers
        1. 15.5.1. Limiting Role Capabilities with a New LimitedSqlRoleProvider Provider
          1. 15.5.1.1. The CreateRole() Method
          2. 15.5.1.2. The DeleteRole() Method
          3. 15.5.1.3. The AddUsersToRoles() Method
        2. 15.5.2. Using the New LimitedSqlRoleProvider Provider
      6. 15.6. Summary
    21. 16. Site Navigation
      1. 16.1. XML-Based Site Maps
      2. 16.2. SiteMapPath Server Control
        1. 16.2.1. The PathSeparator Property
        2. 16.2.2. The PathDirection Property
        3. 16.2.3. The ParentLevelsDisplayed Property
        4. 16.2.4. The ShowToolTips Property
        5. 16.2.5. The SiteMapPath Control's Child Elements
      3. 16.3. TreeView Server Control
        1. 16.3.1. Identifying the TreeView Control's Built-In Styles
        2. 16.3.2. Examining the Parts of the TreeView Control
        3. 16.3.3. Binding the TreeView Control to an XML File
        4. 16.3.4. Selecting Multiple Options in a TreeView
        5. 16.3.5. Specifying Custom Icons in the TreeView Control
        6. 16.3.6. Specifying Lines Used to Connect Nodes
        7. 16.3.7. Working with the TreeView Control Programmatically
          1. 16.3.7.1. Expanding and Collapsing Nodes Programmatically
          2. 16.3.7.2. Adding Nodes
      4. 16.4. Menu Server Control
        1. 16.4.1. Applying Different Styles to the Menu Control
          1. 16.4.1.1. Using a Predefined Style
          2. 16.4.1.2. Changing the Style for Static Items
          3. 16.4.1.3. Adding Styles to Dynamic Items
          4. 16.4.1.4. Changing the Layout of the Menu Items
          5. 16.4.1.5. Changing the Pop-Out Symbol
          6. 16.4.1.6. Separating Menu Items with Images
        2. 16.4.2. Menu Events
        3. 16.4.3. Binding the Menu Control to an XML File
      5. 16.5. SiteMap Data Provider
        1. 16.5.1. ShowStartingNode
        2. 16.5.2. StartFromCurrentNode
        3. 16.5.3. StartingNodeOffset
        4. 16.5.4. StartingNodeUrl
      6. 16.6. SiteMap API
      7. 16.7. URL Mapping
      8. 16.8. Sitemap Localization
        1. 16.8.1. Structuring the Web.sitemap File for Localization
        2. 16.8.2. Making Modifications to the Web.config File
        3. 16.8.3. Creating Assembly Resource (.resx) Files
        4. 16.8.4. Testing the Results
      9. 16.9. Security Trimming
        1. 16.9.1. Setting Up Role Management for Administrators
        2. 16.9.2. Setting Up the Administrators' Section
        3. 16.9.3. Enabling Security Trimming
      10. 16.10. Nesting SiteMap Files
      11. 16.11. Summary
    22. 17. Personalization
      1. 17.1. The Personalization Model
      2. 17.2. Creating Personalization Properties
        1. 17.2.1. Adding a Simple Personalization Property
        2. 17.2.2. Using Personalization Properties
        3. 17.2.3. Adding a Group of Personalization Properties
        4. 17.2.4. Using Grouped Personalization Properties
        5. 17.2.5. Defining Types for Personalization Properties
        6. 17.2.6. Using Custom Types
        7. 17.2.7. Providing Default Values
        8. 17.2.8. Making Personalization Properties Read-Only
      3. 17.3. Anonymous Personalization
        1. 17.3.1. Enabling Anonymous Identification of the End User
          1. 17.3.1.1. Changing the Name of the Cookie for Anonymous Identification
          2. 17.3.1.2. Changing the Length of Time the Cookie Is Stored
          3. 17.3.1.3. Changing How the Identifiers Are Stored
          4. 17.3.1.4. Looking at the Anonymous Identifiers Stored
        2. 17.3.2. Working with Anonymous Identification Events
        3. 17.3.3. Anonymous Options for Personalization Properties
        4. 17.3.4. Warnings about Anonymous User Profile Storage
      4. 17.4. Programmatic Access to Personalization
        1. 17.4.1. Migrating Anonymous Users
        2. 17.4.2. Personalizing Profiles
        3. 17.4.3. Determining Whether to Continue with Automatic Saves
      5. 17.5. Personalization Providers
        1. 17.5.1. Working with SQL Server Express Edition
        2. 17.5.2. Working with Microsoft's SQL Server 7.0/2000/2005
          1. 17.5.2.1. Using SQL Scripts to Install Personalization Features
          2. 17.5.2.2. Configuring the Provider for SQL Server 2000
        3. 17.5.3. Using Multiple Providers
      6. 17.6. Managing Application Profiles
        1. 17.6.1. Properties of the ProfileManger Class
        2. 17.6.2. Methods of the ProfileManager Class
        3. 17.6.3. Building the ProfileManager.aspx Page
        4. 17.6.4. Examining the Code of ProfileManager.aspx Page
        5. 17.6.5. Running the ProfileManager.aspx Page
      7. 17.7. Summary
    23. 18. Membership and Role Management
      1. 18.1. Authentication
      2. 18.2. Authorization
      3. 18.3. ASP.NET 2.0 Authentication
        1. 18.3.1. Setting Up Your Web Site for Membership
          1. 18.3.1.1. Adding an <authentication> Element to the web.config File
          2. 18.3.1.2. Adding a <forms> Element to the web.config File
        2. 18.3.2. Adding Users
          1. 18.3.2.1. Using the CreateUserWizard Server Control
          2. 18.3.2.2. Seeing Where Users Are Stored
          3. 18.3.2.3. Working with the CreateUserWizard Control
          4. 18.3.2.4. Incorporating Personalization Properties in the Registration Process
          5. 18.3.2.5. Adding Users Programmatically
          6. 18.3.2.6. Changing How Users Register with Your Application
        3. 18.3.3. Asking for Credentials
          1. 18.3.3.1. Turning Off Access with the <authorization> Element
          2. 18.3.3.2. Using the Login Server Control
          3. 18.3.3.3. Logging In Users Programmatically
          4. 18.3.3.4. Locking Out Users Who Provide Bad Passwords
        4. 18.3.4. Working with Authenticated Users
          1. 18.3.4.1. The LoginStatus Server Control
          2. 18.3.4.2. The LoginName Server Control
        5. 18.3.5. Showing the Number of Users Online
        6. 18.3.6. Dealing with Passwords
          1. 18.3.6.1. The ChangePassword Server Control
          2. 18.3.6.2. The PasswordRecovery Server Control
          3. 18.3.6.3. Generating Random Passwords
      4. 18.4. ASP.NET 2.0 Authorization
        1. 18.4.1. Using the LoginView Server Control
        2. 18.4.2. Setting Up Your Web Site for Role Management
          1. 18.4.2.1. Making Changes to the <roleManager> Section
          2. 18.4.2.2. Making Changes to the web.config File
        3. 18.4.3. Adding and Retrieving Application Roles
        4. 18.4.4. Deleting Roles
        5. 18.4.5. Adding Users to Roles
        6. 18.4.6. Getting All the Users of a Particular Role
        7. 18.4.7. Getting All the Roles of a Particular User
        8. 18.4.8. Removing Users from Roles
        9. 18.4.9. Checking Users in Roles
        10. 18.4.10. Understanding How Roles Are Cached
      5. 18.5. Using the Web Site Administration Tool
      6. 18.6. Public Methods of the Membership API
      7. 18.7. Public Methods of the Roles API
      8. 18.8. Summary
    24. 19. Portal Frameworks and Web Parts
      1. 19.1. Introducing Web Parts
      2. 19.2. Building Dynamic and Modular Web Sites
        1. 19.2.1. Introducing the WebPartManager Control
        2. 19.2.2. Working with Zone Layouts
        3. 19.2.3. Understanding the WebPartZone Control
          1. 19.2.3.1. The LayoutOrientation Attribute
          2. 19.2.3.2. The ZoneTemplate Element
          3. 19.2.3.3. Default Web Part Control Elements
        4. 19.2.4. Allowing the User to Change the Mode of the Page
          1. 19.2.4.1. Adding Web Parts to a Page
          2. 19.2.4.2. Moving Web Parts
          3. 19.2.4.3. Modifying the Web Part Settings
          4. 19.2.4.4. Connecting Web Parts
        5. 19.2.5. Modifying Zones
          1. 19.2.5.1. Turning Off the Capability for Modifications in a Zone
          2. 19.2.5.2. Adding Controls through Other Means
          3. 19.2.5.3. Web Part Verbs
      3. 19.3. Working with Classes in the Portal Framework
      4. 19.4. Creating Custom Web Parts
      5. 19.5. Connecting Web Parts
        1. 19.5.1. Building the Provider Web Part
        2. 19.5.2. Building the Consumer Web Part
        3. 19.5.3. Connecting Web Parts on an ASP.NET Page
        4. 19.5.4. Understanding the Difficulties in Dealing with Master Pages When Connecting Web Parts
      6. 19.6. Summary
    25. 20. Security
      1. 20.1. Authentication and Authorization
      2. 20.2. Applying Authentication Measures
        1. 20.2.1. The <authentication> Node
        2. 20.2.2. Windows-Based Authentication
          1. 20.2.2.1. Creating Users
          2. 20.2.2.2. Authenticating and Authorizing a User
          3. 20.2.2.3. Looking Closely at the <allow> and <deny> Nodes
          4. 20.2.2.4. Authenticating and Authorizing a Group
          5. 20.2.2.5. Authenticating and Authorizing an HTTP Transmission Method
          6. 20.2.2.6. Integrated Windows Authentication
          7. 20.2.2.7. Basic Authentication
          8. 20.2.2.8. Digest Authentication
        3. 20.2.3. Forms-Based Authentication
          1. 20.2.3.1. Authenticating Against Values Contained in the web.config File
          2. 20.2.3.2. Authenticating Against Values in a Database
          3. 20.2.3.3. Using the Login Control with Forms Authentication
          4. 20.2.3.4. Looking Closely at the FormsAuthentication Class
        4. 20.2.4. Passport Authentication
      3. 20.3. Authenticating Specific Files and Folders
      4. 20.4. Programmatic Authorization
        1. 20.4.1. Working with User.Identity
        2. 20.4.2. Working with User.IsInRole()
        3. 20.4.3. Pulling More Information with WindowsIdentity
      5. 20.5. Identity and Impersonation
      6. 20.6. Securing Through IIS
        1. 20.6.1. IP Address and Domain Name Restrictions
        2. 20.6.2. Working with File Extensions
        3. 20.6.3. Using the New ASP.NET MMC Snap-In
      7. 20.7. Summary
    26. 21. State Management
      1. 21.1. What Are Your Choices?
      2. 21.2. Understanding the Session Object in ASP.NET 2.0
        1. 21.2.1. Sessions and the Event Model
        2. 21.2.2. Configuring Session State Management
        3. 21.2.3. In-Process Session State
          1. 21.2.3.1. InProc Gotchas
          2. 21.2.3.2. Web Gardening
          3. 21.2.3.3. Storing Data in the Session Object
          4. 21.2.3.4. Making Sessions Transparent
          5. 21.2.3.5. Advanced Techniques for Optimizing Session Performance
        4. 21.2.4. Out-of-Process Session State
        5. 21.2.5. SQL-Backed Session State
        6. 21.2.6. Extending Session State with Other Providers
        7. 21.2.7. Cookieless Session State
        8. 21.2.8. Choosing the Correct Way to Maintain State
      3. 21.3. The Application Object
      4. 21.4. QueryStrings
      5. 21.5. Cookies
      6. 21.6. PostBacks and Cross-Page PostBacks
      7. 21.7. Hidden Fields, ViewState, and ControlState
      8. 21.8. Using HttpContext.Current.Items for Very Short-Term Storage
      9. 21.9. Summary
    27. 22. Caching
      1. 22.1. Caching
        1. 22.1.1. Output Caching
          1. 22.1.1.1. VaryByParam
          2. 22.1.1.2. VaryByControl
          3. 22.1.1.3. VaryByCustom
        2. 22.1.2. Partial Page (UserControl) Caching
        3. 22.1.3. Post-Cache Substitution
        4. 22.1.4. HttpCachePolicy and Client-Side Caching
      2. 22.2. Caching Programmatically
        1. 22.2.1. Data Caching Using the Cache Object
        2. 22.2.2. Cache Dependencies
          1. 22.2.2.1. The AggregateCacheDependency Class
          2. 22.2.2.2. The Unsealed CacheDependency Class
          3. 22.2.2.3. Creating Custom Cache Dependencies
      3. 22.3. Using the SQL Server Cache Dependency
        1. 22.3.1. Enabling Databases for SQL Server Cache Invalidation
        2. 22.3.2. Enabling Tables for SQL Server Cache Invalidation
        3. 22.3.3. Looking at SQL Server
        4. 22.3.4. Looking at the Tables That Are Enabled
        5. 22.3.5. Disabling a Table for SQL Server Cache Invalidation
        6. 22.3.6. Disabling a Database for SQL Server Cache Invalidation
        7. 22.3.7. SQL Server 2005 Cache Invalidation
      4. 22.4. Configuring Your ASP.NET Application
      5. 22.5. Testing SQL Server Cache Invalidation
        1. 22.5.1. Adding More Than One Table to a Page
        2. 22.5.2. Attaching SQL Server Cache Dependencies to the Request Object
        3. 22.5.3. Attaching SQL Server Cache Dependencies to the Cache Object
      6. 22.6. Summary
    28. 23. Debugging and Error Handling Techniques
      1. 23.1. Design-Time Support
        1. 23.1.1. Syntax Notifications
        2. 23.1.2. Immediate and Command Window
        3. 23.1.3. Task List
      2. 23.2. Tracing
        1. 23.2.1. System.Diagnostics.Trace and ASP.NET's Page.Trace
        2. 23.2.2. Page-Level Tracing
        3. 23.2.3. Application Tracing
        4. 23.2.4. Viewing Trace Data
        5. 23.2.5. Tracing from Components
        6. 23.2.6. Trace Forwarding
        7. 23.2.7. TraceListeners
          1. 23.2.7.1. The New ASP.NET WebPageTraceListener
          2. 23.2.7.2. EventLogTraceListener
          3. 23.2.7.3. Other New Listeners
        8. 23.2.8. Diagnostic Switches
          1. 23.2.8.1. BooleanSwitch
          2. 23.2.8.2. TraceSwitch
          3. 23.2.8.3. SourceSwitch
        9. 23.2.9. Web Events
      3. 23.3. Debugging
        1. 23.3.1. What's Required
          1. 23.3.1.1. Debug Versus Release
          2. 23.3.1.2. Debugging and the JIT Dialog
        2. 23.3.2. IIS versus ASP.NET Development Server
        3. 23.3.3. Starting a Debugging Session
          1. 23.3.3.1. F5 Debugging
          2. 23.3.3.2. Attaching to a Process
          3. 23.3.3.3. Simpler Remote Debugging
          4. 23.3.3.4. Debugging Running Windows XP Service Pack 2
        4. 23.3.4. New Tools to Help You with Debugging
          1. 23.3.4.1. Debugger Datatips
          2. 23.3.4.2. Data Visualizers
          3. 23.3.4.3. Error Notifications
          4. 23.3.4.4. Edit and Continue (Lack of) Support, or Edit and Refresh
          5. 23.3.4.5. Just My Code Debugging
          6. 23.3.4.6. Tracepoints
        5. 23.3.5. SQL Stored Proc Debugging
      4. 23.4. Exception and Error Handling
        1. 23.4.1. Handling Exceptions on a Page
        2. 23.4.2. Handling Application Exceptions
        3. 23.4.3. Http Status Codes
      5. 23.5. Summary
    29. 24. File I/O and Streams
      1. 24.1. Working with Drives, Directories, and Files
        1. 24.1.1. The DriveInfo Class
        2. 24.1.2. The Directory and DirectoryInfo Classes
          1. 24.1.2.1. Using Relative Paths and Setting and Getting the Current Directory
        3. 24.1.3. File and FileInfo
        4. 24.1.4. Working with Paths
        5. 24.1.5. File and Directory Properties, Attributes, and Access Control Lists
          1. 24.1.5.1. Properties and Attributes
          2. 24.1.5.2. Access Control Lists
      2. 24.2. Reading and Writing Files
        1. 24.2.1. Streams
        2. 24.2.2. Readers and Writers
          1. 24.2.2.1. Encodings
          2. 24.2.2.2. I/O Shortcuts
        3. 24.2.3. Compressing Streams
          1. 24.2.3.1. GZip Compression
          2. 24.2.3.2. Deflate Compression
          3. 24.2.3.3. Compressing HTTP Output
      3. 24.3. Working with Serial Ports
      4. 24.4. Network Communications
        1. 24.4.1. WebRequest and WebResponse
          1. 24.4.1.1. HttpWebRequest and HttpWebResponse
          2. 24.4.1.2. FtpWebRequest and FtpWebResponse
          3. 24.4.1.3. FileWebRequest and FileWebResponse
        2. 24.4.2. Sending Mail
      5. 24.5. Summary
    30. 25. User and Server Controls
      1. 25.1. User Controls
        1. 25.1.1. Creating User Controls
        2. 25.1.2. Interacting with User Controls
        3. 25.1.3. Loading User Controls Dynamically
      2. 25.2. Server Controls
        1. 25.2.1. Project Setup
        2. 25.2.2. Control Attributes
          1. 25.2.2.1. Class Attributes
          2. 25.2.2.2. Property/Event Attributes
        3. 25.2.3. Control Rendering
          1. 25.2.3.1. The Page Event Lifecycle
          2. 25.2.3.2. Rendering Services
        4. 25.2.4. Adding Tag Attributes
        5. 25.2.5. Styling HTML
        6. 25.2.6. Themes and Skins
        7. 25.2.7. Adding Client-Side Features
          1. 25.2.7.1. Emitting Client-Side Script
          2. 25.2.7.2. Accessing Embedded Resources
          3. 25.2.7.3. Asynchronous Callbacks
        8. 25.2.8. Detecting and Reacting to Browser Capabilities
          1. 25.2.8.1. browser files
          2. 25.2.8.2. Accessing Browser Capability Information
        9. 25.2.9. Using ViewState
          1. 25.2.9.1. Types and ViewState
          2. 25.2.9.2. Control State
        10. 25.2.10. Raising PostBack Events
        11. 25.2.11. Handling PostBack Data
        12. 25.2.12. Composite Controls
          1. 25.2.12.1. Exposing Child Control Properties
        13. 25.2.13. Templated Controls
        14. 25.2.14. Creating Control Design-Time Experiences
          1. 25.2.14.1. Type Converters
          2. 25.2.14.2. Custom Type Converters
          3. 25.2.14.3. Control Designers
            1. 25.2.14.3.1. Design-Time Regions
            2. 25.2.14.3.2. Designer Actions
          4. 25.2.14.4. UI Type Editors
      3. 25.3. Summary
    31. 26. Modules and Handlers
      1. 26.1. Processing HTTP Requests
      2. 26.2. HttpModules
        1. 26.2.1. Modifying HTTP Output
        2. 26.2.2. URL Rewriting
          1. 26.2.2.1. IIS WildCards
            1. 26.2.2.1.1. Adding Wildcards in IIS 5
            2. 26.2.2.1.2. Adding Wildcards in IIS 6
        3. 26.2.3. HttpHandlers
          1. 26.2.3.1. Generic Handlers
        4. 26.2.4. Mapping a File Extension in IIS
      3. 26.3. Summary
    32. 27. Using Business Objects
      1. 27.1. Using Business Objects in ASP.NET 2.0
        1. 27.1.1. Creating Precompiled .NET Business Objects
        2. 27.1.2. Using Precompiled Business Objects in Your ASP.NET Applications
      2. 27.2. COM Interop: Using COM within .NET
        1. 27.2.1. The Runtime Callable Wrapper
        2. 27.2.2. Using COM Objects in ASP.NET Code
          1. 27.2.2.1. Accessing Tricky COM Members in C#
          2. 27.2.2.2. Releasing COM Objects Manually
        3. 27.2.3. Error Handling
        4. 27.2.4. Deploying COM Components with .NET Applications
          1. 27.2.4.1. Private Assemblies
          2. 27.2.4.2. Public Assemblies
      3. 27.3. Using .NET from Unmanaged Code
        1. 27.3.1. The COM-Callable Wrapper
        2. 27.3.2. Using .NET Components within COM Objects
        3. 27.3.3. Early versus Late Binding
        4. 27.3.4. Error Handling
        5. 27.3.5. Deploying .NET Components with COM Applications
          1. 27.3.5.1. Private Assemblies
          2. 27.3.5.2. Public Assemblies
      4. 27.4. Summary
    33. 28. Mobile Development
      1. 28.1. Creating a NEW ASP.NET Mobile Web Application
        1. 28.1.1. Views of an ASP.NET Mobile Web Form
          1. 28.1.1.1. Design View
          2. 28.1.1.2. HTML View
          3. 28.1.1.3. Code View
          4. 28.1.1.4. Event Handling with Mobile Web Controls
      2. 28.2. Using Control Containers
        1. 28.2.1. The Form Control
        2. 28.2.2. The Panel Control
      3. 28.3. Using StyleSheets
        1. 28.3.1. Creating a Single StyleSheet Control for All Mobile Web Forms
      4. 28.4. Using ASP.NET Mobile Controls
        1. 28.4.1. The AdRotator Control
        2. 28.4.2. The Calendar Control
        3. 28.4.3. The Label Control
        4. 28.4.4. The TextBox Control
        5. 28.4.5. The TextView Control
        6. 28.4.6. The Command Control
        7. 28.4.7. The Image Control
        8. 28.4.8. The PhoneCall Control
        9. 28.4.9. The Link Control
        10. 28.4.10. The List Control
        11. 28.4.11. The ObjectList Control
        12. 28.4.12. The SelectionList Control
      5. 28.5. Using Validation Controls
      6. 28.6. Navigating between Mobile Web Forms
      7. 28.7. The Mobile Web User Control
      8. 28.8. Using Emulators
      9. 28.9. Understanding Devices Filters
      10. 28.10. State Management in ASP.NET Mobile Applications
        1. 28.10.1. ViewState in Mobile Web Controls
        2. 28.10.2. Managing Session State
        3. 28.10.3. Hidden Fields
      11. 28.11. Summary
    34. 29. Building and Consuming XML Web Services
      1. 29.1. Communication Between Disparate Systems
      2. 29.2. Building a Simple XML Web Service
        1. 29.2.1. The WebService Page Directive
        2. 29.2.2. Looking at the Base Web Service Class File
        3. 29.2.3. Exposing Custom Datasets as SOAP
          1. 29.2.3.1. The WebService Attribute
          2. 29.2.3.2. The WebMethod Attribute
        4. 29.2.4. The XML Web Service Interface
      3. 29.3. Consuming a Simple XML Web Service
        1. 29.3.1. Adding a Web Reference
        2. 29.3.2. Invoking the Web Service from the Client Application
      4. 29.4. Transport Protocols for Web Services
        1. 29.4.1. HTTP-GET
        2. 29.4.2. HTTP-POST
        3. 29.4.3. SOAP
      5. 29.5. Overloading WebMethods
      6. 29.6. Caching Web Service Responses
      7. 29.7. SOAP Headers
        1. 29.7.1. Building a Web Service with SOAP Headers
        2. 29.7.2. Consuming a Web Service Using SOAP Headers
        3. 29.7.3. Requesting Web Services Using SOAP 1.2
      8. 29.8. Consuming Web Services Asynchronously
      9. 29.9. Summary
    35. 30. Localization
      1. 30.1. Cultures and Regions
        1. 30.1.1. Understanding Culture Types
        2. 30.1.2. The ASP.NET Threads
        3. 30.1.3. Server-Side Culture Declarations
        4. 30.1.4. Client-Side Culture Declarations
        5. 30.1.5. Translating Values and Behaviors
          1. 30.1.5.1. Understanding Differences in Dates
          2. 30.1.5.2. Understanding Differences in Numbers and Currencies
          3. 30.1.5.3. Understanding Differences in Sorting Strings
      2. 30.2. ASP.NET 2.0 Resource Files
        1. 30.2.1. Making Use of Local Resources
          1. 30.2.1.1. Adding Another Language Resource File
          2. 30.2.1.2. Finalizing the Building of the Default.aspx Page
          3. 30.2.1.3. Neutral Cultures Are Generally More Preferred
        2. 30.2.2. Making Use of Global Resources
      3. 30.3. Looking at the Resource Editor
      4. 30.4. Summary
    36. 31. Configuration
      1. 31.1. Configuration Overview
        1. 31.1.1. Server Configuration Files
        2. 31.1.2. Application Configuration File
        3. 31.1.3. How Configuration Settings Are Applied
        4. 31.1.4. Detecting Configuration File Changes
        5. 31.1.5. Configuration File Format
          1. 31.1.5.1. Config Sections
      2. 31.2. Common Configuration Settings
        1. 31.2.1. Connecting Strings
        2. 31.2.2. Configuring Session State
          1. 31.2.2.1. Web Farm Support
            1. 31.2.2.1.1. State Server
            2. 31.2.2.1.2. SQL Server
            3. 31.2.2.1.3. Custom State Store
        3. 31.2.3. Compilation Configuration
        4. 31.2.4. Browser Capabilities
        5. 31.2.5. Custom Errors
        6. 31.2.6. Authentication
          1. 31.2.6.1. Windows Authentication
          2. 31.2.6.2. Passport Authentication
          3. 31.2.6.3. Forms Authentication
        7. 31.2.7. Anonymous Identity
        8. 31.2.8. Authorization
          1. 31.2.8.1. URL Authorization
          2. 31.2.8.2. File Authorization
        9. 31.2.9. Locking-Down Configuration Settings
        10. 31.2.10. ASP.NET Page Configuration
          1. 31.2.10.1. Include Files
        11. 31.2.11. Configuring ASP.NET Runtime Settings
          1. 31.2.11.1. Enabling and Disabling ASP.NET Applications
          2. 31.2.11.2. Fully Qualified Redirect URLs
          3. 31.2.11.3. Request Time-Out
          4. 31.2.11.4. Maximum Request Length
          5. 31.2.11.5. Buffer Uploads
          6. 31.2.11.6. Thread Management
          7. 31.2.11.7. Application Queue Length
          8. 31.2.11.8. Managing Queue Limits
          9. 31.2.11.9. Output Caching
        12. 31.2.12. Configuring the ASP.NET Worker Process
          1. 31.2.12.1. Running Multiple Web Sites with Multiple Versions of Framework
        13. 31.2.13. Storing Application-Specific Settings
        14. 31.2.14. Programming Configuration Files
          1. 31.2.14.1. Enumerating Connection Strings
          2. 31.2.14.2. Manipulating a machine.config File
          3. 31.2.14.3. Manipulating machine.config from Remote Servers
        15. 31.2.15. Protecting Configuration Settings
        16. 31.2.16. Editing Configuration Files
      3. 31.3. Summary
    37. 32. Instrumentation
      1. 32.1. Working with the Event Log
        1. 32.1.1. Reading from the Event Log
        2. 32.1.2. Writing to the Event Logs
      2. 32.2. Using Performance Counters
        1. 32.2.1. Viewing Performance Counters through an Administration Tool
        2. 32.2.2. Building a Browser-Based Administrative Tool
      3. 32.3. Application Tracing
      4. 32.4. Understanding Health Monitoring
        1. 32.4.1. The Health Monitoring Provider Model
        2. 32.4.2. Health Monitoring Configuration
          1. 32.4.2.1. <eventMappings>
          2. 32.4.2.2. <providers>
          3. 32.4.2.3. <rules>
          4. 32.4.2.4. <profiles>
        3. 32.4.3. Writing Events via Configuration: Running the Example
        4. 32.4.4. Routing Events to SQL Server
        5. 32.4.5. Buffering Web Events
        6. 32.4.6. E-mailing Web Events
          1. 32.4.6.1. Using the SimpleMailProvider
          2. 32.4.6.2. Using the TemplatedMailWebEventProvider
      5. 32.5. Summary
    38. 33. Administration and Management
      1. 33.1. The ASP.NET Web Site Administration Tool
        1. 33.1.1. The Home Tab
        2. 33.1.2. The Security Tab
          1. 33.1.2.1. The Security Setup Wizard
          2. 33.1.2.2. Creating New Users
          3. 33.1.2.3. Managing Users
          4. 33.1.2.4. Managing Roles
          5. 33.1.2.5. Managing Access Rules
        3. 33.1.3. The Application Tab
          1. 33.1.3.1. Managing Application Settings
          2. 33.1.3.2. Managing SMTP Configuration
          3. 33.1.3.3. Managing Tracing and Debugging Information
          4. 33.1.3.4. Taking an Application Offline
        4. 33.1.4. The Provider Tab
      2. 33.2. The MMC ASP.NET Snap-In
        1. 33.2.1. General
        2. 33.2.2. Custom Errors
        3. 33.2.3. Authorization
        4. 33.2.4. Authentication
        5. 33.2.5. Application
        6. 33.2.6. State Management
        7. 33.2.7. Locations
      3. 33.3. Summary
    39. 34. Packaging and Deploying ASP.NET Applications
      1. 34.1. Deployment Pieces
        1. 34.1.1. Steps to Take before Deploying
      2. 34.2. Methods of Deploying Web Applications
        1. 34.2.1. Using XCopy
        2. 34.2.2. Using the VS Copy Web Site Option
        3. 34.2.3. Deploying a Precompiled Web Application
        4. 34.2.4. Building an Installer Program
          1. 34.2.4.1. The Windows Installer
          2. 34.2.4.2. Actions of the Windows Installer
          3. 34.2.4.3. Creating a Basic Installation Program
          4. 34.2.4.4. Installing the Application
          5. 34.2.4.5. Uninstalling the Application
      3. 34.3. Looking More Closely at Installer Options
        1. 34.3.1. Working with the Deployment Project Properties
          1. 34.3.1.1. The Output File Name
          2. 34.3.1.2. Package Files
          3. 34.3.1.3. Installation URL
          4. 34.3.1.4. Compression
          5. 34.3.1.5. CAB Size
          6. 34.3.1.6. Additional Properties
        2. 34.3.2. The File System Editor
          1. 34.3.2.1. Adding Items to the Output
        3. 34.3.3. Creating a Desktop Shortcut to the Web Application
        4. 34.3.4. The Registry Editor
        5. 34.3.5. The File Types Editor
        6. 34.3.6. The User Interface Editor
          1. 34.3.6.1. Adding Dialogs to the Installation Process
          2. 34.3.6.2. Changing the Order in Which the Dialogs Appear in the Process
        7. 34.3.7. The Custom Actions Editor
        8. 34.3.8. The Launch Conditions Editor
      4. 34.4. Summary
    40. A. Visual Basic 8.0 and C# 2.0 Language Enhancements
      1. A.1. Overview of the Changes
      2. A.2. Generics
        1. A.2.1. Generic Collections
        2. A.2.2. Generic Methods
      3. A.3. Iterators
      4. A.4. Anonymous Methods
      5. A.5. Operator Overloading
      6. A.6. Global Namespace Qualifiers
      7. A.7. Partial Classes
      8. A.8. Visual Basic XML Documentation
      9. A.9. Static Classes
      10. A.10. Property Accessors
      11. A.11. Unsigned Types
      12. A.12. Default Instances
      13. A.13. New Visual Basic Keywords
        1. A.13.1. Continue
        2. A.13.2. Using
        3. A.13.3. My
        4. A.13.4. IsNot
        5. A.13.5. TryCast
    41. B. Migrating ASP.NET 1.x Projects
      1. B.1. Migrating Is Not Difficult
        1. B.1.1. Running Multiple Versions of the Framework Side by Side
        2. B.1.2. Upgrading Your ASP.NET 1.x Applications to 2.0
      2. B.2. When Mixing Versions—Forms Authentication
      3. B.3. Upgrading—New Reserved Folders
      4. B.4. ASP.NET 2.0 Pages Come As XHTML
      5. B.5. No Hard-Coded .js Files in ASP.NET 2.0
      6. B.6. Converting ASP.NET 1.x Applications in Visual Studio 2005
    42. C. Using Atlas
      1. C.1. Looking at the XmlHttpRequest Object
      2. C.2. Installing Atlas
      3. C.3. Atlas—A Basic Example
      4. C.4. Summary
    43. D. ASP.NET Online Resources
      1. D.1. Author Blogs
      2. D.2. ASP.NET Influential Blogs
      3. D.3. Web Sites
    44. Praise for Professional ASP.NET 2.0
      1. What's on the DVD
        1. What's on the DVD
        2. What's on the CD
          1. From Other Wrox ASP.NET 2.0 Books
          2. From Wrox SQL Server 2005 Books
          3. From Wrox VB 2005, C# 2005, and .NET 2.0 Books

    Product information

    • Title: Professional ASP.NET 2.0 Special Edition
    • Author(s): Bill Evjen, Scott Hanselman, Devin Rader, Farhan Muhammad, S. Srinivasa Sivakumar
    • Release date: October 2006
    • Publisher(s): Wrox
    • ISBN: 9780470041789