As .NET developers await the release of devices based on a long-awaited update to Microsoft's Windows Mobile, they can now start to port their enterprise apps to Apple's iPhone.
Novell today released MonoTouch 1.0, a tool designed to let programmers who use Microsoft's .NET Framework develop applications for the popular iPhone and iPod devices. MonoTouch is the first tool to come from the Mono Project targeted at a mobile platform.
The Mono Project is an effort organized by Novell to bring .NET and Windows-centric development languages and platforms to Linux, Unix, Macintosh and other operating environments.
Miguel de Icaza, founder of the Mono Project and a Novell VP, said the decision to develop MonoTouch came from a campaign by .NET developers seeking an alternative tool to develop for the iPhone. "We were bombarded with requests," de Icaza said in an interview.
While Apple boasts more than 50,000 applications on its App Store, building applications for the iPhone primarily requires developers to program in C and Apple's Objective-C languages. That is not appealing to many enterprise development shops.
"We are seeing a lot of iPhones work their way into the enterprise yet the number of people willing to make the commitment to bring in people with Objective-C skills is low," said Joseph Hill, a Novell product manager.
"The iPhone is something that employees are using and IT organizations have to figure out how to deal with that," said Philippe Winthrop, director of enterprise mobility requirements at Strategy Analytics. According to the market researcher, one of every four employees within enterprises uses an iPhone.
MonoTouch 1.0 consists of a software development kit that can be integrated into Novell's MonoDevelop, an IDE that allows C# and Visual Basic developers to use their .NET-based use code and libraries for the iPhone.
Travis Siegfried, an IT advisory specialist for IBM Global Services' mobile consulting organization, said the tool promises to enable the development of Windows-centric enterprise applications for the iPhone. "This will allow additional iPhone development in the corporate sector as opposed to games and fun applications currently available in the AppStore," said Siefgried, who has been involved in a number of enterprise iPhone projects.
There are nuances and limitations of the tooling. For one, developers must use an Apple Macintosh to output the code just as they must with Objective-C. Also de Icaza said: "This is the first time that we've taken a dynamic system like .NET and turned it into a fully static system. We had to build a full static compiler that would take .NET code and just generate static code with no JIT compiler. So in fact when you run Mono on the device there is no JIT available at all.
"The only thing you have is object services, garbage collection services, threading services but it is not a traditional .NET runtime," he added. "None of the dynamic features of .NET are present on this. That's the limitation that Apple has imposed at legal level and at a technical level."
That means there will be restrictions to what developers can build for the iPhone. Burning in corporate code based on dynamic .NET code such as Iron Python or Iron Ruby will not be an option, he said. Static code C# and Visual Basic Code, however, will not be a problem, he added.
Furthermore, any applications developed for the iPhone will have to use the iPhone interface. "There's no Windows Forms, no Silverlight or WPF, it must be the C# language," de Icaza said. Novell does plan to introduce a Silverlight compiler for the 2.0 release, he added, though he didn't specify a timeframe. That will allow developers to push Silverlight applications to Apples iTunes App Store.
For now, developers must use the MonoTouch APIs, which ensure the application looks like an iPhone. "It uses all the widgetry and the user interface elements of the iPhone," he said.
Novell is offering two versions, personal and enterprise editions. The latter allows developers to circumvent the Apple App Store for enterprise deployments. The personal version costs $399 per developer, the enterprise costs $999.
Microsoft Adds C#, CLI to Community Promise, Boosts Mono Project‘Avatar’ Hype Continues As Trailer Breaks Apple.com Record