Introduction |
|
1 | (2) |
|
|
2 | (1) |
|
What Does This Book Cover? |
|
|
2 | (2) |
|
What You Need to Use This Book |
|
|
4 | (1) |
|
|
5 | (1) |
|
Customer Support and Feedback |
|
|
6 | (5) |
|
How to Download the Source Code for the Book |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
7 | (4) |
|
Environment and Architecture |
|
|
11 | (26) |
|
|
12 | (5) |
|
Desktop Applications and Web Applications |
|
|
13 | (1) |
|
Web Servers and Web Clients |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
15 | (1) |
|
Receiving and Processing the HTTP Request |
|
|
16 | (1) |
|
|
16 | (1) |
|
|
16 | (1) |
|
Client-Side Processing and Rendering |
|
|
17 | (1) |
|
Configuring Your System for Web Development |
|
|
17 | (9) |
|
Setting up Your Web Server |
|
|
17 | (2) |
|
|
19 | (1) |
|
Creating Virtual Directories |
|
|
19 | (6) |
|
Configuring Virtual Directories |
|
|
25 | (1) |
|
|
26 | (9) |
|
Pros and Cons of Dynamic Content |
|
|
26 | (1) |
|
Client-side Processing and Server-side Processing |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
27 | (5) |
|
|
32 | (1) |
|
Web Application Architecture |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
35 | (2) |
|
|
37 | (30) |
|
An Introduction to ASP.NET |
|
|
38 | (18) |
|
ASP.NET Pages and Web Forms |
|
|
38 | (1) |
|
Building Web Forms in Visual Studio .NET |
|
|
39 | (1) |
|
The Structure of a Web Form: Presentation and Processing |
|
|
39 | (8) |
|
Using the Properties Browser |
|
|
47 | (5) |
|
|
52 | (4) |
|
|
56 | (7) |
|
A Brief Tour of an ASP.NET Application |
|
|
57 | (1) |
|
|
58 | (1) |
|
Object Orientation in ASP.NET |
|
|
59 | (1) |
|
Reusability and Encapsulation |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
61 | (2) |
|
|
63 | (4) |
|
User Interfaces and Server Controls |
|
|
67 | (58) |
|
|
68 | (31) |
|
|
70 | (5) |
|
|
75 | (3) |
|
Creating a More Flexible Stylesheet |
|
|
78 | (2) |
|
|
80 | (4) |
|
|
84 | (6) |
|
|
90 | (3) |
|
|
93 | (6) |
|
|
99 | (11) |
|
|
110 | (6) |
|
|
116 | (3) |
|
Avoiding Code Duplication |
|
|
119 | (3) |
|
|
122 | (3) |
|
|
125 | (38) |
|
The Architecture of ADO.NET |
|
|
126 | (3) |
|
|
128 | (1) |
|
Programmatic Use of ADO.NET |
|
|
129 | (19) |
|
Adding Data to a Database |
|
|
129 | (6) |
|
Retrieving Data from a Database |
|
|
135 | (6) |
|
Changing the Data in a Database |
|
|
141 | (7) |
|
Completing the Picture -- The DataSet Object |
|
|
148 | (12) |
|
|
149 | (1) |
|
|
150 | (10) |
|
|
160 | (3) |
|
|
163 | (52) |
|
Introduction to Components |
|
|
164 | (5) |
|
|
166 | (3) |
|
|
169 | (17) |
|
|
170 | (1) |
|
|
170 | (1) |
|
Adding Data Binding to Friends Reunion |
|
|
171 | (8) |
|
|
179 | (7) |
|
Working Visually with Data |
|
|
186 | (8) |
|
|
186 | (1) |
|
|
187 | (7) |
|
|
194 | (19) |
|
|
196 | (3) |
|
Freestyle Data Binding and Editing -- The Data List |
|
|
199 | (1) |
|
Adding a DataList to our Application |
|
|
199 | (14) |
|
|
213 | (2) |
|
|
215 | (54) |
|
|
215 | (1) |
|
|
216 | (20) |
|
Controlling Session State |
|
|
229 | (4) |
|
Configuring Session State |
|
|
233 | (1) |
|
|
233 | (1) |
|
|
234 | (2) |
|
|
236 | (6) |
|
Application Object and Events |
|
|
241 | (1) |
|
|
242 | (10) |
|
Using View State as a Data Store |
|
|
246 | (6) |
|
|
252 | (6) |
|
Storing Information using Cookies |
|
|
258 | (7) |
|
Passing Data with Query Strings |
|
|
264 | (1) |
|
Passing Data with Hidden Form Fields |
|
|
265 | (1) |
|
|
265 | (4) |
|
|
269 | (30) |
|
|
270 | (7) |
|
HyperText Markup Language |
|
|
271 | (1) |
|
Extensible Markup Language (XML) |
|
|
272 | (1) |
|
|
273 | (1) |
|
|
274 | (1) |
|
The Nature of an XML Document |
|
|
275 | (2) |
|
|
277 | (19) |
|
XML Schemas and Validation |
|
|
278 | (1) |
|
|
278 | (2) |
|
Markup Languages, Schemas, and Validation |
|
|
280 | (1) |
|
|
281 | (2) |
|
|
283 | (2) |
|
|
285 | (2) |
|
Definition of a Complex Type |
|
|
287 | (6) |
|
Defining a Custom Simple Type |
|
|
293 | (1) |
|
Restricting Element Occurrence |
|
|
294 | (1) |
|
Viewing the Entire Schema |
|
|
295 | (1) |
|
|
296 | (3) |
|
|
299 | (42) |
|
Creating XML Documents in Visual Studio .NET |
|
|
300 | (5) |
|
Creating XML Documents Visually |
|
|
300 | (3) |
|
Creating XML Documents in Data View |
|
|
303 | (2) |
|
Programmatic Manipulation of XML in .NET |
|
|
305 | (34) |
|
Reading and Validating XML |
|
|
306 | (1) |
|
|
306 | (6) |
|
Receiving the Uploaded File |
|
|
312 | (2) |
|
Validating XML from a Web Application |
|
|
314 | (4) |
|
Processing the Uploaded XML Data |
|
|
318 | (5) |
|
Querying XML Documents: XPath |
|
|
323 | (4) |
|
The Document Object Model (DOM) |
|
|
327 | (7) |
|
Building XPath Expressions Dynamically |
|
|
334 | (3) |
|
XmlDocument versus XmlReader |
|
|
337 | (2) |
|
|
339 | (2) |
|
Web Services in Web Applications |
|
|
341 | (38) |
|
|
341 | (3) |
|
Relationship to the Server/Browser Model |
|
|
342 | (1) |
|
Visual Studio .NET Support for Web Services |
|
|
343 | (1) |
|
|
344 | (11) |
|
|
349 | (3) |
|
|
352 | (3) |
|
|
355 | (5) |
|
|
360 | (2) |
|
Error Handling in Web Services |
|
|
362 | (4) |
|
|
366 | (8) |
|
|
366 | (1) |
|
Asynchronous Communication |
|
|
367 | (1) |
|
|
368 | (1) |
|
Reducing the Amount of Data Involved |
|
|
368 | (6) |
|
Adding State to Web Services |
|
|
374 | (1) |
|
|
374 | (1) |
|
|
375 | (4) |
|
ASP.NET Authentication, Authorization, and Security |
|
|
379 | (30) |
|
|
380 | (1) |
|
|
380 | (10) |
|
|
381 | (1) |
|
Authentication and Authorization |
|
|
381 | (1) |
|
Credential Stores and Security Tokens |
|
|
381 | (2) |
|
|
383 | (1) |
|
|
383 | (1) |
|
Processing and Initialization |
|
|
384 | (3) |
|
Application Security Configuration |
|
|
387 | (1) |
|
Authentication Configuration |
|
|
387 | (1) |
|
Authorization Configuration |
|
|
388 | (1) |
|
|
389 | (1) |
|
|
390 | (1) |
|
|
391 | (1) |
|
|
392 | (6) |
|
Customizing Authentication and Role-based Security |
|
|
398 | (9) |
|
|
407 | (2) |
|
Debugging and Exception Handling |
|
|
409 | (54) |
|
Different Types of Errors |
|
|
410 | (4) |
|
|
410 | (2) |
|
|
412 | (2) |
|
|
414 | (1) |
|
Debugging Web Applications |
|
|
414 | (31) |
|
|
414 | (1) |
|
Implications of Tracing Techniques |
|
|
415 | (1) |
|
Enabling Tracing in ASP.NET |
|
|
415 | (3) |
|
Adding Custom Tracing Statements to Friends Reunion |
|
|
418 | (4) |
|
Enabling and Disabling Trace at the Application Level |
|
|
422 | (1) |
|
|
423 | (2) |
|
Tracing and Assertions in .NET |
|
|
425 | (1) |
|
Using Assertions in .NET Code |
|
|
425 | (1) |
|
Using Assertions in Friends Reunion |
|
|
426 | (3) |
|
The Visual Studio .NET Debugger |
|
|
429 | (1) |
|
|
430 | (2) |
|
|
432 | (1) |
|
|
433 | (6) |
|
|
439 | (1) |
|
|
440 | (5) |
|
|
445 | (15) |
|
Different Uses for Exceptions |
|
|
446 | (1) |
|
Exceptions and Result Codes: a Comparison |
|
|
446 | (1) |
|
Limitations of Result Codes |
|
|
446 | (1) |
|
How Exceptions Eliminate these Limitations |
|
|
447 | (1) |
|
Exceptions and Exception-handling |
|
|
447 | (1) |
|
|
448 | (1) |
|
|
448 | (1) |
|
|
449 | (3) |
|
Defining Custom Exceptions |
|
|
452 | (1) |
|
|
453 | (2) |
|
|
455 | (5) |
|
|
460 | (3) |
|
Caching and Performance Tuning |
|
|
463 | (50) |
|
The Meaning of Performance |
|
|
464 | (9) |
|
Some Performance-Monitoring Tools |
|
|
464 | (1) |
|
|
465 | (1) |
|
The Performance Console (or PerfMon) |
|
|
465 | (1) |
|
Performance Objects, Counters, and Instances |
|
|
466 | (1) |
|
ASP.NET Performance Objects |
|
|
467 | (4) |
|
|
471 | (1) |
|
Avoiding External Overhead |
|
|
472 | (1) |
|
Performance-Testing the Application |
|
|
473 | (11) |
|
Applying a Load to our Application |
|
|
473 | (1) |
|
Installing the Web Application Stress Tool |
|
|
474 | (1) |
|
Getting Support for the Web Application Stress Tool |
|
|
474 | (1) |
|
Generating a Realistic Set of Data |
|
|
474 | (1) |
|
Preparing a Performance Test with a Simulated Load |
|
|
475 | (4) |
|
|
479 | (2) |
|
Running the Performance Test |
|
|
481 | (3) |
|
|
484 | (3) |
|
Caching in a Web Architecture |
|
|
484 | (1) |
|
|
485 | (1) |
|
|
485 | (2) |
|
|
487 | (16) |
|
|
488 | (2) |
|
|
490 | (1) |
|
|
491 | (2) |
|
|
493 | (1) |
|
|
494 | (1) |
|
Adding Data to the ASP.NET Cache via the Cache Object |
|
|
494 | (4) |
|
Data Caching in Friends Reunion |
|
|
498 | (5) |
|
Other ASP.NET Performance Tips |
|
|
503 | (7) |
|
|
503 | (3) |
|
Response.Redirect and Server.Transfer |
|
|
506 | (1) |
|
Conservative Use of Web Controls |
|
|
507 | (1) |
|
|
508 | (1) |
|
|
509 | (1) |
|
Improving Database Access |
|
|
509 | (1) |
|
|
510 | (3) |
|
Publishing Web Applications in .NET |
|
|
513 | (38) |
|
|
514 | (1) |
|
|
514 | (1) |
|
|
514 | (1) |
|
|
515 | (1) |
|
Deploying a Web Application by Hand |
|
|
515 | (5) |
|
Setup Projects in Visual Studio .NET |
|
|
520 | (10) |
|
|
522 | (6) |
|
|
528 | (2) |
|
|
530 | (2) |
|
|
532 | (1) |
|
|
532 | (12) |
|
|
533 | (1) |
|
Editing the User Interface |
|
|
534 | (4) |
|
|
538 | (2) |
|
|
540 | (3) |
|
|
543 | (1) |
|
|
544 | (3) |
|
Search Target Machine Node |
|
|
544 | (1) |
|
|
545 | (2) |
|
|
547 | (1) |
|
Web Applications -- An Overview |
|
|
548 | (3) |
Appendix A: Friends Reunion |
|
551 | (6) |
Appendix B: Configuration of IIS and MSDE |
|
557 | (28) |
|
|
557 | (9) |
|
Configuring Server-wide Settings |
|
|
557 | (2) |
|
|
559 | (1) |
|
|
559 | (1) |
|
|
560 | (1) |
|
General Security Settings |
|
|
561 | (2) |
|
Configuring ASP.NET Applications in IIS |
|
|
563 | (2) |
|
|
565 | (1) |
|
The ASP.NET System Process |
|
|
566 | (1) |
|
|
566 | (1) |
|
|
567 | (4) |
|
|
567 | (4) |
|
|
571 | (4) |
|
The Microsoft SQL Server Desktop Engine |
|
|
575 | (10) |
|
|
575 | (1) |
|
Obtaining and Installing MSDE |
|
|
575 | (4) |
|
Using MSDE via the Server Explorer |
|
|
579 | (6) |
Index |
|
585 | |