In 2008, Microsoft was struggling to compete with market newcomer Ruby on Rails for developer marketshare, and the company answered to its competition with the announcement of the ASP.NET MVC framework at its MVP Summit. Since that announcement, the company has focused much of their messaging efforts on touting the benefits of ASP.NET MVC, which effectively led developers to believe that the commonly used and robust Web Forms framework was a dead and outdated technology that Microsoft would no longer support. The company's strategy ultimately resulted in a rift throughout the development community, which left users to dispute which framework was better.
Shaun Walker, co-founder and chief technology officer at DotNetNuke, an open-source project on the Microsoft platform, wrote extensively on Microsoft's new direction for its Web API framework in, "Microsoft Declares the Future of ASP.NET is Web API." According to Walker, Microsoft's initial strategy for ASP.NET MVC left users with the perception that they would have to choose one framework over the other rather than choosing the best one for the job. Additionally, Walker noted that several users conducted large scale rewrites for the sole purpose of migrating from Web Forms to ASP.NET MVC, which resulted in more complicated systems that didn't benefit the organization or the customer.
"It has become challenging for software developers in the Microsoft ecosystem to figure out which technologies should be used for different tasks," said Walker. "When MVC was introduced by Microsoft, it wasn't fully compatible with Web Forms, and, resulted in a fork in the road for web developers. The perception was that you either had to go down the MVC path or you had to stay on the Web Forms path. That created a lot of tension and animosity between different groups which wasn't healthy for the developer community."
When Microsoft wants to focus its efforts on a new framework or technology, Microsoft has traditionally tried to provide a bridge from the previous technology platform to its successor. However, in the case of ASP.NET MVC it effectively felt like Microsoft had abandoned Web Forms altogether. This approach ultimately left many developers out in the cold and because of this, I believe that Microsoft suffered a negative impact to its developer ecosystem. With that said, Microsoft's new messaging for Web API embraces both Web Forms and ASP.NET MVC. Microsoft openly said during TechEd 2012 that it's embracing Web API as a means to unite ASP.NET MVC and Web Forms frameworks, a strategy they refer to as "One ASP.NET."
According to Chris Sells, vice president of the Developer Tools Division at Telerik, he says that Microsoft had to deal with the idea of merging old and new technologies together to provide adequate functionality to the company's customers. "This is really the first time that Microsoft has what I would consider a mature and reasoned way to manage moving people forward with new technologies without abandoning the old ones. This is a whole new way to do things for Microsoft, and it's a big deal," said Sells.
Sells also sees that Microsoft's embracement of open source is another change that will reflect positively on the company. Back in March 2012, Microsoft announced that it would make its entire ASP.NET frameworks open source under the Apache 2.0 license. "To make this strategy work, Microsoft is refactoring ASP.NET as a lightweight kernel, similar to the way operating systems have been doing for years," explained Sells. In order for Microsoft to shift to the open source model, ASP.NET has been hardened and has defined interfaces that let third parties work with the framework. New services that are built on top of ASP.NET are provided by Microsoft, and some services are also provided by third-parties and open source developers.
"What's interesting about this particular model is that all of those services that are built on top of the kernel are on a level playing field, and I only have to pick the ones that I actually care about. I can pull components down from Microsoft or NuGet on demand as I need them so that I can build the specific app that I need using only the functionalities that I need. That's the beauty of the kernel architecture that Microsoft has built," said Sells.
Prior to Microsoft's open source announcement for its ASP.NET frameworks, the company had participated in a shared source model in which a portion of source code is shared with the community. Although users can modify the source code to their liking, this model doesn't let users make contributions that would benefit the rest of the development community. "Not only are they putting ASP.NET out on open source for all of the services built on top of the core, but they're also taking contributions from external third parties, which is something Microsoft has never considered before. Now they're doing it with their crown jewel for server-side custom app development. That is huge. It's a new Microsoft," said Sells.
Several developers are excited about Microsoft's new Web API strategy. "I think people are excited about Web API because more they want to build service-oriented applications that can be consumed by a variety of devices," said Walker. The current .NET services framework, Windows Communication Foundation (WCF), is a heavy-weight solution for building simple web services.
"Developers are really looking for something that's much more simple and productive for building those types of applications. . . Web API definitely goes much further as it's designed specifically for those types of applications," said Walker.
Michael K. Campbell, contributing editor for Dev Pro, elaborated on how Web API will make life easier for developers. "Web API perfectly manages to capture a common need that I've bumped into in a number of cases where I wanted to expose website content and functionality to other sites, platforms, or devices by means of APIs. But rather than use the abomination that is WCF, I chose to effectively roll my own APIs and interfaces using ASP.NET MVC. Because Web API is effectively an extension of ASP.NET MVC, developers are going to be able to very easily, very cleanly, and very efficiently provide access to their sites, services, and data via customized APIs that they can make available very quickly – simply because Web API is doing much of the plumbing for them," said Campbell.
However, there are some developers who are deeply entrenched in the ASP.NET MVC environment that feel that there's no need for the Web API framework. Contributing author for Dev Pro, Dino Esposito, explained that his environment consists of utilizing MVC for building websites and to expose services through ad-hoc controllers. "My mantra is to make sure that you have a good tool for the job. My environment works, and I'm in total control of it. If it works and you're happy with it, why change?" said Esposito.
"We don’t think the development model should be an either/or decision; frameworks should be able to coexist in harmony. As a developer, you should have the freedom to choose the tool that is most appropriate for accomplishing your business objective," said Walker.