As Jonathan Allen points out in his Notes from Redmond, there is a growing emphasis recently on using Open Source software with ASP.NET. We got in touch with Scott Hunter, the Principal Program Manager Lead on the ASP.NET team at Microsoft to ask him more.
InfoQ: Could you explain the decision to start adopting open source in ASP.NET?
Scott Hunter: The decision to adopt open source in ASP.NET primarily comes us making a decision to try and not re-invent the wheel if possible. In the case of jQuery, it was the most popular JavaScript library that was being used by web developers and many of our customers were already using that library and asking us questions of why they should use our Ajax library over the jQuery library or vice-versa. We chose to use jQuery and extend it instead of writing our own library from scratch
InfoQ: What factors went into deciding to include jQuery and Modernizr instead of other open source libraries?
Scott Hunter: The decision to use jQuery verses other libraries was determined by looking to see what were the most popular libraries developers were using. Modernizr was selected because we and the IE team think developers should move away from browser detection and move to feature detection instead and this library provided a mechanism for doing this and it also corrects and issue in older versions of Internet Explorer that did not allow styling on elements the browser did not understand.
InfoQ: We have also seen a lot of ASP.NET platform code going open source - Ajax control toolkit, MVC, WebForms, Dynamic Data and more projects get added every now and then on codeplex. Now we are also seeing cases like jQuery where an existing community project has received Microsoft support. What is the driver behind this new trend at Microsoft, which is normally viewed as a proprietary software maker?
Scott Hunter: First off I think it is important to make the distinction between open source, releasing the source code for framework components and preview code. Items like MVC and Web Pages we have released the source code with the product to make it easier to understand how the libraries are developed and make their own modifications if they want. Other projects like the Microsoft Package Manager (based on NuGet) and the Ajax Control Toolkit are truly open sourced meaning that developers can actually commit their own code to the projects. And many times as we ship prototypes of ideas like Dynamic Data, Image Optimization Toolkit we release the source code with them to help people understand them and fix any bugs they find. We like to think that the ASP.NET team is very transparent meaning we are very open with our customers on what our future roadmap looks like, provide public previews of the releases in order to get feedback from the community and release often. We would like to see more of Microsoft adopt this strategy.
InfoQ: Scott, you bring up some very interesting points. With different projects at different levels of community engagement, from ability to view source code to actually being able to contribute to it, how do you decide on a strategy for a particular project?
Scott Hunter: In the case of NuGet we actually talked to community members that already had open source solutions with similar goals and decided to team up with some of them so the project started open source to begin with. As we have already discussed we are already providing source code to most of our out of band projects and hopefully one day we will be take contributions on those projects as well.
InfoQ: Is there a drive from the top, in general, to go more open source?
Scott Hunter: I think there is a drive at the top to become more transparent and by that we mean that we are more open in how we talk about future releases, get feedback and release our software. This ends up manifesting itself in a variety of mechanisms from us posting roadmaps, giving early bits with source code to our customers, responding to feedback in an open manner and releasing the source code to our customers.
InfoQ: Were there any legal hurdles that you had to overcome be before you were allowed to start shipping these libraries created by teams outside of Microsoft?
Scott Hunter: Shipping open source libraries in commercial products can be a tricky process because large tech companies like Microsoft has lots of patents and it is important to make sure that we protect these patents in the process of shipping these libraries so we had to work with our legal teams to facilitate this. More than just legal we also support any of the libraries we ship with our products through our technical support services so if a customer has a problem with the library we will provide support for them.
InfoQ: Can you elaborate a bit on how things can get complicated?
Scott Hunter: Sometimes open source libraries have licenses that don’t work well for commercial software companies and need to be re-licensed, patent scrubs need to happen to make sure the library won’t cause a Microsoft to have to lose patents it owns and if code is contributed by developers outside of Microsoft a legal scrub might need to occur before we ship it in a commercial product.
InfoQ: Do you foresee other teams at Microsoft shipping externally created open source libraries in the future?
Scott Hunter: Other teams inside of Microsoft are definitely taking advantage of open source libraries as well, I don’t know if anyone is shipping them however.
InfoQ: How difficult is it to provide support for open source software, versus something built in-house?
Scott Hunter: I can’t speak for the teams that provide technical support for our products but I think for them learning jQuery is no different than learning ASP.NET 4.
InfoQ: For an engineer or a manager at Microsoft traditionally working with proprietary software, how has the change affected them?
Scott Hunter: For truly open sourced products like NuGet the change can be quite different because instead of working with the internal Microsoft tools that we use to build Visual Studio and .NET framework they are using whatever tools are used to manage and build the software on the site hosting the code. One of the interesting benefits is it means anyone on the team can contribute to the code even if they are not working as a Software Engineer for Microsoft.
InfoQ: Can you elaborate how Microsoft is contributing back to the open source projects you are benefiting from?
Scott Hunter: Microsoft is contributing to NuGet and then we are shipping parts of these bits as part of our Web Platform. This benefits Microsoft because we have a great package manager in Visual Studio for .NET projects and it benefits the open source community because we are shipping this with our products and thus exposing it to more developers.
InfoQ: How are the customers responding to this new trend?
Scott Hunter: We have had great customer response to us sharing roadmaps early, providing lots of preview releases, responding to feedback.
About the Author
Roopesh Shenoy is a Founder and Director (Products) at Vagsons Technologies, a startup that focuses on technology products for educational institutes. He also does freelance consultancy and development for projects based on .Net, Android and web development in general.