WCF Fundamentals


Course description:

Windows Communication Foundation (WCF) is the next-generation platform for building connected systems on the Windows platform. WCF makes it possible to build secure, reliable, and transacted systems through a simplified programming model that unifies and improves many of the previous .NET technologies including ASMX, WSE, .NET Remoting, .NET Enterprise Services (COM+), and System.Messaging. Not only is WCF simpler to use than its predecessors, it’s also more flexible and interoperable thanks to its focus on service orientation and its support for standard protocols and specifications. WCF is sure to change the way every .NET developer builds connected systems in the years ahead. This course provides fast-paced exposure to WCF and will help you get started today.



Technologies: .NET 3.0, .NET 3.5
Language(s): C#, VB.NET
Length: Four days, 9am-5pm
US Price: $2795
UK Price: $3195


Who Should Attend

Developers interested in ramping up quickly on the WCF architecture, programming model, and other key features that you can take advantage of today. Experience programming in C# using Visual Studio .NET is required. Experience with ASP.NET Web services (ASMX), WSE, and distributed programming frameworks helpful but not strictly required.



  

upcoming public offerings


12/8/2008  Irvine, CA
Double Feature
Double Feature Small IconWCF/Workflow


1/19/2009  Kirkland, WA
Double Feature
Double Feature Small IconWCF/Workflow


2/16/2009  London, UK
Double Feature
Double Feature Small IconWCF/Workflow


3/23/2009  Waltham, MA
Double Feature
Double Feature Small IconWCF/Workflow


course instructors


Aaron Skonnard
Keith Brown
Jon Flanders
Matt Milner
David Cowles
Ted Neward

     View course document View course document

Course outline:

Day 1

  Introducing WCF - Connected Systems
- Distributed technologies
- SOAP vs. REST designs
- Service Orientation
- Introducing WCF
- Services and endpoints
- Consuming WCF services
- Common questions

  Programming Services - WCF service architecture
- Typed vs untyped messages
- Data contract basics
- Service contract basics
- Implementing services
- Hosting services
- Configuring services
- Bindings and behaviors
- Publishing metadata
- Throwing faults/exceptions

  Programming Clients - WCF client architecture
- Client-side endpoint definitions
- SvcUtil.exe and Service References
- Creating a ChannelFactory
- Channel instance lifecycle
- Generated proxy classes
- Handling faults/exceptions
- Asynchronous invocations
- Sharing contract assemblies
- Programming MEX

Day 2

  Hosting - WCF hosting concepts
- Self-hosting techniques
- ServiceHost lifecycle
- Host base addresses
- Implementing a custom ServiceHost
- Hosting in Windows Services
- Hosting in IIS 5/6
- Using .svc files
- ServiceHostFactory
- ASP.NET compatibility mode
- Hosting in IIS 7 using WAS

  Runtime Execution - WCf runtime behaviors
- InstanceContextMode (instancing)
- PerCall, Single, and PerSession
- Bindings that support PerSession
- Session lifecycle and termination
- Advanced instance management
- Durable services (new in 3.5!)
- Service throttling
- ConcurrencyMode (threading)
- Single, Reentrant, and Multiple
- UseSynchronizationContext

  Serialization - WCF supported serializers
- Importing/exporting serializer types
- XmlSerializer
- NetDataContractSerializer
- DataContractSerializer
- Supported types
- [DataContract] mapping and customization
- Optional vs. nillable
- Known types
- DataSets, arrays, and collections
- Serializer events

Day 3

  Service Contracts - Service contract architecture
- Implementing multiple service contracts
- Service contract derivation
- Runtime dispatching
- Importing/exporting service contract types
- [ServiceContract] mapping and customization
- One-way operations
- Duplex contracts
- Message contracts
- Generic operations

  RESTful Services - Service design styles
- Understanding REST
- REST vs. SOAP comparison
- Resource Oriented Architectures (ROA)
- WCF support for REST/ROA
- [WebGet] and [WebInvoke]
- Dispatching via UriTemplate
- WebHttpBinding, WebHttpBehavior, and WebServiceHost
- Enabling Ajax/JSON integration
- Syndication programming model

  Faults and Exceptions - Exceptions vs. SOAP faults
- WCF exception/fault handling
- The generic SOAP fault
- Including exception details in faults
- Throwing/catching FaultException
- Typed faults via FaultException
- Advertising faults with [FaultContract]
- Global exception handling via IErrorHandler
- Proper client-side exception handling

Day 4

  Security - The "CIA" of security
- WCF security choices
- Declaring a protection level
- Configuring security in WCF bindings
- Transport vs. message-based security
- Credentials and authentication
- Security call context (ServiceSecurityContext)
- Authorization options
- Federation and claims
- Implementing an authorization behavior

  Reliability - Building reliable systems
- Reliable messaging (WS-ReliableMessaging)
- Sessions vs. reliable sessions
- ACID transactions
- Flowing transactions with WCF
- Queued messaging
- Using the NetMsmqBinding
- Combining queues and transactions
- Compensating transactions

  Extensibility - WCF runtime architecture
- Channel extensibility overview
- Dispatch/client runtime extensibility
- Runtime interception stages
- Implementing interceptors
- Applying interceptors via behaviors
- Implementing behaviors
- Sharing state between extensions
- Custom ServiceHost/ChannelFactory