Altabel Group's Blog

Archive for the ‘Mono’ Category

This time as a part of cross platform development I’d like to make a short review of Mono project’s implementations/frameworks – MonoTouch and Monodroidthat allow creating applications using .NET framework and languages.

MonoTouch is a framework that allows developers create iPhone applications using the compilation of C# and reusing the existing .NET source code, libraries and skills.
The MonoTouch includes:
• Mono for the iPhone, iPad and iPod Touch
• C# and .NET compilers – on the iPhone you will need to compile the existing C# code and tools with the help of MonoTouch compiler to make sure that all the assemblies are referenced.
• .NET Bindings to Native APIs – MonoTouch compiler turns to compile the .NET libraries and base assemblies to create native iPhone applications.
• Mac oriPhoneSDK -includes the Xcode IDE, iPhone Simulator, and a suite of additional tools for developing applications for iPhone, iPad and iPod Touch.
• MonoDevelop Integrationhelps developers to integrate all features/toolsets from the integrating.NET platform to the target iPhoneenvironment from zero in no time
• Libraries that bind the native CocoaTouch APIs – toolsets that help to create native application interfaces for iPhone, iPad and iPod Touch

Mono for Android (MonoDroid)is a software development environment kit that allows to create the applications that run on Android phones and tablets.
Mono for Android consists of the core Mono runtime, the Mono for Android bindings to the native Android APIs, a Visual Studio 2010 plug-in to develop Android applications and an SDK that contains the tools to build, debug and deploy your applications. The Visual Studio 2010 plug-in allows developers to use Visual Studio 2010 to develop, debug and deploy their applications to an Android simulator, an Android device, or the Android Application Store.

What’s new?

Being the customer of Mono product you get one-year subscription to its product updates. The updates engaged the bug fixes and API changes. You could check the latest updates for Mono on the website called Xamarian Developer Center following this linkhttp://docs.xamarin.com/.
One of the latest upgrades released in May of 2012 by Xamarian Mono for Android is considered the research project called XobotOS.
XobotOS – the attempt to put C# code in the place of removed Java code in Android operating system. The idea is to write native code using C# instead of Java seems to extend the opportunities of Mono project. As the developers say the transition from Dalvik to Mono virtual machine performed good results like high-performance and low-battery consuming. Sharpen was chosen as the tool convertor for porting million lines of Java code to C#. It was upgraded for XobotOs and presented as its part release. The next goal of the company isto provide the direct access to the graphics library Skia for building applications.

What is the pricing?

Monotouch/MonoDroidare available in Professional Edition and Enterprise Editions: Monotouch/MonoDroid costs $399 for the entry level Professional edition and $999 and $2,499 for the Enterprise and Enterprise Priority version. A trial version is available which isn’t time limited but only allows deployment to an iPhone simulator.

Summary

The development of applications using cross platforms development approach seems to give the right idea for the developers how to manage with different environments and languages. Having reviewed the Mono project frameworks the advantages both of them may be summed up as follows:
– Applications written in C# for Android (MonoDroid) could be easily ported to iOS (MonoTouch);
-The source code written on C#, could be reused in MonoDroid and MonoTouch;
– The full support of C#: Language Integrated Query (LINQ), delegates, lambdas, events, garbage collection and many other features
– The support of Visual Studio and XCodefor bothMonoDroid and MonoTouch
– New challenges and updates guides

If you know something about programming with MonoTouch/ModoDroid and you have anything to add to my review, please, feel free to share your thoughts and experience on this point.

Best regards,
Katerina Bulavskaya
Altabel Group – Professional Software Development

The ever-expanding smartphone market redefines the way we think of applications, it gives the developers the new pathways for the creativity, minimizes the development and allows to create new applications for the users need and for better choice.
With this also comes the new problem: working with different platforms the developers have to come across with different languages and completely different systems and as consequence need different skillsets. Cross-platform development seems to resolve all the mentioned problems above.

Save time and money

This is the main idea to emphasize the positive points towards cross platform development – building cost effective and secured mobile applications.

In the list below briefly are presented the key advantages that cross platform development could offer:

- Free and open source
– Reduce development and long-term maintenance cost;
– Reduce the number of required skills for the development team
– Single code for building mobile apps for iPhone and Android platform
– Supports all major mobile platforms include iPhone, BlackBerry, Android, Windows mobile and Symbian

What is Mono?

One of the leading cross-platform solutions is considered Mono project. Mono is a software platform, open source implementation of .NET framework designed by Xamarianto allow developers easily create cross platform applications using purely C#. Mono can be run on many mobile operating systems including Android, BSD, iOS, Linux, OS X,Windows, Solaris, Unix.

In 2009 and in 2011 were released under the commercial version two implementations of Mono – MonoTouch and MonoDroid, for iPhone and Androidsmart – phones.

Mono and .NET assemblies

At the current moment Mono realizes almost all technologies used in MS.NET defined by the ECMA standard. Some of them are:

1. Common Language Environment (CLR) – the base of the .NET Virtual machine. In case of the program compilation .NET compiler creates the code on the Common Intermediate Language – CIL. At the moment of processing CLR transmits CIL in the real processor byte-code and it allows .NET application being as speed effective so the traditional ones. Besides the leading C#, there are others compiler languages realized in Mono: F#, Java, Scala, Boo, Nemerle, JavaScript, Oberon, LUA, Cobra, PHP, Object Pascal etc.

2. Garbage Collector (GC) is based on the library of garbage collector Boehm. This library works on the old algorithm and search objects only in the older generation memory pool, given by GC.

3. Besides reimplementation of MS .NET libraries: ADO.NET, System.Windows.Forms, and ASP.NET.

Mono developers also created their own libraries which provide functional parity and being free from any concern of patent infringement. Some of them are:

- GtkSharp (Gtk#) – a set of C# bindings for the gtk+ toolkit, and assorted GNOME libraries. This enables application developers to write fully native GNOME application using Mono.
Also there are complementary libraries that might be useful while developing Gtk# based applications or Gnome applications: Gnome-KeyRing-Sharp, GSF Sharp, GtkGlArea Sharp, WebKit Sharp, GtkMozEmbed Sharp, GtkSourceView etc.
– Mono.Cecil: library to generate and inspect CIL assemblies.
– #ZipLib: library to manipulate various kinds of compressed files and archives (Zip and tar).
– Tao Framework: bindings for OpenGL

Mono benefits

Mono gives the programming power and flexibility of building applications. Mono allows creating the existing code on the independence language making the platform independent. This happens because .NET code not compiled to machine code but to intermediate language (IL). So it makes possible to copy binaries across platforms.

Mono also provides a time-saving free implementation of the .NET framework class library. This library is already written and tested code designed for a variety of common programming tasks. The library includes most common data structures, cryptographic libraries, XML, and Web services support.

What should I pay for Mono?

You can get it for free (without paying) and it is available in under open source licenses that allow this. But you could still pay for it too because not everything written with Mono is free. So for creating the applications, in this case the commercial license, from the copyright holders, is needed.

More information about Mono project you could find, following the links below:

http://mono-project.com
http://xamarin.com
http://www.monocross.net

Thank you for your attention and hope this information will be interest of you! Please feel free to leave your comments and considerations on this point.

Best regards,
Katerina Bulavskaya
Altabel Group – Profesional Software Development


%d bloggers like this: