Datasheet
Product Comparison
❘
3
Mono was offi cially announced in 2001 and is the brainchild of Miguel de Icaza. Mono version
1.0 shipped in 2004, and currently Mono is at Version 2.6. Mono continues to be led by Miguel de
Icaza and is under the general leadership and support of Novell.
As much as there is the desire to match the .NET Framework’s features, this is not possible due to
the fact that Microsoft has more resources and a head start in the development of those features. At
the same time, the Mono project has parity with a large number of .NET Framework features.
Along with Mono, there is an open source IDE called MonoDevelop, which started as a port of the
SharpDevelop IDE. MonoDevelop began as a project to allow for Mono development on Linux,
but with the release of MonoDevelop 2.2, the ability to develop with Mono expanded to the Mac,
Windows, and several other non-Linux UNIX platforms.
Though the .NET Framework is very popular, two issues make it unsuitable for running on the iPhone:
At some level Apple and Microsoft are competitors and are likely not too excited to work
➤
together.
The .NET Framework fundamentally is dynamically compiled at runtime. This is the just-
➤
in-time compilation of the .NET Framework. This is a violation of the Apple license and the
operating principles of the iPhone OS.
Given that code running on the Microsoft .NET Framework is compiled to machine code at run-
time using the just-in-time compilation, one would expect that applications written for Mono
would have the same behavior and thus not be suitable for running on the iPhone. However,
Mono has a technology that allows for appli-
cations to be compiled ahead of time, referred
to as AOT technology.
A disadvantage of .NET/Mono and the iPhone
is that .NET/Mono developers cannot take
their .NET/Mono/C# knowledge and apply
it to the iPhone platform. As illustrated in
Figure 1-1, you see that the reason .NET/
Mono developers can’t target the iPhone is
because they’re two separate entities.
MonoTouch
In 2009, Novell announced and shipped MonoTouch, which
allows .NET developers to create native iPhone applications
in C#. With MonoTouch, applications are compiled into
executable code that runs on the iPhone. The signifi cance of
this should not be understated: .NET/Mono developers can
target the iPhone through MonoTouch. This is illustrated in
Figure 1-2.
How does MonoTouch accomplish this? Does it somehow
allow Windows Forms applications to be translated or recom-
piled and deployed on the iPhone? MonoTouch provides a
.NET iPhone
FIGURE 1-1
.NET iPhoneMonoTouch
FIGURE 1-2
637821c01.indd 3637821c01.indd 3 5/27/10 5:29:36 PM5/27/10 5:29:36 PM