At its New York launch of Visual Studio 2013, Microsoft and Xamarin announced a formal relationship, bringing together Xamarin's cross-platform developer tools and Microsoft's MSDN developer program. Based on Microsoft's C# language, Xamarin's development tools let .NET developers write apps that run natively on iOS, Android, and OS X, as well as Windows.
We spoke to Xamarin CEO Nat Friedman in advance of the news, and he described the formalization of Xamarin's long-term unofficial relationship with Microsoft as going "from 'it's complicated' to partners." There's value on both sides, with Xamarin getting more access to Microsoft resources, and Microsoft, as Friedman says, "What they're getting is giving their developers what they want, to target all users wherever they are." As Friedman points out, "That developer community is one of Microsoft's main assets, and we expect it this to be significant for Xamarin."
One key element of the companies' new relationship is to increase collaboration, with deeper integration between Microsoft's and Xamarin's tools and services. While this should mean better support for Xamarin's developer tools in Visual Studio, it also means improved support for key .NET technologies in Xamarin's cross-platform C# compiler. As a result Xamarin will be releasing full support for .NET Portable Class Libraries, simplifying the process of writing cross-platform -- and cross-device type -- code.
Visual Studio developers will also find that Xamarin's Visual Studio extension integrates with the latest release of Visual Studio from day one. Friedman expects this aspect of Xamarin's tooling to benefit from a formal relationship, "We want to make this the best possible tool, to make Visual Studio developers Android and iOS developers." He also expects to grow the Xamarin developer community: "We're hoping for a boost from this, from the power of the Microsoft megaphone."
Along with a 90-day trial of its developer tools (and special prices once the trial ends), Xamarin will be providing free training for MSDN subscribers who register by the end of the year, with its Xamarin University Go Mobile instructor-led courses. The Go Mobile course is normally a $1,995 program, with the aim of training developers to write mobile device apps in 30 days, building on their existing .NET skills. The program of live classes also includes one-on-one time with a Xamarin developer.
A relationship between Microsoft and Xamarin makes a lot of sense. Microsoft developers are working in an increasingly diverse world, and cross-skilling in Java for Android and XCode and Objective C for iOS and Mac OS takes time and can be expensive. With Xamarin's tools a .NET developer can take their code and add native user interfaces -- without leaving Visual Studio.
One project can include everything from elements running in the cloud to Windows desktop, Windows Store, Windows Phone -- and now iOS, MacOS and Android. Azure's support for Xamarin also helps, as it's a first class citizen in Azure Mobile Services, making it easier to quickly deliver new mobile apps with a cloud back end.
S. Somasegar, Microsoft CVP Developer Division agrees with this, "With Xamarin, developers combine all of the productivity benefits of C#, Visual Studio 2013 and Windows Azure with the flexibility to quickly build for multiple device targets."
There are other benefits for Microsoft too, as it working with Xamarin can help bring apps from iOS and Android to Windows 8 and Windows Phone, as Al Hilwa of IDC points out, "It is also smart for Microsoft to shift its thinking in the way it attracts developers to its ecosystem. Mobile developers in the consumer space are still struggling to justify multi-platform development costs and typically end up doing the top one or two platforms only." A single platform that supports all the major consumer platforms will make it easier for them to address all platforms, not just focusing attention on one.
Xamarin's C# development model is an approach that gives Windows developers the tools they need to deliver their services as widely as possible -- just as Microsoft itself continues its transition to a devices and services company. It's also one that makes sense in light of Friedman's own beliefs about the importance of mobile applications, "To me, mobile means access to your services and data, no matter what device you are using, or where." Bringing together Visual Studio and Xamarin should go a long way to delivering on this vision.