Illustrated ASP.NET 2.0 Table of Contents

Alex Homer and Dave Sussman, published by Addison Wesley Professional


1 - New Features of ASP.NET 2.0

         Templates for a Consistent Look and Feel

         Styles for Controls

         Securing Your Site

         Personalizing Your Site

         Creating Portals

         Using Images on Your Site

         Using Data on Your Site

         Data Binding

         Binding to Objects

         Binding to Configuration Settings


         Changes from version 1.x

         Obtaining and installing .NET 2.0

         Running Side-by-Side with 1.x

         Security Accounts

         Upgrading and Deploying Applications

         Installing the Samples


2 - Is It Really This Easy?

         A Day in the Life of a Developer

         Using a Data Source Control and GridView to Display Data

         Enabling Sorting and Paging for the Rows

         Providing a Row Editing Feature

         Adding Filtering to Select Specific Sets of Rows

         Displaying Single Rows in a Form for Editing

         Working with Data Exposed Through a Business Object

         Caching the Data to Reduce Database Access

         Using a Master Page to Give a Consistent Look and Feel

         Adding a Menu and Other Navigation Features


3 - Databases and Connections

         Auto-attached Databases

         User Instancing

         Connection String Placement

         Visual Web Developer and Visual Studio 2005 Database Explorer

         Data Source Controls

         The SqlDataSource Control

         Displaying Data with a GridView control

         Filtering and Selecting Data

         Filter and Select Parameters

         Selecting Data Using the Configuration Wizard

         Selecting Data Declaratively

         Selecting Data in Code

         Updating Data

         Data Display and Edit Controls

         Data Binding to Data Source Controls

         Customizing the GridView Control

         Adding a Custom Pager

         Defining Columns

         Command Columns

         Template Columns

         Styling Columns

         Custom GridView Commands

         Putting it all together a customized GridView control

         The DetailsView Control

         Defining Fields

         Using a stand-alone DetailsView

         Custom DetailsView Commands

         The FormView Control


4 - Two and Three Tier Architecture

         Business Layers, Data Layers, or both?

         Object Data Mappers

         Creating a Data Layer

         Creating the Data Class

         Creating Helper Classes

         The ObjectDataSource Control

         Using the ObjectDataSource Control

         Getting the Identity Value of an Inserted Row

         Typed Data Sets

         Using Typed DataSets with the ObjectDataSource Control


5 - DataSource Control Events

         Modifying Parameters before Command Execution

         Synchronizing DataSource Controls after Updates

         Accessing Output Parameters after Command Execution

         Output Parameters with the ObjectDataSource Control

         Custom Paging with an ObjectDataSource

         GridView and DetailsView Events

         Handling GridView Update Events

         Handling Data Editing Conflicts

         Asynchronous Pages and Data

         Asynchronous Pages

         Asynchronous Tasks

         SQL Server 2005 User Defined Types

         UDT Attributes

         Serializable Types


         Parsing Values

         Outputting Values

         Handling Null Values

         Adding Properties

         Additions to UDTs

         Creating a UDT in Visual Studio 2005

         Deploying the UDT to SQL Server 2005

         Creating Tables with UDT Columns

         Inserting Data into UDT columns

         Accessing UDT Columns

         Further Reading


6 - Application, Session, HttpContext, and ViewState Caching

         Using the Application State

         Using the Session State

         Disabling Session State

         Configuring Session State

         Using HttpContext

         Using ViewState

         Output Caching

         Configuring Output Caching

         Caching Portions of a Page

         Control Caching

         Post Cache Substitution

         Disk Caching

         Configuring Caching

         Data Caching

         SQL Cache Invalidation with SQL Server 2005

         Cache Invalidation Setup

         Cache Invalidation Setup for Non-Administrative Connections

         Query Syntax

         Using SQL Server 2005 Cache Invalidation

         Caching Using Business and Data Layers

         SQL Cache Invalidation with SQL Server 2000

         Enabling SQL Server 2000 for Cache Invalidation

         Enabling a Database for Cache Invalidation

         Enabling a Table for Cache Invalidation

         Configuring SQL Server 2000 Cache Invalidation in ASP.NET

         Using SQL Server 2000 Cache Invalidation in ASP.NET

         How Polling Works

         The Cache API

         Getting Items in the Cache to Expire

         Making Cache Entries Depend Upon External Factors

         Multiple Cache Dependencies

         Being Notified When an Item in the Cache Expires

         When to use Caching


7 - Working with XML in Visual Studio 2005

         Databinding and Displaying XML Data

         Manually Binding to XML Files

         Using the XmlDataSource Control

         Specifying TreeView Bindings

         Binding Expressions

         Applying Selections

         Using Binding Expressions and Selections

         Transforming XML

         Debugging XSLT in Visual Studio 2005

         Transforming with the XmlDataSource Control

         Transforming in Code

         Working with Raw XML

         Streaming XML

         Reading XML Documents

         Writing XML Documents

         Working with XML Documents in memory

         Using the XPathDocument Object

         Using the XmlDocument Object

         Using the XmlDataDocument Object

         Converting between XML and Relational Data

         Working with SQL Server 2005 XML Data

         Creating XML Columns

         Creating Schemas

         Inserting Data into XML Columns

         Accessing XML Columns from ADO.NET


8 - Building Interactive Web Forms

         The ASP.NET Control Set

         Standard HTML Server Controls

         Text and Image Display Controls

         Example: Using the Panel Control

         Example: Using the Table Control and Associated Header Cells

         Hyperlink and Navigation Controls

         Example: The ImageMap Control

         Example: The TreeView Control

         Input and Form Controls

         Example: The FileUpload Control

         Example: The Validation Controls

         List and Grid Controls

         Example: The BulletedList Control

         Example: The ListBox and DropDownList Controls

         Rich Controls

         Example: The Calendar Control

         Example: The Wizard Control

         Container Controls

         Mobile Controls

         Layout Approaches Tables and Style Sheets

         Choosing the Appropriate Control Type

         The ASP.NET Page and Postback Model

         Differentiating between Postback and Navigate

         The ASP.NET Event-driven Architecture

         Request and Response Information


9 - The Page Class and Master Pages

         The HttpRequest, HttpResponse, HttpServerUtility, and HttpContext Classes

         Using the HttpRequest Class

         Using the HttpResponse Class

         Adding Cookies to the Response

         Using the HttpServerUtility Class

         Using the HttpContext Class

         The ASP.NET Page Class

         General Methods and Properties of the Page Class

         Specifying the Client Target

         Managing ViewState

         Handling Errors

         Translating URLs

         Accessing the Intrinsic ASP.NET Objects

         Finding Controls on a Page

         Searching for Specific Control Types

         The FindControl Method

         Writing Trace Information

         Skins and Themes


         Page-Level Events

         Client-side Scripting Features

         Creating Client-side Script Sections

         Asynchronous Page Callbacks

         Implementing the Server-side Callback Code

         Sub-classing the Page Object

         Working with Master Pages

         Simple Master Pages

         Nested Master Pages

         Dynamically Setting the Master Page

         Accessing Values and Controls in the Master Page


10 - Web Site Navigation Techniques

         Simple Navigation with Hyperlinks

         The ASP.NET Hyperlink Control

         Using Access Keys

         Other Controls that Create Hyperlinks

         Navigation with LinkButton Controls

         Using the LinkButton Control

         The CommandName and CommandArgument Properties

         Initiating Client-side Events

         Navigation through Browser Redirection

         Redirection with Client-side Script

         Navigation through Server-side Redirection

         The HttpServerUtility.Transfer Method

         The HttpServerUtility.Execute Method

         Using the Transfer and Execute Methods

         Executing the Target Page

         Transferring to the Target Page

         Exploring the Example Code

         The Code in the Target Page

         Cross Page Posting of Form Contents

         An Example of Cross-Page Posting

         Site Maps, Menus, and Navigation Path Controls

         Site Map Providers

         Site Map Configuration Files

         Using a Site Map File

         Using a TreeView Control with a SiteMapDataSource

         Using a NavigationPath Control with a SiteMapDataSource

         Site Maps in Depth

         Using the Properties of the SiteMapDataSource Control

         Accessing the SiteMap in Code

         Reacting to Events in the Menu, TreeView and SiteMapPath Controls

         Extending the SiteMap


11 - Security and Membership

         Preventing Anonymous Access to Web Sites

         The ASP.NET Configuration Files

         Security and Access Control Settings in IIS and ASP.NET

         Specifying the Account Used by ASP.NET

         ASP.NET Impersonation

         ASP.NET Authentication and Authorization

         ASP.NET Authentication Settings

         Using Forms Authentication

         The <credentials> Element

         Cookie-less Sessions and Cookie-less Forms Authentication

         ASP.NET Authorization Settings

         ASP.NET Membership Provider and Role Manager

         The ASP.NET Application Database

         ASP.NET Membership Provider Configuration

         Specifying the Database Connection Strings

         Creating and Using Custom Providers

         ASP.NET Role Manager Configuration

         The ASP.NET Web Site Administration Tool

         Creating the ASP.NET Application Database

         Using a Pre-Attached Database

         Troubleshooting ASP.NET Application Database Issues

         Creating and Managing Users and Roles

         Selecting the Providers

         Running the Security Wizard

         Managing Users, Roles, and Access Controls

         Adding Users to Roles

         Setting the SMTP Email Options

         Viewing the ASP.NET Database Contents

         The ASP.NET Security Server Controls

         The Available Control Set

         Using the Security Server Controls

         The Home Page

         The Login Page

         The Secure Area Page

         The New User Page

         Accessing the Membership and Roles Features in Code

         The Membership Class

         The Membership Methods

         The Membership Event

         Validating a User

         The MembershipUser Class

         The MembershipUser Methods

         The Roles Class


12 - Profiles, Personalization and Themes

         Configuring Profiles and Personalization

         Specifying the Profiles and Personalization Providers

         Creating and Modifying the ASP.NET Application Database

         Enabling Profiles and Declaring Profile Properties

         Profile Property Groups

         Custom Profile Property Types

         Anonymous Profiles

         Storing and Using Dynamic Profile Data

         Reading Profile Data

         Storing (Writing) Profile Data

         A Simple Example of Using a Shopping Cart

         Setting the Text Size

         Displaying the Shopping Cart and Adding Items

         Displaying Details of Logged In Users

         Updating the Profile Properties

         Migrating Anonymous Users

         Other Features of the Profile Class

         Using Themes to Personalize Your Site

         What are Themes and Skins?

         Default and Named Skins

         Global Themes and Page Themes

         Creating Themes and Skins

         Using CSS Stylesheets in a Theme

         Using Images in a Theme

         Applying Themes and Skins

         Applying a Theme at Design-time

         Applying a Theme Dynamically at Runtime

         Applying a Named Theme at Design-time or Runtime

         Applying a Theme that Does Not Over-ride Existing Styles and Property Values

         Preventing the Use of Themes and Skins

         An Example of Using Themes

         Saving and Loading the Theme Profile Value

         Using an HTTP Module to Set the Theme


13 - The ASP.NET 2.0 Portal Framework

         The Goals of the Portal Framework

         Integration with SharePoint and Office Web Parts

         Customization and Personalization

         About the Web Parts Framework

         The Web Part Manager

         Web Part and Authorization

         Zones and Web Parts

         Web Parts

         Implementing Web Parts

         User Controls as Web Parts

         Custom Controls as Web Parts

         Web Part Chrome and Style

         Web Part Verbs

         Catalog Zones

         Importing and Exporting Web Parts

         Editor Zones



         Authorization Filter



         Connecting Web Parts Together

         Implementing Web Part Connections

         Creating the Interface

         Implementing the Interface in the Provider

         Using the Interface in the Consumer

         Connecting Web Parts Together

         User Initiated Connections

         Connecting to Web Parts in Master Pages



14 - Usability, Accessibility, Mobile Devices, Localization

         Page Validation, Browser Capabilities, and Alternative Content

         Validating Page Content

         Other Validation Services

         XHTML Compliance

         Detecting Browser Capabilities

         Browser Definitions

         The BrowserCapabilities Class

         Browser-Specific Pages and Sites, and Client-Side Code Support

         Detecting Cookie Support

         CSS Support Quirks

         Making Your Pages Easier to Use

         Overall Site and Page Design

         Controls, Captions, Short-cut Keys, and Tab Order

         Linking Captions to Interactive Controls

         Implementing Short-cut Keys

         Setting the Tab Order

         Supporting Disabled Users and Specialist User Agents

         General Techniques for Maximizing Accessibility

         Navigation Accessibility Features

         Identifying Elements

         General Recommendations

         Evaluating and Testing Your Pages and Sites

         Accessibility Features in ASP.NET Controls

         Using Alternate Text and Long Descriptions

         Implementing "D" Links and Alternative Content

         Implementing "Skip-to" Links

         An Example of an Accessible Page

         Viewing the Accessible Page Example in a Text-Only Browser

         Maximizing Accessibility for HTML Tables

         Using Short-cut Keys, Tab Order, and Table Captions

         Adding Accessible Headers to a GridView Control

         Building Pages for Small-screen and Mobile Devices

         Page Design and Device Support

         Creating Pages for Mobile Devices

         Issues to Consider with Mobile Device Web Forms

         The Mobile Web Forms Control Set

         Mobile Device Filters

         Mobile Device Style Sheets

         A Simple Mobile Web Forms Example

         Mobile Browser Emulators

         Supporting Localization and Multiple Languages

         Code-Free Localization

         Using Implicit Expressions and Local Resources

         Using Explicit Expressions

         Using Global Application Resources

         Localizing Static Content

         Exempting Controls from Localization

         Hiding Controls at Runtime

         What Expression Type to Use, and When?

         User-Selectable Localization

         Programmatic Access to Resources


         Web Resources


15 - Using the Framework Classes

         The Example Application

         Configuring the Example on Your Machine

         Using a Remote SMTP Server

         Setting Disk Access Permissions

         The User Interface of the Example Application

         Using the MultiView Control

         Styling and Dynamically Populating a TreeView Control

         Storing Data with the System.Collections Classes


         Stacks and Queues

         Sorted Lists, HashTables and Dictionary-based collections

         How the Example Returns Values

         Serializing a Collection

         Generic Collections

         Reading, Writing, and Compressing Data with the System.IO Classes

         Working with Streams, StreamReaders, and StreamWriters

         Reading Drive, Folder, and File Information

         Reading Drive Information

         Reading Folder and File Information

         Writing Files to the File System

         Reading Text and Binary Files from the File System

         Compressing Data

         Creating Graphics and Images with the System.Drawing Classes

         Creating Images with the System.Drawing Classes

         Accessing the Internet with the System.Net Classes

         Retrieving Web Pages

         Performing DNS Lookups

         Sending Email with the System.Net.Mail Classes

         Sending Text and HTML Email Messages

         Validating Email Addresses

         Sending Email Messages with Text Attachments

         Sending Email Messages with Binary Attachments

         Accessing Active Directory with the System.DirectoryServices Classes

         Getting a List of Users

         Encrypting Data with the System.Security.Cryptography Classes

         Using TripleDES Encryption


16 - Web Services

         Standards and Interoperability

         Creating Web Services

         Web Service Attributes

         Testing Web Services

         Testing a Method that Returns Data

         Testing a Method that Accepts Data

         Caching and State

         Creating Asynchronous Web Services

         Consuming Web Services

         Calling Web Services Asynchronously

         Handling Errors

         Controlling How Data is Transferred in Web Services

         Customizing Serialization

         Serializing Collections

         Manual Serialization

         Web Service Enhancements

         The WSE 3.0 Toolkit

         The Future of Web Services