This chapter covers the following Microsoft-specified objectives for the "Creating and Managing Microsoft Windows Services, Serviced Components, .NET Remoting Objects, and XML Web Services" section of the "Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and the Microsoft .NET Framework" exam:
Create and Consume an XML Web service.
Create and use SOAP extensions.
Create asynchronous Web methods .
Control XML wire format for an XML Web service.
In most cases, you can treat Web services using the .NET Framework as something that "just works." But there will be times when the simple approach of letting Visual Studio .NET and the .NET Framework do everything for you won't quite work. To pass this section of the exam, you'll need to understand several ways in which you can customize your Web services. Specifically, you'll learn about SOAP extensions, which enable you to apply your own processing to SOAP messages; asynchronous Web methods, which enable you to issue non-blocking calls to Web services; and wire format attributes, which enable you to control the low-level formatting of your SOAP messages.
Creating and Using SOAP Extensions
The Extensible Web Services Architecture
Writing a Server-Side SOAP Extension
Writing a Client-Side SOAP Extension
Creating Asynchronous Web Methods
Using a Callback Delegate
Using the WaitHandle Object
Inside the Asynchronous Proxy Methods
Controlling XML Wire Format
Using Literal Parameter Formatting
Using Encoded Parameter Formatting
Using RPC-Style Body Formatting
Wrapped and Bare Parameters
Using the XmlElement Attribute
Apply Your Knowledge
S TUDY S TRATEGIES
Understand the order of events in a SOAP extension. Be sure that you know what actions your extension should perform in each event.
Write code to call a Web service asynchronously and compare it with code to call the same Web service synchronously.
Experiment with the options for customizing SOAP messages. Use a tool such as the .NET WebService Studio to inspect the actual messages sent and received by a customized Web service.