Acknowledgments |
|
x | |
Introduction |
|
xi | |
1 ASP.NET Page Framework |
|
1 | (22) |
|
Understanding ASP.NET Request Processing |
|
|
3 | (6) |
|
|
4 | (3) |
|
|
7 | (2) |
|
Understanding the ASP.NET Page Life Cycle |
|
|
9 | (2) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
Controlling Page Execution |
|
|
11 | (4) |
|
|
11 | (2) |
|
|
13 | (1) |
|
|
14 | (1) |
|
|
15 | (5) |
|
Working With Dynamic Controls |
|
|
20 | (2) |
|
|
22 | (1) |
2 Server Controls |
|
23 | (28) |
|
|
24 | (2) |
|
|
26 | (7) |
|
ASP.NET Web Control Hierarchy |
|
|
28 | (2) |
|
|
30 | (3) |
|
|
33 | (1) |
|
|
34 | (6) |
|
|
35 | (1) |
|
|
36 | (1) |
|
|
37 | (2) |
|
|
39 | (1) |
|
Controls for Validating User Input |
|
|
40 | (6) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
42 | (1) |
|
RegularExpressionValidator |
|
|
43 | (1) |
|
|
44 | (1) |
|
|
45 | (1) |
|
|
46 | (2) |
|
Using ViewState with Sensitive Data |
|
|
48 | (1) |
|
|
49 | (2) |
3 Data Controls |
|
51 | (36) |
|
The Repeater, Datalist, and DataGrid Controls |
|
|
56 | (7) |
|
|
56 | (3) |
|
|
59 | (1) |
|
|
60 | (3) |
|
Specifying Columns Explicitly |
|
|
63 | (2) |
|
|
65 | (1) |
|
Adding Styles To the DataGrid |
|
|
65 | (2) |
|
|
67 | (3) |
|
|
70 | (2) |
|
Selecting Rows in the DataGrid |
|
|
72 | (2) |
|
Editing Data in the DataGrid |
|
|
74 | (3) |
|
Deleting Data in the DataGrid |
|
|
77 | (1) |
|
Filtering Data with the DataGrid |
|
|
78 | (3) |
|
|
81 | (4) |
|
|
81 | (3) |
|
|
84 | (1) |
|
|
85 | (2) |
4 Developing for Mobile Browsers |
|
87 | (22) |
|
Introducing Mobile Pages and Mobile Controls |
|
|
88 | (2) |
|
Selecting Page and Control Adapters |
|
|
90 | (1) |
|
Designing for Mobile Browsers |
|
|
91 | (1) |
|
Taking Advantage of Emulators |
|
|
92 | (2) |
|
|
93 | (1) |
|
Using Cookieless Sessions |
|
|
94 | (2) |
|
Directing Users to Mobile Content |
|
|
96 | (1) |
|
Using the MobileCapabilities Object |
|
|
97 | (1) |
|
Working with Device Updates |
|
|
97 | (1) |
|
Adding Support for a New Browser |
|
|
98 | (4) |
|
|
102 | (3) |
|
|
103 | (2) |
|
|
105 | (1) |
|
Using Device-Specific Filters |
|
|
105 | (3) |
|
|
108 | (1) |
5 Managing Client State |
|
109 | (24) |
|
|
110 | (2) |
|
Limitations with ASP Session State |
|
|
111 | (1) |
|
|
112 | (12) |
|
|
112 | (2) |
|
Out-of-Process Session State |
|
|
114 | (7) |
|
Session Data in a Web Farm |
|
|
121 | (2) |
|
|
123 | (1) |
|
Using ViewState to Store State in the Page Output |
|
|
124 | (4) |
|
|
125 | (1) |
|
|
126 | (2) |
|
Using Cookies for Client State Management |
|
|
128 | (3) |
|
|
131 | (2) |
6 Managing Application and Request State |
|
133 | (50) |
|
|
134 | (3) |
|
Common Questions about Caching |
|
|
134 | (3) |
|
Page Caching Using the OutputCache Directive |
|
|
137 | (15) |
|
The OutputCache Directive |
|
|
138 | (3) |
|
Using the Page OutputCache Directive |
|
|
141 | (11) |
|
|
152 | (11) |
|
|
152 | (1) |
|
|
153 | (1) |
|
Vary By Options with the Output Cache APIs |
|
|
154 | (1) |
|
Honoring or Ignoring Cache Invalidation Headers |
|
|
155 | (3) |
|
Deterministically Serving Pages from the Cache |
|
|
158 | (2) |
|
Removing Pages with Dependencies from the Cache |
|
|
160 | (3) |
|
Caching Parts of the Page |
|
|
163 | (6) |
|
Cache and the Application API |
|
|
169 | (8) |
|
Deciding to Use Cache or Application |
|
|
171 | (1) |
|
What to Store in the Cache |
|
|
172 | (1) |
|
Setting and Retrieving Values from the Cache |
|
|
172 | (5) |
|
Removing Items from the Cache |
|
|
177 | (1) |
|
Static Application Variables |
|
|
177 | (2) |
|
|
179 | (2) |
|
Implementing Per-Request Caching |
|
|
179 | (2) |
|
|
181 | (2) |
7 Configuration |
|
183 | (18) |
|
|
184 | (7) |
|
|
185 | (1) |
|
|
186 | (3) |
|
|
189 | (1) |
|
Anatomy of the .CONFIG File |
|
|
190 | (1) |
|
Centralized Configuration Settings |
|
|
191 | (1) |
|
Locking Down Configuration |
|
|
192 | (1) |
|
Storing Custom Configuration Data |
|
|
193 | (6) |
|
Using Application Settings |
|
|
194 | (1) |
|
Custom Configuration Section Handler |
|
|
195 | (4) |
|
Securing Configuration Data |
|
|
199 | (1) |
|
|
200 | (1) |
|
|
200 | (1) |
8 ASP.NET Security |
|
201 | (22) |
|
Introducing ASP.NET Application Security |
|
|
201 | (2) |
|
|
203 | (3) |
|
|
203 | (2) |
|
|
205 | (1) |
|
|
206 | (2) |
|
Enabling ASP.NET Impersonation |
|
|
207 | (1) |
|
Using Forms Authentication |
|
|
208 | (4) |
|
Configuring Forms Authentication |
|
|
208 | (1) |
|
|
209 | (2) |
|
|
211 | (1) |
|
|
212 | (4) |
|
Using Roles with Windows Authentication |
|
|
212 | (1) |
|
Using Roles with Forms Authentication |
|
|
213 | (3) |
|
|
216 | (2) |
|
|
216 | (1) |
|
|
216 | (2) |
|
|
218 | (3) |
|
|
221 | (1) |
|
|
221 | (2) |
9 Tuning ASP.NET Performance |
|
223 | (20) |
|
Analyzing ASP.NET Applications |
|
|
223 | (6) |
|
Controlling the Test Environment |
|
|
224 | (1) |
|
|
225 | (1) |
|
Using Load Generating Tools |
|
|
226 | (1) |
|
Using Performance Counters |
|
|
227 | (1) |
|
Processor CPU Utilization |
|
|
228 | (1) |
|
|
228 | (1) |
|
|
228 | (1) |
|
|
228 | (1) |
|
|
229 | (1) |
|
|
229 | (3) |
|
|
232 | (2) |
|
Compiling ASP.NET Applications |
|
|
234 | (2) |
|
|
236 | (1) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
237 | (1) |
|
|
238 | (1) |
|
|
238 | (1) |
|
Avoid String Concatenation |
|
|
239 | (1) |
|
|
239 | (1) |
|
|
239 | (3) |
|
|
242 | (1) |
|
|
242 | (1) |
10 ASP.NET Debug and Trace |
|
243 | (16) |
|
|
244 | (2) |
|
|
245 | (1) |
|
|
246 | (3) |
|
|
247 | (1) |
|
|
247 | (1) |
|
|
247 | (1) |
|
|
247 | (2) |
|
|
249 | (1) |
|
|
249 | (1) |
|
|
249 | (1) |
|
|
249 | (2) |
|
How ASP.NET Compilation Works |
|
|
251 | (3) |
|
|
254 | (1) |
|
Sending Data to the Debugger |
|
|
255 | (2) |
|
|
256 | (1) |
|
|
257 | (2) |
11 Moving to ASP.NET |
|
259 | (24) |
|
Web Application Architecture |
|
|
259 | (8) |
|
Active Server Pages Extension Mappings |
|
|
261 | (2) |
|
|
263 | (3) |
|
|
266 | (1) |
|
|
267 | (9) |
|
|
268 | (8) |
|
Integrating ASP and ASP.NET |
|
|
276 | (6) |
|
|
277 | (2) |
|
Interoperating with COM and ASPCompatMode |
|
|
279 | (3) |
|
Working Around Session and Application State |
|
|
282 | (1) |
|
|
282 | (1) |
A Tips and Tricks |
|
283 | (18) |
|
|
283 | (1) |
|
|
284 | (2) |
|
|
286 | (1) |
|
Developing for Mobile Browsers |
|
|
287 | (2) |
|
|
289 | (2) |
|
Managing Application and Request State |
|
|
291 | (3) |
|
|
294 | (1) |
|
|
295 | (2) |
|
Tuning ASP.NET Performance |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
299 | (2) |
B The Cassini Sample Web Server |
|
301 | (4) |
|
|
301 | (1) |
|
Downloading the Cassini Web Server |
|
|
302 | (1) |
|
Files Installed with Cassini |
|
|
302 | (1) |
|
|
302 | (1) |
|
|
303 | (1) |
|
Getting Help With Cassini |
|
|
304 | (1) |
Index |
|
305 | |