Windows Communication Foundation - The basics
Windows Communication Foundation (WCF - formerly known as Indigo) encapsulates all previous microsoft technologies for remoting and messaging. It's layered architecture consists of a base that handles asynchronous calls and message handling and a top that handles security, transations, transport and encoding capabilities.
WCF acts as a wrapper of preceding remoting technologies like:
- ASP.NET Web Services: The Microsoft's implementation for XML web services
- .NET Remoting: Supports .NET to .NET tight coupled communication in favor of performance.
- Enterprise Services: One of the oldest remoting technologies, also known as COM+ prior to introducing .NET. Part of it was DCOM and event older remoting method. Supports distributed transactions (eg. transactions among multiple databases and physical computers).
- WSE: Web Services Enhancements. WCF supports only version 3 of WSE, a set of enhancements for handling stuff like security and routing.
- MSMQ: Microsoft Message Queue provides guaranteed message delivery and is optimized for unreliable communications or systems that require off-line support.
Being a wrapper of all that techonologies, WCF encapsulates all possible features of them:
- SOAP (Simple object access protocol is used to create "envelopes" for carrrying messages)
- Plain XML and RSS (although SOAP is the main protocol for message delivery for WCF, plain XML or RSS are fully supported)
- Binary XML, MTOM (binary representation of XML files used to transfer large files. Trades message readability and interoperability for performance)
- WSE Features and may others...
WCF services - applications that expose services using WCF - must be hosted by a process and be ready to accept and respond to requests. These processing could be hosted by:
- IIS : Internet Information Services provides scalability, manageability and security)
- Windows Activation Service : Introduced with Windows Vista, is the new process activation mechanism that ships with IIS 7.0.
- Exe : Any custom .NET executable (eg. Windows Forms or Console application) can host WCF services
- Windows Service
- COM+ Component
