Mono Project Opens .NET on iPhone
        
        
        
			- By Jeffrey Schwartz
- 09/14/09
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 announced 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 open source effort organized by Novell to bring  .NET and Windows-centric development languages and platforms to Mac OS X, Linux, Unix, and other operating environments. 
		Miguel de Icaza, founder of the Mono Project and a Novell vice president,  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  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 App Store," 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. 
        
        
        
        
        
        
        
        
        
        
        
        
            
        
        
                
                    About the Author
                    
                
                    
                    Jeffrey Schwartz is executive editor, features, for Redmond Developer News. You can contact him at [email protected].