The Mono project is adopting code from Microsoft, such as the JSON engine and part of the ASP.NET Web Stack. That’s because Microsoft has released ASP.NET Web API and ASP.NET Web Pages (also known as Razor) as open source under the Apache 2.0 license. That’s in addition to ASP.NET MVC, which was already available to the open-source community.
Miguel de Icaza, CTO of Xamarin and founder of Mono, said that he is working to contribute back to the ASP.NET Web Stack, as well as adapt parts of Microsoft’s code into Mono. For example, he cited the JavaScript Object Notation stack. “As of today, we replaced our System.Json implementation (which was originally built for Moonlight) and replaced it with Microsoft’s implementation,” he wrote in his blog.
“Our GitHub copy will contain mostly changes to integrate the stack with Mono,” de Icaza added. “If there are any changes worth integrating upstream, we will submit the code directly to Microsoft for inclusion.”
Mono in the past had to rebuild all of the ASP.NET components from scratch, which was a long and laborious process, he said. Now that the Web Stack is available on Microsoft’s hosted Git repository, it is a lot easier for Xamarin and other development organizations to contribute to—and learn from—the code.
According to de Icaza, anyone with a GitHub account or access to other Git servers can sync the code and offer commits to Microsoft. This enables developers working in distributed teams, or those who simply want to add a feature or tweak an existing feature, to contribute to it effortlessly. Even if Microsoft doesn’t accept all the commit requests into the main code line, these requests are logged in the individual Git repositories.