Preface |
|
xxi | |
Acknowledgments |
|
xxiv | |
About This Series |
|
xxvii | |
PART ONE .NET ARCHITECTURE OVERVIEW |
|
1 | (30) |
|
|
5 | (12) |
|
|
6 | (2) |
|
Applications in the Internet Age |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
7 | (1) |
|
Open Standards and Interoperability |
|
|
7 | (1) |
|
|
8 | (1) |
|
|
8 | (2) |
|
|
8 | (1) |
|
The Glass House and Thin Clients |
|
|
9 | (1) |
|
|
9 | (1) |
|
A New Programming Platform |
|
|
10 | (3) |
|
|
10 | (1) |
|
|
10 | (2) |
|
Multiple Language Development |
|
|
12 | (1) |
|
|
12 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
Success Factors for Web Services |
|
|
13 | (1) |
|
VB.NET and the .NET Framework |
|
|
13 | (1) |
|
|
14 | (3) |
|
|
17 | (14) |
|
Problems of Windows Development |
|
|
17 | (1) |
|
Applications of the Future |
|
|
18 | (1) |
|
|
18 | (10) |
|
|
18 | (3) |
|
.NET Framework Class Library |
|
|
21 | (1) |
|
Interface-Based Programming |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
23 | (1) |
|
Language Interoperability |
|
|
24 | (1) |
|
|
25 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
28 | (3) |
PART TWO VB.NET LANGUAGE |
|
31 | (188) |
|
VB.NET Essentials, Part I |
|
|
35 | (42) |
|
Visual Studio .NET and Console Applications |
|
|
36 | (5) |
|
|
36 | (2) |
|
|
38 | (1) |
|
Console Applications Versus Windows Applications |
|
|
39 | (2) |
|
|
41 | (5) |
|
Compiling and Running (Command Line) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
43 | (3) |
|
Performing Calculations in VB.NET |
|
|
46 | (11) |
|
|
48 | (1) |
|
|
48 | (1) |
|
VB.NET Operators and Expressions |
|
|
49 | (1) |
|
|
50 | (2) |
|
|
52 | (1) |
|
|
53 | (1) |
|
|
54 | (3) |
|
|
57 | (13) |
|
Classes as Structured Data |
|
|
57 | (5) |
|
|
62 | (3) |
|
|
65 | (2) |
|
Shared Fields and Methods |
|
|
67 | (2) |
|
|
69 | (1) |
|
Constant and Read Only Fields |
|
|
69 | (1) |
|
|
70 | (6) |
|
Overview of Types in VB.NET |
|
|
71 | (1) |
|
|
71 | (3) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
75 | (1) |
|
|
76 | (1) |
|
VB.NET Essentials, Part II |
|
|
77 | (34) |
|
|
77 | (11) |
|
|
78 | (1) |
|
|
79 | (1) |
|
|
80 | (2) |
|
|
82 | (1) |
|
|
83 | (2) |
|
|
85 | (1) |
|
String Methods and Properties |
|
|
85 | (2) |
|
|
87 | (1) |
|
Arrays and Parameterized Properties |
|
|
88 | (7) |
|
|
88 | (2) |
|
|
90 | (1) |
|
|
90 | (1) |
|
Interfaces for System.Array |
|
|
91 | (1) |
|
|
91 | (1) |
|
|
92 | (1) |
|
|
92 | (1) |
|
|
93 | (1) |
|
Indexing With Default Parameterized Properties |
|
|
93 | (2) |
|
|
95 | (5) |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
96 | (1) |
|
|
97 | (1) |
|
Variable-Length Parameter Lists |
|
|
98 | (2) |
|
|
100 | (1) |
|
|
101 | (9) |
|
|
101 | (1) |
|
|
102 | (1) |
|
|
103 | (1) |
|
|
103 | (1) |
|
|
104 | (1) |
|
|
104 | (1) |
|
Character Manipulation Functions |
|
|
104 | (1) |
|
String Manipulation Functions |
|
|
104 | (1) |
|
|
104 | (2) |
|
|
106 | (2) |
|
|
108 | (2) |
|
|
110 | (1) |
|
|
110 | (1) |
|
Inheritance and Exceptions in VB.NET |
|
|
111 | (48) |
|
Review of Object-Oriented Concepts |
|
|
112 | (4) |
|
|
112 | (2) |
|
|
114 | (1) |
|
|
115 | (1) |
|
Acme Travel Agency Case Study: Design |
|
|
116 | (7) |
|
Designing the Abstractions |
|
|
117 | (3) |
|
|
120 | (2) |
|
Designing the Encapsulation |
|
|
122 | (1) |
|
|
123 | (3) |
|
|
124 | (2) |
|
|
126 | (2) |
|
|
126 | (1) |
|
|
126 | (1) |
|
Access Control in the Case Study |
|
|
127 | (1) |
|
Acme Travel Agency Case Study: Implementation |
|
|
128 | (7) |
|
|
128 | (1) |
|
|
129 | (1) |
|
|
129 | (3) |
|
|
132 | (1) |
|
|
133 | (1) |
|
|
134 | (1) |
|
|
135 | (11) |
|
|
135 | (1) |
|
|
136 | (2) |
|
|
138 | (1) |
|
|
139 | (2) |
|
The Fragile Base Class Problem |
|
|
141 | (1) |
|
|
142 | (2) |
|
|
144 | (1) |
|
|
145 | (1) |
|
Heterogeneous Collections |
|
|
145 | (1) |
|
|
146 | (11) |
|
|
146 | (6) |
|
User-Defined Exception Classes |
|
|
152 | (2) |
|
Structured Exception Handling |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
156 | (1) |
|
|
157 | (2) |
|
VB.NET in the .NET Framework |
|
|
159 | (60) |
|
|
160 | (4) |
|
Public Instance Methods of Object |
|
|
160 | (1) |
|
Protected Instance Methods |
|
|
161 | (1) |
|
Generic Interfaces and Standard Behavior |
|
|
161 | (1) |
|
Using Object Methods in the Customer Class |
|
|
162 | (2) |
|
|
164 | (4) |
|
|
165 | (3) |
|
|
168 | (9) |
|
|
169 | (3) |
|
|
172 | (3) |
|
Dynamic Use of Interfaces |
|
|
175 | (2) |
|
Resolving Ambiguity in Interfaces |
|
|
177 | (2) |
|
Acme Travel Agency Case Study: Step 2 |
|
|
179 | (4) |
|
|
180 | (1) |
|
|
181 | (2) |
|
Generic Interfaces in .NET |
|
|
183 | (13) |
|
|
183 | (6) |
|
Copy Semantics and ICloneable |
|
|
189 | (5) |
|
|
194 | (2) |
|
|
196 | (1) |
|
|
196 | (9) |
|
|
197 | (1) |
|
|
197 | (1) |
|
Creating a Delegate Object |
|
|
198 | (1) |
|
|
198 | (1) |
|
Combining Delegate Objects |
|
|
198 | (1) |
|
|
199 | (3) |
|
|
202 | (3) |
|
|
205 | (8) |
|
Events in Visual Basic and VB.NET |
|
|
206 | (1) |
|
|
206 | (3) |
|
Chat Room Complete Example (Step 1) |
|
|
209 | (3) |
|
|
212 | (1) |
|
|
213 | (4) |
|
|
214 | (3) |
|
|
217 | (2) |
PART THREE FUNDAMENTALS OF WINDOWS FORMS |
|
219 | (108) |
|
|
223 | (50) |
|
|
223 | (1) |
|
Windows Applications Using the .NET SDK |
|
|
224 | (6) |
|
|
224 | (1) |
|
Step 2: Customizing the Form |
|
|
225 | (2) |
|
|
227 | (1) |
|
|
228 | (2) |
|
Windows Forms Event Handling |
|
|
230 | (6) |
|
Step 3: Adding a Button to the Form |
|
|
232 | (2) |
|
Step 4: Using Label and TextBox Controls |
|
|
234 | (2) |
|
Visual Studio .NET and Forms |
|
|
236 | (9) |
|
Windows Forms Demonstration |
|
|
236 | (5) |
|
Design Window and Code Window |
|
|
241 | (1) |
|
Adding Event Handlers Using Visual Studio |
|
|
242 | (1) |
|
Life Cycle of a Windows Form |
|
|
242 | (1) |
|
Overriding Virtual Methods of a Form |
|
|
243 | (2) |
|
Under the Hood of a VS.NET Windows Application |
|
|
245 | (3) |
|
Code Generated by Windows Form Designer |
|
|
245 | (3) |
|
|
248 | (11) |
|
.NET Dialog Documentation |
|
|
248 | (1) |
|
|
249 | (1) |
|
|
250 | (1) |
|
Step 1: Creating a New Dialog |
|
|
251 | (3) |
|
Step 2: Displaying a Dialog |
|
|
254 | (1) |
|
Step 3: Validating a Dialog's Data |
|
|
255 | (2) |
|
Step 4: Adding ToolTips for Controls |
|
|
257 | (2) |
|
|
259 | (3) |
|
|
259 | (1) |
|
Using a Radio Button with a Group Box |
|
|
260 | (1) |
|
Step 1: Drawing the Radio Button Group |
|
|
261 | (1) |
|
Step 2: Determining Which Radio Button is Selected |
|
|
261 | (1) |
|
|
262 | (2) |
|
Using List Controls (ListBox and ComboBox) |
|
|
264 | (7) |
|
Step 1: Adding Data to a ListBox |
|
|
266 | (1) |
|
Step 2: Selecting an Item in a ListBox |
|
|
267 | (2) |
|
Step 3: Removing Data from a ListBox |
|
|
269 | (1) |
|
Step 4: Changing Hotel Data |
|
|
269 | (1) |
|
Acme Travel Agency Case Study (Step 3) |
|
|
270 | (1) |
|
|
271 | (2) |
|
|
273 | (54) |
|
|
273 | (8) |
|
|
273 | (1) |
|
Step 1: Using the MainMenu Control |
|
|
274 | (2) |
|
Step 2: Responding to Menu Events |
|
|
276 | (1) |
|
Step 3: Controlling Menu Appearance |
|
|
277 | (1) |
|
|
278 | (3) |
|
|
281 | (5) |
|
Step 1: Setting up the ImageList Control |
|
|
282 | (1) |
|
Step 2: Configuring the Toolbar Control |
|
|
282 | (3) |
|
Step 3: Responding to Toolbar Events |
|
|
285 | (1) |
|
Step 4: Controlling Toolbar Button Appearance |
|
|
286 | (1) |
|
|
286 | (4) |
|
Step 1: Adding the StatusBar Control |
|
|
287 | (1) |
|
Step 2: Displaying Information in the Status Bar |
|
|
288 | (1) |
|
Step 3: Using the Timer Control to Display Time |
|
|
288 | (2) |
|
|
290 | (4) |
|
|
290 | (1) |
|
|
291 | (2) |
|
Step 1: Setting Up Annually Bolded Dates |
|
|
293 | (1) |
|
Step 2: Programmatically Setting the Date |
|
|
293 | (1) |
|
Step 3: Determining the Selected Date |
|
|
293 | (1) |
|
|
294 | (7) |
|
|
294 | (2) |
|
|
296 | (2) |
|
|
298 | (1) |
|
|
299 | (2) |
|
|
301 | (12) |
|
|
301 | (2) |
|
|
303 | (2) |
|
Step 1: Initializing the ArrayList |
|
|
305 | (1) |
|
Step 2: Adding Items to the CheckedListBox Control |
|
|
306 | (1) |
|
Step 3: Accessing Items in the Control |
|
|
307 | (1) |
|
|
308 | (2) |
|
Step 1: Adding the ListView Control |
|
|
310 | (1) |
|
Step 2: Adding Items to the Control |
|
|
311 | (1) |
|
Step 3: Accessing the Selected Item |
|
|
312 | (1) |
|
|
313 | (3) |
|
|
316 | (6) |
|
Interacting with TreeNodes |
|
|
317 | (1) |
|
Example: Using the TreeView Control |
|
|
318 | (1) |
|
Step 1: Initializing the Control |
|
|
319 | (1) |
|
Step 2: Handling the Context Menu |
|
|
320 | (1) |
|
|
320 | (1) |
|
|
321 | (1) |
|
|
322 | (3) |
|
|
325 | (2) |
PART FOUR FUNDAMENTALS OF THE .NET FRAMEWORK |
|
327 | (116) |
|
Assemblies and Deployment |
|
|
331 | (42) |
|
|
331 | (7) |
|
|
332 | (1) |
|
Class Libraries Using Visual Studio |
|
|
333 | (5) |
|
|
338 | (16) |
|
Componentized Version of Case Study |
|
|
338 | (3) |
|
|
341 | (6) |
|
|
347 | (2) |
|
|
349 | (1) |
|
|
349 | (2) |
|
Digitally Signing an Assembly |
|
|
351 | (3) |
|
Private Assembly Deployment |
|
|
354 | (3) |
|
Shared Assembly Deployment |
|
|
357 | (3) |
|
Deploying a Shared Assembly |
|
|
357 | (1) |
|
Versioning Shared Components |
|
|
358 | (2) |
|
|
360 | (4) |
|
Resolving an Assembly Reference at Runtime |
|
|
360 | (1) |
|
Specifying the Version Policy in a Configuration File |
|
|
361 | (1) |
|
Finding the Assembly's Physical Location |
|
|
362 | (2) |
|
|
364 | (3) |
|
Setup and Deployment Projects |
|
|
367 | (5) |
|
|
368 | (1) |
|
|
369 | (1) |
|
|
370 | (1) |
|
|
371 | (1) |
|
|
372 | (1) |
|
|
373 | (70) |
|
|
374 | (6) |
|
|
375 | (4) |
|
|
379 | (1) |
|
|
380 | (6) |
|
|
381 | (1) |
|
Primitive Datatypes and Streams |
|
|
382 | (1) |
|
TextReader and TextWriter |
|
|
383 | (1) |
|
|
383 | (3) |
|
|
386 | (6) |
|
|
387 | (3) |
|
|
390 | (2) |
|
|
392 | (14) |
|
|
392 | (12) |
|
|
404 | (1) |
|
Synchronization of Collections |
|
|
405 | (1) |
|
|
406 | (3) |
|
|
407 | (1) |
|
|
408 | (1) |
|
|
409 | (5) |
|
|
409 | (1) |
|
Application Domains and Assemblies |
|
|
410 | (1) |
|
|
410 | (1) |
|
Application Domain Events |
|
|
411 | (1) |
|
|
411 | (3) |
|
Marshaling, Application Domains, and Contexts |
|
|
414 | (1) |
|
|
414 | (7) |
|
The Asynchronous Design Pattern |
|
|
414 | (2) |
|
|
416 | (1) |
|
Using Delegates for Asynchronous Programming |
|
|
416 | (3) |
|
Threading with Parameters |
|
|
419 | (2) |
|
|
421 | (7) |
|
|
422 | (1) |
|
|
422 | (1) |
|
|
423 | (1) |
|
|
423 | (3) |
|
|
426 | (2) |
|
Remoting Configuration Files |
|
|
428 | (1) |
|
|
428 | (4) |
|
|
428 | (2) |
|
Defining an Attribute Class |
|
|
430 | (1) |
|
|
431 | (1) |
|
Garbage Collection and Finalization |
|
|
432 | (9) |
|
|
432 | (1) |
|
Unmanaged Resources and Dispose |
|
|
433 | (4) |
|
Garbage Collection and Generations |
|
|
437 | (1) |
|
Finalization and Stack Unwinding |
|
|
438 | (1) |
|
Controlling Garbage Collection with the GC Class |
|
|
439 | (1) |
|
|
440 | (1) |
|
|
441 | (2) |
PART FIVE ADVANCED UI PROGRAMMING USING VB.NET |
|
443 | (78) |
|
|
447 | (44) |
|
Device-Independent Graphics and Abstraction |
|
|
447 | (2) |
|
|
449 | (6) |
|
|
449 | (3) |
|
|
452 | (1) |
|
|
453 | (1) |
|
|
454 | (1) |
|
Images, Bitmaps, and Metafiles |
|
|
454 | (1) |
|
|
454 | (1) |
|
|
455 | (5) |
|
|
455 | (1) |
|
|
455 | (1) |
|
|
456 | (2) |
|
|
458 | (2) |
|
|
460 | (8) |
|
|
460 | (4) |
|
|
464 | (4) |
|
|
468 | (5) |
|
|
468 | (2) |
|
|
470 | (3) |
|
|
473 | (5) |
|
Invalidating a Window Programmatically |
|
|
476 | (1) |
|
Invalidating a Specific Rectangle |
|
|
477 | (1) |
|
|
478 | (1) |
|
|
478 | (6) |
|
|
478 | (2) |
|
|
480 | (2) |
|
Saving to a Metafile (Version 4) |
|
|
482 | (2) |
|
|
484 | (1) |
|
|
484 | (1) |
|
|
485 | (3) |
|
|
487 | (1) |
|
|
488 | (1) |
|
|
489 | (2) |
|
|
491 | (30) |
|
|
491 | (3) |
|
Step 1: Designing the GUI |
|
|
492 | (1) |
|
Step 2: Managing the Relationship between Forms |
|
|
493 | (1) |
|
Step 3: Programming the Apply and Close Buttons |
|
|
493 | (1) |
|
Step 4: Enabling and Disabling the Apply Button |
|
|
494 | (1) |
|
|
494 | (9) |
|
Step 1: Create an MDI Parent Form |
|
|
495 | (1) |
|
Step 2: Create an MDI Child Form |
|
|
496 | (3) |
|
Step 3: Coding the Window Menu |
|
|
499 | (1) |
|
Step 4: Interacting with the Active Child Form |
|
|
500 | (1) |
|
Step 5: Dealing with Menu Appearance |
|
|
500 | (1) |
|
Step 6: Finishing the Application |
|
|
501 | (2) |
|
|
503 | (12) |
|
Characteristics of the Base Form |
|
|
503 | (1) |
|
Step 1: Create a Project with the Base Form |
|
|
503 | (1) |
|
Step 2: Determine the Controls Customizable by the Derived Class |
|
|
504 | (1) |
|
Step 3: Implement the Base Form's Behavior |
|
|
505 | (1) |
|
Step 4: Building the Project |
|
|
506 | (1) |
|
Characteristics of the Derived Form |
|
|
506 | (2) |
|
Step 1: Create a Project that Uses Visual Inheritance |
|
|
508 | (2) |
|
Step 2: Adding an Inherited Form |
|
|
510 | (3) |
|
Step 3: Coding the Inherited Form |
|
|
513 | (2) |
|
|
515 | (5) |
|
Adding ActiveX Controls to the Toolbox |
|
|
516 | (1) |
|
Using an ActiveX Control without Using Visual Studio |
|
|
517 | (1) |
|
Programming with ActiveX Controls |
|
|
518 | (2) |
|
|
520 | (1) |
PART SIX .NET APPLICATIONS |
|
521 | (258) |
|
|
525 | (62) |
|
A Visual Studio .NET Database Testbed |
|
|
527 | (5) |
|
|
527 | (1) |
|
The Visual Studio .NET Server Explorer |
|
|
527 | (1) |
|
|
528 | (1) |
|
|
529 | (1) |
|
Inserting Data into a Table |
|
|
529 | (1) |
|
|
529 | (3) |
|
|
532 | (2) |
|
|
533 | (1) |
|
|
534 | (1) |
|
|
534 | (9) |
|
|
534 | (3) |
|
|
537 | (1) |
|
|
538 | (2) |
|
Sample Database Application Using Connected Scenario |
|
|
540 | (3) |
|
Parameters and Stored Procedures |
|
|
543 | (2) |
|
SqlDataAdapter and the DataSet Class |
|
|
545 | (3) |
|
|
546 | (1) |
|
|
546 | (2) |
|
|
548 | (4) |
|
|
550 | (1) |
|
Auto Generated Command Properties |
|
|
551 | (1) |
|
Database Transactions and Updates |
|
|
552 | (1) |
|
Optimistic Versus Pessimistic Locking and the DataSet |
|
|
553 | (2) |
|
|
555 | (16) |
|
Multiple Tables in a DataSet |
|
|
556 | (2) |
|
Table Creation without a Data Source |
|
|
558 | (1) |
|
Constraints and Relations |
|
|
559 | (2) |
|
Examining the Schema Information about a DataTable |
|
|
561 | (6) |
|
|
567 | (4) |
|
Acme Travel Agency Case Study |
|
|
571 | (1) |
|
|
571 | (2) |
|
|
572 | (1) |
|
|
572 | (1) |
|
|
572 | (1) |
|
|
573 | (7) |
|
|
573 | (4) |
|
Creating an XML Doc from a DataSet |
|
|
577 | (3) |
|
Schema with Relationships |
|
|
580 | (2) |
|
|
582 | (3) |
|
Generating Typed DataSets |
|
|
582 | (1) |
|
Fetching Data with a Typed DataSet |
|
|
583 | (1) |
|
Displaying Data with a Typed DataSet |
|
|
584 | (1) |
|
Modify Data with a Typed DataSet |
|
|
584 | (1) |
|
|
585 | (2) |
|
|
587 | (72) |
|
|
587 | (7) |
|
Web Application Fundamentals |
|
|
587 | (3) |
|
|
590 | (2) |
|
|
592 | (2) |
|
|
594 | (11) |
|
|
595 | (1) |
|
Web Forms Page Life Cycle |
|
|
596 | (3) |
|
|
599 | (1) |
|
|
599 | (1) |
|
|
599 | (3) |
|
|
602 | (2) |
|
|
604 | (1) |
|
Request/Response Programming |
|
|
605 | (8) |
|
|
605 | (5) |
|
|
610 | (3) |
|
Web Applications Using Visual Studio .NET |
|
|
613 | (13) |
|
Hotel Information Web Page (Step 0) |
|
|
614 | (8) |
|
Deploying a Web Application Created Using Visual Studio |
|
|
622 | (4) |
|
Acme Travel Agency Case Study |
|
|
626 | (8) |
|
Configuring the Case Study |
|
|
626 | (1) |
|
|
627 | (2) |
|
|
629 | (5) |
|
|
634 | (2) |
|
|
634 | (1) |
|
|
634 | (2) |
|
State in ASP.NET Applications |
|
|
636 | (5) |
|
|
636 | (3) |
|
|
639 | (1) |
|
|
639 | (2) |
|
|
641 | (4) |
|
|
641 | (2) |
|
|
643 | (2) |
|
|
645 | (1) |
|
|
645 | (8) |
|
|
646 | (1) |
|
|
646 | (3) |
|
|
649 | (3) |
|
|
652 | (1) |
|
Database Access in ASP.NET |
|
|
653 | (5) |
|
|
654 | (3) |
|
Acme Travel Agency Case Study (Database Version) |
|
|
657 | (1) |
|
|
658 | (1) |
|
|
659 | (36) |
|
|
660 | (3) |
|
|
660 | (1) |
|
|
661 | (1) |
|
|
662 | (1) |
|
|
662 | (1) |
|
|
663 | (1) |
|
|
663 | (13) |
|
Setting up the Web Services Examples |
|
|
664 | (1) |
|
The Add Web Service Example |
|
|
664 | (1) |
|
A Client Program for the Add Web Service |
|
|
665 | (4) |
|
|
669 | (2) |
|
|
671 | (1) |
|
Web Service Client with Raw SOAP and HTTP |
|
|
672 | (4) |
|
|
676 | (5) |
|
WebService Class and Visual Studio |
|
|
681 | (10) |
|
|
683 | (1) |
|
|
683 | (4) |
|
Client Program for Arithmetic Web Service |
|
|
687 | (4) |
|
Hotel Broker Web Services (Case Study) |
|
|
691 | (3) |
|
|
692 | (1) |
|
|
693 | (1) |
|
|
694 | (1) |
|
|
695 | (60) |
|
|
696 | (1) |
|
|
697 | (2) |
|
|
697 | (1) |
|
|
698 | (1) |
|
|
699 | (2) |
|
Internet Information Server |
|
|
699 | (2) |
|
Role-Based Security in .NET |
|
|
701 | (21) |
|
Principals and Identities |
|
|
701 | (2) |
|
|
703 | (3) |
|
|
706 | (1) |
|
|
707 | (3) |
|
Operating System Identity and CLR Identity |
|
|
710 | (11) |
|
Specifying Users and Groups for Access in Web.Config |
|
|
721 | (1) |
|
Forms-Based Authentication |
|
|
722 | (2) |
|
Forms Authentication and Authorization |
|
|
722 | (2) |
|
|
724 | (13) |
|
Simple Permission Code Request |
|
|
725 | (1) |
|
How a Permission Request Works |
|
|
726 | (1) |
|
Stategy for Requesting Permissions |
|
|
727 | (1) |
|
|
727 | (2) |
|
|
729 | (1) |
|
|
730 | (1) |
|
|
730 | (2) |
|
|
732 | (1) |
|
Attribute-Based Permissions |
|
|
732 | (1) |
|
|
733 | (2) |
|
|
735 | (2) |
|
|
737 | (3) |
|
Identity Permission Classes |
|
|
737 | (1) |
|
|
738 | (2) |
|
|
740 | (13) |
|
|
740 | (1) |
|
|
740 | (1) |
|
|
741 | (1) |
|
|
742 | (11) |
|
|
753 | (2) |
|
|
755 | (24) |
|
Calling COM Components from Managed Code |
|
|
755 | (13) |
|
|
756 | (2) |
|
Demonstration: Wrapping a Legacy COM Server |
|
|
758 | (6) |
|
Wrapping a COM Component with a Pure V-Table Interface |
|
|
764 | (4) |
|
Calling Managed Components from a COM Client |
|
|
768 | (5) |
|
A Late Binding COM Client |
|
|
769 | (4) |
|
Platform Invocation Services (Plnvoke) |
|
|
773 | (4) |
|
|
774 | (1) |
|
Marshaling ByRef Parameters |
|
|
775 | (2) |
|
|
777 | (2) |
APPENDIX A Visual Studio .NET |
|
779 | (20) |
|
Overview of Visual Studio .NET |
|
|
779 | (5) |
|
|
782 | (2) |
|
Creating a Console Application |
|
|
784 | (4) |
|
Creating a VB.NET Project |
|
|
784 | (1) |
|
|
785 | (1) |
|
Using the Visual Studio Text Editor |
|
|
785 | (1) |
|
|
786 | (1) |
|
|
786 | (1) |
|
Running the Program in the Debugger |
|
|
787 | (1) |
|
|
788 | (1) |
|
|
788 | (10) |
|
|
789 | (3) |
|
|
792 | (6) |
|
|
798 | (1) |
APPENDIX B Tracing and Debugging in .NET |
|
799 | (8) |
|
|
800 | (1) |
|
Enabling Debug and Trace Output |
|
|
800 | (1) |
|
Using the Debug and Trace Classes |
|
|
801 | (1) |
|
Using Switches to Enable Diagnostics |
|
|
802 | (1) |
|
Enabling or Disabling Switches |
|
|
803 | (1) |
|
Configuration File Switch Settings |
|
|
803 | (1) |
|
Programmatic Switch Settings |
|
|
803 | (1) |
|
Using Switches to Control Output |
|
|
803 | (1) |
|
|
804 | (1) |
|
|
804 | (1) |
|
|
805 | (2) |
Index |
|
807 | |