In this blog I am going to discuss about the IDE call "MonoDevelop" which helps the developer to develop and build the mobile client applications (i.e., iOS and Android) and services (i.e., SAAS) by little understanding of C# and ASP.Net. into the cross-platform environment.
Mono is a free and open source project led by Xamarin (formerly by Novell and originally by Ximian) to create an Ecma standard compliant .NET Framework-compatible set of tools including, among others, a C# compiler and a Common Language Runtime (CLR).
The stated purpose of Mono is not only to be able to run Microsoft .NET applications cross-platform, but also to bring better development tools to Linux developers. Mono can be run on many operating systems including Android, BSD, iOS, Linux, OS X, Windows, Solaris, Unix, and some for game consoles such as PlayStation 3, Wii, and Xbox 360.
Mono is having many innovative projects in their accounts, but few of them are so famous in respects of mobile application development and services environment. Several projects extend Mono and allow developers to use it in their development environment. These projects include:
- MonoCross, a cross-platform Model–view–controller design pattern where the Model and Controller are shared across platforms and the Views are unique for each platform for an optimized User Interface.
- MonoDevelop an open source and cross platform Integrated Development Environment that supports building applications for ASP.NET, Gtk#, Meego, MonoTouch, iOS/iPad/iPod, Android and Silverlight/Moonlight.
- Moonlight, an implementation of Silverlight that uses Mono. etc.
- Cocoa# – wrappers around the native OS X toolkit (Cocoa) (deprecated).
- Monobjc – a set of bindings for OS X programming.
- MonoMac – newer bindings for OS X programming, based on the MonoTouch API design.
3) Mobile Platforms:
- MonoDroid Mono for the Android operating system. With bindings for the Android APIs.
- MonoTouch Mono for the iPhone, iPad and iPod Touches. With bindings to the iOS APIs.
An open source IDE targeting both Mono and Microsoft .NET framework platforms. MonoDevelop is a free GNOME integrated development environment primarily designed for C# and other .NET languages such as Nemerle, Boo, and Java (via IKVM.NET), although it also supports languages such as C, C++, Python, Java, and Vala. MonoDevelop was originally a port of SharpDevelop to Gtk#, but it has since evolved to meet the needs of Mono developers. The IDE includes class management, built-in help, code completion, Stetic (a GUI designer), project support, and an integrated debugger. It supports MEAP concepts as well.
The MonoDoc browser provides access to API documentation and code samples. The documentation browser uses wiki-style content management, allowing developers to edit and improve the documentation.
1) OS Support:
- OSX - MonoDevelop
- Windows - Visual Studio 2010 Pro or above and MonoDevelop
Create amazing Android/iOS (iPhone/iPad) apps with C# and .NET
- Cross PlatformEasily share code between iOS, Android and Windows Phone 7.
- Native CodeHigh-performance compiled code with full access to all the native APIs, including UIKit.
- C# & .NETEverything you love about .NET, including LINQ, Delegates and Events.
MonoTouch and Mono for Android:
MonoTouch and Mono for Android, both developed by Xamarin, are implementations of Mono for iPhone and Android-based smart-phones. Contrary to Mono itself, they are released under a commercial license only.
MonoTouch allows developers to create C# and .NET based applications that run on the iPhone. It is based on the Mono framework and developed in conjunction with Novell. Unlike Mono applications MonoTouch "Apps" are compiled down to machine code targeted specifically at the Apple iPhone. This is necessary because the iPhone kernel prevents just-in-time compilers from executing on the device.
The MonoTouch stack is made up of:
- C# from the Mono Project
- Third party compilers like RemObject's Oxygene can target MonoTouch also
- Core .NET libraries
- Development SDK:
- Linker – used to bundle only the code used in the final application
- mtouch – the Native compiler and tool used to deploy to the target device
- Interface Builder and storyboard integration tools
- Libraries that bind the native CocoaTouch APIs
- MonoDevelop IDE
MonoDevelop is used as the primary IDE however additional links to Xcode and the iOS simulator have been written.
From April to early September 2010, the future of MonoTouch was put in doubt as Apple introduced new terms for iPhone developers that apparently prohibits them from developing in languages other than C, C++ and Objective-C, and the use of a middle layer between the iOS platform and iPhone applications. This made the future of MonoTouch, and other technologies such as UNITY, uncertain.Then, in September 2010, Apple rescinded this restriction, stating that they were relaxing the language restrictions that they had put in place earlier that year.
Why you'll love MonoTouch.
MonoTouch makes creating iPhone and iPad apps easier than ever before.
Cross platform developmentThinking about supporting Android in the future? In many cases, you can reuse most of your existing code when porting from iOS to Mono for Android.
Discover iOS as you typeExplore APIs as you type with code autocompletion. Just like Visual Studio.
iOS 5 readyMonoTouch has all of the latest iOS 5 features bound and ready to use in the apps you create.
Reuse existing codeImport existing .NET libraries and use them in your MonoTouch apps. Easily bind existing C and Objective-C libraries as well.
XCode 4 and UI designer integrationUse XCode 4 and the powerful UI Designer to create interfaces and Storyboards that automatically sync with your MonoTouch project.
Up to dateMonoTouch is frequently updated and ready with all of the new iOS features - typically on the same day they are released!
Mono for Android, developed by Xamarin, is a proprietary implementation of Mono for Android-based smart-phones. It was first released on April 6, 2011. Mono for Android was developed to allow developers to more easily write cross-platform applications that will run on all mobile platforms.
In reference to the lawsuit filed by Oracle against Google over Android's use of Java, that "The type of action Oracle is taking against Google over Java is not going to happen. If a .NET port to Android was through Mono it would fall under the Microsoft Community Promise Agreement." Recently Google has won against the Oracle filed lawsuit in favor for them about the same.
The Mono for Android stack consists of the following components:
- Mono runtime
- Core .NET class libraries
- Libraries that bind the native Android/Java APIs
- SDK tools to package, deploy and debug
- Visual Studio 2010 integration to remotely debug and deploy.
Why you'll love Mono for Android.
Mono for Android makes creating Android apps easier than ever before.
Cross platform developmentThinking about supporting iPhone or iPad in the future? In many cases, you can reuse most of your existing code when porting from Android to iOS.
Discover as you typeExplore APIs as you type with code autocompletion.
Full featuredMono for Android has all of the latest Android features bound and ready to use in the apps you create.
Reuse existing codeImport existing .NET libraries and use them in your Mono for Android apps.
The Full Power of Visual StudioContinue using Visual Studio or use our full featured MonoDevelop IDE to create apps using Mono for Android.
Easy To InstallInstalling the Android SDK can be time consuming, but Mono for Android simplifies the process by installing everything you need with just a few clicks.