Windows Communication Foundation

If you need an introduction to Windows Communication Foundation (WCF) then I would start with http://msdn.microsoft.com/en-us/library/ee354181.aspx which gives a good overview. It is well worth going through the tutorial.

Once you have understood the basics then it is well worth looking at the Web Service Software Factory at http://servicefactory.codeplex.com/. I found the best way to understand this was to run through the tutorial, which was helpful.

Ah, yes, the WCF Test Client is very handy. I would recommend looking at http://blogs.msdn.com/b/wcftoolsteamblog/archive/2010/01/04/tips-for-lau... for some easy ways to start it. Otherwise not an easy to find tool!

Debugging
In the Service/Host web.config set /configuration/system.web/compilation/@debug="true" this is one thing that allows stepping from a client into a service. Also set /configuration/system.serviceModel/behaviors/serviceBehaviors/behavior[*]/serviceDebug/@includeExceptionDetailInFaults="true" which should expose server faults back to the client.

WSSF
It is always good to use factories and WSSF does do a lot to help. However, when you modify the Data Contract, let's say you change something in the message from a single item to a List<T>, then you need to run "Generate Code" again. However, you also need to find your client and look for a "proxy" under "Service References", then right-click on it and select "Update Service Reference". Any subsequent build will then show where your coding changes need to be made.

Issues - WCF volumes
When I had issues with my client not receicing all the data, then changing maxBufferSize and maxReceivedMessageSize in the app.config helped, however do note they need to be the same.