News

Tool Opens Windows on the iPhone

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.


About the Author

Jeffrey Schwartz is executive editor of Redmond Channel Partner and an editor-at-large at Redmond magazine. Follow him on Twitter @JeffreySchwartz.

Reader Comments:

Tue, Nov 17, 2009 hgldsnjw xnchgshb, qzyxsdvg

[URL=http://kulnaoxx.com]peaaehvz[/URL] http://i DOT gftpvwy.com nqtycwvt http://azlpzewy.com kthepotc jiekuwto

Mon, Nov 2, 2009 Mario Jugend Brazil

I have a friend that doesn't write in English so I'll try to help him. He has an appl. developed in Windows and in order to make it available for the iPhone he would need either to buy a Mac and learn how to program in it, or to buy that expensive program sold in this page (MonoTouch) to use it with Visual Studio. My question is: is there any other program or tool not so expensive for him to get, or you think that to purchase the MonoTouch is the best and only way to solve his issue? I would greatly appreciate if anyone could answer me ASAP so I can help him as well. If you want you can answer me directly to: mjugend@hotmail.com Thanks in advance, M. Jugend

Thu, Oct 15, 2009 John Conner Orlando, FL

C is not appealing to enterprise shops because these shops dont have real developers. MS has made it so easy with visual programming tools, components, etc. that any knucklehead can call themself a developer. A true developer is versed and trained in computer science theory, data structures, algorithms, etc. And I suspect most experts work for true software companies, not enterprise businesses (except maybe banking because of the deep pockets). Novell told me years ago that is why they didn't allow their ActiveX control and ADSI interface to eDirectory have write access. Only an app written in Java or C could write to eDirectory. They said there shouldnt be any "pretend" developers working with those languages.

Tue, Sep 22, 2009 Bossmojoman

@Think like a crooked arrow. Are you smoking crack? XCode is the worst development environment I have ever had the unfortunate opportunity to use. And Objective C should be trashed like the garbage it is. You have obviously never used real dev tools. Stop drinking the Mac coolaid.

Mon, Sep 21, 2009 Mmmm...Limburger

@Think Like Crooked Arrow: Don't you mean like "LINQburger"? ;) Seriously, though, until I got to the phrase "Redmond Way", I thought you were talking about Apple, or maybe Linux! j/k

Mon, Sep 21, 2009 bib-da

Apple is locking out developers using propritiery and lock-in model. When will they learn that the world is not narrow minded as it was in 20th century. Yes you can't always share everything in a commercial world, but to allow mroe developers use your tech is better than locking them out. Similar to apple on netbooks... narrow-minded view... oh but unless the market forces change and netbooks force out ibooks, then Steve Jobs will say oh yeah we should do a netbook mac??... oh dear.

Sun, Sep 20, 2009 Net Programmer

Net on the iphone. I'm loving learning objective C and Xcode and I'am a .net programmer. This botched dev environment monotouch isnt going to be as good as the real thing!Xcode... Grow some hair on ur chest and learn the real thing. Apple wont support monotouch, any changes in the Iphone SDK and monotouch .net fanboys are f***ed lol

Wed, Sep 16, 2009 Darren UK

I was initially quite excited about MonoTouch when I first saw it a few weeks back because programming is not my primary job function and I happen to have learned C# for some internal business based apps that I've written. After looking in more detail, it seems I have to know almost as much Objective-C/Cocoa anyway, and $400-$1000 is more than I/my company would be willing to pay -- it's probably easier just to learn Objective-C isn't it?

Tue, Sep 15, 2009 Jade Runner San Diego

Sounds great. Will be even better when WPF is supported on mobile plateforms like the iPhone. Do not like having to buy a MAC to develop code running .NET though. Can the guru's make a cross compiler that runs on a WIN7? Time will tell.
Principal Software Engineer
Defense Applications
Integrated Electro-Optical Systems

Tue, Sep 15, 2009 the real deal

Most of you guys are missing the point. There are not that many low cost developers in India that know object-c. There are lots of developers in India that know C# and Java. This technology allows US companies to outsource iphone development projects to India on the cheap. They will gladly pay 3rd world rice farmers $10 a day to debug using println :-)

Tue, Sep 15, 2009 Dave What Universe Are You From?

Fan Boy Flameouts!!!!

Tue, Sep 15, 2009

I didn't even have to look at the comments to know what the majority of the subject matter was going to be. The whole “us” vs. “them” rhetoric is getting very old. Get over it and quit wasting everyone's time with your whinny rants. I f’ing hate weeding through your crap to find out if there are any comments worth reading. Damn you guys are irritating! GET A LIFE!

Tue, Sep 15, 2009 80s Rocker

Until MAC opens up their OS so it can run under a virtual machine under windows (o wait they can't because they only support limited hardware), then all mac fans should just shut up. It really sucks that you have to buy a MAC to develop IPhone applications, and that is why more .Net developers will choose to develop applications for Andromeda OS instead of the IPhone OS.

Tue, Sep 15, 2009 J. Byrnes Chicago, IL

Wow! I guess the Apple fanboy told us Microsoft geeks off... But, ummm...."Think Like Crooked Arrow" - I have to believe your arguments would be better received if: A.) They made sense - a programming language that "smells like limburger"? Whatever. B.) You understood that anyone worthy of the title "programmer" should also be able to spell "programmer". Maybe my expectations are too high - I'm sure you're "hip", though... Now go get your shinebox and start flaming Windows and Windows development on some Apple fanboy site.

Tue, Sep 15, 2009 Brad Jensen Tulsa, OK

I've been developing in VB for years, and lots of other languages for decades before that. I own my own software companies and have generated millions of dollars of revenu from my own coding efforts. I've been trying to learn objective C for months while juggling all my other responsibilites, and have even hacked some dell mini 9s and 10vs to install mac os x and xcode (FUN). Objective c is a mishmash, and it takes tons of repetitive code to do simple, simple things. It would take me months or years to get as good as I am in VB languages - I think in them. This tool sounds fantastic to me and I can't wait to try it. If in the end I get objective C source code that I may want to tweak, so be it. For those of you who consider OS and language choices a matter of religion, nothng is going to convince you otherwise and I don't care. After all, C is just a simplification tool for people who can't hack Assembler - or machine language. The valuable thing here for me is my time and attention, not the tool used.

Tue, Sep 15, 2009

I cannot wait to get my hands on this. Finally, IPhone development for .NET Developers.

Tue, Sep 15, 2009 Ozy

Oooo, I love it when the Apple fanboys get all bent out of shape. I have nothing against Objective-C - it's a nice language. I love C# - most of the people who don't have never actually written an app in it. Why don't you guys actually look at something before you condemn it just because it comes from Microsoft? If you get to know the guys who developed C# in the first place, you'll find that they're programmers who just happen to be working for Microsoft, just like the guys at Apple - which is just as evil.

Tue, Sep 15, 2009 Brian

This is just as stupid and futile as writing a bridge to allow me to run my xcode/cocoa apps under .net. If you want to write for a platform, learn the tools and the language - there is a reason it works the way it does. Obj-C and CocoaTouch are very elegant and XCode is very good (albeit not as friendly to lazy programmers as VS).

Tue, Sep 15, 2009 Fredrik Olsson

So by looking at the documentation it is obvious that in order to use MonoTouch you have to do allot of bridging bewteen C# and Cocoa concepts. Most of the time declaring Cocoa method names as strings. So at the end you need to know Cocoa in order to use MonoTouch. So what is the win in using MonoTouch if it still requires that you learn Cocoa and Objective-C?

Mon, Sep 14, 2009 Adam

WTF OVER?!?!? Objective C is not hard to learn. So now they are taking a foreign system and shoehorning in all these restrictions just to port a bastardized version of C# and VB.net to try make it work on the iPhone? This can only fail, epically. Writing in Objective-C is cake and actually fun in a consistent and well thought out development environment that has a stable, fast and proven API code base. This new hack can only be frustrating and buggy and they are charging a grand for this? For a grand I can get a mac book with XCode for FREE and program this using coke (the real thing) not pepsi (not the real thing).

Mon, Sep 14, 2009 Glenn New England

I would say the fail in this is there is no source level debugging for this system. In the time it takes to debug your app with println, you could write 4 apps in Objective-C.

Mon, Sep 14, 2009 Think Like Crooked Arrow

Take a device with a solid development system and an elegant well thought out programing language that anyone worthy of the title "programer" can and should learn - slap on a dev system full of holes like Swiss cheese, and a programing language that smells like limburger. Welcome to the Redmond Way. DotNet like its source is inflicted with mediocrity and products like this only encourage a continuance of mediocre ideas. The iPhone/iTouch are pure - if you want a home for perversion look to the Zune.

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above