Skip to content

WCF and SOA: Helpful Info Sources

June 2, 2013

For 4 1/2 of the 7 months during November 2012 and May 2013, I worked full time doing a deep dive into Service Oriented Architecture using WCF 4.5.  The other 2 1/2 months I spent programming select topics in WPF, MEF, and Dependency Injection in .NET 4.5.  All this was driven by my passion for building extensible apps, plus my long standing interest in cost effective software structure and architecture. 

Two months were spent attending the IDesign Architect Master Class and Architects Clinic, each a week long, to learn the best practices for architecting robust, extensible, scalable Service Oriented apps with WCF.  Then I spent 2 1/2 months writing code to implement this architecture using the following IDesign patterns: 

  • WCF Service as a Manager, Engine, or Resource Accessor (You’ll have to find about these on your own.  Not enough space here.)
  • Queued Pub/Sub Pattern – Facilitates a WCF service (the publisher) in sending various messages to one or more subscribing WCF services via the Publish/Subscribe pattern, aka Observer design pattern.
  • Message Bus – Uses a variation of the Queued Pub/Sub pattern to allow numerous WCF services to send and receive messages between one another.
  • Workflow Manager – A pattern that allows variations in a Use Case, in a Business Workflow, or even in a Client UX Workflow to be encapsulated on the server within a single WCF service.  This Workflow Manager WCF service then can invoke one of several “workflows” (which may or may not be state machines) it has access to on the server, based upon input from the client.  A very simple example is a WCF service using a Strategy design pattern that does Income Tax Calculations appropriate to the state of residence in the WCF service operation’s arguments. 

I found this deep dive fascinating, to say the least.  Designing and programming multiple examples of the above patterns using the IDesign Architecture pushed me into advanced areas of WCF that I’d never known existed.  And, I learned so much – not only about architecture, WCF, and its various extensibility points.  But also about the useful tools in IDesign’s ServiceModelEx library, how to integrate WPF Clients with this architecture, plus how to use the Manage Extensibility Framework to make key things easily extensible on both the Client and Server. 

During this period I was on my own to come up with info sources to aid me in forging in to unknown areas.  Below I provide a list of the information sources I found most useful in the WCF part of my deep dive.  If you look through previous articles in this blog you can find several similar articles on good info sources I also found in this deep dive — For MEF and for using INotifyDataErrorInfo in WPF.  

Helpful WCF Info Sources 

1.  Learning WCF by Michele Leroux Bustamante, O’Reilly, 2007. 

This book a great place to start climbing up the WCF learning curve.  Although I’d consumed WCF services in Silverlight clients for several years prior to this, plus created several WCF services as well, I had just scratched the surface.  After I worked the majority of the labs in this book during the course of a week, I had a much better grasp of WCF and its terminology and concepts, plus a real boost in my confidence in my ability to use the framework in new ways that were out of my previous comfort zone. 

2.  Programming WCF Services, 3rd Edition, by Juval Lowy, O’Reilly, 2010. 

This book is key to both learning the basics, plus the advanced features of WCF and SOA.  If there was only one book or article I could read about WCF, this is the one I’d read.  Be sure to read the appendices for advanced topics like the Pub/Sub pattern, Message Headers and Contexts, etc. 

3.  Juval Lowy’s IDesign web site contains a wealth of free downloadable WCF software and examples, plus information about the architecture design services and the top notch classes he offers.   

Here’s the link:  http://www.idesign.net/Downloads.  You can also get his library of WCF utilities and extensions called ServiceModelEx.  On the Downloads page enter “Essentials” into the “Filter by Category” box.  Then scroll down till you see ServiceModelEx and click the link to get to the download screen.  I found the GenericResolver, the Pub/Sub utility and its persistent subscription manager, plus the TransactionalDictionary quite useful among the several I used from in ServiceModelEx. 

4.  MSDN Magazine has published a number of excellent articles on WCF over the years.  I’ve found them to be good at giving me a clear conceptual understand of various aspects of WCF.  

Here is the link to the MSDN Magazine Author’s Articles index for Juval Lowy, who has written many useful articles over the years.  http://msdn.microsoft.com/en-us/magazine/ee532098.aspx?sdmr=JuvalLowy&sdmi=authors 

        Here are the links to several articles by Aaron Skonnard that I found informative:

5.  Finally, I found the series of articles on WCF Extensibility in the blog of Carlos Figurea to be very useful.  They typically come with a code example.  Carlos is a Senior Software Development Engineer in Test for Microsoft, currently working on Azure.  He previously worked on WCF and the ASP.NET Web API among other projects.  You can find the Index Page to his article on WCF Extensibility at:

http://blogs.msdn.com/b/carlosfigueira/archive/2011/03/14/wcf-extensibility.aspx 

I hope you find these sources as helpful as I did. 

George Stevens

Creative Commons License

dotnetsilverlightprism blog by George Stevens is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Based on a work at dotnetsilverlightprism.wordpress.com.

Advertisements

From → Uncategorized, WCF

One Comment
  1. Reblogged this on ITelite.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: