CS31 .NET Distributed
Applications Using C#
Rev. 2.0
This course provides a realistic, hands-on coverage of developing distributed
applications using .NET and C#. It covers Web services in depth and introduces
.NET Remoting. Web services are an evolving series of standards that enable
programs on various computers to communicate with other programs on similar or
disparate computers transparently over the Internet. .NET remoting enables a
.NET client to interact with a .NET component in a different application
domain, which may be hosted on a different computer. This course teaches in
detail the skills needed to program Web services using ASP.NET. It also
examines the fundamentals of SOAP and WSDL essential for creating interoperable
Web services. The course is current to .NET 2.0 and Visual Studio 2005, with
coverage of new features such as the WS-I Basic Profile 1.1, SOAP 1.2, event
pattern for calling Web services asynchronously, and more. It also includes an
introduction to Web Service Enhancements (WSE) 3.0.
For students pursuing MCTS certification, the course provides
helpful preparation for Exam 70-529: Microsoft .NET Framework 2.0—Distributed
Application Development.
The first chapter introduces Web services and Service Oriented
Architecture (SOA). The baseline Web service specifications of XML, SOAP, WSDL
and UDDI are outlined.
Chapter 2 covers the fundamentals of SOAP and WSDL. Web services are
developed using the .NET Framework SDK. Chapter 3 covers the details of how to
create and debug ASP.NET Web services using Visual Studio 2005.
Chapter 4 shows how to create clients for Web services using an SDK
tool and using Visual Studio 2005. Sophisticated topics, such as state
management, caching and transactions in Web services are covered in Chapter 5.
The next two chapters discuss important technologies at the foundation of
ASP.NET Web services, including XML serialization and SOAP.
Chapter 8 provides a practical discussion of data access using Web
services. The next chapter covers Web service security using WSE 3.0, which
provides implementation of advanced Web service protocols such as WS-Security,
WS-Trust and WS-Policy. WSE 3.0 also provides a diagnostic message tracing tool,
which is used in the course to trace SOAP packets, providing insight into the
anatomy of Web services. The course concludes with an introduction to .NET
Remoting.
LEARNING OBJECTIVES
·
Gain a comprehensive understanding of the
philosophy and architecture of Web services and Service Oriented Architecture.
·
Acquire a working knowledge of creating and
consuming Web services using the .NET Framework 2.0 and Visual Studio 2005.
·
Understand the building blocks of Web services,
including XML, SOAP and WSDL.
·
Understand issues in the ASP.NET programming
model, such as caching, data handling and state management.
·
Use WSE 3.0 to implement advanced Web services
protocols.
·
Understand the principle of Web services
security and implement authentication on both the server and client.
·
Understand the architecture of .NET remoting and
use it to implement a distributed application.
Course Duration: 4 days
Prerequisites: Knowledge of the .NET Framework using C# and
an understanding of the fundamentals of XML. Some experience in ASP.NET is
advantageous.
1.
What Are Web Services?
Introduction to Distributed Computing
Network Latency
Object
State and Scalability
Interoperability
SOAP
WSDL
UDDI
Web Service Business Models
Service Oriented Architecture (SOA)
ASP.NET Web Services
Web Service Enhancements (WSE)
Windows Communications Framework (WCF)
2.
Web Services Fundamentals
Creating a Web Service Using ASP.NET
Deploying a Web Service Using IIS
Testing a Web Service
HTTP
XML
SOAP 1.1 and SOAP 1.2
Web Service Clients
WSDL
3.
Developing ASP.NET Web Services
Using Visual Studio 2005 to Develop Web Services
Visual Web Developer
Using ASP.NET Development Server
An Overview of the Web Services Namespaces
Deriving from the WebService Class
@Webservice Attribute
WebService Class
Adding a WebMethod to Web Services
Debugging Web Services
WS-I Basic Profile
ASP.NET Configuration
4.
Web Service Clients
Web Service Proxies
Web Services Description Language Tool (Wsdl.exe)
Understanding the Proxy Code
Creating a Proxy with Visual Studio 2005
Returning Complex User-Defined Data Types
Writing a Client for the Google Search API
5.
ASP.NET Web Services Programming Model
Asynchronous Programming in Web Services
Asynchronous Events in .NET 2.0
Managing State in ASP.NET Web Services
Transactions in ASP.NET Web Services
Caching in ASP.NET Web Services
6.
XML Serialization
XmlSerializer
What Is Not Serialized
Writing and Reading XML
Customizing XML Serialization
XML Schema and XSD
Creating Classes from Schemas
XML Serialization and Web Services
7.
More about SOAP
The Structure of SOAP Messages
Using SOAP Headers
SOAP Faults
Document and RPC Style Messaging
Literal and Encoded Use
Customizing SOAP with Attributes
Using SOAP 1.2
8.
Data Access with Web Services
Multiple-Project Solutions in Visual Studio
Multiple-Tier Data Access
Data Access Using ADO.NET 2.0
A Data Access Web Service
Data Binding with Windows Forms
Using Typed DataSets
Binding to a Web Service
9.
WSE 3.0 and Web Services Security
Web Service Enhancements (WSE)
Windows Communications Framework (Indigo)
When to Use WSE
WSE Architecture
A WSE-Enabled Web Service
WSE Settings 3.0 Tool
WSE Message Tracing
A WSE-Enabled Client
Web Services Security
Server Authentication
X.509 Certificates
Policy Files
User Name Authentication
10. .NET
Remoting
.NET Remoting Architecture
Marshal by Value
Marshal by Reference
.NET Remoting Example
Appendix A.
Learning Resources
Appendix B. Configuring
IIS for ASP.NET 2.0
System Requirements
Course exercises require Microsoft .NET 2.0 and Microsoft Visual
Studio 2005. The preferred operating system is Windows XP Professional with
Internet Information Services. WSE 3.0 should be installed. See the appropriate
course Setup Guide for details.
A good minimal hardware profile for this course would have a 1 GHz
or better CPU, 256 MB of RAM, and at least 4 GB of free disk space for tools
installation and courseware.