Every time we develop a new application, we look for “El Dorado”, i.e. to write it once and to run it on any device. However, we are talking about such different platforms as iOS, Mac, Android or Windows, so this concept seems almost utopian.

But thanks to Xamarin this idea comes true: It helps us generate native applications for different platforms using the same development platform for all of them: .NET.

Certainly, that’s a great news for the .NET developers – even if only the simple fact of using the same base for all platforms should be a good reason of showing interest. Moreover, we must add a growing community, very active, and of course an OpenSource project, which provides an important added value.
Before starting our project with Xamarin, we have to choose between two options: Xamarin Classic or Xamarin Forms.

Xamarin Classic

Using this first option, we will generate a project for each platform we have taken in consideration; we will have the same project shared by all of them to manage the “core” of our application, such as calls to our services in the cloud.
Likewise, we will design the screen for each platform, as we usually do, using the native resources provided by each platform.
Xamarin offers us access to every native APIs, so we have total control over our application development. By designing the screens with the same native resources, we only have to change the development language.

Xamarin Forms

As in the Classic version, with Forms we will generate a project for each platform we have to meet the needs of and we will have the same project shared by all of them. However, Forms allows us to design the same screen for all of them using XAML, the markup language created by Microsoft, which shows us a very interesting scenario, since it allows us to share both the “core” of our application and its “views”.