We are in the process of merging Microsoft Learning with Microsoft Learn, which will be complete by June 30, 2020. You’ll find all relevant training and certification information is now available on Microsoft Learn. For more information, refer to the FAQ.
In response to the coronavirus (COVID-19) situation, Microsoft is implementing several temporary changes to our training and certification program. Learn more.


Visual Studio logo

  • Published:
    July 2, 2010
  • Languages:
  • Audiences:
  • Technology:
    Microsoft Visual Studio 2010
  • Credit toward certification:
    Microsoft Certified Technology Specialist (MCTS), Microsoft Certified Professional Developer (MCPD)

TS: Windows Communication Foundation Development with Microsoft .NET Framework 4

This exam has been retired

For currently available options, please see the Microsoft Certification exam list.

Skills measured

This exam measures your ability to accomplish the technical tasks listed below. The percentages indicate the relative weight of each major topic area on the exam. The higher the percentage, the more questions you are likely to see on that content area on the exam. View video tutorials about the variety of question types on Microsoft exams.

Please note that the questions may test on, but will not be limited to, the topics described in the bulleted text.

Do you have feedback about the relevance of the skills measured on this exam? Please send Microsoft your comments. All feedback will be reviewed and incorporated as appropriate while still maintaining the validity and reliability of the certification process. Note that Microsoft will not respond directly to your feedback. We appreciate your input in ensuring the quality of the Microsoft Certification program.

If you have concerns about specific questions on this exam, please submit an exam challenge.

If you have other questions or feedback about Microsoft Certification exams or about the certification program, registration, or promotions, please contact your Regional Service Center.

Create services (20%)
  • Create service and operation contracts
    • One-way, duplex, and request reply; create and specify fault contracts; configuration-based contracts; expose service metadata; select serialization (for example data contract serializer versus XML serializer)
    • This objective does not include: design service and operation contracts; transactions, instantiation, security-related attributes
  • Create data contracts
    • Manage Known Types, control data serialization, use required and order attributes on data members, implement versioning use IExtensibleDataObject, POCOs
    • This objective does not include: using custom serializer (ISerializationSurrogate)
  • Create message contracts
    • Application-level styles, overriding styles, style inheritance, Generic.xaml, theming attributes
    • This objective does not include: data-grid view style sharing
  • Implement generic message handling
    • Create a catch-all contract, read and write messages, work with properties, work with headers
    • This objective does not include: inherit from Message class, use BodyWriter, create Fault messages
  • Implement RESTful services
    • Access HTTP context; WebGet/WebInvoke, UriTemplates; JSON/POX
  • Create and configure a Routing service
    • Filters, static and dynamic, context-based routing, content-based routing; router interfaces
  • Create and configure a Discovery service
    • Configure ad hoc and managed modes, Discovery scopes, service announcements
Host and configure services (18%)
  • Create and configure endpoints
    • Default and standard bindings; custom bindings created from standard binding elements; standard endpoints; transports, including HTTP, TCP, named pipes, UDP, MSMQ code-based service configuration; message encoding
    • This objective does not include: create a custom binding element; create new standard endpoints, load configuration from a location other than the default application configuration file, security, transaction, reliable sessions
  • Configure behaviors
    • Apply service, endpoint, and operation behaviors in configuration and code
    • This objective does not include: create a custom behavior; create and use dispatch behaviors, load configuration from a location other than the default application configuration file
  • Implement self-hosting
    • Configure and instantiate a service host
    • This objective does not include: implement a custom service host
  • Implement web server hosting
    • Configure IIS/WAS for WCF, deploy to IIS/WAS, file-less configuration, specify a ServiceHost
    • This objective does not include: Windows Application Server
Consume services (18%)
  • Create a service proxy
    • Use a proxy class or channel factory to create a proxy, create a proxy for an asynchronous communication, create a proxy for a duplex communication
    • This objective does not include: SvcUtil command-line switches
  • Configure client endpoints
    • Standard bindings, custom bindings created from standard binding elements, configure behaviors; code-based and configuration-based bindings; configure addresses
    • This objective does not include: security; create custom behaviors
  • Invoke a service
    • Invoke a service operation synchronously and asynchronously, handle service faults, use the Message class, manage the life cycle of the proxy (open channels, close channels, abort channels, handle faulted channels), implement duplex communication
  • Consume RESTful services
    • Access HTTP context, JSON/POX
  • Implement service discovery
    • Configure target scope, monitor service announcements
Secure services (17%)
  • Configure secure bindings
    • Transport, message, mixed mode
  • Configure message security
    • Specify protection levels on different message parts
  • Implement authentication
    • Microsoft ASP.NET Membership Provider, Custom Provider, Windows Integrated Security, certificates (X.509), Federated Authentication endpoint identity; configuring client credentials; Custom Validator
    • This objective does not include: Geneva Framework
  • Implement authorization
    • Role-based, claim-based; configure role providers for endpoints; principal permission attribute
    • This objective does not include: rights-management authorization such as Active Directory Rights Management Services (AD RMS)
  • Implement impersonation
    • Configuration and code, configure WCF-specific Internet Information Services (IIS) impersonation properties, configure impersonation options, operation-based and service-based
  • Implement security auditing
    • Use serviceSecurityAudit behavior, service audit, audit log
Manage the service instance life cycle (13%)
  • Manage service instances
    • Per call, per session, single, code and configuration, activation and deactivation, durable services, throttling
  • Manage sessions
    • Code and configuration, session management attributes, throttling, reliable sessions, transport-level and application-level sessions, invoke a callback contract
  • Implement transactions
    • Distributed transactions, transactional queues, transaction flow; configure transaction binding attributes, WS-AtomicTransaction (WS-AT), transactional behavior attributes at the service and operation level, use transactions in code
  • Manage concurrency
    • Single, multiple, and reentrant concurrency modes; SynchronizationContext and CallbackBehavior
    • This objective does not include: deadlocks and other multithreading issues
  • Manage consistency between instances, sessions, transactions, and concurrency
    • Possible combinations between instances, sessions, transactions, and concurrency (for example, instance mode single with concurrency mode multiple)
Monitor and troubleshoot distributed systems (13%)
  • Configure message logging
    • Configure message listeners, logging level, message filters, configure logging known PII
    • This objective does not include: secure message logs
  • Configure diagnostics
    • WMI, performance counters, event logging
  • Debug client-service interactions
    • Send server exception details to client, end-to-end tracing, interpret output from the trace viewer (single message and end-to-end)
    • This objective does not include: trace viewer features outside of viewing traces

Who should take this exam?

Candidates for this exam work in a development environment that uses Microsoft Visual Studio 2010 and .NET Framework 4 to build distributed applications. This candidate should have at least one year of experience developing Windows Communication Foundation (WCF)–based applications, including at least six months of experience with .NET Framework 4. The candidate should also be able to demonstrate the following:

  • A solid understanding of WCF in the context of the .NET Framework 4 solution stack
  • Experience creating service model elements
  • Experience using WCF to support open and .NET communication
  • Experience configuring and deploying WCF applications
  • Experience using Visual Studio tools, tracing tools, SvcUtil, WCF performance monitoring, and IIS/WAS for hosting services
  • Experience securing WCF applications
  • A solid understanding of concurrency

More information about exams

Preparing for an exam

We recommend that you review this exam preparation guide in its entirety and familiarize yourself with the resources on this website before you schedule your exam. See the Microsoft Certification exam overview for information about registration, videos of typical exam question formats, and other preparation resources. For information on exam policies and scoring, see the Microsoft Certification exam policies and FAQs.


This preparation guide is subject to change at any time without prior notice and at the sole discretion of Microsoft. Microsoft exams might include adaptive testing technology and simulation items. Microsoft does not identify the format in which exams are presented. Please use this preparation guide to prepare for the exam, regardless of its format. To help you prepare for this exam, Microsoft recommends that you have hands-on experience with the product and that you use the specified training resources. These training resources do not necessarily cover all topics listed in the "Skills measured" section.