Mono, the open source .NET counterpart, releases 2.0

By Scott M. Fulton, III | Published 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.

Comments

View comments by with a score of at least

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

|

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

Yous hiphoppers oughta dig that.

Score: 0

|

Nice job Mono! Keep it coming~

Score: 0

|

Congrats to the community

Score: 0

|

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

Score: 0

|

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

Score: 0

|

Mono also means "one".

Mono-Rail, anyone?

Score: 0

|

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

Score: 0

|

'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

|

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

/tounge in cheek

Score: 0

|

Pffft.

Or after a pub in Oslo city centre.

Score: 0

|

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

Score: 0

|

One Two, Point Zero, actually. :p

Score: 0

|

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

|

Gah!

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

Score: 0

|

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

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

Score: 0

|

I said his mother.

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

Score: 0

|

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

|

Google Chrome 4: Yes, it's fast, but is it usable?

As Betanews readers have responded to our stories about Chrome's JavaScript superiority...Does that mean we'd actually use this browser? Well...

Video: Netflix on PlayStation 3

Netflix has come to the PlayStation 3 via Blu-ray and BD-Live.

Verizon Wireless launches new Android, Chocolate, and ruggedized phones

The lower-priced Eris joins the Droid, while the Chocolate gets a touchscreen and more music playback.

Early sales figures for Windows 7 nicely high, but do we know why?

Fans of triple-digit surges in figures quoted by Betanews will love this one, as it appears Microsoft rediscovered how to pull off a software launch.

Myka announces its latest Linux-based 'net top box'

Myka's ION brings Boxee, XMBC, and much more to HDTVs.

What hath Mac wrought? A remembrance after a quarter-century

The reason there's a Macintosh today is not because of some brilliant flash of engineering genius, but because Apple had the audacity to learn from its mistakes.

Early build of Moblin 2.1 improves connectivity, but not device support

The Linux Foundation's Atom-centric OS yesterday received a major overhaul with the project release of Moblin 2.1 for netbooks and nettops.

The iPhone's China syndrome: Sales of 5,000 and climbing

There's actually a country where Apple's device is not a godsend, where sales can be measured in the dozens.

New European counterpart to FCC will ensure 'a more neutral net'

Late Thursday night, the ruling telecom administrators of the EU's member nations signed away their final authority to a new entity overseen by the EC.

Sophos study suggests Windows 7 UAC's default setting is self-defeating

Without any anti-virus installed, a Sophos test showed, User Account Control was only capable of thwarting just one malware package out of ten samples chosen.

Indiscreet tweet trips awareness of Web SSL vulnerability

A group of high-level security engineers had been making progress on thwarting a low-level threat to the Web, until somebody blurted it all out on Twitter.