Table of Contents xvii
Lesson Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Lesson 2: Configuring Application Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
How to Use an Application Domain to Start Assemblies with
Limited Privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
How to Configure Application Domain Properties. . . . . . . . . . . . . . . . . . . . . . 330
Lab: Control Application Domain Privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Lesson Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Lesson 3: Creating Windows Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
What Is a Windows Service?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
How to Create a Service Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
How to Implement a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
How to Create an Install Project for a Service . . . . . . . . . . . . . . . . . . . . . . . . . . 340
How to Manage and Control a Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Lab: Create, Install, and Start a Service to Monitor a Web Site. . . . . . . . . . . . 345
Lesson Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Lesson Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Chapter Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353
Chapter Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Key Terms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Case Scenarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Case Scenario 1: Creating a Testing Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Case Scenario 2: Monitoring a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Suggested Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Create a Unit of Isolation for the Common Language
Runtime within a .NET Framework Application by Using
Application Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Implement, Install, and Control a Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Take a Practice Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357
9 Installing and Configuring Applications. . . . . . . . . . . . . . . . . . . . . . . . . 359
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
Lesson 1: Configuring Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
.NET Framework Application Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Reading Machine Configuration Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Creating Custom Sections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Lab: Persistently Storing Configuration Settings . . . . . . . . . . . . . . . . . . . . . . . . 373