Login:
Password:

Mono, the open source .NET counterpart, releases 2.0

By Scott M. Fulton, III, BetaNews

October 6, 2008, 12:01 PM


Download Mono 2.0 for Linux from FileForum now.

Microsoft has said from the very beginning that it wanted .NET to potentially be a cross-platform environment, but it's letting the open source community tackle that problem instead. This morning, that community celebrates a major milestone.

After a healthy development process, the open source project for running .NET applications on non-Windows platforms is now officially at release 2.0. Mono, a project largely funded by Novell, now includes fully tested support for Microsoft's Language Integrated Query (LINQ), which embeds relational database instructions into procedural code; and developers can now create production-quality .NET applications using a fully compliant open source C# development environment and compiler.

The effort to make .NET applications run truly cross-platform is no small feat. It helps not to be frowned on in the process; and now, the involvement of Novell, now an official "friend of Microsoft," could be making things run much more smoothly.

For developers content to work strictly within Windows, .NET development is relatively simple because the bindings -- the low-level components that make the Framework run with everything else presumed to be part of Windows, such as the graphics rendering drivers and the SQL libraries -- are reinforced during the installation process. For Mono, you can't exactly bind to the same things (DirectX, SQL Server), so developers have to be cognizant of the open source counterparts they use instead.

This does mean changes have to be made to .NET applications' source code, but not to the core logic of that code -- rather, to the inclusions and bindings that make it relevant. For example, ASP.NET Web applications cannot presume the existence of one of Microsoft's SQL engines. Mono prefers PostgreSQL instead; and in order that C# 3.0 code can bind to it, Mono uses a library called Npgsql (whose 1.0 version, incidentally, was also released today).

The MonoDevelop IDE that comes with Mono 2.0, the cross-platform .NET framework

As the Mono Project's Marek Habersack writes, moving an ASP.NET application into the MonoDevelop IDE for translation into Mono is not without some work, because the bindings to the outside world may be different. To make an application truly cross-platform -- running in .NET for Windows or Mono -- it naturally needs extra code that detects what platform it's running on, which is something you'd never think of adding for Windows-only builds of an application.

So the hope of Mono developers is to at least make the porting process reasonably simple, uncomplicated, and straightforward -- if you know what you're doing, it can be done on the first try. The MonoDevelop IDE should be easily graspable and comfortable to a developer who's already familiar with Visual C# in Visual Studio; it's not a clone, but it's not so different as to be confusing. Alternately, developers have been able to build Visual Basic 8 applications for Mono since February of 2007.

Mono also uses Microsoft-compatible bindings to ADO.NET for sequential data operations, Windows.Forms for building basic dialog boxes and control panels, and such familiar APIs as System.XML and System.Drawing. There are more non-compatible libraries, however, for obvious reasons, the biggest one being a binding to the open source GTK graphics library commonly used by GNOME. Fittingly, that binding is called GTK#, and technically it will work with Windows also, assuming the admin of the Windows client is willing to install GTK.

MonoDevelop features a full range of development tools including a linker capable of trimming the size of included libraries, a full-featured debugger, and a rule-based profiling tool called Gendarme that can detect potential binding problems, especially for cross-platform applications, that the compiler alone may not be capable of detecting. The C# compiler, tools, and runtime libraries are distributed under the GPL license, and the included class libraries are distributed under the MIT X11 license.

Linden Labs has been undertaking a project since last August to move its Second Life server applications to Mono, in what could be the most public demonstration of the cross-platform framework's capability.

Add a Comment (18 Comments)

BetaNews reserves the right to remove any comment at any time for any reason. Please keep your responses appropriate and on topic. Foul language and personal attacks will not be tolerated.

Name (required):

E-mail (required):

Enter Your Comment:

By melkor

posted Oct 7, 2008 - 5:49 AM

LL's move to Mono has been going on longer then just since August, the project has been in the works since 2004 though early movement was slow. The big stumbling block was waiting for Mono to have code verification.

Score: 0

By horsecharles

posted Oct 6, 2008 - 8:48 PM

Pronounced Moe-Noe...accent on last syllable.

Yous hiphoppers oughta dig that.

Score: 0

By leojei

posted Oct 6, 2008 - 2:33 PM

Nice job Mono! Keep it coming~

Score: 0

By cap737

posted Oct 6, 2008 - 1:07 PM

Congrats to the community

Score: 0

By Banquo

posted Oct 6, 2008 - 12:54 PM

Great marketing, name your product after a disease. :P

Score: 0

By Cure110

posted Oct 6, 2008 - 2:40 PM

Its actually named after the mother of a famous singer in a band named U2.

Score: 0

By eunichman

posted Oct 6, 2008 - 3:55 PM

ummm... that's Bono... not Mono lol

Score: 0

By Cure110

posted Oct 7, 2008 - 5:55 AM

I said his mother.

Everyone knows Bono's mother is named Mono. (O_o)

Score: 0

By PC_Tool

posted Oct 7, 2008 - 9:28 AM

Wow.

I read that as "a mother of a singer" ...as in you really thought the guy was a *cough*good singer *cough*.

Looks like I need to brush up on *my* reading comprehension skills. :p (I believe it's probably the same mistake the person replying made)

Score: 0

By Paul Skinner

posted Oct 6, 2008 - 3:51 PM

Pffft.

Or after a pub in Oslo city centre.

Score: 0

By FluffyDevilBunny

posted Oct 6, 2008 - 1:29 PM

Mono means monkey. It is MO NO not MON NO. Geesh.

Score: 0

By Banquo

edited Oct 6, 2008 - 2:55 PM

'twas a joke people, relax. I know it's Spanish for monkey, but when most people in this country see it that's usually not what comes to mind. ;-)

Score: 0

By PC_Tool

posted Oct 6, 2008 - 4:44 PM

Yeah... It usually conjures up images of dancing squirrels.

...or maybe that's just me. ;)

Score: 0

By PC_Tool

posted Oct 6, 2008 - 1:33 PM

Mono also means "one".

Mono-Rail, anyone?

Score: 0

By preinterpost

posted Oct 6, 2008 - 4:37 PM

Oh well, since there is nothing else...

I never even thought it could mean anything but the Greek mono. Mono as One unifying platform - to rule them all.

Score: 0

By PC_Tool

posted Oct 6, 2008 - 4:42 PM

Gah!

Quick! Grab a bunch of midgets and force them to throw in some volcano somewhere!

Score: 0

By Paul Skinner

posted Oct 6, 2008 - 3:51 PM

Oh great, so it's called One Two now. Really explains what it does there.

/tounge in cheek

Score: 0

By PC_Tool

posted Oct 6, 2008 - 4:14 PM

One Two, Point Zero, actually. :p

Score: 0