Mono for Android framework lets C# developers tame the Droid

Novell has announced the availability of a commercial development framework …

Novell is officially launching Mono for Android 1.0, a framework that will allow third-party developers to build native Android applications in C#. It complements the company's existing MonoTouch offering, which supports C# development for Apple's iOS mobile operating system.

The Mono project is an open source implementation of Microsoft's .NET framework and language compilers. Due to its permissive license and technical flexibility, Mono has opened the door for .NET to come to many new computing environments, including mobile and embedded platforms.

Capitalizing on the opportunity to open up iOS to developers with existing C# expertise, Novell launched its commercial MonoTouch framework in 2009. MonoTouch uses ahead-of-time compilation to conform with Apple's App Store requirements. It also offers comprehensive bindings for UIKit and other iOS platform APIs, making it possible to build fully native-looking applications with standard user interface elements. The company has been working on an equivalent product for Android development, which is finally ready for a public launch after a year of development.

Mono for Android integrates with Visual Studio on Windows and MonoDevelop and Mac OS X, providing tooling support and other functionality that simplifies the development and deployment process. The Android APIs have been wrapped in C# and adapted to work neatly with the programming language. Unlike MonoTouch, which is somewhat hampered by some of Apple's security restrictions, Mono for Android can take advantage of full JIT compilation.

Developers who are building mobile applications with MonoTouch or for Windows Phone 7 could use Mono for Android to port their applications to Google's mobile operating system. Of course, the obvious downside is that developers will still have to build separate user interfaces for each platform due to the fundamental differences in native user interface APIs.

A Mono for Android license will cost $399 for an individual developer. A one-seat enterprise license costs $999. For more details you can refer to the product's official website.

I've wanted to try this product, but $400 is too steep for what would just be a hobby for me. Glad to see it release though.

As far as I am concerned if you are not going to profit from the applications you develop, you don't need those pesky licenses - that's what Torrents are for. Agree or disagree, we both know $400 to an enthusiast is outrageous. Calling it open source with such an outrageous fee is even more outlandish.

I've wanted to try this product, but $400 is too steep for what would just be a hobby for me. Glad to see it release though.

As far as I am concerned if you are not going to profit from the applications you develop, you don't need those pesky licenses - that's what Torrents are for. Agree or disagree, we both know $400 to an enthusiast is outrageous. Calling it open source with such an outrageous fee is even more outlandish.

I understand the reasoning, if you are a C# developer this will make you enter Android world easier. But $399-999 is too much for a mediocre platform-IDE if you ask me. Learning a very similar language and using free tools is much more attracting IMHO ( There is IntelliJ IDEA too http://www.jetbrains.com/idea/features/ ... droid.html which is superior to Visual Studio). Also, after all it is .Net, there must be restrictions. Using only the language and subset of the .Net framework make it even less attractive (I know Andoid also uses a subset of JDK).

I've wanted to try this product, but $400 is too steep for what would just be a hobby for me. Glad to see it release though.

As far as I am concerned if you are not going to profit from the applications you develop, you don't need those pesky licenses - that's what Torrents are for. Agree or disagree, we both know $400 to an enthusiast is outrageous. Calling it open source with such an outrageous fee is even more outlandish.

Open Source is not equivalent with Freeware, you know.

Funny thing is people like that are the same people who complain about lack of open source adoption.

I have been developing on .net for Win32 and WinCE. I am just starting an Android project, where I was to port a significant chunk of .net code. I have to do more reading; but, this item in the Mono for Android faq caught my attention:

Quote:

I have a MonoTouch or WindowsPhone 7 application, can I just rebuild it with Mono for Android and target Android?

Both Mono for Android and MonoTouch bring the core of .NET to the iPhone and Android platforms, but we do not offer a UI cross-platform solution. Each operating system offers slightly different services for building user interfaces, interacting with the phone, the address book, the built-in GPS and audio systems.

The UI is typically a significant fraction of the code effort. In my case, I also need other hardware services. If that has to be redone for each platform then a lot of the advantage Mono for Android claims to provide, is negated. Sorry folks.

Android 1.0 did any phones even come out with that? I know most of the phones they are selling today use android 2.1 or 2.2, and 3.0 phones are supposed to be out by July. I love the idea but $400 seems really steep just to jump in and try. I Get the enterprize licence costs, just would rather see a model more suited for sunday afternoon coders. The cost of entry is prohibitive.

I would expect that a decent C# developer can learn enough about Droid Java to be productive with very little efford. They're hardly worlds apart.

If you're a C# developer, why bother if you can write code that you can run in Windows,OSX, on Linux, on WM7, Android and the iOS? Of course that's a big IF, and not all portions of your code would be that cross-platform, but it would certainly be good for core libraries that your cross-platform software uses.

Just as a Java developers wouldn't want to use anything else if he/she could help it.

Sooo... you get to program in C#, but you don't get any of the efficiency benefits of C based code? [sarcasm] Sounds like a real great idea. I know programmers do not ever learn more than 2 languages in their lifetime. Who would, they are so fundamentally different in their syntax.[/sarcasm]

I would expect that a decent C# developer can learn enough about Droid Java to be productive with very little efford. They're hardly worlds apart.

If you're a C# developer, why bother if you can write code that you can run in Windows,OSX, on Linux, on WM7, Android and the iOS? Of course that's a big IF, and not all portions of your code would be that cross-platform, but it would certainly be good for core libraries that your cross-platform software uses.

Just as a Java developers wouldn't want to use anything else if he/she could help it.

No, BAD developer. If it's worth your time to program it, it's worth your time to do it right. It is not ok to add another layer and reduce the performance on a limited system like a phone. And wasn't the whole point of java that it was good at cross platform, the whole write once run anywhere, with the caveat that it won't be the most efficient code. And really, if you can't get JAVA syntax after C# you got bigger problems, and will hit the ground hard as a chute-less skydiver when it comes to memory usage (which at best is a fraction of 512mb)

I've wanted to try this product, but $400 is too steep for what would just be a hobby for me. Glad to see it release though.

As far as I am concerned if you are not going to profit from the applications you develop, you don't need those pesky licenses - that's what Torrents are for. Agree or disagree, we both know $400 to an enthusiast is outrageous. Calling it open source with such an outrageous fee is even more outlandish.

No, BAD developer. If it's worth your time to program it, it's worth your time to do it right. It is not ok to add another layer and reduce the performance on a limited system like a phone. And wasn't the whole point of java that it was good at cross platform, the whole write once run anywhere, with the caveat that it won't be the most efficient code. And really, if you can't get JAVA syntax after C# you got bigger problems, and will hit the ground hard as a chute-less skydiver when it comes to memory usage (which at best is a fraction of 512mb)

I think it's very obvious you have no idea whatsoever how MonoTouch or MonoDroid work.

Hint: It's not running a full CLR. There's a reason Mono has really, really good AOT compilation, and it's leveraged here.

Well, I much prefer .Net and C# to Java, but $400 is too much unless you have a business to pay for it. I'm really surprised they don't have a much cheaper tier for enthusiasts and open source developers. Visual Studio costs a lot, but you can get a slightly limited version for free, even MS sees the value in that.

I've wanted to try this product, but $400 is too steep for what would just be a hobby for me. Glad to see it release though.

As far as I am concerned if you are not going to profit from the applications you develop, you don't need those pesky licenses - that's what Torrents are for. Agree or disagree, we both know $400 to an enthusiast is outrageous. Calling it open source with such an outrageous fee is even more outlandish.

I would say, if you're just going to fool around and become familiar with it, that's what a trial version, or barring that, maybe a torrent, is for. However, if you are going to release something for general consumption, even if the app is free, then you should be paying the license fee.

I would expect that a decent C# developer can learn enough about Droid Java to be productive with very little efford. They're hardly worlds apart.

If you're a C# developer, why bother if you can write code that you can run in Windows,OSX, on Linux, on WM7, Android and the iOS? Of course that's a big IF, and not all portions of your code would be that cross-platform, but it would certainly be good for core libraries that your cross-platform software uses.

Just as a Java developers wouldn't want to use anything else if he/she could help it.

Well, the article gives about 400 reasons why you'd bother to use Java instead. Per year.

Straight from the 'it's a trap' department this. Stop feeding the troll that is Miguel de Icaza.

Sorry but your comment is pathetic...

No its not…..... Microsoft extended the terms of their Community Promise to implementations of the ECMA 334 and 335 standards. You might think this means it’s safe to write your software in C#. However, this promise is full of loopholes, and it’s nowhere near enough to make C# safe.

For independent developers $400 is a lot of cash. Both Java for Android and C# for Windows Phone cost you nothing.

But that's not the real problem. It's not a full port because it doesn't include the interface code. You'd have to recode a good chunk of code regardless and the part you wouldn't have to (the business logic) is the part that's very simple to port to Java (because C# and Java have very similar syntax and features).

In short, it's no harder to just port your C# code to Java than to Mono Android so this product doesn't make any sense at all.

Straight from the 'it's a trap' department this. Stop feeding the troll that is Miguel de Icaza.

Sorry but your comment is pathetic...

No its not…..... Microsoft extended the terms of their Community Promise to implementations of the ECMA 334 and 335 standards. You might think this means it’s safe to write your software in C#. However, this promise is full of loopholes, and it’s nowhere near enough to make C# safe.

Stop listening to neckbeards. They know even less about what they're trying to sound authoritative than you do.

Straight from the 'it's a trap' department this. Stop feeding the troll that is Miguel de Icaza.

Sorry but your comment is pathetic...

No its not…..... Microsoft extended the terms of their Community Promise to implementations of the ECMA 334 and 335 standards. You might think this means it’s safe to write your software in C#. However, this promise is full of loopholes, and it’s nowhere near enough to make C# safe.

Yea better go with Java, which Oracle is currently suing Google over. That seems like the safe choice.

C# and .NET are not going away so the ABMr crowd can stop trying to scare away developers from using them.

Yea better go with Java, which Oracle is currently suing Google over. That seems like the safe choice.

C# and .NET are not going away so the ABMr crowd can stop trying to scare away developers from using them.

The Java language is the safe choice on Android. If Google gets enjoined from shipping Dalvik and their Java-like libraries (including all the class libraries you'd be calling from Mono), having written your Android app in Mono won't have done you any good.

Straight from the 'it's a trap' department this. Stop feeding the troll that is Miguel de Icaza.

Sorry but your comment is pathetic...

No its not…..... Microsoft extended the terms of their Community Promise to implementations of the ECMA 334 and 335 standards. You might think this means it’s safe to write your software in C#. However, this promise is full of loopholes, and it’s nowhere near enough to make C# safe.

Yea better go with Java, which Oracle is currently suing Google over. That seems like the safe choice.

C# and .NET are not going away so the ABMr crowd can stop trying to scare away developers from using them.

You are correct on Java but I see Google vs. Oracle as winnable. Microsoft lawyers are scary. Not sure Google could win if and when Microsoft exercises those magical loopholes in C# and.NET.

Lesser of two evils!!On the pure evil to Open Source scale of 1 to 10. Microsoft is like 1,000,000(off the charts) Oracle is like 9.99

Mono for Android is a .NET framework, not a C# framework. No need to parrot Novell's press release. C# != .NET and .NET != C#. You can develop Mono for Android using other .NET languages such as Delphi Prism's Oxygene.

I would expect that a decent C# developer can learn enough about Droid Java to be productive with very little efford. They're hardly worlds apart.

If you're a C# developer, why bother if you can write code that you can run in Windows,OSX, on Linux, on WM7, Android and the iOS? Of course that's a big IF, and not all portions of your code would be that cross-platform, but it would certainly be good for core libraries that your cross-platform software uses.

Just as a Java developers wouldn't want to use anything else if he/she could help it.

Well, the article gives about 400 reasons why you'd bother to use Java instead. Per year.

Only, if you don't know Java very well (or at all), and you make a living writing software for mobile phones, $400 a year isn't very much to pay.

I wouldn't pay it, but I suspect that I might not be the intended audience either.