Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Maybe it's me, but I've never encountered nearly as many problems, annoying challenges, indirect error messages and general frustrations with any other technology as I have with WCF.

What are the ACTUAL benefits? Not the MS Press Release benefits of 'a unified architecture for something something that's not going to work anyway.' And are those benefits worth the annoying frustrations?

I'm normally a big MS fanboy over here, but I just can't get behind WCF.

share|improve this question

closed as primarily opinion-based by gnat, Bart van Ingen Schenau, MichaelT, GlenH7, Dan Pichelman Apr 27 '14 at 15:48

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

One of the biggest issues I have with WCF is the error messages. There's a non-generic error which gets displayed in the event of many un-related issues, and so you have no idea what the actual problem is. It has driven me crazy many times. –  Rachel Feb 6 '12 at 17:01

3 Answers 3

up vote 19 down vote accepted

WCF shortcuts a whole lot of things in making a web service, but if you stray too far outside it's defaults you will have some additional work (usually configuration) to do that IMHO is not documented very well.

Compared to ASMX services is can be a huge timesaver, but if you are writing REST services sometimes it is easier to use a MVC project as a starting point these days.

What you get is all the endpoint options without having to code them, but the documentation on configuring the non-common ones is very sparse. You also can get the ability to have one service speak in more than one format and the ability to expose a interface directly as a service with minimal additional code. This is handy if the class is meant to be used locally or remotely depending on situation.

It also gives you better hosting options for non-web services like tcp services without having to write the service management piece yourself. If you want to skip all the string nonsense this is a big deal sometimes.

share|improve this answer
If you do want to use WCF for REST related projects, you might want to chec out ADO.NET Data Services msdn.microsoft.com/en-us/data/bb931106.aspx –  Jason Evans Oct 5 '10 at 8:06
I understand your answer. But I'm thinking Microsoft should create a wizard on Visual Studio IDE just for configuring your webservice without needing to hard code your .config file. It should be easier for developers how WCF is configured. –  Junior M Nov 9 '10 at 10:29
@Junior: it is not explicitly explained, but if you configure the WCF service very generic in the .config you can get away with little to no modifications to the file on deployment. –  Bill Nov 9 '10 at 15:51
@Junior ... I'm fairly certain there is a WCF wizard in the Tools menu, or at least I've been able to launch it from the SDK –  LamonteCristo Jan 24 '11 at 3:14
@makerofthings I think the config tool you are thinking of comes with entlib or one of the early add-ons for wcf. I remember it and I also recall thinking it wasn't very good for anything but the most common wssoap services, but that was a while ago –  Bill Jan 29 '11 at 19:02

Simple, don't use WCF when you don't have to...

It's only worth it when you need the benefits of WCF, don't use it just because it would be more clean.

It's like a Windows Service, it would only benefit if it would be used by multiple things...

share|improve this answer

I'd try WWS (Windows Web Services) if you're intending to create new windows communication services - its faster, lighterweight and easier to understand what it does compared to the black box that is WCF. In a way, there's no reason to use WCF, you will always be able to find a solution that is either faster or quicker to develop.

There again, that assumes you can't go with something else like a message bus or simpler RPC mechanism.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.