Working on a new project and was wondering was there any benefit with going with a WCF web service over a regular old fashion web service. Visual Studio offers templates for both.

What are the differences? Pros / Cons?

+3  A: 

The Pros of doing all by yourself is:

  • No learning curve
  • Very flexible

The Pros of WCF are:

  • Costs less time in the longer run
  • Switch protocols without programming

A disadvantage of WCF: some static property names can be pretty lengthy...

To summarize: WCF lets you focus on programming, but you need to learn it first ;-)

+2  A: 

I like the fact writing WCF services makes it easy to separate your service from the implementation. You can write your service and then host it in IIS, a console app, or a windows service; you can also talk to it via http, net tcp, etc.

Esteban Araya
+14  A: 

What is a "regular old fashioned web service?" An ASMX service, or are you using WSE as well? ASMX services are not naturally interoperable, don't support WS-* specs, and ASMX is a technology that is aging very quickly. WSE (Web Service Enhancements) services DO add support for WS-* and can be made to be interoperable, but WCF is meant to replace WSE, so you should take the time to learn it. I would say that unless your application is a quick an dirty one-off, you will gain immense flexibility and end up with a better design if you choose WCF. WCF does have a learning curve beyond a [WebMethod] attribute, but the learning curve is over-exaggerated in my opinion, and it is exponentially more powerful and future proof than legacy ASMX services.

Unless your time line simply cannot tolerate the learning curve, you would be doing yourself a huge favor learning WCF instead of just sticking with ASP.NET Web Services. Applications will only continue to become more and more distributed and interconnected, and WCF is the future of distributed computing on the Microsoft platform.

Here is a comparison between the two.

+2  A: 

Pro for WCF : You don't need a web server (i.e. IIS). You actually don't need a server OS.

Andrei Rinea

Unit tests on your services implamentation and interaction are easier to do !

Nicolas Dorier

A good link for this is here

This would explain the differences between the two.