For the AB project there was a demand to have a stub-application. The Belastingdienst system contains several applications which are all under development. The stub must be able to simulate one or more of these applications.
The applications transmit messages to each other with pub/sub. The applications communicate with WCF and so does the stub. The stub is able to send a specific message to a system, based on the message that it receives. So basically, it's a (conditional) router.
The stub hosts 0 ore more WCF services, using a wsHttpBinding. The ServiceContract consists of a MessageContract that matches with the unified XSD message specification of the applications. The XSD specifies a Header element, which is a Header-class in code. This class is extended with a DataContract attribute. A DataContract is the serialization engine of WCF, a simplified version of XmlSerializer, the default serialization engine used in ASMX.
It's easy to use WCF for basic communication tasks but it can get complex for more specialized scenarios. But I think its a great foundation for communications. I'm very enthusiastic now and I'm investing more time to master this technology.