A couple months back, Microsoft came out with a big announcement. As they continue to work on the ASP.NET platform, and release MVC version 4, they also released a new product called ASP.NET Web API. The day it was released to beta there were already several blog posts talking about how great it was and how to implement it etc.
As I read the blog post I thought “This is amazing.” It really is a great concept. In fact, the concept was so nice, it had already been around for years. Personally, I’ve been using OpenRasta for a little over a year now.
I loved OpenRasta from the get-go. A simple, intuitive approach that let’s you name your methods things like GET or POST and have the framework figure out which method to call. Very much like WebAPI.
So What’s the Problem
For years there have been lots of open source approaches to doing .NET web type stuff. In addition to OpenRasta, there’s an entire OSS MVC stack built on .NET, it’s called FubuMvc, and it’s pretty awesome. Yet most .NET developers don’t even understand that this kind of stuff is possible.
In my day job I’ve been interviewing people for software engineering positions. One question I like to ask is basically “What .NET tools or frameworks have you considered that were not written by Microsoft?” There are a bunch of possible answers here. For example a few items you could use are:
(And that list only covers part of 4 spaces – Data, Web, Testing & Dependency Injection).
However, the number one answer I’ve heard over and over again is “I’m pretty much just a Microsoft guy.”
It’s to the point where when I hear that, I’m all but done with the interview.
Don’t get me wrong, I don’t hate Microsoft. I don’t think they’re evil. I enjoy working on .NET. That said, Microsoft’s purpose is not to keep me employed, nor is it to make me effective at my job. Those are my responsibilities, and if you’re a developer, they’re your responsibilities as well.
How does WebAPI fit in?
Since February’s beta release of ASP.NET WebAPI I’ve heard several developers tell me something akin to “This WebAPI stuff is pretty cool. I’ve got a project I’m going to use it in, it fits perfectly.”
The problem here is that if WebAPI fits perfectly then a few other solutions would have as well, but the developer didn’t use them. I don’t know for sure why the developer didn’t use them, but from the ones I’ve talked to it comes down to: they didn’t know those options existed, because they weren’t featured in MSDN magazine.
In 2012 we don’t need to wait for the next edition of Dr. Dobbs or MSDN magazine to come out, because by the time it gets here, the data is already 4-6 weeks old. Notice that Microsoft didn’t announce ASP.NET Web API in MSDN, they announcned it at a conference and through a series of blog posts.
There’s nothing wrong with WebAPI. I fully plan to play around with it to see how it stacks up against other technologies. But right now, it’s a litmus test. Developers that are only now looking at RESTful services because of WebAPI, probably have a pretty narrow view of development. And that makes the rest of the .NET community look bad.