| Contents at a Glance | 4 |
|---|
| Contents | 6 |
|---|
| About the Authors | 27 |
|---|
| About the Technical Reviewer | 28 |
|---|
| Introduction | 29 |
|---|
| What Does This Book Cover? | 29 |
| Who Is This Book For? | 30 |
| What Do You Need to Use This Book? | 31 |
| Customer Support | 31 |
| Core Concepts | 33 |
|---|
| Introducing ASP.NET | 34 |
| The Evolution of Web Development | 34 |
| Seven Important Facts About ASP. NET | 37 |
| ASP. NET 3.5: The Story Continues | 46 |
| Summary | 52 |
| Visual Studio | 53 |
| The . NET Development Model | 54 |
| The Visual Studio IDE | 66 |
| The Code Editor | 72 |
| The Code Model | 78 |
| Web Projects | 85 |
| Visual Studio Debugging | 89 |
| Visual Studio Macros | 95 |
| The Web Development Helper | 97 |
| Summary | 99 |
| Web Forms | 100 |
| Page Processing | 100 |
| Web Forms Processing Stages | 115 |
| The Page As a Control Container | 121 |
| The Page Class | 128 |
| Summary | 143 |
| Server Controls | 144 |
| Types of Server Controls | 144 |
| HTML Server Controls | 147 |
| Web Controls | 156 |
| The List Controls | 169 |
| Input Validation Controls | 175 |
| Rich Controls | 189 |
| Summary | 194 |
| ASP.NET Applications | 195 |
| Anatomy of an ASP. NET Application | 195 |
| The global. asax Application File | 199 |
| ASP. NET Configuration | 204 |
| . NET Components | 226 |
| Extending the HTTP Pipeline | 231 |
| Summary | 246 |
| State Management | 247 |
| ASP. NET State Management | 247 |
| View State | 250 |
| Transferring Information Between Pages | 259 |
| Cookies | 268 |
| Session State | 269 |
| Application State | 279 |
| Summary | 283 |
| Data Access | 284 |
|---|
| ADO.NET Fundamentals | 285 |
| The ADO. NET Architecture | 286 |
| The Connection Class | 291 |
| The Command and DataReader Classes | 296 |
| Transactions | 312 |
| Provider- Agnostic Code | 320 |
| Summary | 323 |
| Data Components and the DataSet | 324 |
| Building a Data Access Component | 324 |
| Disconnected Data | 336 |
| The DataSet | 338 |
| The DataAdapter Class | 340 |
| The DataView Class | 348 |
| Typed DataSets | 355 |
| Summary | 364 |
| Data Binding | 365 |
| Basic Data Binding | 365 |
| Data Source Controls | 379 |
| The SqlDataSource | 381 |
| The ObjectDataSource | 395 |
| The Limits of the Data Source Controls | 405 |
| Summary | 408 |
| Rich Data Controls | 409 |
| The GridView | 410 |
| Formatting the GridView | 414 |
| GridView Row Selection | 421 |
| Sorting the GridView | 425 |
| Paging the GridView | 430 |
| GridView Templates | 436 |
| The ListView | 447 |
| The DetailsView and FormView | 453 |
| Advanced Grids | 457 |
| Summary | 474 |
| Caching and Asynchronous Pages | 475 |
| Understanding ASP. NET Caching | 475 |
| Output Caching | 476 |
| Data Caching | 485 |
| Cache Dependencies | 493 |
| Custom Cache Dependencies | 505 |
| Asynchronous Pages | 509 |
| Summary | 520 |
| Files and Streams | 521 |
| Working with the File System | 521 |
| Reading and Writing Files with Streams | 538 |
| Serialization | 550 |
| Summary | 553 |
| LINQ | 554 |
| LINQ Basics | 554 |
| LINQ to DataSet | 567 |
| LINQ to SQL | 570 |
| The LinqDataSource | 601 |
| Summary | 609 |
| XML | 610 |
| When Does Using XML Make Sense? | 610 |
| An Introduction to XML | 611 |
| Stream- Based XML Processing | 617 |
| In- Memory XML Processing | 623 |
| Searching XML Content | 635 |
| Validating XML Content | 642 |
| Transforming XML Content | 645 |
| XML Data Binding | 650 |
| XML and the ADO. NET DataSet | 661 |
| Summary | 665 |
| Building ASP. NET Websites | 666 |
|---|
| User Controls | 667 |
| User Control Basics | 667 |
| Adding Code to a User Control | 670 |
| Dynamically Loading User Controls | 679 |
| Partial Page Caching | 683 |
| Summary | 685 |
| Themes and Master Pages | 687 |
| Cascading Style Sheets | 687 |
| Themes | 692 |
| Standardizing Website Layout | 702 |
| Master Page Basics | 702 |
| Advanced Master Pages | 711 |
| Summary | 715 |
| Website Navigation | 716 |
| Pages with Multiple Views | 716 |
| Site Maps | 728 |
| The TreeView Control | 749 |
| The Menu Control | 758 |
| Summary | 764 |
| Website Deployment | 765 |
| Internet Information Services ( IIS) | 765 |
| Managing Websites | 791 |
| Deploying Your ASP. NET Applications | 818 |
| The VirtualPathProvider in ASP. NET | 835 |
| Health Monitoring in ASP. NET | 839 |
| Summary | 843 |
| Security | 845 |
|---|
| The ASP.NET Security Model | 846 |
| What It Means to Create Secure Software | 846 |
| Understanding the Levels of Security | 849 |
| Internet Information Services Security | 854 |
| ASP. NET Security Architecture | 871 |
| Summary | 877 |
| Forms Authentication | 878 |
| Introducing Forms Authentication | 878 |
| Implementing Forms Authentication | 884 |
| IIS 7.0 and Forms Authentication | 897 |
| Summary | 903 |
| Membership | 904 |
| Introducing the ASP. NET Membership API | 904 |
| Using the Membership API | 907 |
| Using the Security Controls | 921 |
| Configuring Membership in IIS 7.0 | 945 |
| Using the Membership Class | 949 |
| Summary | 956 |
| Windows Authentication | 957 |
| Introducing Windows Authen
|