Windows Communication Foundation (WCF) for beginners - wcf

I need to learn WCF for my project as I am building a client-server application under Windows. What's the best place to start. I've googled for tutorials and books but I couldn't find something suitable for starters. I would prefer a book.

As for resoures: there's the MSDN WCF Developer Center which has everything from beginner's tutorials to articles and sample code.
Also, check out the screen cast library up on MSDN for some really useful, 10-15 minute chunks of information on just about any topic related to WCF you might be interested in.

Look at PluralSight videos may be its easy way for you to start. Some of the videos are on MSDN for free.
Find book for yourself. For example this one could be easy to understand for beginner.
Look at WCF samples. Some samples can help you in learning.

If you prefer a good book, check out Programming WCF Services, 3rd Edition by Juval Lowy.
Other WCF book recommendations are listed in this question.

Related

What good resources can you suggest to learn advanced WCF?

I'm looking for any beyond basic resources that can help me to be proficient with WCF.
I found Microsoft Virtual Labs that are pretty good but I'm looking for more. I'd really appreciate if you point me to more resources.
Thanks a lot.
There's a really good book my Michele Leroux Bustamante called Learning WCF (something like a pre-cursor to Juwal Lowy's more advanced book). She goes into great detail on all topics of WCF, even some very advanced ones (like federated authentication).
Michele has also recorded a 15-part screencast series on MSDN called "WCF Top-to-Bottom" which is a really great way to get started into WCF programming. Check out her link collection for that series.
Marc
I like Juval Lowy's book.

Conceptual overview of WCF security model?

I'm working with WCF at the moment and attempting to implement a custom security model based around an API key and signature (similar to how Facebook/Flickr/OAuth etc. work).
There are a while bunch of classes like ServiceAuthorizationManager, SecurityToken, SecurityTokenValidator, IAuthorizationPolicy and so on, but I can't seem to find any documentation about how these work together or what the conceptual security model is for WCF.
I'm really looking for something that details how these classes fit and work together, so I can understand where to extract credentials, where to validate they are correct, where to decide what level of access to give them and so on. If there is a book I can buy about this stuff it would be even better, as all the WCF books I have found skip over all this stuff entirely.
Is there any documentation out there?
Take a look at Juval Lowy's excellent "Programming WCF Services," 2nd Edition:
Here's the link to Amazon's page on it.
Chapter 10 is completely devoted to security.
Microsoft has released a WCF Security Guide - a free(!) eBook. You can find it here.
That's an awful lot of information to wade through. Good luck!

New architecture concepts

I posted this community wiki in the hopes of creating a thread of expertise. My question is thus ... "Where do the experts go to learn about the newest coding techniques?".
I'm basically looking for the leading/bleeding edge of architecture, design, development and theory.
I know conferences and trade shows are probably the best venues to see the latest and greatest, but for those on a limited budget (of both time and money) such as myself, I'm looking for websites that I can read in the evenings that will keep me current on what's new in the world.
I program mostly in C# but the websites need not be geared towards C#.
Blogs
Martin Fowler, the best starting point I think. (http://martinfowler.com/)
articles like "Consumer-Driven Contracts: A Service Evolution Pattern", "Mocks Aren't Stubs", "Inversion of Control Containers and the Dependency Injection pattern" (http://martinfowler.com/articles.html)
David Hayden (http://www.davidhayden.com/)
Reflective Perspective, a good daily feed (http://blog.cwa.me.uk/tags/morning-brew/)
Ayende (http://ayende.com/Blog/)
Eric Lippert - Works on the language. Sometimes read about new C# features before they're announced elsewhere.
Scott Hanselman
Journals
The Architecture Journal (http://msdn.microsoft.com/en-us/architecture/bb410935.aspx) And what's a great option - you can order free, paper based copies!
MSDN Magazine (http://msdn.microsoft.com/en-us/magazine/default.aspx)
Community
Codeproject.com, short and large articles
pnpguidance.com, tutorials, blogs and articles
Real applications and devteams
pattern&practices home: http://msdn.microsoft.com/en-us/practices/default.aspx, and P&P products
SCSF, the Smart Client Software Factory home. Learn about desktop enterprise systems. (http://msdn.microsoft.com/en-us/library/aa480482.aspx)
WCSF, the Web Client Software Factory home. Learn about busines(process) oriented web architecures. (http://msdn.microsoft.com/en-us/library/bb264518.aspx)
Enterprise Library
For free - I would recommend MSDN, particularly keep an eye on the C# and .NET technology pages. Lots of blogs, and nearly every announcements about what's up and coming is put there.
Serverside.net
The ondemand(previously recorded) webcasts from Microsoft are normally really good, but it's a painful number of clicks to actually get to the point where you can download the file, and sometimes you find that it is not available.
Also sometimes you can find a .NET User Group locally that will have speakers/sessions occasionally. These are also great ways to network and find out what kind of work is going on in your area.
Books, books, books! Good books are written by subject matter expects, involve input from many sources, are peer reviewed, well structured and go orders of magnitude deeper than trade shows, and most online material. When you buy a book, you get the experience of an expert for a very reasonable price.
NDepend documentation comes with two white books and also online blog posts and articles concerning the architecture for large .NET application:
Partitioning code base through .NET assemblies and Visual Studio projects (8 pages)
Defining .NET Components with Namespaces (7 pages)
Control Components Dependencies to gain Clean Architecture
Re-factoring, Re-Structuring and the cost of Levelizing
Evolutionary Design and Acyclic componentization
Layering, the Level metric and the Discourse of Method
Fighting Fabricated Complexity
I never get to go to PDC, but I do love to watch the videos.
As a previous post mentioned the MS PDC videos are on online. Same with Mix which has good MS Web development related content. Also, for general MS videos there is Channel 9, it's not all technical content, but it's worth searching if you are looking for something in particular.
Someone already mentioned blogs, here are a few more:
Scott Hansleman - lots of stuff on there, a lot of ASP, MVC stuff.
Phil Haack - another good MVC guy.
Rob Connery - again a lot of focus on MVC.
ScottGu - according to his blog he "builds a few products for Microsoft", which has to be the understatment of the year - he is in charge of ASP, IIS, SIlverlight and much more besides at MS.
Check out Sharp Architecture, it's very promising.
I've collected several RSS feeds that I regularly to stay up-to-date on .NET and Agile. If you like I can share the list with you. It contains most of the stuff already mentioned here.

Understanding WCF

Could anyone point me to a resource that explains WCF with pictures and simple code snippets. I am tired of googling and finding the same "ABC" articles in all search results.
WCF is a very complex technology that in my opinion is very poorly documented. It is incredibly easy to get up and running with, but the performance tuning to run a large scale app can be incredibly complicated and a lot of trial and error. One day everything is working fine and then you find out that only a single Channel is kept waiting for a new connection and that there is a config setting that you need to adjust on a custom binding to allow more channels to be waiting so that calls don't fail inbetween when a channel is used and the next channel is spun up.
In general Nicholas Allen's blog is a gold mine of information. However Windbg has been my best friend in trying to explain some very bizarre behavior coming from WCF.
Here's a really simple example. It's specific to CE/Mobile devices, but the concept is no different PC to PC.
I found the following two books to be really good for getting up to speed on WCF:
Programming WCF Services (Lowy - O'Reilly)
Pro WCF (Peiris, Mulder - Apress)
They both start with more of a conceptual description of WCF, so you understand the concepts and terms. This is really useful, because it allows you to narrow any google searches to more specific concepts.
And this is an article that breaks down understanding WCF and why it was developed in a simple, bulleted list.

Best practices for versioning your services with WCF?

I'm starting to work with my model almost exclusively in WCF and wanted to get some practical approaches to versioning these services over time. Can anyone point me in the right direction?
There is a good writeup on Craig McMurtry's WebLog. Its from 2006, but most of it is still relevant.
As well as a decision tree to walk through the choices, he shows how to implement those changes using Windows Communication Foundation
See "Versioning WCF Services: Part I" and "Versioning WCF Services: Part II".
See also:
WCF Backwards Compatibility and Versioning Strategies – Part 1
WCF Backward Compatibility and Versioning Strategies – Part 2
WCF Backward Compatibility and Versioning Strategies – Part 3
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
Edit:
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.