Hate to say it, but I used to do the "kill two birds with one stone". You'll find that it's too hard to do. You'll spend countless hours learning the technology and making a lot of mistakes/lessons learned. You may end up with a useful app...but it wont be as "pretty" as you'd like it to be and you'll end up wishing you could rewrite it. Especially if you are trying to learn WCF, there is so much to the technology....either way.....here is an app:
I did a WCF chat application. I created a web version (thin client) and a WPF version (thick client). By doing the chat application:
-----Thin Client web app
teaches you how WCF works with ajax
teaches you how to use the BasicHttpBinding
teaches you how to host WCF in IIS
teaches you about how WCF will scale given multiple users
teaches you "pull" architectures
-----Thick Client Winforms/WPF app
teaches you how WCF works in a thick client (duh)
teaches you how to use a Duplex binding
teaches you how to host you WCF app in either a windows service, console app, or IIS7
gives you insight on security/firewall requirements when dealing with thick clients
teaches you "push" architectures
gives you insight on thread safety when dealing with OneWay calls
-----How to make it useful
It would be great if there was a "plug-able" chat application out there that I could put on my websites. You can provide it as a service to other developers.
-----Books (even though you don't want it)
I would recomend you read a book on webservices (this is a good one) They arent really something you can just pick up from playing about and can be quite frustraiting if you dont know what your doing.
As for development, I recomend you prototype it first. Hammer something out thats messy but lets you get an idea of how to do things. You can then use that as a reference for when your actually building your app.
In your binding configuration, there are four timeout values you can tweak:
The most important is the sendTimeout, which says how long the client will wait for a response from your WCF service. You can specify hours:minutes:seconds in your settings - in my sample, I set the timeout to 25 minutes.
The openTimeout as the name implies is the amount of time you're willing to wait when you open the connection to your WCF service. Similarly, the closeTimeout is the amount of time when you close the connection (dispose the client proxy) that you'll wait before an exception is thrown.
The receiveTimeout is a bit like a mirror for the sendTimeout - while the send timeout is the amount of time you'll wait for a response from the server, the receiveTimeout is the amount of time you'll give you client to receive and process the response from the server.
In case you're send back and forth "normal" messages, both can be pretty short - especially the receiveTimeout, since receiving a SOAP message, decrypting, checking and deserializing it should take almost no time. The story is different with streaming - in that case, you might need more time on the client to actually complete the "download" of the stream you get back from the server.
There's also openTimeout, receiveTimeout, and closeTimeout. The MSDN docs on binding gives you more information on what these are for.
To get a serious grip on all the intricasies of WCF, I would strongly recommend you purchase the "Learning WCF" book by Michele Leroux Bustamante:
Learning WCF http://ecx.images-amazon.com/images/I/51GNuqUJq%2BL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg
and you also spend some time watching her 15-part "WCF Top to Bottom" screencast series - highly recommended!
For more advanced topics I recommend that you check out Juwal Lowy's Programming WCF Services book.
Programming WCF http://ecx.images-amazon.com/images/I/41odWcLoGAL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg
See this series of web casts by Michelle Bustamonte.
If you are a beginner, this is one of the best sources to learn WCF.
You can also start with the book Learning WCF.
Also take a look at these SO posts -
Learning the basics of WCF
What is the best way to learn WCF?
Good and easy books/tutorials to learn WCF latest stuff
Learning WCF: A Hands-on Guide by Michele Bustamante - very nice kick-off book with step-by-step tutorials. Michelle also has a series of webcasts published on MSDN.
Programming WCF Services by Juval Lowy - more systematic approach, for experienced web developers.
IDesign WCF Coding Standard
WCF Security Guidance from Microsoft P&P
Getting Started Tutorial on MSDN
and offcourse TheBestProgrammersQandASiteEver :-)
While not an instant answer for you, I found the book Learning WCF very useful; in it there's a small section on versioning (which is similar to Craig McMurtry's advice posted by Espo). If you're looking for a general intro book, it's very good. Her website has lots of good stuff too: Das Blonde
No sure why her site isn't responding; it's been a while since I've visited, so maybe she shut it down. No sure.
I guess you'll want to check WCF Membership provider. I posted a few months about it http://sgomez.blogspot.com/2007/12/wcf-membership-provider-sample.html follow the links and also I'd recommend the book Learning WCF by Michele LeRoux Bustamante.
Good luck! (you're gonna need it)
It allows you to expose a service using multiple protocols and multiple security contexts.
A very good resource for learning WCF is Michele Bustamante's book Learning WCF.
Note: If you do get this book, she has an updated version of Chapter 1 and an appendix on her website.
Her website is also a good source of up-to-date information: http://www.dasblonde.net/default.aspx