| |
| |
Introduction | |
| |
| |
| |
Introducing Web Services | |
| |
| |
Why Web Services? | |
| |
| |
Current e-Business Trends Require Integrating Disparate Distributed Systems | |
| |
| |
Problems with Existing Technologies | |
| |
| |
Data Format | |
| |
| |
Data Transmission | |
| |
| |
What Is Needed | |
| |
| |
SOAP: An Integration Solution | |
| |
| |
What Is SOAP? | |
| |
| |
Relationship Between SOAP and Web Services | |
| |
| |
What Is WSDL? | |
| |
| |
What Is DISCO? | |
| |
| |
What Is UDDI? | |
| |
| |
Microsoft's Implementation of SOAP and Web Services | |
| |
| |
SOAP Toolkit for Visual Studio | |
| |
| |
.NET Remoting | |
| |
| |
ASP.NET Web Services | |
| |
| |
The Benefits of ASP.NET Web Services | |
| |
| |
Simple to Build | |
| |
| |
Simple to Test | |
| |
| |
Simple to Deploy | |
| |
| |
How ASP.NET Web Services Differ from BizTalk | |
| |
| |
ASP.NET Web Services Are Implemented Using ASP.NET | |
| |
| |
Where Do Web Services Fit into Your Architecture? | |
| |
| |
Selecting a Language | |
| |
| |
Selecting a Code Editor | |
| |
| |
Summary | |
| |
| |
| |
Creating a Simple Web Service with .NET SDK | |
| |
| |
What Will Your Web Service Do? | |
| |
| |
Setting Up the Environment | |
| |
| |
Creating a Web Folder in Internet Information Services 5.0 | |
| |
| |
Coding the Web Service | |
| |
| |
Testing the Web Service | |
| |
| |
Using the Service Help Page to Test Your Web Service | |
| |
| |
Creating the Web Services Description Language (WSDL) File | |
| |
| |
Methods of Creating the WSDL File | |
| |
| |
Examining the Generated WSDL File | |
| |
| |
What Does Your WSDL Describe About Your Web Service? | |
| |
| |
Summary | |
| |
| |
| |
Consuming a Simple Web Service with .NET SDK | |
| |
| |
How to Consume a Web Service | |
| |
| |
Creating a Separate Web Folder in IIS | |
| |
| |
Using the wsdl.exe to Create Your Proxy | |
| |
| |
Examining the Generated Proxy Class | |
| |
| |
Compiling the Proxy | |
| |
| |
Creating the Web Service Consumer | |
| |
| |
Examining Your Web Page Code | |
| |
| |
Testing the Web Service Consumer | |
| |
| |
Examining the Results | |
| |
| |
Summary | |
| |
| |
| |
Creating a Simple Web Service in Visual Studio.NET | |
| |
| |
Creating a New Visual Studio.NET Web Services Project | |
| |
| |
Testing Your Web Service | |
| |
| |
Reviewing Visual Studio.NET's Advantages | |
| |
| |
Summary | |
| |
| |
| |
Consuming a Web Service in Visual Studio.NET | |
| |
| |
Creating a Web Forms Application | |
| |
| |
Reviewing Visual Studio.NET's Advantages | |
| |
| |
Summary | |
| |
| |
| |
How ASP.NET Works | |
| |
| |
How "Classic" Active Server Pages Work | |
| |
| |
The Problem with Active Server Pages | |
| |
| |
Performance | |
| |
| |
Maintainability | |
| |
| |
State Management | |
| |
| |
Use of COM Components | |
| |
| |
The Microsoft.NET Framework | |
| |
| |
Microsoft.NET Framework Architecture | |
| |
| |
Common Language Runtime | |
| |
| |
Services Framework | |
| |
| |
ASP.NET and Windows Forms Application Services | |
| |
| |
The ASP.NET Application Model | |
| |
| |
How Do Web Services Work? | |
| |
| |
Just-In-Time (JIT) Compilation | |
| |
| |
Summary | |
| |
| |
| |
Examining SOAP | |
| |
| |
A Few Words About the SOAP Specification | |
| |
| |
What Is SOAP? | |
| |
| |
SOAP and XML | |
| |
| |
SOAP Versus Other RPC Technologies | |
| |
| |
SOAP's Benefits and "Drawbacks" | |
| |
| |
Components of a SOAP Message | |
| |
| |
SOAP Envelope | |
| |
| |
SOAP Header | |
| |
| |
SOAP Body: Call | |
| |
| |
SOAP Body: Response | |
| |
| |
SOAP Body: Fault | |
| |
| |
Supported Data Types | |
| |
| |
Single-Reference Versus Multi-Reference Accessors | |
| |
| |
Summary | |
| |
| |
| |
Understanding WSDL | |
| |
| |
The Genealogy of WSDL | |
| |
| |
How the WSDL Works | |
| |
| |
The Sections of the WSDL File | |
| |
| |
The Types Section | |
| |
| |
The Messages Section | |
| |
| |
The PortTypes Section | |
| |
| |
The Bindings Section | |
| |
| |
The Services Section | |
| |
| |
Examining the WSDL File | |
| |
| |
The [left angle bracket]definitions[right angle bracket] Element | |
| |
| |
Examining the Types Section | |
| |
| |
Examining the Messages Section | |
| |
| |
Examining the PortTypes Section | |
| |
| |
Examining the Bindings Section | |
| |
| |
Examining the Services Section | |
| |
| |
Binding Extensions | |
| |
| |
The Future of WSDL | |
| |
| |
Summary | |
| |
| |
| |
Understanding DISCO | |
| |
| |
What Is Discovery? | |
| |
| |
Why Do You Need DISCO? | |
| |
| |
Highlights from the DISCO Specification | |
| |
| |
Discovery Algorithm | |
| |
| |
Format of a DISCO Document | |
| |
| |
What Is Dynamic Discovery? | |
| |
| |
Add Web Reference: A DISCO Consumer | |
| |
| |
Summary | |
| |
| |
| |
Exceptions and Error Handling | |
| |
| |
Exception-Handling Methods | |
| |
| |
Throwing SOAP Exceptions | |
| |
| |
An Exception Example | |
| |
| |
Handling Exceptions in the ASP.NET Client | |
| |
| |
Examining the SOAP Behind the Exception | |
| |
| |
Summary | |
| |
| |
| |
Accessing ASP.NET Objects via Web Services | |
| |
| |
Inheriting from the WebService Class | |
| |
| |
The Context and Application Example | |
| |
| |
Creating the Context Application Sample Client | |
| |
| |
Viewing the Results of the Client | |
| |
| |
Summary | |
| |
| |
| |
Three Methods of Calling Web Services | |
| |
| |
Web Service Help Page and HTTP-GET | |
| |
| |
Calling a Web Service Using HTTP-GET | |
| |
| |
Calling a Web Service Using HTTP-POST | |
| |
| |
Using the MSXML XMLHTTP Object | |
| |
| |
Summary | |
| |
| |
| |
Web Service Attributes and Properties | |
| |
| |
Processing Directives | |
| |
| |
Language Property | |
| |
| |
CodeBehind Property | |
| |
| |
Class Property | |
| |
| |
The WebService Attribute | |
| |
| |
Namespace Property | |
| |
| |
Description Property | |
| |
| |
Name Property | |
| |
| |
The WebMethod Attribute | |
| |
| |
BufferResponse Property | |
| |
| |
CacheDuration Property | |
| |
| |
Description Property | |
| |
| |
EnableSession Property | |
| |
| |
MessageName Property | |
| |
| |
TransactionOption Property | |
| |
| |
Summary | |
| |
| |
| |
Passing Complex Data Types and Structures | |
| |
| |
The SOAP Specification and Data Types | |
| |
| |
Understanding Classes, XSD, WSDL, and Proxies | |
| |
| |
Passing .NET Structures over Web Services | |
| |
| |
Creating the Web Service Client | |
| |
| |
Passing XML via Web Services | |
| |
| |
Summary | |
| |
| |
| |
Passing ADO.NET DataSets via Web Services | |
| |
| |
Web Services, DataSets, and a New Disconnected Architecture | |
| |
| |
Understanding DataSets | |
| |
| |
The DataAdapter Object | |
| |
| |
DataTables and DataRelations of the DataSet | |
| |
| |
The DataSetSample Example | |
| |
| |
Constructing a DataSet | |
| |
| |
Building the Client | |
| |
| |
Databinding to a DataSet | |
| |
| |
The DataSetRoundTrip Example | |
| |
| |
Building the DataSetRoundTripClient | |
| |
| |
Monitoring the Results | |
| |
| |
Understanding DiffGrams | |
| |
| |
Summary | |
| |
| |
| |
Using the Web Services Designer in Visual Studio .NET | |
| |
| |
The EventLogService Class | |
| |
| |
Summary | |
| |
| |
| |
COM Interoperability and Web Services | |
| |
| |
How Interoperability Works | |
| |
| |
An Interoperability Example | |
| |
| |
Creating the COM Component | |
| |
| |
Registering the COM Component | |
| |
| |
Creating a Reference to the COM Component in the Web Service | |
| |
| |
Accessing the COM Component's Methods and Properties | |
| |
| |
Summary | |
| |
| |
| |
Using Transactions in Web Services | |
| |
| |
Understanding Transactions | |
| |
| |
How Transactions Work | |
| |
| |
Transactions, COM+ Services, and .NET | |
| |
| |
Limitations of Transactions in ASP.NET Web Services | |
| |
| |
Attributes and Properties for Transactions in Web Services | |
| |
| |
The Transaction Example | |
| |
| |
Building the Web Service | |
| |
| |
Creating a Reference to the System.EnterpriseServices Class | |
| |
| |
Continuing to Build the Transaction Example | |
| |
| |
Examining the Web Service in Debug Mode | |
| |
| |
Transactions Across Web Services | |
| |
| |
Summary | |
| |
| |
| |
Calling Web Services Asynchronously | |
| |
| |
How Asynchronous Calls Work | |
| |
| |
Callbacks Versus WaitHandles | |
| |
| |
The Asynchronous Web Services Example | |
| |
| |
Building the Web Services | |
| |
| |
Building the Client | |
| |
| |
Testing the Callbacks and WaitHandle Functions | |
| |
| |
Summary | |
| |
| |
| |
Consuming Web Services in Office XP | |
| |
| |
The Office Web Service Example | |
| |
| |
Creating the Web Service | |
| |
| |
Creating the Excel Spreadsheet: Part 1 | |
| |
| |
Testing the Spreadsheet | |
| |
| |
Creating the Excel Spreadsheet: Part 2 | |
| |
| |
Testing the Spreadsheet | |
| |
| |
Summary | |
| |
| |
| |
Web Service Behaviors | |
| |
| |
Understanding DHTML Behaviors | |
| |
| |
How the Web Service Behavior Works | |
| |
| |
Attaching to the Web Service Behavior | |
| |
| |
Identifying the Web Service | |
| |
| |
Calling Web Service Methods | |
| |
| |
Handling Results from the Web Service | |
| |
| |
The WSBehavior Example | |
| |
| |
Building the WSBehavior Web Service | |
| |
| |
Downloading the WebService.htc | |
| |
| |
Building the WSBehavior Client with the Web Service Behavior | |
| |
| |
Summary | |
| |
| |
| |
Manipulating SOAP Headers in Web Services | |
| |
| |
Creating a Sample SOAP Header Web Service | |
| |
| |
Building the Sample SOAP Header Web Service | |
| |
| |
Explanation of the SoapHeaderSample.asmx Code | |
| |
| |
Understanding the SoapHeader Attribute | |
| |
| |
Building the Sample SOAP Header Client | |
| |
| |
Viewing the Results | |
| |
| |
How It Works | |
| |
| |
Handling Unknown Headers | |
| |
| |
Summary | |
| |
| |
| |
Manipulating SOAP Messages Using XML Attributes | |
| |
| |
Example of Manipulating SOAP Messages in Web Services | |
| |
| |
Examining the Results | |
| |
| |
Summary | |
| |
| |
| |
Using SOAP Extensions | |
| |
| |
What Can You Do with SOAP Extensions? | |
| |
| |
The SoapLogger Extension Example | |
| |
| |
Creating a Client | |
| |
| |
Results of Running the Extension | |
| |
| |
Summary | |
| |
| |
| |
Understanding UDDI | |
| |
| |
What Is UDDI? | |
| |
| |
UDDI: A Business Perspective | |
| |
| |
| |
Manually Querying UDDI | |
| |
| |
| |
Programmatically Querying UDDI | |
| |
| |
| |
UDDI as a Search Engine Resource | |
| |
| |
| |
UDDI as an e-Marketplace Resource | |
| |
| |
UDDI Registry Data | |
| |
| |
White Pages | |
| |
| |
Yellow Pages | |
| |
| |
Green Pages | |
| |
| |
UDDI: A Technical Perspective | |
| |
| |
The Web Services Interface to UDDI | |
| |
| |
UDDI and Other Types of Web Services | |
| |
| |
Authorization and Security | |
| |
| |
The UDDI Invocation and Recovery Model | |
| |
| |
UDDI Data Structures | |
| |
| |
The UDDI Programmer's API Specification | |
| |
| |
Inquiry API | |
| |
| |
Publishers API | |
| |
| |
The Future of UDDI | |
| |
| |
The Promise of Universal Discovery | |
| |
| |
Summary | |
| |
| |
| |
Configuring, Deploying, and Securing Web Services | |
| |
| |
Configuration | |
| |
| |
The web.config File | |
| |
| |
Using the Configuration Manager | |
| |
| |
Deployment | |
| |
| |
Using XCopy Deployment | |
| |
| |
Using the Copy Project Command in Visual Studio .NET | |
| |
| |
Creating a Deployment Project in Visual Studio .NET | |
| |
| |
Security | |
| |
| |
Authentication and Authorization | |
| |
| |
Managing Authentication with Logon Credentials | |
| |
| |
Managing Authentication with IIS Address Restrictions | |
| |
| |
Managing Authentication Without IIS | |
| |
| |
Authorization | |
| |
| |
Encryption | |
| |
| |
Authentication and Authorization Scenarios | |
| |
| |
Programmatic Authorization | |
| |
| |
Summary | |
| |
| |
| |
Introducing .NET My Services | |
| |
| |
.NET Building Block Services | |
| |
| |
What Is .NET My Services? | |
| |
| |
.NET My Services in a Box | |
| |
| |
Microsoft Passport | |
| |
| |
Future Versions of .NET My Services | |
| |
| |
How .NET My Services Works | |
| |
| |
Usage Scenarios | |
| |
| |
Benefits to End Users | |
| |
| |
Benefits to Businesses | |
| |
| |
From a Technical Perspective | |
| |
| |
Hurdles to Passport/.NET My Services Adoption | |
| |
| |
Summary | |
| |
| |
| |
Links to SOAP, Web Services, and .NET Links on the Internet | |
| |
| |
Index | |