You are previewing Programming ASP.NET, 3rd Edition.
O'Reilly logo
Programming ASP.NET, 3rd Edition

Book Description

O'Reilly has once again updated its bestselling tutorial on ASP.NET, the world's leading web development tool from Microsoft. In Programming ASP.NET, Third Edition, authors Jesse Liberty and Dan Hurwitz give you the lowdown on the technology's latest version, ASP.NET 2.0, as well as Visual Studio 2005.

Among the most significant improvements to ASP.NET 2.0 are new server controls and services that make you dramatically more productive. In fact, when compared to its predecessor, ASP.NET 2.0 reduces the amount of code you have to write by about 75%. Creating interactive web applications has never been easier-but that still doesn't mean it's hassle-free! The difficulty in ASP.NET 2.0 is that it's so complete and flexible that there are many pieces that must be woven together to build a robust, scalable, and efficient application.

Fortunately, Programming ASP.NET, Third Edition is on the case, dispensing all the information you need to be effective with this dynamic tool. For starters, the book features a comprehensive tutorial on Web Forms, the user interface that gives web applications their look and feel. It then offers detailed explanations of all new controls, including web server controls, HTML controls, and custom controls. Used properly, these controls are able to take care of nearly all the foundation work-security, data access, layout, etc.-that you would normally have to write yourself. Free of these burdensome tasks, you can instead focus on your specific application.

Other new material found in this updated edition even shows you how to create ASP.NET 2.0 pages for mobile devices. With Programming ASP.NET, Third Edition at your side, there's virtually no end to the programming possibilities.

Table of Contents

  1. Programming ASP.NET, 3rd Edition
  2. Dedication
  3. A Note Regarding Supplemental Files
  4. Preface
    1. About This Book
    2. How This Book Is Organized
    3. Who This Book Is For
    4. Conventions Used in This Book
    5. Support: A Note from Jesse Liberty
    6. Using Code Examples
    7. We'd Like to Hear from You
    8. Safari Enabled
    9. Acknowledgments
      1. From Jesse Liberty
      2. From Dan Hurwitz
  5. 1. ASP.NET 2.0
    1. 1.1. .NET Framework 2.0
    2. 1.2. ASP.NET 2.0
    3. 1.3. New Features
      1. 1.3.1. Special Folders Make Integration Easier
      2. 1.3.2. Security
      3. 1.3.3. Personalization
      4. 1.3.4. Master Pages
      5. 1.3.5. Navigation
      6. 1.3.6. Web Sites Without IIS
      7. 1.3.7. Improved Controls
      8. 1.3.8. New Controls
      9. 1.3.9. Visual Studio 2005 (VS2005)
      10. 1.3.10. Mobile Devices
    4. 1.4. On to VS2005
  6. 2. Visual Studio 2005
    1. 2.1. Start Page
      1. 2.1.1. File System
      2. 2.1.2. HTTP
      3. 2.1.3. FTP
      4. 2.1.4. Creating Your First Web Page
    2. 2.2. Projects and Solutions
      1. 2.2.1. Solutions
      2. 2.2.2. Projects and Files
      3. 2.2.3. Templates
      4. 2.2.4. Project Names
    3. 2.3. The Integrated Development Environment (IDE)
      1. 2.3.1. Layout
      2. 2.3.2. Building and Running
      3. 2.3.3. Menus and Toolbars
      4. 2.3.4. File Menu
        1. 2.3.4.1. New
        2. 2.3.4.2. Open
        3. 2.3.4.3. Add
        4. 2.3.4.4. Advanced Save Options...
        5. 2.3.4.5. Source Control
      5. 2.3.5. Edit Menu
        1. 2.3.5.1. Cycle Clipboard Ring (Ctrl-Shift-V)
        2. 2.3.5.2. Finding and replacing
        3. 2.3.5.3. Go To...
        4. 2.3.5.4. Insert File As Text...
        5. 2.3.5.5. Advanced
        6. 2.3.5.6. Incremental search (Ctrl-I)
        7. 2.3.5.7. Bookmarks
        8. 2.3.5.8. Outlining
        9. 2.3.5.9. IntelliSense
      6. 2.3.6. View Menu
        1. 2.3.6.1. Solution Explorer (Ctrl-Alt-L)
        2. 2.3.6.2. Server Explorer (Ctrl-Alt-S)
        3. 2.3.6.3. Properties Windows (F4)
        4. 2.3.6.4. Visible Borders (Ctrl-Q)
        5. 2.3.6.5. Details (Ctrl- Shift-Q)
        6. 2.3.6.6. Non Visual Controls (Ctrl- Shift-N)
        7. 2.3.6.7. Object Browser (Ctrl-Alt-J)
        8. 2.3.6.8. Document Outline (Ctrl- Alt-T)
        9. 2.3.6.9. Error List (Ctrl-W, Ctrl-E)
        10. 2.3.6.10. Task List (Ctrl-W, Ctrl-T)
        11. 2.3.6.11. Toolbox (Ctrl-Alt-X)
        12. 2.3.6.12. Command window (Ctrl-Alt-A)
        13. 2.3.6.13. Other windows
      7. 2.3.7. Refactor Menu
      8. 2.3.8. Website Menu
        1. 2.3.8.1. Start Options
        2. 2.3.8.2. Copy Web Site
        3. 2.3.8.3. ASP.NET Configuration
      9. 2.3.9. Project Menu
        1. 2.3.9.1. Add New Item... (Ctrl-Shift-A)
        2. 2.3.9.2. Add Existing Item... (Shift-Alt-A)
        3. 2.3.9.3. Add New Solution Folder
        4. 2.3.9.4. Set StartUp Projects...
        5. 2.3.9.5. Project Dependencies... / Project Build Order...
      10. 2.3.10. Build Menu
      11. 2.3.11. Debug Menu
      12. 2.3.12. Data Menu
      13. 2.3.13. Format Menu
      14. 2.3.14. Tools Menu
        1. 2.3.14.1. Connect to Device...
        2. 2.3.14.2. Connect to Database...
        3. 2.3.14.3. Code Snippets Manager (Ctrl-K, Ctrl-B)
        4. 2.3.14.4. Choose Toolbox Items...
        5. 2.3.14.5. Macros
        6. 2.3.14.6. External Tools...
        7. 2.3.14.7. Import and Export Settings...
        8. 2.3.14.8. Customize...
        9. 2.3.14.9. Options...
      15. 2.3.15. Window Menu
      16. 2.3.16. Help Menu
        1. 2.3.16.1. Dynamic Help (Ctrl-Alt-F4)
        2. 2.3.16.2. Contents... (Ctrl-Alt-F1) / Index... (Ctrl-Alt-F2) / Search... (Ctrl-Alt-F3)
        3. 2.3.16.3. Index Results... (Shift-Alt-F2)
        4. 2.3.16.4. Check for Updates
  7. 3. Controls: Fundamental Concepts
    1. 3.1. Events
      1. 3.1.1. ASP.NET Events
      2. 3.1.2. Event Arguments
      3. 3.1.3. Application and Session Events
      4. 3.1.4. Page and Control Events
      5. 3.1.5. Postback Versus Non-Postback Events
      6. 3.1.6. IsPostBack
      7. 3.1.7. Events in Visual Studio 2005
      8. 3.1.8. Multiple Controls to One Event Handler
    2. 3.2. ASP.NET Server Controls
      1. 3.2.1. ASP.NET and Browsers
      2. 3.2.2. ASP.NET Server Control Class Hierarchy
      3. 3.2.3. CSS Styles
    3. 3.3. HTML Server Controls
    4. 3.4. Client-Side Processing
  8. 4. Basic Controls
    1. 4.1. The Basics
    2. 4.2. Label Control
    3. 4.3. TextBox Control
    4. 4.4. HiddenField Control
    5. 4.5. Button Controls
    6. 4.6. HyperLink Control
    7. 4.7. Selecting Values
      1. 4.7.1. CheckBox Control
      2. 4.7.2. RadioButton Control
    8. 4.8. Selecting from a List
      1. 4.8.1. ListItem Object
      2. 4.8.2. CheckBoxList Control
        1. 4.8.2.1. Adding items declaratively
        2. 4.8.2.2. Adding items programmatically from an array
        3. 4.8.2.3. Adding items from a data source
        4. 4.8.2.4. Responding to user selections
      3. 4.8.3. RadioButtonList Control
      4. 4.8.4. DropDownList Control
      5. 4.8.5. ListBox Control
      6. 4.8.6. BulletedList Control
    9. 4.9. Tables
      1. 4.9.1. Table Rows
      2. 4.9.2. Table Cells
      3. 4.9.3. Cell Width
    10. 4.10. Panel Control
    11. 4.11. Images
      1. 4.11.1. Image Control
      2. 4.11.2. ImageMap Control
  9. 5. Advanced Controls
    1. 5.1. MultiView and View Controls
    2. 5.2. Wizard Control
    3. 5.3. FileUpload Control
    4. 5.4. AdRotator Control
      1. 5.4.1. Advertisement File
      2. 5.4.2. Using AdRotator
    5. 5.5. Calendar
      1. 5.5.1. Selecting Dates in the Calendar
      2. 5.5.2. Controlling the Calendar's Appearance
      3. 5.5.3. Programming the Calendar Control
        1. 5.5.3.1. SelectionChanged Event
        2. 5.5.3.2. DayRender Event
        3. 5.5.3.3. VisibleMonthChanged event
  10. 6. Web Site Fundamentals
    1. 6.1. The Page
    2. 6.2. Code-Behind
    3. 6.3. Moving to Another Page
      1. 6.3.1. HyperLink
      2. 6.3.2. Server.Transfer
      3. 6.3.3. Response.Redirect
      4. 6.3.4. Cross-Page Posting
        1. 6.3.4.1. Retrieving data from the previous page
        2. 6.3.4.2. How did I get here?
    4. 6.4. State
      1. 6.4.1. Session State
        1. 6.4.1.1. Session state configuration
        2. 6.4.1.2. Session scoped application objects
      2. 6.4.2. View State
      3. 6.4.3. State Bag
      4. 6.4.4. Application State
    5. 6.5. Lifecycle
    6. 6.6. Directives
      1. 6.6.1. Application Directive
      2. 6.6.2. Assembly Directive
      3. 6.6.3. Control Directive
      4. 6.6.4. Implements Directive
      5. 6.6.5. Import Directive
      6. 6.6.6. Master Directive
      7. 6.6.7. MasterType Directive
      8. 6.6.8. OutputCache Directive
      9. 6.6.9. Page Directive
      10. 6.6.10. Reference Directive
      11. 6.6.11. Register Directive
  11. 7. Tracing, Debugging, and Error Handling
    1. 7.1. Creating the Sample Application
    2. 7.2. Tracing
      1. 7.2.1. Page-Level Tracing
      2. 7.2.2. Inserting into the Trace Log
      3. 7.2.3. Application-Level Tracing
      4. 7.2.4. Trace Viewer
    3. 7.3. Debugging
      1. 7.3.1. The Debug Toolbar
      2. 7.3.2. Breakpoints
        1. 7.3.2.1. Setting a breakpoint
        2. 7.3.2.2. Breakpoint window
        3. 7.3.2.3. Breakpoint properties
          1. 7.3.2.3.1. Location
          2. 7.3.2.3.2. Condition
          3. 7.3.2.3.3. Hit count
          4. 7.3.2.3.4. Filter
          5. 7.3.2.3.5. When Hit...
        4. 7.3.2.4. Breakpoint icons
      3. 7.3.3. Stepping Through Code
      4. 7.3.4. Examining Variables and Objects
      5. 7.3.5. Debug Windows
        1. 7.3.5.1. Immediate window
        2. 7.3.5.2. Autos window
        3. 7.3.5.3. Locals window
        4. 7.3.5.4. Watch window
        5. 7.3.5.5. Call Stack window
        6. 7.3.5.6. Threads window
        7. 7.3.5.7. Modules window
        8. 7.3.5.8. Disassembly window
        9. 7.3.5.9. Registers window
        10. 7.3.5.10. Memory windows
    4. 7.4. Error Handling
      1. 7.4.1. Unhandled Errors
      2. 7.4.2. Application-Wide Error Pages
      3. 7.4.3. Page-Specific Error Pages
  12. 8. Validation
    1. 8.1. The RequiredFieldValidator
    2. 8.2. The Summary Control
    3. 8.3. The Compare Validator
      1. 8.3.1. Checking the Input Type
      2. 8.3.2. Comparing to Another Control
    4. 8.4. Range Checking
    5. 8.5. Regular Expressions
    6. 8.6. Custom Validation
    7. 8.7. Validation Groups
  13. 9. Web Data Access
    1. 9.1. Getting Data from a Database
    2. 9.2. Data Source Controls
    3. 9.3. GridView Control
      1. 9.3.1. Adding Insert, Update, and Delete Statements
    4. 9.4. Multiuser Updates
      1. 9.4.1. Optimistic Concurrency
      2. 9.4.2. Displaying and Updating the Grid
      3. 9.4.3. Take It for a Spin
      4. 9.4.4. Tracking the Update with Events
      5. 9.4.5. Modifying the Grid Based on Events
      6. 9.4.6. Passing Parameters to the Select Query
    5. 9.5. DataList Control
      1. 9.5.1. Editing Items in List Controls
      2. 9.5.2. Deleting Items from a List Control
    6. 9.6. Repeater Control
    7. 9.7. DetailsView Control: Examining One Record at a Time
    8. 9.8. FormView Control: Examining Single Records as Master/Detail
      1. 9.8.1. Editing with FormView
      2. 9.8.2. Inserting New Records
      3. 9.8.3. DetailsView and FormView Events
  14. 10. ADO.NET
    1. 10.1. The ADO.NET Object Model
      1. 10.1.1. The DataSet Class
        1. 10.1.1.1. The DataTable class
        2. 10.1.1.2. The DataRow class
      2. 10.1.2. DbCommand and DbConnection
      3. 10.1.3. The DataAdapter Object
      4. 10.1.4. The Data Reader Object
    2. 10.2. Getting Started with ADO.NET
      1. 10.2.1. Using a DataReader
      2. 10.2.2. Creating Data Relations Within DataSets
    3. 10.3. Creating Data Objects by Hand
      1. 10.3.1. Bug Database Design
      2. 10.3.2. Creating the DataTable by Hand
        1. 10.3.2.1. Setting column properties
        2. 10.3.2.2. Setting constraints
        3. 10.3.2.3. Adding data to the table
        4. 10.3.2.4. Adding additional tables to the DataSet
        5. 10.3.2.5. Adding rows with an array of objects
      3. 10.3.3. Creating Primary Keys
      4. 10.3.4. Creating Foreign Keys
      5. 10.3.5. Creating Data Relations
    4. 10.4. Stored Procedures
      1. 10.4.1. Creating a Simple Stored Procedure
      2. 10.4.2. Stored Procedures with Parameters
    5. 10.5. Updating with SQL and ADO.NET
    6. 10.6. Updating Data with Transactions
      1. 10.6.1. The ACID Test
      2. 10.6.2. Implementing Transactions
        1. 10.6.2.1. Data Base transactions
        2. 10.6.2.2. Connection transactions
    7. 10.7. Binding to Business Objects
  15. 11. Forms-Based Security
    1. 11.1. Authentication
      1. 11.1.1. Anonymous Access
      2. 11.1.2. Windows Authentication
        1. 11.1.2.1. Basic authentication
        2. 11.1.2.2. Digest authentication
        3. 11.1.2.3. Integrated Windows authentication
        4. 11.1.2.4. Role-based security
      3. 11.1.3. Passport Authentication
      4. 11.1.4. Forms Authentication
    2. 11.2. Forms-Based Authentication in Detail
      1. 11.2.1. Create the Application
        1. 11.2.1.1. Creating accounts
        2. 11.2.1.2. Creating the welcome page
        3. 11.2.1.3. Creating the Login page
      2. 11.2.2. Adding a Password Reminder
    3. 11.3. Add Roles to ASP.NET Accounts
      1. 11.3.1. Using the Web Administrator Tool to Set Up Roles
      2. 11.3.2. Restricting Access to Pages Based on Roles
  16. 12. Master Pages and Navigation
    1. 12.1. Master Pages
      1. 12.1.1. Adding Content Pages
      2. 12.1.2. Using Nested Master Pages
      3. 12.1.3. Dynamically Editing the Master
    2. 12.2. Navigation
      1. 12.2.1. Getting Started with Site Navigation
      2. 12.2.2. Setting Up the Pages
      3. 12.2.3. Customizing the Look and Feel
      4. 12.2.4. Populating on Demand
      5. 12.2.5. Using a Menu for Navigation
      6. 12.2.6. Enumerate Site Map Nodes Programatically
    3. 12.3. Filtering Based on Security
      1. 12.3.1. Enable Membership
      2. 12.3.2. Adding Roles
      3. 12.3.3. Add a Login Page
      4. 12.3.4. Create Access Rules
      5. 12.3.5. Creating a Permission-Driven Site Map
  17. 13. Personalization
    1. 13.1. Creating Personalized Web Sites
      1. 13.1.1. Recording Personalization Information
      2. 13.1.2. Setting Up Profile Handling
      3. 13.1.3. Exploring the Profile Tables
    2. 13.2. Personalizing with Complex Types
    3. 13.3. Anonymous Personalization
    4. 13.4. Themes and Skins
      1. 13.4.1. Create the Test Site
      2. 13.4.2. Organize Site Themes and Skins
      3. 13.4.3. Enable Themes and Skins
      4. 13.4.4. Specify Themes for Your Page
      5. 13.4.5. Setting Stylesheet Themes
      6. 13.4.6. Setting Customization Themes
      7. 13.4.7. Using Named Skins
    5. 13.5. Web Parts
      1. 13.5.1. Web Parts Architecture
      2. 13.5.2. Creating Zones
      3. 13.5.3. Adding Controls to Zones
      4. 13.5.4. Minimizing and Restoring
    6. 13.6. Enabling Editing and Layout Changes
      1. 13.6.1. Creating a User Control to Enable Changing Page Layout
        1. 13.6.1.1. Moving a Part
        2. 13.6.1.2. Editing a Part
      2. 13.6.2. Adding Parts from a Catalog
  18. 14. Custom and User Controls
    1. 14.1. User Controls
      1. 14.1.1. User Controls with Code
      2. 14.1.2. @Control Directive
      3. 14.1.3. Properties
        1. 14.1.3.1. Creating a property
        2. 14.1.3.2. Providing an underlying value for the property
        3. 14.1.3.3. Integrating the property into your code
        4. 14.1.3.4. Setting the property from the client
      4. 14.1.4. Handling Events
    2. 14.2. Custom Controls
      1. 14.2.1. Properties
      2. 14.2.2. The Render Method
      3. 14.2.3. Updating the Control
      4. 14.2.4. Maintaining State
      5. 14.2.5. Creating Derived Controls
      6. 14.2.6. Creating Composite Controls
        1. 14.2.6.1. Modifying the CountedButton derived control
        2. 14.2.6.2. Creating the BookCounter composite control
          1. 14.2.6.2.1. INamingContainer
          2. 14.2.6.2.2. Containing CountedButton2
        3. 14.2.6.3. Creating the BookInquiryList composite control
          1. 14.2.6.3.1. ControlBuilder and ParseChildren attributes
          2. 14.2.6.3.2. Render
          3. 14.2.6.3.3. Rendering the output
          4. 14.2.6.3.4. Rendering the summary
  19. 15. Creating Web Services
    1. 15.1. How Web Services Work
      1. 15.1.1. Developing a Web Service
      2. 15.1.2. The Proxy
      3. 15.1.3. Creating the Consumer
    2. 15.2. Protocols and Standards
      1. 15.2.1. HTTP
        1. 15.2.1.1. HTTP-GET
        2. 15.2.1.2. HTTP-POST
      2. 15.2.2. XML
      3. 15.2.3. SOAP
      4. 15.2.4. Web Services Enhancements (WSE)
    3. 15.3. Creating a Simple Web Service
      1. 15.3.1. In-Line with a Text Editor
      2. 15.3.2. Code-Behind with Visual Studio 2005
    4. 15.4. WebService Directive
    5. 15.5. Deriving from the WebService Class
    6. 15.6. Application State via HttpContext
    7. 15.7. WebServiceBinding Attribute
    8. 15.8. WebMethod Attribute
      1. 15.8.1. The BufferResponse Property
      2. 15.8.2. CacheDuration Property
      3. 15.8.3. Description Property
      4. 15.8.4. EnableSession Property
      5. 15.8.5. MessageName Property
      6. 15.8.6. TransactionOption Property
    9. 15.9. WebService Attribute
      1. 15.9.1. Description Property
      2. 15.9.2. Name Property
      3. 15.9.3. Namespace Property
    10. 15.10. Data Types
      1. 15.10.1. Arrays
      2. 15.10.2. Classes and Structs
      3. 15.10.3. DataSets
    11. 15.11. StockTickerComplete
    12. 15.12. Creating Discovery Documents
      1. 15.12.1. Discovery via Query String
      2. 15.12.2. Static Discovery Files
    13. 15.13. Deployment
      1. 15.13.1. Pre-Compiled Assemblies
      2. 15.13.2. Dynamically Compiled Assemblies
  20. 16. Consuming Web Services
    1. 16.1. Discovery
    2. 16.2. Creating the Client with VS2005
    3. 16.3. Creating the Client Manually
      1. 16.3.1. Creating the Consumer Web Page Content
      2. 16.3.2. Creating the Proxy
        1. 16.3.2.1. Manually generating the proxy class source code
        2. 16.3.2.2. Proxy class details
      3. 16.3.3. Compiling the Proxy Class
        1. 16.3.3.1. Automatic compilation in the App_Code folder
        2. 16.3.3.2. Manual compilation
      4. 16.3.4. Finishing the Consumer App
    4. 16.4. Using Asynchronous Method Calls
  21. 17. Caching and Performance
    1. 17.1. Types of Caching
      1. 17.1.1. Class Caching
      2. 17.1.2. Configuration Caching
      3. 17.1.3. Data Caching
      4. 17.1.4. Output Caching
      5. 17.1.5. Object Caching
    2. 17.2. Data Caching
      1. 17.2.1. DataSourceControl Caching
      2. 17.2.2. SQL Cache Dependency
        1. 17.2.2.1. Polling-based cache invalidation
        2. 17.2.2.2. Notification-based cache invalidation
    3. 17.3. Output Caching
      1. 17.3.1. The OutputCache Directive
        1. 17.3.1.1. Duration
        2. 17.3.1.2. VaryByParam
        3. 17.3.1.3. CacheProfile
        4. 17.3.1.4. DiskCacheable
        5. 17.3.1.5. Location
        6. 17.3.1.6. SqlDependency
        7. 17.3.1.7. VaryByControl
        8. 17.3.1.8. VaryByCustom
        9. 17.3.1.9. VaryByHeader
      2. 17.3.2. Fragment Caching: Caching Part of a Page
    4. 17.4. Object Caching
      1. 17.4.1. Cache Class Functionality
      2. 17.4.2. Dependencies
        1. 17.4.2.1. File change dependency
        2. 17.4.2.2. Cached item dependency
        3. 17.4.2.3. Time dependency
      3. 17.4.3. Scavenging
      4. 17.4.4. Callback Support
    5. 17.5. The HttpCachePolicy Class
    6. 17.6. Performance
      1. 17.6.1. ASP.NET-Specific Issues
        1. 17.6.1.1. Session state
        2. 17.6.1.2. View state
        3. 17.6.1.3. Caching
        4. 17.6.1.4. Server controls
        5. 17.6.1.5. Web gardening and web farming
        6. 17.6.1.6. Round trips
      2. 17.6.2. General .NET Issues
        1. 17.6.2.1. String concatenation
        2. 17.6.2.2. Minimize exceptions
        3. 17.6.2.3. Use early binding
        4. 17.6.2.4. Use managed code
        5. 17.6.2.5. Disable debug mode
      3. 17.6.3. Database Issues
        1. 17.6.3.1. Stored procedures
        2. 17.6.3.2. Use DataReader class
        3. 17.6.3.3. Use SQL or Oracle classes rather than OleDB classes
    7. 17.7. Benchmarking and Profiling
  22. 18. Application Logic and Configuration
    1. 18.1. Internet Information Server (IIS)
      1. 18.1.1. IIS Versions
      2. 18.1.2. Virtual Directories
    2. 18.2. Understanding Web Applications
    3. 18.3. Application-Wide Logic
      1. 18.3.1. HttpApplication Object
      2. 18.3.2. global.asax
        1. 18.3.2.1. Directives
        2. 18.3.2.2. Script blocks
        3. 18.3.2.3. Events
        4. 18.3.2.4. Server-side includes
        5. 18.3.2.5. Object declarations
      3. 18.3.3. Global Members
    4. 18.4. Configuring the Application
      1. 18.4.1. Hierarchical Configuration
      2. 18.4.2. Format
        1. 18.4.2.1. Configuration section handler declarations
        2. 18.4.2.2. Configuration sections
      3. 18.4.3. Configuration Settings UI
        1. 18.4.3.1. General
        2. 18.4.3.2. Custom errors
        3. 18.4.3.3. Authorization
        4. 18.4.3.4. Authentication
        5. 18.4.3.5. Application
        6. 18.4.3.6. State Management
        7. 18.4.3.7. Locations
      4. 18.4.4. Web Site Administration Tool
        1. 18.4.4.1. Security
        2. 18.4.4.2. Application
        3. 18.4.4.3. Provider
      5. 18.4.5. Other Configuration Settings
        1. 18.4.5.1. system.net
        2. 18.4.5.2. system.web
      6. 18.4.6. Custom Configuration Sections
        1. 18.4.6.1. Name/value pairs
        2. 18.4.6.2. Objects
  23. 19. Deployment
    1. 19.1. Assemblies
      1. 19.1.1. Microsoft Intermediate Language (MSIL)
      2. 19.1.2. ILDASM
      3. 19.1.3. Manifests
      4. 19.1.4. Versioning
      5. 19.1.5. Private Versus Shared Assemblies
      6. 19.1.6. Strong Names
        1. 19.1.6.1. Creating a strong name
        2. 19.1.6.2. Delayed signing
    2. 19.2. Local Deployment
      1. 19.2.1. Full Runtime Compilation
      2. 19.2.2. Manual Compilation of Assemblies
      3. 19.2.3. Full Pre-Compilation
      4. 19.2.4. Pre-Compilation of Code Only
    3. 19.3. Global Deployment
    4. 19.4. Windows Installer
      1. 19.4.1. Build Configurations
      2. 19.4.2. Adding a Setup Project with the Setup Wizard
      3. 19.4.3. Adding a Setup Project Manually
      4. 19.4.4. Further Customizations
        1. 19.4.4.1. File System
        2. 19.4.4.2. Registry
        3. 19.4.4.3. File Types
        4. 19.4.4.4. User Interface
        5. 19.4.4.5. Custom Actions
        6. 19.4.4.6. Launch Conditions
      5. 19.4.5. Deploying the Web Site
  24. A. Keyboard Shortcuts
  25. B. Relational Database Technology: A Crash Course
    1. B.1. Tables, Records, and Columns
    2. B.2. Table Design
      1. B.2.1. Normalization
      2. B.2.2. Declarative Referential Integrity
    3. B.3. SQL
      1. B.3.1. Joining Tables
      2. B.3.2. Using SQL to Manipulate the Database
  26. About the Authors
  27. Colophon
  28. Copyright