Forgot your password?
typodupeerror
Microsoft Novell Software Linux

Mono 2.0 and .NET On Linux 405

Posted by kdawson
from the receding-taillights dept.
Several readers noted the release of Mono 2.0, which is compatible with Microsoft's .NET Framework 2.0. According to Miguel de Icaza, "... users can move over server applications built for .NET and client applications built with Windows Forms." InternetNews points out that only about half of the .NET apps out there will work on Mono 2.0, for a variety of reasons including (but not limited to) legacy Windows-only libraries and Microsoft's progress on .NET 3.0 and 3.5 APIs.
This discussion has been archived. No new comments can be posted.

Mono 2.0 and .NET On Linux

Comments Filter:
  • So what... (Score:2, Insightful)

    by Anonymous Coward

    I don't think it should surprise anybody that Mono 2.0 cannot handle applications written for .Net 3.0 or 3.5...

    • Re: (Score:3, Interesting)

      by Elektroschock (659467)

      I just quote the Ubuntu Launchpad [launchpad.net]:
      "Sorry, but the answer to this one is "no". Intrepid will ship with 1.9.1 Mono has a little bit of a reputation when it comes to slightly... unready... releases. We apply a HUGE number of patches to our Mono packages to make them usable. Our main focus with Ubuntu is to have the best user experience possible, and since Mono is used mainly as a framework for desktop apps (F-Spot and Tomboy are installed by default), we think it's more important to ship a stable, reliable pla

  • by telchine (719345) on Tuesday October 07, 2008 @03:07AM (#25282251)

    I like Mono, I really do, however it's always playing catch-up, it's by it's very nature it's always going to be one step behind Microsoft. Without the support of features in .Net 3.5, very few people are going to choose it for new developments.

    • by Toreo asesino (951231) on Tuesday October 07, 2008 @03:22AM (#25282337) Journal

      For the record, the new stuff takes time to trickle into mainstream development anyway, so Mono gets to at least focus on implementing the stuff the industry considers important too rather than just Microsoft.

      • by Kjella (173770) on Tuesday October 07, 2008 @03:56AM (#25282537) Homepage

        From a little experience with WINE which is in the same situation, every application uses the same 95% core but the 5% obscure stuff is different from every app. And unlike people that have the ability to say "Well, if OpenOffice is 95% of what MS Office is it's good enough", applications have a nasty way of crashing unless their obscure requirements are met. It can be a useful crutch at times but it's nothing like a good platform to build cross-platform applications on. Or rather, the OSS community's applications will be compatible with Windows but the Windows applications won't be compatible with Linux, which is pretty much where we are today already.

    • Re: (Score:3, Interesting)

      by IBBoard (1128019)

      I don't know, I've been using .Net 2's generics on Fedora for a while now, which was the main reason I moved my code to 2.0 when I started re-writing things (at first .Net 2.0 wasn't common enough to assume people had it installed). Looking at the .Net 3.0 and 3.5 changes [wikipedia.org] I can't see a huge amount of "must have" features. In fact, 3.0 seems like a bit of a damp squib in terms of features added since 2.0 compared to 3.5 against 3.0.

      Just because a newer version is available doesn't mean everyone will automati

      • Re: (Score:3, Interesting)

        by zermous (1196831)

        I've been using visualstudio since the very beginning, and c# since the very beginning, and 2008 is the first upgrade so far that I have declined. I'm sure its time will come, but not for a while longer.

        • by cyberjessy (444290) on Tuesday October 07, 2008 @06:04AM (#25283257) Homepage

          Well, it should be the first upgrade you should NOT have declined; at least for the new language enhancements in C# and VB (Like LINQ and lambda expressions). I did a large project recently, which used a fair amount of LINQ. I felt C# 3.0 is when it finally left Java lagging in expressiveness.

          Btw, I have also been using Mono for some time now, and the present compiler implements all of C# 3.0 language enhancements.

    • by amRadioHed (463061) on Tuesday October 07, 2008 @03:24AM (#25282359)

      I like Mono, I really do, however it's always playing catch-up

      Ahhh! So that's why people with mono always look so tired. All this time I thought they were sick.

    • Re: (Score:2, Interesting)

      by SandmanWAIX (674838)
      Yeah this is true, but for some of us this is acceptable.

      Linux users are an additional market for the product I help develop and we have never really worried about it. I have been waiting for this mono milestone before bothering with mono, however now that they are there I dont mind putting the resources in and testing the waters.

      If everything goes smoothly I can see us offering a linux flavour very soon. Our current product operates on .NET Framework 2.0 SP1.
    • by dbIII (701233) on Tuesday October 07, 2008 @03:42AM (#25282467)
      Seriously though, what applications are using Net 3.5 instead of all the stuff that can only run with Net 1.0 or Net 2.0? Today I installed the September release of some ridulously expensive software and it required Net 1.0. This software also runs on mono with a bit of dodgy linking (pretending that libexif is a different version - weird becuase it has no business being a dependancy in the first place unless you need it).

      I really do not understand why Net is not backwards compatible but I suppose at least I should be happy that the libraries can co-exist instead of the old DLL hell. Microsofts attempt to replace Java could have been implemented in a better way.

      How much decent Net software is there out there anyway? Is it all in-house so we never see it? I've only seen VB shareware quality stuff no matter what I've had to pay for it.

      • How much decent Net software is there out there anyway? Is it all in-house so we never see it? I've only seen VB shareware quality stuff no matter what I've had to pay for it.

        Not really a killer app, but pretty nifty nonetheless: http://www.getpaint.net/ [getpaint.net] (paint.NET)

      • Seriously though, what applications are using Net 3.5 instead of all the stuff that can only run with Net 1.0 or Net 2.0?

        The ones being written now.

        • Re: (Score:3, Interesting)

          by YttriumOxide (837412)

          The ones being written now.

          Not true... I code .NET for a living (and we always ensure Mono compatibility at every build for the majority of our projects) and we're sticking with .NET 2.0 simply because there's nothing in the 3.0 or 3.5 releases that we're interested in. They just don't do anything we need. This is likely true for a great number of developers judging from other projects I see out there and also the posts from several people here.

      • Re: (Score:3, Interesting)

        by jesterzog (189797)

        How much decent Net software is there out there anyway? Is it all in-house so we never see it? I've only seen VB shareware quality stuff no matter what I've had to pay for it.

        Well any website with pages that end in .aspx is written in .Net, for one thing. We certainly develop a lot of in-house apps using .Net, and we also have a lot of intranet (and some internet) stuff that's built on it.

        If you just want apps that'll run in a controlled Windows environment within an organisation then it's not bad. It's

      • by Weedlekin (836313)

        "How much decent Net software is there out there anyway?"

        There's very little if anything for desktops. As is the case with java, most .NET programming jobs are for server-side stuff, with much of that being ASP.NET (i.e. web apps).

        "Is it all in-house so we never see it?"

        There is indeed a lot of in-house stuff, but it's generally even worse than what you see from ISVs.

        "I've only seen VB shareware quality stuff no matter what I've had to pay for it."

        That's because a lot of it is written by VB programmers who

      • by telchine (719345) on Tuesday October 07, 2008 @05:25AM (#25283067)

        Seriously though, what applications are using Net 3.5 instead of all the stuff that can only run with Net 1.0 or Net 2.0?

        A lot of my applications use LINQ (.Net 3.5). I wouldn't really like to go back to SQL.

        Sure you can manipulate databases with SQL. You can also cross the atlantic in a steam boat. However, I'd prefer to go by plane.

      • by telchine (719345)

        How much decent Net software is there out there anyway? Is it all in-house so we never see it? I've only seen VB shareware quality stuff no matter what I've had to pay for it.

        It's not really very practical to use for writing the kind of applications that you want to distribute. Having to have the .Net Framework installed is a serious barrier to the user. Java is in the same boat as the user needs to also install the VM.

        Like Java, .Net seems to have found its home in in-house development and with web apps.

  • by Toreo asesino (951231) on Tuesday October 07, 2008 @03:10AM (#25282273) Journal

    Most of it anyway; but crucially, LINQ.

    The bits missing (Windows Workflow Foundation, Windows Communication Foundation and Windows Presentation Foundation) aren't as crucial in my personal opinion; they are just nice toys you aren't going to miss if you've never had them before.

    LINQ however is a killer feature IMO; I'm glad to see that's now available on mono.

    • by Fred_A (10934)

      So now what ? Does that mean apps like Paint.Net can be ported or is there still some crucial stuff missing ?

      Most stuff seems to rely on some core Windows only component so I'm still not sure what the point of Mono is.

      • Paint.NET is a special case; a hideous whack of code is native and being used via interop.

        • Re: (Score:3, Interesting)

          by Kentaree (1078787)
          I wonder if it'd be possible to get Mono and Wine to work together and get Paint.NET to work, does Mono support interop to run non-managed code?
      • Re: (Score:3, Interesting)

        by dbIII (701233)
        I'm running a geophysics package that uses Net via mono on an 8 CPU machine that I doubt MS Windows could install on let alone run well. Unfortunately the package costs more per seat than a few of those 8 CPU machines and has enough rough edges to look like 1990s VB shareware - but it does save time to run it.

        The only catch was putting in a single link where mono (or perhaps the app in some weird cross platform way) was explicitly looking for a paticular library version I didn't have even though it isn't g

    • by should_be_linear (779431) on Tuesday October 07, 2008 @03:30AM (#25282403)
      The bits missing (Windows Workflow Foundation, Windows Communication Foundation and Windows Presentation Foundation) aren't as crucial in my personal opinion; they are just nice toys you aren't going to miss if you've never had them before.

      It is crucial in the moment when any programmer use them and application stop working on any non-Windows platform. It is also very difficult, if not improssible, to track VM incompatibilities when main developer (MS) is not interested in 100% compatibility at all. For me, as enterprise application developer, these are show stoppers. Luckily, there is Java and Sun Hotspot, which solves all this.
    • by uberjack (1311219) on Tuesday October 07, 2008 @03:33AM (#25282427)

      Most of it anyway; but crucially, LINQ.

      The bits missing (Windows Workflow Foundation, Windows Communication Foundation and Windows Presentation Foundation) aren't as crucial in my personal opinion; they are just nice toys you aren't going to miss if you've never had them before.

      LINQ however is a killer feature IMO; I'm glad to see that's now available on mono.

      Personally, I find LINQ's complete throwing away of proper syntax annoying. Most .net developers I know have no idea that LINQ is simply syntactic sugar, and that the whole thing can be implemented by a bunch of method calls that make a lot more sense, from a structural standpoint. This is the problem I have with Microsoft's technologies in general (think ASP.net's asinine oversimplification of the http protocol) - instead of improving new programmers' understanding of existing technology, they re-warp the programmers' heads around their idea of how the technology should be implemented.

  • Good luck porting over LoadDLL("C:\\windows\\system32\\mylib.dll");.

    The existence of a working mono is a necessary condition, not a sufficient one, for porting an application. Whether that condition is fulfilled and to what degree, I'll leave up to you to discuss.

    Portability comes from being largely independent of the differences between the platform you want to port from and the one you want to port to. Good portability engineering consists of gathering all the platform-specific bits into one unit with a uniform interface, such that it's easy to write platform-specific modules for all the platforms you want to support; then, make sure to test on all your target platforms.

    For a good piece of engineering, see Simon Tatham's puzzle collection (http://www.chiark.greenend.org.uk/~sgtatham/puzzles/). To see the importance of testing on all your target platforms, see the state of synergy on the Mac (http://synergy2.sourceforge.net/ -- "The Mac OS X port is incomplete [...]"). To see the importance of isolating your platform dependence, see any code that makes liberal use of fork and ioctl everywhere [sorry, I can't name an example].

    Also, good portability engineering done up front is much less work (i.e. cheaper for your employer) than when the project is already deployed on windows only.

    -- Jonas K

    • by RAMMS+EIN (578166)

      muhttpd [inglorion.net] uses fork, yet it works on Windows, thanks to the excellent work of the Cygwin [cygwin.com] project (at least earlier versions of muhttpd worked under Cygwin; I haven't tested recently).

  • by mrpacmanjel (38218) on Tuesday October 07, 2008 @03:56AM (#25282543)

    As a Programmer I am really torn between Java and Mono!

    Both platforms solve the same problem but which one shall I commit to?

    Do I install and run both platforms on my PC?
    Surely running both platforms at the same time *must* be detrimental to my PC's performance (e.g. memory usage and cpu time executing both VMs)!

    I also cannot afford the time to learn both platforms properly!

    It is unfortunately a question of politics.
    Java is now open-sourced and offically sanctioned.
    Mono is the "unauthorised"(by Microsoft) port of .net technology and patents are a concern.

    Both platforms have great software written for them (e.g. banshee, jedit, monodevelop, eclipse and netbeans) and patents are not really a concern to me because I live in the UK (software patents do not apply...YET!).

    It is unfortunate that the mono is so closely associated with Windows, if the mono team had created/implemented a completely new set of cross-platform libraries (that bore no relation to Microsoft's framework) it would be more accepted.

    I really like mono - the work that has been done is nothing short of amazing but the constant catch-up with Microsoft is a concern.

    Java is widespread in mobile phones and most modern desktops unfortunatly for me it is not available on my PDA (ipaq 2210).

    I am really stuck with this! :(

    • by RAMMS+EIN (578166)

      ``It is unfortunate that the mono is so closely associated with Windows, if the mono team had created/implemented a
      completely new set of cross-platform libraries (that bore no relation to Microsoft's framework) it would be more accepted.''

      But then they would just have done [ruby-lang.org] what [inria.fr] various [perl.org] others [php.net] have [python.org] already [gnu.org] done [gnu.org], wouldn't [wikipedia.org] they [boost.org]?

    • by gbjbaanb (229885)

      The answer is easy. Learn C++.

      I'll get my coat....

  • The real .NET (Score:5, Insightful)

    by Lord Lode (1290856) on Tuesday October 07, 2008 @03:57AM (#25282547)
    I wish the real .NET could be installed on Wine. Not because I like .NET, but because I want to run those programs that people make in .NET these days, in Wine just like I can do with regular programs. If Wine wants to work like Windows, it should also be possible to install the real .NET on it just like you can do on the real Windows. They should try to make it work just as well as they did with MS Office. Then it would become possible to run so much more programs in Wine without problems and without having to reboot to Windows!
  • by HRbnjR (12398) <chris@hubick.com> on Tuesday October 07, 2008 @04:04AM (#25282597) Homepage

    The .NET platform and C# looks like decent enough technology, but I just don't think it's compelling enough to prompt a switch from Java.

    With these back-room Novell/MS deals, the patent situation around Mono continues to be as clear as mud, and with Java I get it all under the GPL (with a clear and written patent grant) right from the source. Not to mention Sun's process for advancing the platform (JCP), while not perfect, is far more open and community driven, catering to much wider variety of vendors and platforms than Microsoft.

    With Eclipse and Netbeans, the Java tool support on Linux is fantastic as well. With RedHat and JBoss, the server platform is also well supported on Linux.

    So, yeah, nice work, but no thanks.

    • by arotenbe (1203922) on Tuesday October 07, 2008 @04:27AM (#25282751) Journal

      I use Java as well, and I think that Eclipse is a better IDE than Visual Studio, but there are a couple reasons for using .NET:

      • A better language. C# is, for all intents and purposes, Java with more syntactic sugar. It makes it about a hundred times easier to write event-driven programs.
      • A library that actually makes sense. Java was designed by committee, and it shows. Most of the problems in the .NET framework ultimately stem from having to run on Windows; the cross-platform parts are comparatively clean.
      • No checked exceptions. Seriously.
  • Mostly P/Invoke (Score:2, Interesting)

    by rdnetto (955205)

    I'm guessing that 40% of those incompatible apps are due to code which references Win32 libraries via P/Invoke. Seriously, almost no-one is developing for .NET 3.x. Most apps are written for 2.0, which is included with XP SP2 and Vista, but 3.5 is a 300MB download, so almost no-one has it. Microsoft had to release a client-only subset version of it which is cut down, and its around 30 MB, but it'll cause a lot of confusion (RE: versioning), and I don't think it supports LINQ.

  • If you were setting out to write a serious new web application and cross platform was a real requirement why not just use Java? If your requirements are smaller there are plenty of other languages that offer cross platform deployment that are up to date on all platforms.

    It's great to see this project continuing to develop but it's going to be like Blackdown Java - a niche product at best. The only saving grace is that, unlike with Java, you can't actually run the MS VM on Linux (AFAIK).

  • .NET break too much (Score:2, Informative)

    by Tei (520358)

    "InternetNews points out that only about half of the .NET apps out there will work on Mono 2.0"

    On my Windows XP computer half the .NET applications break anyway.

  • Platform vs language (Score:3, Interesting)

    by sentientbrendan (316150) on Tuesday October 07, 2008 @04:54AM (#25282891)

    I think the mono project was started primarily because of interest in the C# language, as it compares favorably to java, fixing many of Java's flaws.

    Sadly while the C# language may be in many ways stronger than Java, the platform is much weaker. Realistically, the reason Java was so successful was that there were high quality VM and classpath implementations on all platforms. Yet, Microsoft didn't seem to learn this lesson from Java, and instead relied on third parties, who can't possibly maintain parity with Microsoft .NET. Thus, .NET will always be a second class citizen on Linux, and always a poor choice compared to Java.

    As much as I like C#, it's a foolish choice to write Linux apps in .NET in the same way that it is foolish to write them in win32. It will always be a second rate platform on Linux, so long as the people controlling the standard have no interest in doing the work to making the framework work across platforms.

  • by Yfrwlf (998822) on Tuesday October 07, 2008 @06:17PM (#25292883)
    InternetNews points out that only about half of the .NET apps out there will work on Mono 2.0, for a variety of reasons including (but not limited to) legacy Windows-only libraries and Microsoft's progress on .NET 3.0 and 3.5 APIs.

    Exactly, which makes it pretty useless, so it's as bad as OOXML in a way, so tell me again why I'd want to bother writing Microsoft-specific software for Linux? No thanks.

Money will say more in one moment than the most eloquent lover can in years.

Working...