Have been reading about WCF lately. And to my understanding it’s a very extensible framework. I have had the opportunity to attend quite a few training on WCF as well as to read through some great documentation about WCF.
Intrigued by the same, I thought of giving it a try myself. Let me just briefly give you a pictorial representation of the same as best I could comprehend.
Hope the above diagram is self explanatory.
Unless it is not let me just try and make things a bit clearer. Rather than going into the divide of Messaging versus Remote Methods, WCF is built with Messaging underneath, but it does not let the developer know about the details unless he or she biased about the technology. It just encapsulates it beautifully. And one would never come across these stuff unless one really wants to.
Lets a we have a method "Method A" which is exposed as a WCF Service. And say we have added a service Reference to this WCF Service. Now if we call this particular WCF service at client side, the proxy does many a step and which is pretty easy to miss.
The moment the call is made, the call gets forwarded to the Client Side Dispatcher. The job of the dispatcher is to package the call in to message. Once it becomes the message it is given to the Channel Layer. The channel layer, takes care of actually moving the message to the Server, where the Service is hosted. Once, it reaches to the channel layer at the Server, the Channel Stack, The Channel Stack at the Server side takes care of taking the message and handling it the Dispatcher. Once the dispatcher receives the message the message is DeSerialized into appropriate types. Dispatcher as well takes care of initiating the appropriate class and forwarding the DeSerialized types to the appropriate instance. Once the method gets executed, the same cycle applies and finally reaches the Client.
Hopefully, this does make some sense. This is a very basic introduction to WCF. We would look at it in more detail as we dig deeper.
Till then happy coding