Preview 4 Breaking Changes

Topics: Web Api
May 1, 2011 at 6:27 PM

Hi guys,

I have been using WCF Web API Preview 3 for sometime on our development branch which will eventually merge into production.  I've just recently migrated to Preview 4 and noticed a massive amount of updates and changes.  There has been some incredible work done by the WCF team.  However, I also noticed things that have changed which require modification in my code to support the new design.

For example, am I to use MediaTypeFormatter instead of IContentFormatter?  My main question is: I realize this is a Beta ... maybe even Alpha build, but is there any list of breaking / non-breaking changes from v3 to v4?  Without any kind of formal documentation, it's a bit overwhelming having to dig through Reflector or JustDecompile to understand how to use these libraries.

If I am not mistaken, Microsoft.ApplicationServer.* libraries are all new?

Is there a video from MIX which describes these changes? Thanks.

May 1, 2011 at 8:06 PM

Breaking changes are an unfortunate side effect of getting access to early bits.  I know it's painful, but I suspect this is going to the last major change to the core stuff.  The configuration side of things are probably still going to evolve but the handlers and pipeline will likely only see incremental changes from this point on.  However, I'm not on the team, so my opinion is only speculation :-)

The Microsoft.ApplicationServer.* libraries are really just renames and reorganization of the existing stuff.  The major change in this version is related to ObjectContent, the formatters and the new HttpResponseMessage<T>.  The most significant breaking change is the fact that the HttpResponseObject does not exist and cannot be created in the request pipeline.  This change was done to allow the operation signature to actually return a HttpResponseMessage.

If you have other specific questions, there are quite a few people in the community who are working with the stuff that will be happy to help. 

May 2, 2011 at 3:13 PM

The code is available. Download it, make project references, and debug.  When the version number is 0.3.0.0 you have to assume instability. 

I'm also pleased that this forum is moderately active and that the Team is actively monitoring it.