Microsoft open sources Xamarin's software development kit


Two months after being acquired by Microsoft, cross-platform development-tool vendor Xamarin is continuing to push the open-source envelope.

On April 27 at Xamarin's Evolve developer conference in Orlando, officials announced Microsoft has open-sourced the Xamarin software development kit (SDK).

At Microsoft's Build 2016 developers conference last month, Microsoft announced intentions to open source the Xamarin SDK, runtime, libraries and command line tools. Microsoft also announced it would make Xamarin part of the various Visual Studio releases at no additional cost.

Today, company officials said Microsoft has open sourced and contributed to the .NET Foundation the Xamarin SDK for Android, iOS and Mac under the same MIT license used for the Mono project. The native application program interface (API) bindings for iOS, Android and Mac, the command-line tools necessary to build for these platforms, and the cross-platform UI framework Xamarin.Forms are all part of what's now open sourced.

Microsoft also is working to help Xamarin developers more easily connect Visual Studio to Mac so they can create iOS apps natively in C#. Xamarin's iOS Simulator remoting allows developers to simulate and interact with their iOS apps in Visual Studio, with support for touch screens. And its iOS USB remoting allows devs to deploy and debug apps from Visual Studio to an iPad or iPhone plugged into their Windows PCs.

Microsoft also unveiled some new Xamarin.Forms features; enhancements to the Xamarin Studio IDE to bring it closer to Visual Studio; and a Test Recorder Visual Studio plug-in at Evolve.

Microsoft taps open source LLVM compiler for cross-platform .Net


Does it make sense to build something from scratch when there's a perfectly good solution available - especially if it's open source? Once upon a time, Microsoft's default was to build its own rather than use someone else's work; now, the reverse is becoming true.

Consider the LLILC project. Rather than reinvent the wheel, Microsoft's new compiler for its CoreCLR .Net runtime leverages an existing cross-platform compiler framework: LLVM. Now six months into the project, its maintainers -- a foundation comprised largely but not exclusively of folks from Microsoft -- reports "great progress" with LLILC, but also "much still to do."

LLILC is currently capable of performing just-in-time compilation ("jitting") of "all the [.Net] methods in some fairly complex scenarios." How complex? "Roslyn is a C# compiler written entirely in C#," the dev team states, "and LLILC can jit Roslyn compiling itself."

LLILC isn't yet replacing CoreCLR's original jitting mechanism; instead, the LLILC and CoreCLR jit engines run side by side. If the first one encounters something it can't handle, it's handed off to the second engine, which allows the compilation pipeline to continue running. Full garbage collection and proper exception handling support are two features lined up for the next phase of work.

The .Net Foundation, the project's official maintainer, features team members and contributors from far and wide - GitHub and the Debian Mono group have advisers on board, for instance -- but is composed mainly of folks from Microsoft and is being used to sponsor a technology Microsoft itself invented. That said, those working on LLILC are shaping their contributions to fit LLVM, rather than trying to rework LLVM to fit LLILC's needs.

"Our intention has always been to upstream as quickly as possible," the project team writes. "We're still working on making good at that intention, but so far the number of changes we’ve had to make are fairly modest."