The first version of WCF didn't have any built-in REST support. WCF 3.5 introduced a "Web" programming model that enabled REST service development scenarios (through classes like WebServiceHost, WebServiceHostFactory, WebHttpBehavior, WebHttpBinding, WebGetAttribute, WebInvokeAttribute, UriTemplate, etc). However, building RESTful services today with WCF 3.5 still leaves a lot to be desired.
At PDC this week, Microsoft announced the WCF REST Starter Kit, which makes building RESTful services with WCF much easier. You can download the WCF REST Starter Kit from CodePlex. It comes with a new library of APIs, both new classes and extension methods, that address some of the common pain points around building RESTful services with WCF 3.5 today. For example, you'll find new classes like WebServiceHost2, WebServiceHost2Factory, WebHelpAttribute, WebCacheAttribute, WebProtocolException, and RequestInterceptor to name a few. One of my favorite features is how the new host enables an automatic documentation page for your RESTful services describing the URI design, message formats, and sample instances, making it much easier for clients to discover how to integrate with your RESTful service.
Today when you download the WCF REST Starter Kit from CodePlex, you get the source code, which opens up additional opportunities for community collaboration and internal customization. As we move towards .NET 4.0, the WCF team will be looking at the various features found in the WCF REST Starter Kit they'll be evaluating which ones make sense to roll back into the .NET framework moving forward.
The WCF REST Starter Kit also comes with a Visual Studio installer that provides a suite of new project templates that provide skeleton implementations for today's most common types of RESTful services including: REST singleton services, REST collection services, AtomFeed services, AtomPub services, and HTTP Plain XML (POX) services. These templates make it really easy to get simple REST services up-and-running quickly.
If you want to learn more about REST and the WCF REST Starter Kit, browse to the new REST landing page on MSDN WCF Dev Center. This will become the new gathering place for WCF REST resources.
I recently wrote a REST whitepaper called A Guide to Designing and Building RESTful Services with WCF 3.5, which covers REST design fundamentals, the new WCF 3.5 programming model, and the new WCF REST Starter Kit. It's a great way to get your head around REST and to start writing REST code. I've also recorded a bunch of screencasts illustrating how to get started with the starter kit. You'll find links on the REST landing page.
Kudos to Microsoft, specifically Vish, RC, Steve, Kent, and the rest of team for providing first-class REST support to .NET developers. I'm excited to watch this project continue to evolve over the next year.