Introduction
This three-day
instructor-led workshop provides students with
the knowledge and skills to develop distributed
applications by using the Microsoft .NET
Framework and Microsoft Visual Studio 2005. The
workshop focuses on building distributed
applications by using Web services, remoting,
Microsoft Message Queuing, and serviced
components.
Audience
This workshop
is intended for corporate and Independent
software vendor application developers who have
a desire to learn more about specific technology
areas in distributed application development.
At
Workshop Completion
After
completing this workshop, students will be able
to:
|
• |
Build and
use a Web service. |
|
• |
Configure
and customize a Web service application. |
|
• |
Call Web
methods asynchronously. |
|
• |
Build
remote client and server applications. |
|
• |
Create and
serialize remoteable types. |
|
• |
Manage the
lifetime of remote objects. |
|
• |
Call
remote methods asynchronously. |
|
• |
Implement
remote events. |
|
• |
Send and
receive messages by using Microsoft
Message Queuing. |
|
• |
Create and
use serviced components. |
Prerequisites
Before
attending this workshop, students must:
|
• |
Be able to
manage a solution environment using the
Visual Studio 2005 Integrated
development environment (IDE) and tools |
|
• |
Understand
the Microsoft .NET Framework 2.0 and the
Common Language Runtime |
|
• |
Be able to
program an application by using a .NET
Framework 2.0-compliant language |
|
• |
Know how
to make assemblies available to other
applications |
|
• |
Have a
basic understanding of XML including XML
declaration, elements, attributes, and
namespaces |
|
• |
Have a
basic understanding of application
domains |
|
• |
Have a
basic understanding of delegates and
events |
|
• |
Have a
basic understanding of threads |
Workshop
Outline
Unit 1:
Building and Consuming a Simple XML Web Service
This unit
describes how you can create a simple Web
service and client application by using the .NET
Framework. It also explains how you can
configure client proxies, and debug and deploy
Web services.
Lessons
|
• |
Technical
Context of Web Services |
|
• |
Components
of Web Service Technology |
Lab 1:
Building and Consuming a Simple Web Services
|
• |
Exercise
1. Creating a Web Service and Client |
|
• |
Exercise
2. Working with the Client Proxy |
|
• |
Exercise
3. Deploying a Web Service and
Configuring a Client |
|
• |
Exercise
4. Debugging and Exception Handling in
Web Services |
|
• |
Exercise
5. Determining Web Service Connectivity |
After
completing this unit, students will be able to:
|
• |
Explain
the technical context for Web services. |
|
• |
Understand
key components of Web service
technology. |
|
• |
Create a
Web service and client. |
|
• |
Configure
a Web service client and proxy. |
|
• |
Deploy and
use a Web service. |
|
• |
Debug a
Web service. |
|
• |
Determine
Web service connectivity. |
Unit 2:
Configuring and Customizing a Web Service
This unit
introduces a number of important configuration
and customization options for Web services. It
describes how to control the way in which
complex parameters to Web methods are
serialized. This unit also shows how to use
configuration files to control the way in which
a Web service operates.
Lessons
|
• |
XML
Serialization |
|
• |
How to Use
Complex Data Types in Web Services |
|
• |
How to Use
Attributes to Control Serialization |
|
• |
How to Use
Service Configuration Attributes |
|
• |
Configuration Files |
Lab 2:
Configuring and Customizing a Web Service
|
• |
Exercise
1. Creating and Using Custom Data Types |
|
• |
Exercise
2. Customizing the Web Service |
|
• |
Exercise
3. Configuring the Web Service Using the
Web.config File |
After
completing this unit, students will be able to:
|
• |
Explain
XML serialization of user-defined
classes. |
|
• |
Pass
complex data types between a Web service
and a client. |
|
• |
Configure
XML serialization. |
|
• |
Configure
SOAP formatting options. |
|
• |
Configure
the namespace and binding for a Web
service. |
|
• |
Configure
a Web service by using the Web.config
file. |
Unit 3:
Calling Web Methods Asynchronously
This unit
explains how to call a Web method
asynchronously. It describes how to improve the
responsiveness of client applications by
avoiding the need to wait for Web methods to
complete execution before continuing processing.
This unit covers the different options available
for calling Web methods asynchronously and it
describes how to create one-way methods.
Lessons
|
• |
The Need
for Asynchronous Calls |
|
• |
Options
for Making Asynchronous Calls |
|
• |
One-Way
Methods |
Lab 3:
Calling Web Methods Asynchronously
|
• |
Exercise
1. Using a One-Way Method |
|
• |
Exercise
2. Calling a Web Method Asynchronously |
After
completing this unit, students will be able to:
|
• |
Explain
why asynchronous calls are needed by Web
service clients. |
|
• |
Create and
invoke one-way methods. |
|
• |
Call
methods in a Web service asynchronously. |
Unit 4:
Building a Remoting Client and Server
This unit
describes key remoting concepts, and shows how
to create a remoting server and client. This
unit describes how to use remoting to call
methods in remote objects, and how to pass data
across remoting boundaries. This unit also shows
how to configure and deploy remoting
applications.
Lessons
|
• |
Technical
Context of Remoting |
|
• |
Remoting
Servers and Clients |
|
• |
Important
Components of Remoting |
Lab 4:
Building a Remoting Client and Server
|
• |
Exercise
1. Implementing a Simple Remoting Client
and Server |
|
• |
Exercise
2. Passing Data by Value |
|
• |
Exercise
3. Configuring Remoting Channels and
Activation Modes Programmatically |
|
• |
Exercise
4. Configuring Remoting Channels and
Activation Modes with Configuration
Files |
|
• |
Exercise
5. Deploying and Debugging Remotable
Classes |
After
completing this unit, students will be able to:
|
• |
Describe
the technical context of remoting. |
|
• |
Implement
a simple remoting server and client. |
|
• |
Pass data
by value across a remoting boundary. |
|
• |
Configure
remoting channels. |
|
• |
Use
different activation modes. |
|
• |
Configure
a remoting service by using a
configuration file. |
|
• |
Deploy and
host remotable types. |
|
• |
Debug a
remotable type. |
Unit 5:
Creating and Serializing Remotable Types
This unit
describes how to transfer complex data values
across remoting boundaries, and the issues
involved in doing so. It compares and contrasts
the marshal by value and marshal by reference
mechanisms for accessing remote data. This unit
also covers version compatibility issues between
clients and servers using different versions of
a class, and the special requirements for
remoting generic classes.
Lessons
|
• |
Marshal by
Value |
|
• |
Marshal by
Reference |
|
• |
Version
Compatibility for Remotable Types |
|
• |
Generic
Classes |
Lab 5:
Creating and Serializing Remotable Types
|
• |
Exercise
1. Using Serialization Formatters |
|
• |
Exercise
2. Using Marshal by Reference |
|
• |
Exercise
3. Using Version Tolerant Serialization |
After
completing this unit, students will be able to:
|
• |
Describe
the differences between marshal by value
and marshal by reference. |
|
• |
Describe
the issues surrounding versioning and
remoting. |
|
• |
Use
version tolerant serialization. |
|
• |
Configure
a communication channel to use different
serialization formatters. |
|
• |
Create and
marshal remotable objects by reference. |
Unit 6:
Performing Remoting Operations Asynchronously
This unit
describes how to call a method asynchronously in
the remoting environment. It covers the
different techniques you can use and it explains
how to raise events in a remoting server and
handle them in a client.
Lessons
|
• |
Asynchronous Methods |
|
• |
Calling
Remote Methods Asynchronously |
|
• |
One-Way
Methods |
|
• |
Using
Events in Remoting Applications |
Lab 6:
Performing Remoting Operations Asynchronously
|
• |
Exercise
1: Calling Remote Methods Asynchronously |
|
• |
Exercise
2: Raising and Handling Events in
Remoting |
After
completing this unit, students will be able to:
|
• |
Call
remoting methods asynchronously by using
BeginInvoke. |
|
• |
Implement
callbacks. |
|
• |
Create and
call one-way methods. |
|
• |
Create and
fire events in remote services. |
|
• |
Handle
events in a client application. |
Unit 7:
Managing the Lifetime of Remote Objects
This unit
describes the lifetime of remote objects and how
you can control them. This unit introduces the
concepts of remote object leases and sponsors.
This unit shows how to initialize a remote
object's lease to a specific period, and how to
renew an object's lease when it expires by using
a sponsor.
Lessons
|
• |
Life Cycle
of Remote Objects |
|
• |
Lifetime
Sponsors |
|
• |
Lease
Properties |
|
• |
Leases and
Exception Handling |
Lab 7:
Managing the Lifetime of Remote Objects
|
• |
Exercise
1: Initializing the Lifetime of Remote
Objects |
|
• |
Exercise
2: Renewing the Lifetime of Remote
Objects |
After
completing this unit, students will be able to:
|
• |
Initialize
the lifetime of a remote object. |
|
• |
Renew the
lifetime of a remote object. |
|
• |
Configure
the renewal properties of a lease. |
|
• |
Handle
exceptions caused by lease expiry. |
Unit 8:
Sending and Receiving Messages by Using Message
Queuing
This unit
describes how to use Microsoft Message Queuing
to build distributed applications. It covers the
essential aspects of building client and server
applications that use message queues, how to
create queues, how to send and receive messages,
and how to handle replies to messages. This unit
also describes how to access message queues
across the Internet.
Lessons
|
• |
Understanding Message Queuing |
|
• |
Creating a
Message Queue and Sending a Message |
|
• |
Receiving
a Message and Posting a Response |
|
• |
Using IIS
with Message Queuing |
Lab 8:
Sending and Receiving Messages by Using Message
Queuing
|
• |
Exercise
1. Building a Simple Messaging Client
and Server |
|
• |
Exercise
2. Using More Complex Data Types and
Formatters |
|
• |
Exercise
3. Using Response Queues and Time-Outs |
|
• |
Exercise
4. Placing Messages on a Queue by Using
IIS and HTTP |
After
completing this unit, students will be able to:
|
• |
Explain
message queuing. |
|
• |
Create a
message queue and send messages. |
|
• |
Receive a
message and post a response. |
|
• |
Use
Internet Information Services with
message queuing. |
Unit 9:
Creating and Consuming Serviced Components
This unit
explains how to build and access serviced
components in a .NET Framework application. This
unit describes the relationship between .NET
Framework serviced components and COM+. It shows
how to use the .NET Framework to implement a
serviced component that you can register as a
COM+ application and how you can write
applications that use serviced components.
Lessons
|
• |
COM+
Services |
|
• |
Implementing a Serviced Component |
|
• |
Registering a Serviced Component |
|
• |
Instantiating a Serviced Component |
Lab 9:
Creating and Consuming Serviced Components
|
• |
Exercise
1. Creating and Using a Serviced
Component |
|
• |
Exercise
2. Using Enterprise Services in a
Serviced Component |
After
completing this unit, students will be able to:
|
• |
Understand
the role of COM+ services. |
|
• |
Implement
a serviced component. |
|
• |
Register a
serviced component. |
|
• |
Instantiate a serviced component. |