Windows Communication Foundation
   HOME

TheInfoList



OR:

The Windows Communication Foundation (WCF), previously known as Indigo, is a free and open-source runtime and a set of APIs in the .NET Framework for building connected, service-oriented applications. .NET Core 1.0, released 2016, did not support WCF server side code. WCF support was added to the platform with support for .NET Core 3.1, .NET 5, and .NET 6 in 2022.


The architecture

WCF is a tool often used to implement and deploy a service-oriented architecture (SOA). It is designed using service-oriented architecture principles to support
distributed computing Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers. The components of a distributed system commu ...
where services have remote consumers. Clients can consume multiple services; services can be consumed by multiple clients. Services are loosely coupled to each other. Services typically have a WSDL interface (Web Services Description Language) that any WCF client can use to consume the service, regardless of which platform the service is hosted on. WCF implements many advanced Web services (WS) standards such as WS-Addressing, WS-ReliableMessaging and WS-Security. With the release of .NET Framework 4.0, WCF also provides RSS Syndication Services, WS-Discovery, routing and better support for REST services.


Endpoints

A WCF client connects to a WCF service via an endpoint. Each service exposes its contract via one or more endpoints. An endpoint has an address (which is a URL specifying where the endpoint can be accessed) and binding properties that specify how the data will be transferred. The
mnemonic A mnemonic device ( ), memory trick or memory device is any learning technique that aids information retention or retrieval in the human memory, often by associating the information with something that is easier to remember. It makes use of e ...
"ABC" can be used to remember
address An address is a collection of information, presented in a mostly fixed format, used to give the location of a building, apartment, or other structure or a plot of land, generally using border, political boundaries and street names as references, ...
/ binding/
contract A contract is an agreement that specifies certain legally enforceable rights and obligations pertaining to two or more parties. A contract typically involves consent to transfer of goods, services, money, or promise to transfer any of thos ...
. Binding specifies what
communication protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
s are used to access the service, whether security mechanisms are to be used, and the like. WCF includes predefined bindings for most common communication protocols such as
SOAP Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
over HTTP, SOAP over TCP, and SOAP over Message Queues, etc. Interaction between WCF endpoint and client is done using a SOAP envelope. SOAP envelopes are in simple XML form, which makes WCF platform-independent. When a client wants to access the service via an endpoint, it not only needs to know the contract, but it also has to adhere to the binding specified by the endpoint. Thus, both client and server must have compatible endpoints. With the release of the .NET Framework 3.5 in November 2007, Microsoft released an encoder that added support for the
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
serialization In computing, serialization (or serialisation, also referred to as pickling in Python (programming language), Python) is the process of translating a data structure or object (computer science), object state into a format that can be stored (e. ...
format to WCF.


Behaviors

Behaviors are types that modify or extend service or client functionality. Behaviors allow the developer to create custom processing, transformation, or inspection that is applied to messages as they are sent or received. Some examples of uses for behaviors are: * Controlling whether metadata is published with a service. * Adding security features to a service, such as impersonation, authorization, or managing tokens * Recording information about messages, such as tracking, tracing, or logging * Message or parameter validation * Invoking all additional operations when messages are received—such as notifying users when certain messages arrive Behaviors implement the IServiceBehavior interface for service extensions, the IEndpointBehavior for endpoints, the IContractBehavior interface for service contracts, or the IOperationBehavior for operations. Service behaviors are used for message processing across a service, rather than processing that would be specific to a single operation.


Interoperability

WCF supports interoperability with WCF applications running on the same Windows machine or WCF running on a different Windows machines or standard Web services built on platforms such as
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
running on Windows or other operating systems. In addition to SOAP, WCF 4 supports non-SOAP XML, RSS,
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
, and binary formats for external communication via HTTP or HTTPS.


See also

* Web Services Enhancements * Service Component Architecture (SCA) and Service Data Objects (SDO), which are alternatives to WCF in the Java world standardized by OASIS. * WCF Data Services


References

* *


Further reading

* Craig McMurtry, Marc Mercuri, and Nigel Watling: ''Microsoft Windows Communication Foundation: Hands-On'', SAMS Publishing, May 26, 2004, * Steve Resnick, Richard Crane, Chris Bowen: ''Essential Windows Communication Foundation (WCF): For .NET Framework 3.5'', Addison-Wesley, February 11, 2008, * Craig McMurtry, Marc Mercuri, Nigel Watling, Matt Winkler: ''Windows Communication Foundation Unleashed (WCF)'', Sams Publishing, March 6, 2007, * Juval Löwy: ''Programming WCF Service'', O'Reilly Media, Inc., February 20, 2007, * Pablo Cibraro, Kurt Claeys, Fabio Cozzolino, Johann Grabner: ''Professional WCF 4: Windows Communication Foundation with .NET 4'', Wrox, June 15, 2010, * Andrew Zhu: ''Microsoft Windows Workflow Foundation 4.0 Cookbook:Chapter 3'', Packt Publishing, September 2010,


External links


Windows Communication Foundation
MSDN Windows Communication Foundation portal.
MSDN Library: Windows Communication FoundationWCF Security Guide
, Microsoft Patterns & Practices - Improving Web Services Security: Scenarios and Implementation Guidance for WCF. Released Aug 1, 2008.
Understanding WCF Services in Silverlight 2
- In depth explanation of WCF services for Silverlight clients.
David Chappell: "Introduction to WCF" and "Dealing with Diversity"
two papers covering WCF. November 2007.
Getting Started with WCF RIA Services
- part 1 of the series articles on WCF RIA Services {{Microsoft FOSS .NET terminology Windows communication and services Formerly proprietary software Free and open-source software Communication Foundation Microsoft free software Object request broker Software using the MIT license Windows Server 2008 Windows Vista Windows Communication Foundation Windows Communication Foundation 2006 software