Slashdot Mirror


Creating .NET C# Applications for Linux

An anonymous reader wrote to mention an article on the IBM site entitled Mono brings .Net Apps to Linux. From the article: "Mono gives open source developers the programming power and flexibility to build applications for Linux while maintaining cross-platform capabilities, using a variety of .NET-compatible languages. One of the great advantages of Mono for current .NET developers is providing an easier migration path to Linux. The Mono project has a very open and active development community and provides both developer tools and the infrastructure needed to run .NET client and server applications. Perhaps the most important benefit of using the Mono architecture is that you gain language independence. Mono lets you leverage any existing code from languages supported in the .NET runtime. "

5 of 340 comments (clear)

  1. Ewww.... by Afecks · · Score: 5, Funny

    IBM gave me mono... gross!

  2. Wouldn't it be funny if... by jarich · · Score: 5, Insightful
    Wouldn't it be funny if .Net (with Mono) actually delivered on the promise of Java? That is to say, bringing software to the Linux platform from traditional MS developers?

    Given that Java was a new language, maybe the migration from MS developers wasn't all that great... but now, with Mono, MS developers can move right over.

  3. Re:let me get this straight ... by Trepalium · · Score: 5, Insightful
    Or how about the fact you actually have UNSIGNED integer types in C#/.NET. I don't care how much James Gosling says that unsigned/signed types cause confusion, they're a reality of dealing with data on computers. The moment you have to force Java to interoperate with some "legacy" (read: non-Java) infrastructure, you're stuck with hacks and nasty ones at that.

    Other useful parts of C#/.NET include delegates, enums, automatic boxing of value types, properties, indexers, multidimensional arrays (as opposed to jagged ones) and foreach (for simple iteration through arrays or other indexed/enumerable objects). Hopefully the Java language designers will take notice and adapt some of these incredibly useful features to Java. Microsoft took so much from the Java language design that it should only be fair for Java to do the same to Microsoft's product.

    --
    I used up all my sick days, so I'm calling in dead.
  4. Re: here we go again by cortana · · Score: 5, Insightful
    Why do people even bother with Mono?
    I don't give a crap about whether Mono allows me to run shitty Windows-centric apps on my system. I bother with Mono because it makes it easy to rapidly develop and deploy programs for the linux desktop. Mono is a good enough product in its own right.

    The excellent java-gnome project is the Java equivalent of GTK#/GNOME#, but I don't see nearly as many programs being developed for it. In fact, a quick apt-cache rdepends reveals that there are precicely zero applications using libgtk-java in Debian, whereas libgtk-cil is used by projects such as tomboy, graphmonkey, gnunit, beagle and blam. There are also a load of programs that have not yet been packaged; assuming that the same proportion of GTK# and java-gnome apps have been packaged, it seems that there is a lot more developer interest--buzz--around Mono than there is around Java. Mono-based programs are certainly mentioned more often (read: at all) on the feeds I read than Java-based ones; and how many "Creating Java applications for Linux" articles have been posted to Slashdot recently?

    So why is this? I recon it's simply down to how easy it is to get started using the platforms in question. Say I want to run Beagle--I apt-get install beagle. Now let's say I want to run the hypothetical jeagle. I have to navigate, with a graphical browser no less, Sun's gargantuan site; agree to a huge, no-doubt soul-selling bullshit EULA; run Sun's crappy installer that shits untracked files all over my system... and I still can't apt-get install jeagle because Sun's crappy installer doesn't know about dpkg. As a Debian user who actually knows what he is doing, I can use java-package to convert Sun's crap installer into a .deb that halfway complies with Debian poilicy, but by making me go through this procedure Sun has basically killed my enthusiasm for working with this platform--there is no longer any buzz.

    "But Mono isn't made by Microsoft! It's not a fair comparison", you might say. To this I reply, I don't care! C# and Java are both nice, modern (perhaps I should say 'fashionable' to avoid being prodded by the Lispniks) languages that make software development fun and easy--but it is easier to get into C# because a platform that lets me use it is only an apt-get away.

    Now, perhaps Sun could turn this around by hiring a couple of Debian Developers to make some really high quality Debian packages of Java, and granting Debian permission to distribute them in non-free; but this only solves the problem for users of Debian and Debian-derived distributions. Sun would also have to find someone to create decent packages for Fedora, Mandriva, Suse, Slackware, whatever. But hold on a minute--Mono has people coming out of the walls to package it for their favourite distribution, so why should Sun have to put in extra effort to make this possible--and still be playing catch-up? It's because Mono has buzz! The openess, liberty and low barrier-to-entry have drawn developers to the Mono platform, while Java has languished under Sun's iron fist.

    In the end it's not about Java-the-language vs. C#; it's about the openess of the platforms: Java-the-closed/inaccessible platform vs the GPL'd Mono. Development of the components of an open source Java platform has been slow because Sun have already created a 'good enough' implementation of Java on GNU/Linux--but Mono has everything to to play for; the stakes are high, there are no grumpy old gits saying "Microsoft's GNU/Linux .NET implementation is good enough, Mono will never beat it", this is an exciting time when men are men, women are women, small furry creatures from Alpha Centuri are real small furry creatures... etc, etc.

    To summarise: Mono is exciting. Java is a pain in the ass.
  5. Re:let me get this straight ... by miguel · · Score: 5, Informative

    I run the Mono project, so I can speak for our goals.

    And one of our goals is to be compatible with the .NET implementation. This is part of what we do on a day-to-day basis when we write unit tests for the APIs we are implementing, when we keep track of any possible difference and we respond to bugs filed on our bug tracking system where the behavior differs by fixing the differences.

    But our goal is not limited to *only* being compatible with Microsoft's .NET. We have also grown outside of the scope of what .NET has to offer, and this is why you see a very healthy ecosystem of libraries and applications *around* Mono which are not limited to being compatible.

    We created Gtk#, the toolkit we recommend for new applications that are to be cross platform; The enhanced XML stack (Commons.RelaxNG and Mono.Xml.Ext), our extended security and cryptography stack (Mono.Security), our extended Database support (Mono.Data and all of the providers for proprietary and open source databases), our IL manipulation library (Cecil) and everything that goes with these libraries.

    We try to make our libraries cross-platform, because the same code will reach more users and helps grow our community, but every once in a while we have to create OS-specific libraries. For example, the Mono.Posix library is not completely portable to Windows. The Cocoa# library only works on MacOS X, as it is designed to be just an interface to Cocoa.

    Miguel.