In February, Microsoft announced that it had acquired Xamarin, the company best known for its cross-platform SDKs and its role as Mono custodian. Now, just over a month later, Microsoft has made an even bigger declaration — it’s making Xamarin’s products free and its MIT licensing the Mono framework.
Let’s tackle these announcements separately. First, Xamarin will now be included in Visual Studio distributions at “no extra cost”. This includes the free Community Edition of Visual Studio. This means that .NET developers will have access to Xamarin’s cross-platform development tools, such as Xamarin.Forms, without having to pay for a license.
It’s great news if you’re focused on Windows, OS X, Android and iOS, but doesn’t really help you if you want to target Linux. For that, you’ll still need something like Eto.Forms or Xwt, if you’re not willing to pay for, say, Qt.
Now, for the heavier announcement — Mono going completely MIT licensed. Yes, Mono was essentially an open source project before this, but if you wanted to embed the Mono runtime / statically link, things got a little more complicated, with the best solution being purchasing a license from Xamarin.
As of now, that’s no longer an issue.
Probably the best example of Mono’s previous licensing terms restricting developers is the game engine Unity, which continues to wallow on an outdated Mono runtime (specifically 2.6.5). Rather than pay the licensing costs to upgrade, Unity instead forged ahead with its IL2CPP project.
Even with Mono’s recent licensing changes, Unity has no plans to drop everything, however, the company has joined the .NET Foundation and should hopefully be a lot less restricted when making technology decisions regarding the runtime.
FYI, if you happened to purchase a license for Xamarin or Mono recently, it looks like you can request a refund, according to Xamarin CEO Nat Friedman.
In hindsight, it’s hard to see how Microsoft could have done anything else with Mono. The next generation (so to speak) of .NET, .NET Core, is already open source and MIT licensed, while the Roslyn compiler is under the almost as unbinding Apache license.
With these available, it hardly made sense to keep any part of using Mono paid-for.