Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


Xamarin 2.0 Review

What a ride Xamarin has had! From its beginnings as a team of developers committed to creating an open-source implementation of the .NET framework to catching the wave of mobile development, Xamarin has navigated the turbulent waters of the software tools market. This review examines the company's latest release, Xamarin 2.0, which includes Xamarin Studio, a stand-alone IDE for mobile apps, and its counterpart, a Visual Studio plugin from which you can write iOS and Android apps in C#.

Xamarin up to this Point

Over the last decade, the team behind Xamarin has released a steady stream of products that reflect their mission of cross-platform C# development: the Mono framework that provided C# developers the ability to run large portions of C# code on non-Microsoft operating systems; MonoTouch, Xamarin's Mono engine running on the iOS platform; and MonoDroid, Xamarin's port of its Mono framework to the Android platform. Finally, the recent release of Xamarin.Mac allowed development of native applications on OSX using C#.

Because of the staggered releases, the products seemed to be standalone tools that had little in common besides the Mono framework foundation. Managing GUIs on iOS is substantially different from Android, which is different than OSX. If you wanted to own each platform implementation  Xamarin released, the cost would be prohibitively high, especially for independent consultants and small development shops. So, Xamarin addressed these issues in one bold stroke by releasing Xamarin Studio — an IDE for Windows and Mac that bundles Xamarin's various tools. (A separate Visual Studio plugin was released at the same time.)

Full Mobile Jacket

Xamarin 2.0 bundles the company's Android, iOS and Mac development tools in a single affordable package aimed at all tiers of developers. The free Starter edition includes the Xamarin Studio IDE enables developers to create Android, iOS and Mac apps using C#. However, the free edition doesn't allow developers to exceed 32k of compiled IL code and it cannot import or call upon any third-party libraries. The $299 Indie edition removes this restriction. Things start getting really interesting for .NET developers with Xamarin Studio's $999 Business edition. This version adds the ability to code iOS applications within Visual Studio. Yes, you read correctly — code iOS applications in Visual Studio! Granted, you still need a Mac to compile and deploy the application to iOS devices (more on that later), but the fact that you can use a familiar IDE to develop iOS applications is a game changer.

All the power tools and tweaks that you may have added to your Visual Studio installation are at your full disposal. This not only makes VS .NET developers immediately more productive and comfortable in an IDE they live in every day, but it also brings a host of third-party Visual Studio add-ons to the iOS development world. Talk about maximizing your investment!

The high-end release, the $1899 Enterprise edition, adds a collection of premium components to the Business edition, along with a next-day SLA and hotfix support. Xamarin throws in a technical kick-off session for Enterprise customers as well.

Xamarin Studio is more than just a collection of Xamarin technologies under one umbrella. The two most important additions that make this product stand out are the integrated iOS build and deploy technologies and Xamarin's new component marketplace. Let's look at the iOS features first.

iOS Development

Using Xamarin Studio on a Mac allows for a straightforward build and deploy to an iOS device. Simply tether the iOS hardware to the Mac running Xamarin Studio and target the device to receive either the debug or release application (Figure 1) .

Xamarin iOS apps in Visual Studio
Figure 1: Creating Xamarin.iOS applications using Xamarin Studio on a Mac.

Because of the way Apple does things, any application deployment to iOS devices requires you to have signed up as an Apple iOS Developer and set up your provisioning profiles for the target devices. This holds true whether coding and deploying apps from a Mac or Windows computer. But deploying and debugging apps from a Windows computer is where the coolness factor comes into play.

Xamarin has created a server agent in Xamarin Studio IDE for Mac that Visual Studio developers with Xamarin Studio installed can connect and transmit to. While this should be an automatic process, I had to manually set the IP address of my Mac to get my Windows PC to connect and send build requests to my Mac. This produced a programmer's high the first time I saw this in action.  The fact that you can build a native iOS application within Visual Studio (Figure 2) using C# and a wide array of .NET-style libraries is terrifically empowering if you're a .NET developer.

Xamarin Build server in Visual Studio
Figure 2: Configuring the Xamarin Build Server in Visual Studio.

As shown in Figure 3, you can debug the app directly from Visual Studio as well.

Debuging Xamarin iPad app in Visual Studio
Figure 3: Debugging a Xamarin iPad application from Visual Studio.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.