This course presents the student with the skills necessary to both consume and create XML Web Services as well as the skills to consume and create a variety of Windows Communication Foundation (WCF) services. This course shows the student how to both create and consume Services that require security authentication credentials, to protect content during transit with end-to-end encryption, and pass large amounts of data in a compressed format.
By the end of the class students will be able to:
- Create and consume simple XML Web Services
- Create and consume complex XML Web Services
- Create and consume WCF Services
- Configure WCF services either through code or through Config files
- Use WCF to create and consume secure Web Services
- Use WCF to interoperate with .NET Remoting Services
- Use WCF to interoperate with Message Queuing Services
- CUse WCF to interoperate with DCOM Services
Prior to taking this course, students should have:
- A solid understanding of either the C# or VB.NET programming language.
- A working knowledge of ADO.NET including using both untyped and typed DataSets.
- A working knowledge of the Visual Studio 2005 or 2008 Integrated Development Environment.
- A basic knowledge of commonly used HTML elements and attributes.
Overview of Program to Program Communication
- Remote Procedure Call (RPC)
- Distributed COM (DCOM)
- CORBA, JNI, and RMI
- Message Queuing
- .NET Remoting
- XML Web Services
- Windows Communication Foundation (WCF)
XML, XSD, SOAP, and WSDL Basics
- Introducing XML and the W3C
- Rules concerning XML markup
- Choosing an XML Grammar, When to use Elements and When to use Attributes
- Introducing XSD
- Understand XSD structure
- Introducing SOAP
- Soap Schema
- Introducing WSDL
Consume Existing Web Services
- Create a Proxy to a Simple Web Service
- Create Windows or Web Client applications that use the Proxy
- each will have their own list of sub topics
Create a Web Service
- Create and consume a Simple Web Service
- Create and consume a Complex Web Service
- Using WebService and WebMethod attribute properties
- Create and consume a Web Service that provides an untyped DataSet
- Create and consume a Web Service that provides an typed DataSet
- Create and consume a Web Service that accepts an untyped DataSet
- Create and consume a Web Service that accepts an typed DataSet
- See cross platform issues in WSDL of some Web Services
- Code first or Contract first
- Shortcomings with these Web Services
Introducing Windows Communication Foundation (WCF)
- What is WCF and What does it do?
- Introducing the WCF ABC's (Address, Binding, Contract)
- WCF Hosting Options
- Use a Console application to host WCF Services
- Use IIS to host WCF Services
- Use WAS to host WCF Services
- Use Windows Services to host WCF Services
- Create a WCF Service in code
- Create a WCF Service Proxy
- Create a Windows client application in code that consumes a WCF Service
- Create a Web client application in code that consumes a WCF Service
- Use the Configuration Tool
- Create a WCF Service that uses configuration
- Create a Windows client application that uses configuration to consume a WCF Service
- Create a Web client application that uses configuration to consume a WCF Service
Examine WCF Messages and Activities
- How to filter and log messages
- Use Service Trace Viewer to view messages
- How to Trace Service Activity
- Examine Trace Activity
Exception and Fault Handling
- Dealing with expected service business errors.
- Dealing with expected service non-business errors.
- Dealing with unexpected service non-business errors.
- Who is the audience of the fault and how much information should you include?
- Client side Fault and Exception Handling
Configuring Endpoints and Behaviors
- Understand Binding and Channel Choices
- Configure Endpoints to use one or more Bindings
- Configure Endpoints to use one or more Contracts
- Configure Service Behaviors
- Configure Operation Behaviors
- Configure Endpoint Behaviors
Establish Service, Operation, and Data Contracts
- Understand the 4 Message Exchange Patterns (MEP)
- How to deal with Versioning of your WCF Service
- Understand Service Contract Options
- Understand Operation Contract Options
- Understand Data Contract Options
- Configure Contract Options
- Security Terminology
- Introduction to Public Key Infrastructure (PKI)
- Transport Level vs. Message Based Security
- Understand Authentication Choices
- Understand Authorization Choices
- Understand how to detect whether data changed during transit
- Understand how to protect data from being viewed during transit
- Understand the default security settings
- Set Binding Security Mode
- Set Transport Level Security
- Configure the WCF service to require credentials
- Configure the WCF client to supply credentials
Passing Large Binary Data
- Compare MTOM to Streaming
- How to implement MTOM
- How to implement streaming
- Understand transactions against a single data source.
- Understand distributed transactions against a multiple data sources.
- Understand transaction isolation options.
- Configure the WCF service to use transactions.
- Configure the WCF client to use transactions.
- Handle transaction exceptions
Interoperating with .NET Remoting
- What is .NET Remoting?
- Understand CAO and SAO, SingleCall and Singleton
- Use WCF to call an existing .NET Remoting Service
- Create a WCF service that replaces a .NET Remoting service
Interoperating with Message Queuing
- What is Message Queuing?
- Understand public queues, private queues, and transactional queues.
- Use WCF to call an existing Message Queuing Service
- Create a WCF service that replaces a Message Queuing service
Interoperating with COM via DCOM
- What is COM and DCOM?
- Understand ProdIDs, CLSID's, InterfaceIDs, and DCOM Config.
- Use WCF to call an existing COM Service
- Create a WCF service that replaces a COM service