I gave a talk on Connecting Applications with WCF to the Space Coast .NET and Orlando .NET User Groups over the last two nights. Had great attendance and questions, thanks to all who attended.
If you want the key takeaway from the talk (other than the demos and mechanics of how to connect two applications with WCF and use different bindings and capabilities of WCF), here is the elevator pitch.
WCF is a remote communications technology based on SOAP messaging. It is interoperable, powerful, flexible, easy to maintain, and supercedes all the previous remoting technologies in the .NET space:
- .NET Remoting
- ASP.NET Web Services
- Enterprise Services (COM+ for .NET)
Basically, if you are writing a new application or new portion of an application that needs to make remote calls, use WCF and forget all the above exist. WCF gives you a single API for doing remote communications that rolls up all the capabilities of the technologies listed above, allowing you to write your code with most of the details of the remote communications abstracted away. This allows you tochange major aspects of your remote communications approach, such as wire level protocol, encoding, security mechanisms, reliability, etc. without touching your programmatic code – you just modify config file settings. If you need to switch from TCP sockets with binary encoding to HTTP SOAP XML messaging, it literally takes about 30 seconds of editing your config files to do so.
There are a few fringe cases such as interoperating with a legacy .NET Remoting app, or certain advanced features of MSMQ that you will not be able to do with WCF, but for 98% of the remote communications needs out there, WCF is the choice you should make.
If you want the slides and demos I presented, you can grab them here: