Slashdot Mirror


Mono 2.0 and .NET On Linux

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.

88 of 405 comments (clear)

  1. So what... by Anonymous Coward · · Score: 2, Insightful

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

    1. Re:So what... by Elektroschock · · Score: 2, Interesting

      I just quote the Ubuntu Launchpad:
      "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 platform for those apps than to update to a new Mono release without having time to test it."

  2. I like Mono, but... by telchine · · Score: 5, Insightful

    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.

    1. Re:I like Mono, but... by Toreo+asesino · · Score: 3, Insightful

      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.

      --
      throw new NoSignatureException();
    2. Re:I like Mono, but... by IBBoard · · Score: 2, Interesting

      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 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 automatically use it. Given the license fees, I can see a lot of Windows people sticking with VS.Net 2005 and not upgrading to 2008.

    3. Re:I like Mono, but... by amRadioHed · · Score: 4, Funny

      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.

      --
      We hope your rules and wisdom choke you / Now we are one in everlasting peace
    4. Re:I like Mono, but... by SandmanWAIX · · Score: 2, Interesting

      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.

    5. Re:I like Mono, but... by zermous · · Score: 3, Interesting

      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.

    6. Re:I like Mono, but... by dbIII · · Score: 4, Interesting
      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.

    7. Re:I like Mono, but... by Kjella · · Score: 3, Interesting

      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.

      --
      Live today, because you never know what tomorrow brings
    8. Re:I like Mono, but... by jesterzog · · Score: 2, Interesting

      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 definitely much cleaner to work with than the Windows API, as long as what you actually want to do is supported by the .Net framework and libraries. As soon as you hit something that isn't supported, and start having to interop direct with Windows, things get much more ugly. Unfortunately this happens as quite a lot, whenever you decide you want to do something Microsoft didn't really plan for, like writing toolbars.

      I don't think I'd want to write production software to be distributed to large numbers of people using .Net. There are certain issues like having to rely on people having the framework installed (and still not everyone does, and it's a very large download), and slow startup times on systems where you don't have much control. WPF (the new XML-based forms system introduced in .Net 3) is absolutely hideous for startup time.

    9. Re:I like Mono, but... by telchine · · Score: 4, Insightful

      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.

    10. Re:I like Mono, but... by YttriumOxide · · Score: 2, Interesting

      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.

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    11. Re:I like Mono, but... by cyberjessy · · Score: 3, Interesting

      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.

      --
      Life is just a conviction.
    12. Re:I like Mono, but... by StrawberryFrog · · Score: 4, Interesting

      I see a lot of people interested in LINQ, extension methods, a more functional style of coding, and ASP.Net MVC. So maybe your mileage will vary.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    13. Re:I like Mono, but... by cyberjessy · · Score: 2, Interesting

      You are right. Here are some.

      1. myspace.com (think 100m plus users)
      2. orkut.com (35m users)
      3. google docs (surprise!)

      And as you said, Desktop applications are a rarity, because the current .Net runtimes (3.0 and later) are more that 100MB in size. So even if you are making a calculator, you end up with 100.1 megabytes of download. Not attractive.

      --
      Life is just a conviction.
    14. Re:I like Mono, but... by blowdart · · Score: 2, Insightful

      I guess it depends what they're targetting. Like it or not Linux is not making large leaps into desktop space. Now if we look at Mono for servers then 3.0 added Windows Communication Foundation and Windows Workflow. WCF replaces the old ASP.NET way of doing web pages and added a bunch of important support for WS* standards. In 3.5 it introduced REST support and better federation bits and pieces. From the SOA work I've done I've been using WCF for 18 months now; and so without support for WCF those services cannot be moved.

    15. Re:I like Mono, but... by Koyaanisqatsi · · Score: 4, Informative

      Mythbuster alert!

      http://www.smallestdotnet.com/

      (thou I love mono,

    16. Re:I like Mono, but... by Curtman · · Score: 2, Informative

      If Orkut and Google Docs are .Net 3.5, how can I run them from my linux box?

      You aren't running them. They run on servers somewhere down the series of tubes, and your browser displays their output.

    17. Re:I like Mono, but... by Parker+Lewis · · Score: 3, Informative

      Google has announced porting Orkut to Java, due the lack of robustness from .NET.

    18. Re:I like Mono, but... by StrawberryFrog · · Score: 2, Interesting

      Well any website with pages that end in .aspx is written in .Net, for one thing.

      Check out Stackoverflow. It's written in .Net, but not as we know it. No ".aspx", no anything on the end of the pages. It uses the brand new MVC kit and other .net 3.5 features like LINQ. And it's excellent.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

  3. Re:Oh just go away by vux984 · · Score: 3, Insightful

    If we wanted to run crappy Microsoft technologies, we'd just go buy Windows, wouldn't we?

    That must be why the WINE project is such a silly idea... oh wait...

  4. Mono 2.0 Supports .Net 3.0 by Toreo+asesino · · Score: 5, Interesting

    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.

    --
    throw new NoSignatureException();
    1. Re:Mono 2.0 Supports .Net 3.0 by should_be_linear · · Score: 5, Insightful

      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.

      --
      839*929
    2. Re:Mono 2.0 Supports .Net 3.0 by uberjack · · Score: 4, Interesting

      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.

    3. Re:Mono 2.0 Supports .Net 3.0 by Xabraxas · · Score: 2, Insightful

      Isn't the phrase "lazy programmer" a little redundant.

      --
      Time makes more converts than reason
    4. Re:Mono 2.0 Supports .Net 3.0 by dbIII · · Score: 2, Interesting
      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 going to use it. The real catch I suppose is that software that checks if you have a valid licence is designed to make things horribly difficult for the honest and I wish developers would abandon such regularly crashing stupidity.

      Personally I'm not really sure what the point of Net is but at least we can run it across platforms now.

    5. Re:Mono 2.0 Supports .Net 3.0 by Kentaree · · Score: 3, Interesting

      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?

    6. Re:Mono 2.0 Supports .Net 3.0 by Westley · · Score: 2, Interesting

      Can I ask how much experience you actually have of LINQ, and which aspects of it (which providers etc)? Which area of performance are you talking about?

      I have a certain amount of LINQ experience, and all I see is it making me more productive, with little to no performance hit. (Yes, separating out projection from filtering etc is a little more expensive than hardcoding it all in one foreach statement, but not significantly - and the resulting code is *much* cleaner.)

    7. Re:Mono 2.0 Supports .Net 3.0 by limaxray · · Score: 2, Insightful

      I disagree. I actually find the applications I've made using 2.0, spending hours and hours on hand coding SQL statements, are actually SLOWER than the 3.5 applications that I spent minutes and minutes writing LINQ statements. Granted, it probably has nothing to do with the use of LINQ, but I do find the SQL statements it generates are typically sound.

      Oh, and I'm the guy who codes in assembly to avoid the performance hit of C because C is for lazy programmers. There, it actually makes a difference - with Windows apps, there's already so much abstraction, added laziness isn't going to effect anything.

  5. Re:IDE by JanneM · · Score: 5, Funny

    "A question: Is there a functional IDE for Mono, for us who don't want gnome or even gnome libs on our System?"

    Um, what? You'll get gnome cooties?

    Monodevelop is a good IDE, and I don't think having GTK and related libs installed is going to steal your masculinity or anything.

    --
    Trust the Computer. The Computer is your friend.
  6. Re:Oh just go away by Merusdraconis · · Score: 5, Interesting

    Except that C# is a decent little language? It's good to see it open-source, that way it can have a life after Microsoft tires of it.

  7. Re:Oh just go away by Chuck+Chunder · · Score: 5, Interesting

    I don't want to run my stuff on Microsoft technologies but I have potential (and actual) customers who already do use them.

    In order to integrate their application and ours we needed to code a little plugin to run on their ASP.NET (or whatever the correct name is) servers.

    Mono allowed me to develop the required plugin on a Ubuntu box. (They then wanted the resulting assembly signed, we gave them the source code so they could do it themselves).

    Microsoft was relevant to us because we had a potential customer who used it and isn't about to abandon their entire existing system just for us.

    Without Mono there would have been two options:
    a) Pony up to MS to develop in .NET
    b) Don't do the business.
    neither of which are particularly appealing.

    Mono allows competition and competition is good.

    --
    Boffoonery - downloadable Comedy Benefit for Bletchley Park
  8. Re:IDE by QuantumG · · Score: 5, Funny

    Yeah, it's a bitch trying to develop .net apps on my Amiga. I wish developers would stop assuming I'm using a Linux distro with features. Assholes.

    --
    How we know is more important than what we know.
  9. Portability depends on more than the platform by jonaskoelker · · Score: 4, Insightful

    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

  10. Re:Oh just go away by Tatsh · · Score: 3, Insightful

    I agree. Why don't these people who want to use .NET (managed code) just use Java? At least that is platform agnostic (limited to whatever platforms Java is ported on).

    By the way, what about dotGNU? http://www.gnu.org/software/dotgnu/ At least that will be released under GPL and not some dual licence with GPL.

  11. Re:Oh just go away by Jezza · · Score: 3, Insightful

    Or we can create something on Linux that has to run on Windows (for whatever reason). This is a two way street - Mono can create software that runs on Linux, Solaris, Mac OS X AND Windows.

    This isn't just getting Windows stuff to run on Linux.

    Viewed from this perspective it is less important that Mono is behind .NET - if you're creating something new you target Mono and it should run on .NET

    For many users Windows is where they are (stuck quite often) and they can't migrate 100% of their desktops to *nix, they have something that stops them on a number of systems. Mono means they can create applications that can run on a mix.

  12. Re:Oh just go away by goose-incarnated · · Score: 5, Insightful

    There's a big difference between the two - because devs don't target WINE, WINE is the "embrace" part of moving from Windows. Because devs target .NET, .NET is the "embrace" part of moving from Linux.

    So, these two technologies are actually on opposing sides of this particular ideological fence - one is an attempt at removing lock-in, the other is an attempt at locking-in.

    --
    I'm a minority race. Save your vitriol for white people.
  13. The inevitable Java vs Mono by mrpacmanjel · · Score: 3, Interesting

    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! :(

  14. The real .NET by Lord+Lode · · Score: 4, Insightful

    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!

    1. Re:The real .NET by kazade84 · · Score: 5, Informative

      Download winetricks then run:

      sh winetricks dotnet11 dotnet20

      Bingo. .NET under wine.

  15. Re:Oh just go away by Tatsh · · Score: 2, Interesting

    The only .NET apps I use are nLite and vLite. The fact that these both launch native apps means that perhaps the interfaces (which are AFAIK Windows.Forms) will load but they will not be able to be front-ends to their Windows native apps that they are launch. This is very unfortunate and I wish Wine and Mono could work together to solve this problem. A lot of .NET apps launch non-.NET apps. They should at least make an #ifdef __WINE__ or something to allow the Exec() command or whatever it is to replace the command with a Unix command like wine . Most things will probably work okay.

  16. Re:Oh just go away by goose-incarnated · · Score: 3, Informative

    Patent encumbered lock-in of future software?

    --
    I'm a minority race. Save your vitriol for white people.
  17. Re:Oh just go away by Kentaree · · Score: 5, Insightful

    You're not making much sense. Yes, people don't target WINE, they target the Windows API, just like they target the .NET API. Wine is a means of running Windows code on linux, Mono is a means of running .NET code on linux. People will be writing code for both, so might as well support running it on linux.

  18. Re:Oh just go away by what+about · · Score: 4, Insightful

    Mono is Java in disguise, if you want cross platforms without traps use Java

    It is like the mortgage crash, a few saw it coming, they said so, but the majority didn't care

    A few people says that Mono is a legal and technology trap (search the web for mono trap), in the future this will reveal true, do not forget that you where warned

  19. And why not just use Java? by HRbnjR · · Score: 4, Insightful

    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.

    1. Re:And why not just use Java? by arotenbe · · Score: 3, Insightful

      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.
      --
      Tomato wedge sperm darts that are Republican.
  20. Re:Oh just go away by goose-incarnated · · Score: 2, Insightful

    *sigh*

    WINE removes lock-in, .NET provides it. WINE helps people leave windows and still keep their legacy applications. Mono provides a way for new applications to be moved from Linux to Windows.

    Unless, of course, the argument is made that there are legacy applications in .NET that can be run on Mono, in which case we have bigger problems, such as lack of intellectual integrity on the part of those making the argument

    --
    I'm a minority race. Save your vitriol for white people.
  21. Mostly P/Invoke by rdnetto · · Score: 2, Interesting

    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.

    --
    Most human behaviour can be explained in terms of identity.
  22. .NET break too much by Tei · · Score: 2, Informative

    "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.

    --

    -Woof woof woof!

  23. Re:Oh just go away by Anonymous Coward · · Score: 2, Interesting

    the portability is a myth. look at how much applications are written in a portable way (OpenOffice, for example)

    posix and c/c++ where portable and uniform across operating system for at least three decades, and if cross platform development doesn't thrive on those, then none of those wannabe portable languages will do any good for portability.

    portability using a common runtime is a myth, and is a weird version of the microsoft format lockin (yes applies to Java too). look at how many platform debian packages are compiled towards, THAT is portability.

  24. Re:Oh just go away by something_wicked_thi · · Score: 5, Insightful

    Before I tear apart what you think passes for an argument, let me say that the Mono folks are doing an amazing job and they get way too little credit. The tinfoil hat brigade around here seems to have taken on Mono as its personal whipping boy, and it's totally unfair and uncalled for.

    WINE removes lock-in, .NET provides it.

    Sure, but weren't you supposed to be talking about Mono there somewhere? Java used to provide lock-in, too. Hence, the GNU Classpath project, which is pretty much identical in its goals to Mono. Funny that I never saw you people screaming about that one being a trap.

    WINE helps people leave windows and still keep their legacy applications. Mono provides a way for new applications to be moved from Linux to Windows.

    Wow, get some perspective there. How many killer apps are there on Linux that the Windows people are craving? KDE? Gnome? Firefox? OpenOffice? None of those are on .NET and most of them run on Windows, anyway. Do you think that Firefox, OOo and KDE are all helping people move away from Linux by providing Windows ports? Isn't it more likely that without those Windows ports, most of these projects would go nowhere?

    It's really quite obvious to anyone with any actual knowledge of how the industry works that people are going to write applications without Linux in mind. The Mono project, just like the Wine project, lets people who run Linux run applications that other people wrote for Windows.

    As it turns out, there's also a bunch of useful libraries that Mono includes that you can use when coding for platforms other than Windows. It boggles my mind that anyone would think that this is somehow a trap. It's just a useful way to access Unixy things on Mono. But it clearly can't be breaking Linux lock-in or whatever pea-brained scheme you've come up with.

    Unless, of course, the argument is made that there are legacy applications in .NET that can be run on Mono, in which case we have bigger problems, such as lack of intellectual integrity on the part of those making the argument

    .NET has been around for 7-8 years now. Do you honestly think code can't become legacy in that amount of time? Here's a tip: if you think Linux has any lock-in potential for applications written on it, then perhaps you shouldn't talk too much about intellectual integrity.

  25. Re:Oh just go away by stompertje · · Score: 2, Informative

    Wine makes it possible to run Windows applications, built on the WIN32 API, to run on Linux. Mono makes it possible to run Windows applications, built on the .NET framework, to run on Linux. In both cases, most applications will probably be developed primarily for Windows, but can also be run on Linux. Yes, you can develop .NET apps on Linux, run them on Linux and then move to Windows while keeping your .NET apps. That doesn't mean that Mono provides lock-in. It just means that .NET/Mono comes closer to cross-platform portability than WIN32/Wine does...

  26. Re:Oh just go away by anomaly256 · · Score: 2, Interesting

    I for one look forward to games coming out using .net and managed opengl libs. Suddenly game makers won't have to do much work at all to write games that perform well on windows, linux, even osx. Sounds like removing lock-in to me

  27. Platform vs language by sentientbrendan · · Score: 2, Interesting

    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.

  28. Re:Oh just go away by gbjbaanb · · Score: 4, Insightful

    really? I thought MS has dropped support for OpenGL, apart from its very legacy v1.1 base. And you know they will never write a managed wrapper for it.

    So, who will write a .NET game using opengl? If you're a Windows dev (and most game devs are) then you'll be using DirectX.NET, which oh so conveniently is not available for Linux.

    So close. Yet so immensely far. Do you see the problem now? Its business a usual for MS, but with the added bonus of saying "But we are working on Linux interoperability, Mr DoJ, look - Mono".

  29. Re:Oh just go away by gbjbaanb · · Score: 3, Informative

    well, it snot that decent a little language. Its a MS port of Java with extra bits added mainly in the realm of the GUI and interop with legacy COM and Win32.

    They have added extra features that are cool, like LINQ, but I feel they'll be heavily misused over the coming years. They've also adding features like extension functions which will make scripting languages look like statically strong-typed languages compared to C# as time goes by.

    Its also pretty complex for a little language, I'm seeing a lot of people complaining on the web about how they're using up all their memory followed by little tutorials on Dispose and releasing objects so they actually get disconnected and then freed by the GC.

    I think if it wasn't for curly braces, and the .NET class library, hardly anyone would be using it. Imagine if MS only released VB.NET, you wouldn't use it, the classic VB crowd wouldn't use it, but its practically the same language as C#.

    BTW. C#2 is a standard, C#3 is not. MS has promised to submit it, but they havn't yet.

  30. Re:Oh just go away by Chrisq · · Score: 4, Insightful

    To be pedantic I think the C# language definition is open source. What isn't is the runtime. You could write a C# compiler with its own runtime and you'd have a pretty nifty alternative to Java.

    What you can't do is copy the windows runtime. I wonder how mono would do if Microsoft invoked patents against it. I suspect not well, but with Mono in its current state it is to MS's advantage - they can say they are multi-platform but know that most people will give up because of the 50% of programs that won't run and turn to Windows.

  31. Re:Oh just go away by goose-incarnated · · Score: 3, Insightful

    FLAMEBAIT -- get a life! Anyone who has experience of both J2EE and .NET will tell you that .NET is better thought out, has a more consistant design, has cleaner easier to use APIs, scales better, performs better and is altogether a much nicer environment to work in.

    I am sorry if this upsets the Slashdot worldview but its the truth. Microsfot are better at software than Sun.

    Anyone who has experience of both Apache and IIS will tell you that IIS is better thought out, has a more consistant design, has cleaner easier to use APIs, scales better, performs better and is altogether a much nicer environment to work in.

    I am sorry if this upsets the Slashdot worldview but its the truth. Microsfot are better at software than FLOSS Devs.

    Because, we all know that those are the only things that matter when gambling your future - your legal liability is irrelevant.

    --
    I'm a minority race. Save your vitriol for white people.
  32. Re:Oh just go away by Uber+Banker · · Score: 4, Insightful

    WINE is as to Windows as Mono is as to .NET This is basic logical reasoning.

  33. Re:Oh just go away by Daengbo · · Score: 2, Informative

    If you think MS doesn't have patents on parts of the Win32 API, then you're really messed up. The cross-patent licensing deal with Novell was for all patents. It would also include any Win32 patents. NET vs. Wine isn't relevant there since the patents involved weren't divulged..

    Mono started as a way for .NET apps to run on Linux. People now write for Mono. Wine started as a way to compile Windows Apps for use on Unix. People now also write and certify their applications for Wine. You also appear to think this is different, and somehow get people to mod you up for your poor reasoning.

  34. Re:Oh just go away by Daengbo · · Score: 2, Interesting

    Anyone writing for Gnome should use Vala, Gnome's own c#-alike language.

  35. Re:IDE by DrXym · · Score: 2, Interesting
    Monodevelop is a good IDE, and I don't think having GTK and related libs installed is going to steal your masculinity or anything.

    It's too bad that its primarily for Linux and other platforms have varying levels of support. Considering Mono is supposed to be a cross-platform runtime, it doesn't instil much confidence that an IDE written in .NET expressly for Mono development can't even run everywhere. SharpDevelop (which MonoDevelop was ported from) isn't much better either. Why is it so hard to make an IDE that runs everywhere?

    I'm surprised that more effort isn't going into MonoDevelop. At the moment the defacto .NET development platform is DevStudio. This automatically means that developers develop against Microsoft's runtime, not Monos and also encourages all sorts of bad practice such as DllImports, embedding ActiveX controls, dependencies on other MS tech like SQL Server etc. Perhaps if MonoDevelop were to .NET development what Eclipse is for Java development it would gain a lot more traction. Eclipse manages to be cross-platform. It even runs on different JVMs including (surprisingly gcj). This is where MonoDevelop needs to be.

  36. Re:Oh just go away by rufus+t+firefly · · Score: 2, Interesting

    Anyone writing for Gnome should use Vala, Gnome's own c#-alike language.

    Or writing for Maemo. It's a pretty fantastic way of getting lean programs with advanced language features. Unfortunately, it's still a little lacking for bindings in the stable version (GNet wasn't functional in the last stable version, which was a deal breaker for the stuff I was doing.), but it's very promising for embedded apps.

    --
    "He may look like an idiot, and talk like an idiot, but don't let that fool you. He really is an idiot." - Duck Soup
  37. Re:Oh just go away by rufus+t+firefly · · Score: 2, Informative

    Comparing Visual Studio to something like Eclipse isn't exactly a fair comparison, since Visual Studio doesn't do cross platform, at all. For anyone who doesn't live, eat and breathe Microsoft products, this is a bit of a problem. Monodevelop is currently the only almost equivalent for doing .NET work in a cross platform visual way....

    That being said, if you're doing heavy duty development work and don't use Windows, Eclipse is a much better environment than Monodevelop, so it's pretty safe to say that Java development on non-Windows systems is easier than .NET development. If you don't use Windows.

    --
    "He may look like an idiot, and talk like an idiot, but don't let that fool you. He really is an idiot." - Duck Soup
  38. Mod parent down, here's why by BhaKi · · Score: 2, Interesting

    Sure, but weren't you supposed to be talking about Mono there somewhere? Java used to provide lock-in, too. Hence, the GNU Classpath project, which is pretty much identical in its goals to Mono. Funny that I never saw you people screaming about that one being a trap.

    WINE allows you to run Win32 applications on X/Unix. Mono allows you to run .NET applications on Linux. While superficially these appear similar, there's an important difference: WINE and classpath implement specifications that are publicly available whereas Mono, through a deal with M$, implements something which is not freely implementable. The difference shows up like this: you can write an alternative for classpath or for WINE (although it would take another 10 years) but you can't write an alternative to Mono (no matter how many years you take) without having a deal with M$ either directly or indirectly. In summary, M$ CONTROLS who can implement .NET while that is not the case with Win32 or Java. Can you see the Lock-In now? Anything that requires you to have a deal in order to implement it is not an open standard.

    --
    The largest prime factor of my UID is 263267.
    1. Re:Mod parent down, here's why by Anonymous Coward · · Score: 3, Informative

      I'll clarify my sibling posters: the only part of .net that has ever been published as an (attempted) standard, is version 1.1.

      All other versions are proprietary and MS-specific. Now, tell me, which .net applications use only 1.1? I'll give you a clue: the answer is somewhere above us.

    2. Re:Mod parent down, here's why by something_wicked_thi · · Score: 2, Insightful

      WINE and classpath implement specifications that are publicly available whereas Mono, through a deal with M$, implements something which is not freely implementable

      This is simply not true. There is no public specification for any of these. Java is mainly defined by a set of conformance tests, which is not a spec. Win32 has been partly reverse engineered so WINE can be implemented. Also, I don't know of any deal between MS and Novel about sharing information, but even if there is one, what difference does it make? Go look at how video drivers get written for X. Lots of open source devs sign NDAs so they can see the specs. This is an unfortunate practice, but it doesn't invalidate any of the work they've done. The code they write is still open source.

      I'll also point out that you can write an alternative to Mono simply by reading the source code. The Mono source code has all the information you need to implement Mono. Furthermore, you can do what WINE does and reverse engineer things as you need to, which, to my knowledge, has been exactly what the Mono folks have been doing.

      Finally, I'll point out that the comparison was with WINE and Win32 is not an open standard, either. You've conflated two terms in an effort to mislead people here. Nobody here is saying .NET is a proper standard. It's completely irrelevant to the current discussion.

  39. Re:Oh just go away by robthebloke · · Score: 4, Interesting

    As a .net developer, you have to notice that Managed DirectX doesn't exist anymore, and XNA is too nowhere near as powerful as MDX was. There is SlimDX, which is a binding around DX10, which is quite cool, but has only become available recently.

    The Tao Framework is more or less the best thing out there right now for .NET. It provides cross platform .NET bindings for openGL, SDL/glut/glfw, as well as OpenAL, devil and CG. It's basically a cross platform XNA equivalent.... but a lot better ;)

    Whilst i appreciate /. is full of MS bashing, I'd actually suggest you go try mono with the Tao framework, and it might prove to be a suprisingly pleasing environment to work in....

  40. Re:Oh just go away by robthebloke · · Score: 2, Insightful

    C# is an iso standard language, which puts it in the same league as C/C++.....

  41. Re:Oh just go away by x2A · · Score: 2, Insightful

    Before I tear apart what you think passes for an argument,

    "Ad hominem"

    Erm... do you know what 'ad hominem' means? This is insulting your argument, not you personally. It's insulting to you personally by proxy, on the basis that you believe your argument etc etc. Okay, yes, there is an ad hominem element to it still as you are insulted along with what you said, but that doesn't invalidate it. "Ad hominem" is hardly a defence.

    "Then you have a short memory"

    Or more likely: hasn't come across posts where you express the bug up your ass about java.

    "Wine does, certainly"

    Erm... mono "certainly" does too... not *all*, and often without some porting (such as changing paths to reflect unixy filesystems), which is stated. You may remember what WINE was like as 'early' into the project as Mono currently.

    Among other things, Mono allows transference of skills of Windows programmers to Linux systems, should they desire to work under Linux. If you think people are going to develop under Mono on Linux, and then move their projects over to the Windows platform instead, I think that demonstrates how little confidence you have in Linux.

    "Irrelevant, Ad hominem and a strawman. Well Done!!!"

    Untrue, irrelevant, untrue, and unduely patronising.

    --
    The revolution will not be televised... but it will have a page on Wikipedia
  42. .NET developers: ECMA .NET?#??!!#! WTF is that? by BhaKi · · Score: 5, Insightful
    Do a quick google search for ".NET". All the first results are about MS .NET, not ECMA .NET. WOW, there's even a wikipedia page for MS .NET but not for ECMA .NET.

    All the budding developers who hear about .NET's cross-platform nature will want to learn it. All, except the wisest, of them will be forced to learn MS .NET from MSDN. They'll code a few .NET applications in C#, test them on M$ Windows and let their brains embrace .NET beyond all question. One day they find that most of their applications don't work on Linux/Mono. They'll scream on all public forums - "Linux is crap!!!". Someone tries to explain to them that the problem is because of their heavy usage of M$-specific extensions which are not part of ECMA .NET. Then they'll scream again - "ECMA .NET?#??!!#! WTF is that?". Such is the depth of lock-in involved with .NET.

    --
    The largest prime factor of my UID is 263267.
    1. Re:.NET developers: ECMA .NET?#??!!#! WTF is that? by Locutus · · Score: 2, Insightful

      and what is MS .Net version 3.5 I see mentioned in my search for MS .Net? Mono is only supporting v2.0 and because that is so old that about half of the MS .Net applications out there won't run on Mono v2.0.

      hey, what a surprise and isn't that great to know this whole thing is not to enable Windows developers and apps to work on Linux but so Linux developers and apps can run on Windows.

      Mono is a one way street, it's a gateway to train developers who can only go to Microsoft's platform for updated versions of the software stack. And, once you go MS, you can't go back. So where is the ECMA version of all this and has it even reached MS .Net v2.0 compatibility?

      Every Microsoft technology I've ever seen/heard of has been a one-way street and that is because they need to protect their businesses. Develop with Microsoft's tools and be their tool. It is now pretty much only in the open source market where tech is growing to solve problems instead of tech being used to protect a financial position as it is in Windows. Does anyone remember the early/mid 90s when there was competition in dev tools and there was a dev tools market?

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  43. Re:Oh just go away by Lord+Lode · · Score: 4, Interesting

    Or better: Write a C# compiler that compiles to the java virtual machine.

  44. Re:Oh just go away by IceCreamGuy · · Score: 2, Insightful

    My claim is that of the two techs mentioned (Wine and .NET), one enables migration from Windows, the other prevents it.

    And Mono now negates that last part you said since it allows you to move .NET code over to *nix, so, relating to the actual discussion of Mono, what exactly is your point again?

  45. Re:C# wins over Java any day IMO. by LizardKing · · Score: 2, Informative

    You may be a master of C#, but you clearly know very little about Java - all objects are passed by reference in Java. Fundamental types like int, long, etc. are passed by value, and I understand this is the same in C#.

  46. Re:Great but... by jfbilodeau · · Score: 2

    You haven't answered the question: Why not use Java...or for that reason, why use .NET for cross-platform development over Java?

    There are many IDEs written in Java, and I refuse to run Silverlight/Moonlight on my machine as long as it's a MS proprietary solution (ie: let's-trap-the-customer-into-another-windows-only-solution).

    --
    Goodbye Slashdot. You've changed.
  47. ISO by Spy+der+Mann · · Score: 4, Insightful

    C# is an iso standard language, which puts it in the same league as C/C++.....

    ...and OOXML.

  48. Re:Oh just go away by nschubach · · Score: 2, Insightful

    Yes, they will both be in a struggle to maintain 100% compatibility as well, to a point. As soon as Mono comes out with a new version Microsoft will create a new incompatible version like they have been doing. This is the position MS want to be in. They've somewhat lost the ability to change Win32 because it would break everything. They can create a new version of .NET and just claim you need the new run time. Seriously. Why do we need 6 run time environments (1.0, 1.1, 2, 3, 3.5 ... and soon 4)? While I am on the subject... if 3.0 is built on 2 with WPF, why isn't it called 2.5 and why isn't 3.5 (3 with LINQ?) called 2.55? I mean, let's give Java it's due. Version 1.6.4 will run all old Java code and .NET 2 won't run 1.1 byte code without the 1.1 libraries.

    --
    Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
  49. Re:Oh just go away by Just+Some+Guy · · Score: 4, Informative

    Java used to provide lock-in, too. Hence, the GNU Classpath project, which is pretty much identical in its goals to Mono. Funny that I never saw you people screaming about that one being a trap.

    The Java Trap was that you might get stuck on a language with no FOSS implementation and be reliant on a proprietary runtime. GNU Classpath and friends disarmed the trap by providing FOSS backends.

    The Mono Trap is that you might get stuck on a platform encumbered by patents, so that even if you're coding on a 100% FOSS system, a court ruling granting an injunction against further release and development of Mono could yank the rug out from under you. Maybe that's no big deal for cute games or desktop applets, but there's no way on Earth I'd stake my business on a platform that may be nuked from orbit at any moment.

    It's really quite obvious to anyone with any actual knowledge of how the industry works that people are going to write applications without Linux in mind.

    It's equally obvious that Microsoft has never entered a relationship without destroying its partner. The naivety behind thinking that maybe they'll play nice this one time, for the first time in the history of their company, is simply astounding.

    --
    Dewey, what part of this looks like authorities should be involved?
  50. Re:It's a trap, get an axe! by geminidomino · · Score: 2, Funny

    Warning: Incorrect merging of two geek quotes!

    Correct quotes:

    Admiral Ackbar(RotJ): "It's a trap!"
    Ash (Army of Darkness): "It's a trick. Get an axe."

  51. Re:Oh just go away by Abcd1234 · · Score: 2, Informative

    It's false logic, as demonstrated by the fact that people don't target Wine

    Uhh... yeah they do. How do you think Google ported Picassa to Linux?

  52. Re:Oh just go away by dnoyeb · · Score: 4, Insightful

    Thats the exact position Java has been in for years. Language Spec and JVM spec were open, but Sun's runtime was not. Anyone could make their own runtime. Yet people complained that Java was not open. So why would MS get special treatment for an open spec without an open platform?

  53. Re:Oh just go away by rufus+t+firefly · · Score: 2, Interesting

    SharpDevelop is better than Monodevelop, and is BSD licensed. It also, frankly, pwns the crap out of Eclipse. The only reason I don't use it on Windows (its much faster than VS, btw) is that its refactoring tools aren't yet on par with the excellent Resharper add-in.

    You missed the most important part, which was the cross platform part of it. SharpDevelop works under Windows, nothing else. Monodevelop is more or less a port of SharpDevelop meant to work with GTK#.

    As far as cross platform stuff goes, Monodevelop is all you're left with for C# stuff (if you discount Eclipse plugins).

    Regardless, you can compile cross platform binaries with Visual Studio. If your time is worth so little that the $200 license for Windows is too high, then I respectfully suggest you reconsider either your rates, or your career.

    You know, the "Linux users only use Linux because they're too cheap for Windows" meme is a little old. It has nothing to do with the license for Windows -- I just find it to be an inferior operating system for both my development tasks and my daily computing tasks. The fact that you naturally assume that I'd rather waste my time either maintaining a completely separate virtual or physical machine simply for the privilege of having a marginally nicer UI for designing apps which are only guaranteed to work as advertised on a single operating system?

    As it stands now, I have no trouble using Eclipse as an IDE... I just avoid using C# for anything other than CLI tasks. Saying that anyone who doesn't use what you use is cheap and/or underpaid and/or incompetent is just plain condescending. If not ignorant. Use what you're comfortable with, and don't dog other peoples' choices in operating systems. It's just a single tool, and not worth scrapping my entire workflow and machine installation to accommodate.

    --
    "He may look like an idiot, and talk like an idiot, but don't let that fool you. He really is an idiot." - Duck Soup
  54. Re:Oh just go away by BlueGecko · · Score: 2, Insightful

    Given that Mono runs on Windows, what happens if you try running a Win32 version of Mono under WINE?

  55. Re:Oh just go away by Tatsh · · Score: 2, Interesting

    It works a little bit better than .NET (with winehacks) as far as running GTK# apps and all, but you might as well use native Mono for that. I got .NET 2.0 installed with winehacks and attempted to run nLite and of course, it crashed (a framework crash, not a Wine crash). I tried with Mono 1.3 last time but that was pointless for that. Wine's project plan is to support Win32 Mono as far as I know (especially since it is free software) to run .NET apps.

  56. Get used to type erasure by ClosedSource · · Score: 2, Informative

    Some features in C# such as generics can't be implemented as is to run on a standard JVM because the JVM doesn't have the capability to support it. .NET's CLR was designed to support generics at the byte code level. In Java, generics are implemented by the Java compiler that just hides the object casting from the programmer. The result is that the JVM doesn't really know what the types are at run time.

  57. As bad as OOXML by Yfrwlf · · Score: 2

    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.

    --
    Promote true freedom - support standards and interoperability.