+ All Categories
Home > Documents > Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing...

Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing...

Date post: 04-Feb-2018
Category:
Upload: lecong
View: 217 times
Download: 2 times
Share this document with a friend
28
Pro ASP.NET 4 in C# 2010 ii n in Matthew MacDonald, Adam Freeman, and Mario Szpuszta Apress
Transcript
Page 1: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

Pro ASP.NET 4 in C# 2010

ii n in

Matthew MacDonald, Adam Freeman,and Mario Szpuszta

Apress

Page 2: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

Contents

Contents at a Glance - ... •Hi

About the Author xxxii

About the Technical Reviewer xxxiii

Introduction xxxiv

Part 1: Core Concepts 1

1 Chapter 1: Introducing ASP.NET 3

The Seven Pillars of ASP.NET 3

#1: ASP.NET Is Integrated with the .NET Framework 3

#2: ASP.NET Is Complied, Not Interpreted 4

#3: ASP.NET Is Multilanguage 6

#4: ASP.NET Is Hosted by the Common Language Runtime 8

#5: ASP.NET Is Object-Oriented 9

#6: ASP.NET Supports all Browsers 11

#7: ASP.NET Is Easy to Deploy and Configure 11

The Evolution of ASP.NET 12

ASP.NET 1.0 and 1.1 12

ASP.NET 2.0 12

ASP.NET 3.5 13

ASP.NET 4 16

Silverlight 18

Summary 19

Page 3: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

CflciptGr 2i VlSUcll StllCtlOi " BBi«iB«»«BBa«aBaBBBBBBBaaBBBiBBBBBBi«BBBBBaBBB«aaBB»BBBBBBBaaiBBBBBBB21

Introducing Visual Studio 21

Websites and Web Projects 22

Creating a Projectless Website 23

Designing a Web Page 28

The Visual Studio IDE 35

Solution Explorer 37

Document Window 38

Toolbox 38

Error List and Task List 39

Server Explorer 41

The Code Editor 42

Adding Assembly References 43

IntelliSense and Outlining 46

Visual Studio 2010 Improvements 50

The Code Model 56

How Code-Behind Files Are Connected to Pages 59

How Control Tags Are Connected to Page Variables 60

How Events Are Connected to Event Handlers 61

Web Projects 63

Creating a Web Project 64

Migrating a Website from a Previous Version of Visual Studio 66

Visual Studio Debugging 68

Single-Step Debugging 69

Variable Watches 72

Advanced Breakpoints 74

The Web Development Helper 74

Summary 76

Chapter 3: Web Forms- 77

Page Processing 78

HTML Forms 78

vi

Page 4: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Dynamic User Interface 80

The ASP.NET Event Model 81

Automatic Postbacks 82

View State 84

XHTML Compliance 88

Client-Side Control IDs 94

Web Forms Processing Stages 97

Page Framework Initialization 98

User Code Initialization 99

Validation 99

Event Handling 100

Automatic Data Binding 100

Cleanup 101

A Page Flow Example 101

The Page As a Control Container 104

Showing the Control Tree 104

The Page Header 109

Dynamic Control Creation 110

The Page Class 112

Session, Application, and Cache 112

Request 113

Response 114

Server 118

User, 121

Trace "121

Accessing the HTTP Context in Another Class 127

Summary 128

Chapter 4: Server Controls 129

Types of Server Controls 129

The Server Control Hierarchy 130

HTML Server Controls 132

The HtmlControl Class 133

Page 5: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

The HtmlContainerControl Class 133

The HtmllnputControl Class 134

The HTML Server Control Classes 134

Setting Style Attributes and Other Properties 136

Programmatically Creating Server Controls 137

Handling Server-Side Events 139

Web Controls 142

The WebControl Base Class 143

Basic Web Control Classes 145

Units 147

Enumerations 147

Colors 148

Fonts 148

Focus 150

The Default Button 151

Scrollable Panels 152

Handling Web Control Events 153

The List Controls 156

The Selectable List Controls 157

The BulletedList Control 161

Input Validation Controls 162

The Validation Controls 163

The Validation Process 164

The BaseValidator Class 165

The RequiredFieldValidator Control 167

The RangeValidator Control 167

The CompareValidator Control 168

The RegularExpressionValidator Control 168

The CustomValidator Control 171

The ValidationSummary Control 172

Using the Validators Programmatically 174

Validation Groups 175

viii

Page 6: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Rich Controls 177

The AdRotator Control 178

The Calendar Control 180

Summary 182

Chapter 5: ASP.NET Applications • 183

Anatomy of an ASP.NET Application 183

The Application Domain 184

Application Lifetime 185

Application Updates 186

Application Directory Structure 186

The global.asax Application File,

187

Application Events 189

Demonstrating Application Events 191

ASP.NET Configuration 192

The machine.config File 193

The web.config File 195

<system.web> 199

<system.webServer> 200

<appSettings> 201

<connectionStrings> 202

Reading and Writing Configuration Sections Programmatically 203

The Website Administration Tool (WAT) 206

Extending the Configuration File Structure 207

Encrypting Configuration Sections 211

.NET Components 213

Creating a Component 214

Using a Component Through the App_Code Directory 215

Using a Component Through the Bin Directory 216

Extending the HTTP Pipeline 219

HTTP Handlers 219

Creating a Custom HTTP Handler 221

Configuring a Custom HTTP Handler 222

Page 7: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Using Configuration-Free HTTP Handlers 223

Creating an Advanced HTTP Handier 223

Creating an HTTP Handler for Non-HTML Content 226

HTTP Modules 229

Creating a Custom HTTP Module 231

Summary 234

& Chapter 6: State Management .235

ASP.NET State Management 236

View State 238

A View State Example 239

Storing Objects in View State 241

Assessing View State 243

Selectively Disabling View State 244

View State Security 246

Transferring Information Between Pages 247

The Query String 248

Cross-Page Posting 249

Cookies 256

Session State 258

Session Architecture 258

Using Session State 259

Configuring Session State 261

Securing Session State 268

Application State 269

Static Application Variables 271

Summary 273

Part 2: Data Access 275

im Chapter 7: ADO.NET Fundamentals ....277

The ADO.NET Architecture 278

AD0.NET Data Providers 278

Page 8: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Standardization in ADO.NET 280

Fundamental AD0.NET Classes 281

The Connection Class 283

Connection Strings 283

Testing a Connection 286

Connection Pooling 287

The Command and DataReader Classes 289

Command Basics 290

The DataReader Class 291

The ExecuteReader() Method and the DataReader 292

The ExecuteScalarO Method 298

The ExecuteNonQuery() Method 298

SQL Injection Attacks 299

Using Parameterized Commands 303

Calling Stored Procedures 304

Transactions 307

Transactions and ASP.NET Applications 307

Isolation Levels 312

Savepoints 314

Provider-Agnostic Code 315

Creating the Factory 316

Create Objects with Factory 317

A Query with Provider-Agnostic Code 318

Summary 319

Chapter 8: Data Components and the DataSet 321

Building a Data Access Component 321

The Data Package 323

The Stored Procedures 324

The Data Utility Class.... 325

Testing the Database Component 331

Disconnected Data 333

Web Applications and the DataSet 334

Page 9: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

XML Integration 335

The DataSet 335

The DataAdapter Class 337

Filling a DataSet 338

Working with Multiple Tables and Relationships 340

Searching for Specific Rows 343

Using the DataSet in a Data Access Class 344

Data Binding 345

The DataView Class 345

Sorting with a DataView 346

Filtering with a DataView 348

Advanced Filtering with Relationships 350

Calculated Columns 350

Summary 352

i Chapter 9: Data Binding 353

Basic Data Binding 354

Single-Value Binding 354

Other Types of Expressions 356

Repeated-Value Binding 360

Data Source Controls 368

The Page Life Cycle with Data Binding 369

The SqIDataSource 370

Selecting Records 371

Parameterized Commands 374

Handling Errors 379

Updating Records 379

Deleting Records 384

Inserting Records 384

Disadvantages of the SqIDataSource 385

The ObjectDataSource 386

Selecting Records 387

xii

Page 10: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Updating Records 392

Updating with a Data Object 393

The Limits of the Data Source Controls 397

The Problem 398

Adding the Extra Items 399

Handling the Extra Options with the SqIDataSource 399

Handling the Extra Options with the ObjectDataSource 400

Summary 401

Chapter 10: Rich Data Controls.... 403

The GridView 404

Defining Columns 404

Formatting the GridView 408

Formatting Fields 409

Styles 410

Formatting-Specific Values 414

GridView Row Selection, 416

Using Selection to Create a Master-Details Form 418

The SelectedlndexChanged Event 420

Using a Data Field As a Select Button 421

Sorting the GridView 422

Sorting with the SqIDataSource 422

Sorting with the ObjectDataSource 423

Sorting and Selection 425

Advanced Sorting 425

Paging the GridView 427

Automatic Paging 427

Paging and Selection 429

Custom Pagination with the ObjectDataSource 429

Customizing the Pager Bar 432

GridView Templates 433

Using Multiple Templates 435

xiii

Page 11: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Editing Templates in Visual Studio 436

Binding to a Method 437

Handling Events in a Template 439

Editing with a Template 440

Client IDs in Templates 447

The ListView 447

Grouping 451

Paging 453

The DetailsView and FormView 454

The DetailsView 454

The FormView 457

Advanced Grids 459

Summaries in the GridView 459

A Parent/Child View in a Single Table 461

Editing a Field Using a Lookup Table 464

Serving Images from a Database 466

Detecting Concurrency Conflicts 472

Summary 476

i Chapter 11: Caching and Asynchronous Pages 477

Understanding ASP.NET Caching 477

Output Caching 478

Declarative Output Caching 479

Caching and the Query String 480

Caching with Specific Query String Parameters 481

Custom Caching Control 481

Caching with the HttpCachePolicy Class 483

Post-Cache Substitution and Fragment Caching 484

Cache Profiles 487

Cache Configuration 487

Output Caching Extensibility 488

Data Caching 493

Adding Items to the Cache 494

xiv

Page 12: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

A Simple Cache Test 496

Cache Priorities 498

Caching with the Data Source Controls 498

Cache Dependencies 502

File and Cache Item Dependencies 502

Aggregate Dependencies 503

The Item Removed Callback 504

Understanding SQL Cache Notifications 507

How Cache Notifications Work 508

Enabling Notifications 508

Creating the Cache Dependency 509

Custom Cache Dependencies 510

A Basic Custom Cache Dependency 510

A Custom Cache Dependency Using Message Queues 512

Asynchronous Pages 514

Creating an Asynchronous Page 515

Querying Data in an Asynchronous Page 517

Handling Errors 519

Using Caching with Asynchronous Tasks >522

Multiple Asynchronous Tasks and Timeouts 524

Summary 526

II Chapter 12: Files and Streams 527

Working with the File System 527

The Directory and File Classes 528

The Directorylnfo and Filelnfo Classes 530

The Drivelnfo Class 533

Working with Attributes 534

Filter Files with Wildcards 536

Retrieving File Version Information 537

The Path Class 538

A File Browser 541

xv

Page 13: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Reading and Writing Files with Streams 546

Text Files 547

Binary Files 549

Uploading Files 550

Making Files Safe for Multiple Users 552

Compression 557

Serialization 558

Summary 561

Chapter 13: LINQ 563

LINQ Basics 563

Deferred Execution 565

How LINQ Works 566

LINQ Expressions 567

LINQ Expressions "Under the Hood" 575

LINQ to DataSet 578

Typed DataSets 581

Null Values 581

LINQ to Entities 581

Generating the Data Model 582

The Data Model Classes 583

Entity Relationships 586

Querying Stored Procedures 587

LINQ to Entities Queries "Under the Hood" 589

Database Operations 595

Inserts 595

Updates 598

Deletes 598

Managing Concurrency 598

Handling Concurrency Conflicts 599

The EntityDataSource Control 604

Displaying Data 604

xvi

Page 14: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Getting Related Data 609

Editing Data 610

Validation 611

Using the QueryExtender Control 612

Using a SearchExpression 613

Using a RangeExpression 614

Using a PropertyExpression 614

Using a MethodExpression 615

Summary 616

ChciptGr 14* XIVILib HMHiiiiiiiiiiMiitiiiHUM mi i * «6"!7

When Does Using XML Make Sense? 617

An Introduction to XML 618

The Advantages of XML 619

Well-Formed XML 620

XML Namespaces 621

XML Schemas 622

Stream-Based XML Processing 624

Writing XML Files 624

Reading XML Files 628

In-Memory XML Processing 631

The XmlDocument 632

The XPathNavigator 636

The XDocument 638

Searching XML Content,

643

Searching with XmlDocument 644

Searching XmlDocument with XPath 646

Searching XDocument with LINQ 649

Validating XML Content 651

A Basic Schema 651

Validating with XmlDocument 652

Validating with XDocument 654

xvii

Page 15: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Transforming XML Content 654

A Basic Stylesheet 655

Using XslCornpiledTransform 656

Using the Xml Control 657

Transforming XML with UNO. to XML 658

XML Data Binding 660

Nonhierarchical Binding 660

Using XPath 662

Nested Grids 665

Hierarchical Binding with the TreeView 667

Using XSLT 669

Binding to XML Content from Other Sources 671

Updating XML Through the XmlDataSource 672

XML and the AD0.NET DataSet 672

Converting the DataSet to XML 673

Accessing a DataSet As XML 675

Summary 678

Part 3: Building ASP.NET Websites 679

Chapter 15: User Controls 681

User Control Basics 681

Creating a Simple User Control 682

Converting a Page to a User Control 684

Adding Code to a User Control 684

Handling Events 684

Adding Properties 685

Using Custom Objects 688

Adding Events 690

Exposing the Inner Web Control 694

Dynamically Loading User Controls 695

Portal Frameworks 695

xviii

Page 16: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Partial Page Caching ,

699

VaryByControl 699

Sharing Cached Controls 701

Summary 702

; Chapter 16: Themes and Master Pages 703

Cascading Style Sheets 703

Creating a Stylesheet 703

Applying Stylesheet Rules 706

Themes 709

Theme Folders and Skins 709

Applying a Simple Theme 711

Handling Theme Conflicts 712

Creating Multiple Skins for the Same Control,

713

Skins with Templates and Images 714

Using CSS in a Theme 717

Applying Themes Through a Configuration File 717

Applying Themes Dynamically 718

Standardizing Website Layout, 720

Master Page Basics 720

A Simple Master Page 721

A Simple Content Page 723

Default Content 725

Master Pages with Tables and CSS Layout 726

Master Pages and Relative Paths 729

Applying Master Pages Through a Configuration File 730

Advanced Master Pages 730

Interacting with the Master Page Class 730

Dynamically Setting a Master Page 732

Nesting Master Pages 732

Summary 734

XIX

Page 17: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

s- CONTENTS

ii Chapter 17: Website Navigation.. 735

Pages with Multiple Views 736

The MultiView Control 736

The Wizard Control 741

Site Maps 751

Defining a Site Map 752

Binding to a Site Map 753

Breadcrumbs 754

Showing a Portion of the Site Map 757

The Site Map Objects 760

Adding Custom Site Map Information 762

Creating a Custom SiteMapProvider 763

Security Trimming 770

URL Mapping and Routing 772

URL Mapping 772

URL Routing 773

The TreeView Control 774

The TreeNode 775

Populating Nodes on Demand 778

TreeView Styles 779

The Menu Control 783

Menu Styles 786

Menu Templates 788

Summary 789

Chapter 18: Website Deployment ....791

Installing and Configuring IIS 791

Installing IIS 7 791

Managing IIS 7 793

Deploying a Website 795

Deploying by Copying Files 796

Using Web Deployment 801

xx

Page 18: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Using FTP Deployment 809

Managing a Website 817

Creating a New Site 817

Creating Virtual Directories 818

Using the VirtualPathProvider 819

Using Application Pools 823

Using Application Warm-Up 826

Extending the Integrated Pipeline 828

Creating the Handler 828

Deploying the Handler 829

Configuring the Handler 829

Testing the Handler 830

Summary 831

Part 4: Security 833

II Chapter 19: The ASP.NET Security Model 835

What It Means to Create Secure Software 835

Understanding Potential Threats 835

Secure Coding Guidelines 836

Understanding Gatekeepers 837

Understanding the Levels of Security 838

Authentication,

838

Authorization 839

Confidentiality and Integrity 840

Pulling It All Together 841

Understanding Secure Sockets Layer 842

Understanding Certificates 843

Understanding SSL 843

Configuring SSL in IIS 7.x 845

Summary 849

xxi

Page 19: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Chapter 20: Forms Authentication 851

Introducing Forms Authentication 851

Why Use Forms Authentication? 852

Why Would You Not Use Forms Authentication? 854

Why Not Implement Cookie Authentication Yourself? 855

The Forms Authentication Classes 856

Implementing Forms Authentication 857

Configuring Forms Authentication 857

Denying Access to Anonymous Users 861

Creating a Custom Login Page 862

Custom Credentials Store 868

Persistent Cookies in Forms Authentication 869

IIS 7.x and Forms Authentication 871

Summary 876

Chapter 21: Membership < 877

Introducing the ASP.NET Membership API 877

Using the Membership API 880

Configuring Forms Authentication 882

Creating the Data Store 883

Configuring Connection String and Membership Provider 890

Creating and Authenticating Users 893

Using the Security Controls 897

The Login Control 898

The LoginStatus Control 909

The LoginView Control 910

The PasswordRecovery Control 911

The ChangePassword Control 916

The CreateUserWizard Control 917

Configuring Membership in IIS 7.x 922

Configuring Providers and Users 922

Using the Membership API with Other Applications 924

xxii

Page 20: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Using the Membership Class 926

Retrieving Users from the Store 927

Updating Users in the Store 929

Creating and Deleting Users 930

Validating Users 931

Summary 931

Chapter 22: Windows Authentication. .........933

Introducing Windows Authentication 933

Why Use Windows Authentication? 933

Why Would You Not Use Windows Authentication? 935

Mechanisms for Windows Authentication 935

Implementing Windows Authentication 942

Configuring IIS 7.x 942

Configuring ASP.NET 944

Deeper Into the IIS 7.x Pipeline 945

Denying Access to Anonymous Users 948

Accessing Windows User Information 950

Impersonation 956

Impersonation and Delegation in Windows 956

Configured Impersonation 958

Programmatic Impersonation 959

Summary 962

if Chapter 23: Authorization and Roles 963

URL Authorization 963

Authorization Rules 964

File Authorization 970

Authorization Checks in Code 970

Using the lslnRole{) Method 970

Using the PrincipalPermission Class 971

Using the Roles API for Role-Based Authorization 974

Using the LoginView Control with Roles 981

xxiii

Page 21: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Accessing Roles Programmatically 981

Using the Roles API with Windows Authentication 984

Authorization and Roles in IIS 7.x 986

Authorization with ASP.NET Roles in IIS 7.x 989

Managing ASP.NET Roles with IIS 7.x 991

Summary 993

Chapter 24: Profiles 995

Understanding Profiles 995

Profile Performance 996

How Profiles Store Data 997

Profiles and Authentication 998

Profiles vs. Custom Data Components 998

Using the SqIProfileProvider 998

Creating the Profile Tables 999

Configuring the Provider 1002

Defining Profile Properties 1003

Using Profile Properties 1004

Profile Serialization 1006

Profile Groups 1008

Profiles and Custom Data Types 1008

The Profiles API 1012

Anonymous Profiles 1015

Custom Profile Providers 1017

The Custom Profile Provider Glasses 1018

Designing the FactoredProfileProvider 1020

Coding the FactoredProfileProvider 1021

Testing the FactoredProfileProvider 1025

Summary 1028

Chapter 25: Cryptography 1029

Encrypting Data: Confidentiality Matters 1029

The .NET Cryptography Namespace 1030

xxiv

Page 22: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Understanding the .NET Cryptography Classes 1033

Symmetric Encryption Algorithms 1035

Asymmetric Encryption 1036

The Abstract Encryption Classes 1037

The ICryptoTransform Interface 1037

The CryptoStream Class 1038

Encrypting Sensitive Data 1039

Managing Secrets 1039

Using Symmetric Algorithms 1041

Using Asymmetric Algorithms 1047

Encrypting Sensitive Data in a Database 1049

Encrypting the Query String 1054

Wrapping the Query String 1054

Creating a Test Page 1057

Summary 1059

I Chapter 26: Custom Membership Providers ...1061

Architecture of Custom Providers 1061

Basic Steps for Creating Custom Providers 1063

Overall Design of the Custom Provider 1063

Designing and Implementing the Custom Store 1065

Implementing the Provider Classes 1072

Using the Custom Provider Classes 1092

Summary 1097

Part 5: Advanced User interface ..1099

Chapter 27: Custom Server Controls 1101

Custom Server Control Basics 1101

Creating a Bare-Bones Custom Control 1102

Using a Custom Control 1104

Custom Controls in the Toolbox 1105

Creating a Web Control That Supports Style Properties 1108

XXV

Page 23: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

« CONTENTS

The Rendering Process 1111

Dealing with Different Browsers 1113

The HtmlTextWriter 1113

Browser Detection 1114

Browser Properties 1115

Overriding Browser Type Detection 1117

Adaptive Rendering 1117

Control State and Events 1119

View State 1119

Control State 1121

Postback Data and Change Events 1123

Triggering a Postback 1125

Extending Existing Web Controls 1127

Composite Controls 1127

Derived Controls 1130

Summary 1133

Chapter 28: Graphics, GDI+, and Charting 1135

The ImageMap Control 1135

Creating Hotspots 1136

Handling Hotspot Clicks 1137

A Custom Hotspot 1139

Drawing with GDI+ 1141

Simple Drawing 1141

Image Format and Quality 1143

The Graphics Class 1145

Using a GraphicsPath 1148

Pens 1149

Brushes 1152

Embedding Dynamic Graphics in a Web Page 1154

Using the PNG Format 1155

Passing Information to Dynamic Images 1155

Custom Controls That Use GDI+ 1158

xxvi

Page 24: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Using the Chart Control 1163

Creating a Basic Chart 1163

Populating a Chart with Data 1170

Summary 1178

Chapter 29: JavaScript and Ajax Techniques . 1179

JavaScript Essentials 1179

The HTML Document Object Model 1180

Client-Side Events 1181

Script Blocks 1184

Manipulating HTML Elements 1185

Debugging JavaScript 1186

Basic JavaScript Examples 1189

Creating a JavaScript Page Processor 1190

Using JavaScript to Download Images Asynchronously 1193

Rendering Script Blocks 1198

Script Injection Attacks 1199

Request Validation 1200

Disabling Request Validation 1201

Extending Request Validation 1203

Custom Controls with JavaScript 1205

Pop-Up Windows 1205

Rollover Buttons 1210

Frames 1213

Frame Navigation 1214

Inline Frames 1216

Understanding Ajax 1217

The XMLHttpRequest Object 1218

An Ajax Example 1220

Using Ajax with Client Callbacks 1224

Creating a Client Callback 1225

Client Callbacks "Under the Hood" 1231

xxvii

Page 25: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Client Callbacks in Custom Controls 1232

Summary 1237

Chapter 30: ASP.NET AJAX ..1239

Introducing ASP.NET AJAX 1239

ASP.NET AJAX on the Client: The Script Libraries 1240

ASP.NET AJAX on the Server: The ScriptManager 1241

Server Callbacks 1242

Web Services in ASP.NET AJAX 1243

Placing a Web Method in a Page 1250

ASP.NET AJAX Application Services 1252

ASP.NET AJAX Server Controls 1259

Partial Rendering with the UpdatePanel 1260

Timed Refreshes with the Timer 1268

Time-Consuming Updates with UpdateProgress 1269

Managing Browser History 1272

Deeper into the Client Libraries 1276

Understanding the Client Model 1276

Object-Oriented Programming in JavaScript 1277

The Web-Page Framework 1286

Control Extenders 1291

Installing the ASP.NET AJAX Control Toolkit 1292

The AutoCompleteExtender 1294

The ASP.NET AJAX Control Toolkit 1297

Summary 1302

Chapter 31: Portals with Web Part Pages 1303

Typical Portal Pages 1304

Basic Web Part Pages 1305

Creating the Page Design 1306

WebPartManager and WebPartZone Controls 1307

Adding Web Parts to the Page 1309

Customizing the Page 1313

xxviii

Page 26: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Creating Web Parts 1316

Simple Web Part Tasks 1316

Developing Advanced Web Parts.... 1325

Web Part Editors 1335

Connecting Web Parts 1341

Custom Verbs and Web Parts 1350

User Controls and Advanced Web Parts 1351

Uploading Web Parts Dynamically 1354

Authorizing Web Parts 1360

Final Tasks for Personalization 1360

Summary 1361

Chapter 32: MVC 1363

Choosing Between MVC and Web Forms 1363

Creating a Basic MVC Application ,1364

Creating the Model 1365

Creating the Controller 1365

Creating the Index View 1366

Testing the (Incomplete) Application 1367

Completing the Controller and Views 1368

Modifying the Site.Master File 1371

Extending the Basic MVC Application 1371

Configuring Routing 1371

Adding Error Handling 1373

Adding Authentication 1374

Consolidating Data Store Access 1375

Adding Support for Foreign Key Constraints 1378

Customizing Views 1378

Modifying the View 1379

Adding View Data 1381

Adding to the Model 1383

xxix

Page 27: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Validating Data 1388

Performing Basic Validation 1388

Adding Validation Annotations 1390

Using Action Results 1393

Returning JSON Data 1394

Calling Another Controller Method 1395

Summary 1396

if Chapter 33: Dynamic Data . . 1397

Creating a Dynamic Data Application 1397

Creating the Dynamic Data Site 1397

Exploring the Dynamic Data Site 1400

Understanding the Anatomy of a Dynamic Data Project 1403

Customizing a Dynamic Data Site 1404

Customizing with Templates 1404

Customizing with Routes 1414

Customizing with Metadata 1423

Customizing Validation 1430

Summary 1435

Chapter 34: Silverlight 1437

Understanding Silverlight 1438

Silverlight vs. Flash 1439

Silverlight System Requirements 1441

Creating a Silverlight Solution 1442

Silverlight Compilation 1443

The Entry Page 1445

Creating a Silverlight Project 1449

Designing a Silverlight Page 1450

Understanding XAML 1454

Setting Properties 1455

The XAML Code-Behind 1456

Handling Events 1457

XXX

Page 28: Pro Asp.Net 4.0 in C# 2010 - gbv.de · PDF fileThePageAsaControl Container 104 ... Editing Templates in Visual Studio 436 ... Managing Concurrency 598 HandlingConcurrency Conflicts

CONTENTS

Browsing the Silverlight Class Libraries 1459

Layout 1460

The Canvas 1460

The Grid 1466

Animation 1471

Animation Basics 1471

Defining an Animation 1472

The Storyboard Class 1472

An Interactive Animation Example 1475

Transforms 1479

Using Web Services with Silverlight 1483

Creating the Web Service 1484

Adding a Web Reference ...1484

Calling the Web Service 1485

Configuring the Web Service URL 1487

Cross-Domain Web Service Calls 1488

Summary 1489

Index 1491

xxxi


Recommended