Home > Store

Essential ASP.NET 2.0, 2nd Edition

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

Essential ASP.NET 2.0, 2nd Edition


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

eBook (Watermarked)

  • Your Price: $35.19
  • List Price: $43.99
  • About Watermarked eBooks
  • This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.

    The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

    Watermarked eBook FAQ


  • Copyright 2007
  • Dimensions: 7" x 9-1/4"
  • Pages: 384
  • Edition: 2nd
  • Book
  • ISBN-10: 0-321-23770-6
  • ISBN-13: 978-0-321-23770-5
  • eBook (Watermarked)
  • ISBN-10: 0-321-49006-1
  • ISBN-13: 978-0-321-49006-3

"No one knows ASP.NET like Fritz Onion. And no one knows .NET security like Keith Brown. Combine the two and what do you get? The most comprehensive and enlightening book on ASP.NET 2.0 industrywide. I'm sure you'll find the book you're holding was worth every penny."

--Aaron Skonnard, member of technical staff and cofounder, Pluralsight

"Essential ASP.NET 2.0 gets under the hood and dismantles the engine before your eyes. Fritz and Keith understand that we as developers need to understand how it works and this book does exactly that. Their explanation of the ASP.NET 2.0 page event sequence is worth the price of the book alone."

--Shawn Wildermuth, Microsoft MVP (C#), "The ADO Guy"

"Essential ASP.NET 2.0 is an incredibly useful must-read for any developer.Many books drag you through theory and mindless detail, but this one actually sets up the problems you may encounter with ASP.NET 2.0 and rolls out the alternatives."

--Patrick Hynds, Microsoft Regional Director and President, CriticalSites

"This book is essential for any ASP.NET developer moving from version 1.x to 2.0. Onion and Brown not only cover the new features, but provide a wealth of insight and detail about how to use them effectively."

--Ron Petrusha, author of Visual Basic 2005: The Complete Reference

"Drawing on their deep technical knowledge and real-world experience, Fritz and Keith take the reader into some of the less explored and much improved areas of ASP.NET such as diagnostics and state management and performance. Readers will turn to this book over and over again."

--John Timney, Microsoft MVP, Senior Web Services Consultant,British Telecom

"Fritz and Keith, both established developers and writers in our industry, have succeeded again--enlightening us on the latest advancements found in ASP.NET 2.0. If you're new to ASP.NET or a seasoned veteran, you'll benefit tremendously from their overview, analysis, and sample code."

--Joe "MSJoe" Flanigen

"This book seeks not only to explain how to effectively build Web sites with ASP.NET, it also gives the reader an idea of how the process works. This insight is essential to creating applications that work with the infrastructure rather than fighting it."

--Justin Burtch, Vice President, Newbrook Solutions

Essential ASP.NET 2.0 is the Microsoft developer's definitive reference for ASP.NET 2.0 programming. It covers all you need to know to build robust, well-designed Web applications with ASP.NET 2.0, Visual Studio 2005, and .NET 2.0. ASP.NET MVP Fritz Onion and Developer Security MVP Keith Brown draw on their unparalleled experience working with ASP.NET 2.0 and teaching it to professional developers. From data binding to security, UIs to performance, they demystify ASP.NET 2.0's most difficult areas, and introduce little-known techniques for leveraging it to the fullest.

The perfect companion to his previous classic, Essential ASP.NET with Examples in C#, Essential ASP.NET 2.0 offers hundreds of new C# examples that illuminate today's best Web development practices. (Both C# and VB 2005 versions of all code examples can be downloaded from the companion Web site.)

Topics explored in-depth include:

  • Application architecture
  • Code behind
  • Master pages
  • Themes and skins
  • Navigation controls
  • Data binding
  • State management
  • Security
  • Web Parts
  • Diagnostics
  • Performance optimization
  • Asynchronous tasks and pages

Simply put, if you want to design and build better ASP.NET 2.0 Web applications, Essential ASP.NET 2.0 delivers everything you need: insider's knowledge, proven best practices, and outstanding code samples.


Related Article

Managing Database Transactions with the TransactionScope

Author's Site

Check out the author's web sites:

Fritz Onion:

Keith Brown:
http://pluralsight.com/keith/ Companion Site:

Companion Site

Visit the Companion Site:


Sample Content

Online Sample Chapter

State Management in ASP.NET 2.0

Downloadable Sample Chapter

Download the Sample Chapter from this book.

Table of Contents

List of Figures xv

List of Tables xix

Foreword xxi

Preface xxiii

Acknowledgments xxix

About the Authors xxxi

Chapter 1 Architecture 1

Fundamentals 2

Dynamic Content 2

Server-Side Controls 5

Data Binding 8

Codebehind 9

Codebehind Basics 9

Codebehind 2.0 11

Page Lifecycle 15

Common Events 15

New Events 17

Implicit Event Subscription 18

Compilation 20

Compilation Directories 20

Site Compilation 24

Assembly Generation 26

Customizing Assembly Generation 28

Web Application Projects 28

Summary 30

Chapter 2 User Interface Elements 33

Page Templates 33

Master Pages 35

Implementation Details 37

Working with Master Pages 41

Details of Usage 45

Themes and Skins 48

Themes 49

Working with Themes 51

Fundamentals of Navigation Controls 54

Control Adapters 58

Building Control Adapters 58

Browser Recognition 64

CSS Friendly Adapters 66

Summary 66

Chapter 3 Data Binding 67

Declarative Data Binding 68

Data Binding 68

Data Source Controls 70

Storing Connection Strings 82

Data Source Parameters 83

New Data-Bound Controls 87

Data-Binding Evaluation Syntax 91

Declarative Data-Binding Techniques 91

Hierarchical Data Binding 96

Binding to Objects 102

Typed DataSets 112

Summary 112

Chapter 4 State Management 113

Cross-Page Posting 114

Fundamentals 114

Implementation 120

Caveats 121

Multi-Source Cross-Page Posting 124

Wizard and MultiView Controls 127

Same Page State Management 127

Wizard Control 128

MultiView and View Controls 131

Profile 133

Fundamentals 133

Migrating Anonymous Profile Data 137

Managing Profile Data 138

Storing Profile Data 138

Serialization 139

User-Defined Types as Profile Properties 142

Optimizing Profile 143

Going the Custom Route 147

Summary 149

Chapter 5 Security 151

How Much Security Do I Need? 151

Getting Started with Membership 153

Provider Architecture 158

MembershipProvider 160

The Login Control 162

User Account Lockout: Blessing or Curse? 164

Password Complexity Policy 166

Choosing a Password Format 167

Password Questions and Answers 169

Configuring a Membership Provider 170

Custom Providers 172

Using the Membership Class to Access Your Provider 173

SQL Database Permissions 175

The LoginView and Other Controls 177

The Role Manager 180

Configuring the Role Manager and Provider 181

Other Role Providers 183

A Word about Machine Keys 184

Cookieless Forms Authentication 185

SiteMapProvider Security Trimming 187

Configuration File Encryption 188

Summary 191

Chapter 6 Web Parts 193

Web Part Fundamentals 194

Portal Components 194

Building a Minimal Portal Page 195

Display Mode 201

Catalog Parts and Zones 204

Properties 206

Editor Parts and Zones 210

Verbs 211

Connections 214

Personalization Scope 218

Exporting and Importing Web Parts 220

Formatting Web Parts and Zones 225

User Controls as Web Parts 226

Personalization Data and Providers 231

Changing the Personalization Data Store 233

Creating Your Own Personalization Provider 235

Summary 239

Chapter 7 Diagnostics 241

Health Monitoring and Web Events 241

Web Event Hierarchy 242

Which Events Should I Monitor? 245

Built-in Providers 245

The E-Mail Providers 248

The SQL Provider 251

Buffering 252

Registering for Events 254

Throttling and Profiles 256

Mapping the Health Monitoring Configuration Section 258

Custom Web Events 258

Custom Providers 261

Tracing in ASP.NET 2.0 264

Programmatic Access to Trace Output 264

Integration with System.Diagnostics Tracing 266

Funneling Web Events to System.Diagnostics Trace Listeners 268

Event Tracing for Windows: Debugging Without a Debugger 269

Summary 277

Chapter 8 Performance 279

Caching 279

Data Source Caching 280

Cache Dependencies 284

Programmatic Fragment Caching 296

Post-Cache Substitution 298

Cache Profiles 300

General Performance Enhancements 302

Client Callbacks 302

Client Callback Framework 302

On-Demand TreeView Node Population 306

Atlas 307

Summary 308

Chapter 9 Asynchrony 309

The Need for Asynchrony 310

Exploiting Parallelism 310

Relaxing Thread-Pool Contention 316

Techniques for Issuing Asynchronous Tasks 317

Asynchronous Web Access 317

AsyncOperationManager and Asynchronous Web Service Calls 320

Asynchronous Tasks 321

Dependent Asynchronous Tasks 324

Asynchronous Pages 326

Async="true" 326

Relaxing Thread-Pool Pressure 328

AddOnPreRenderCompleteAsync 329

Thread-Relative Resources 330

Summary 330

Index 333


Download the Foreword from this book.


Download the Index from this book.


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

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


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

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

Collection and Use of Information

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

Questions and Inquiries

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

Online Store

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


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

Contests and Drawings

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


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

Service Announcements

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

Customer Service

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

Other Collection and Use of Information

Application and System Logs

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

Web Analytics

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

Cookies and Related Technologies

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

Do Not Track

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


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


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


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

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

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

Correcting/Updating Personal Information

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


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

Sale of Personal Information

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

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

Supplemental Privacy Statement for California Residents

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

Sharing and Disclosure

Pearson may disclose personal information, as follows:

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


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

Requests and Contact

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

Changes to this Privacy Notice

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

Last Update: November 17, 2020