Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Microsoft Novell Software Linux

Mono 2.0 and .NET On Linux 405

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:
  • 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 IBBoard ( 1128019 ) on Tuesday October 07, 2008 @03:23AM (#25282349) Homepage

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

  • Re:Oh just go away (Score:5, Interesting)

    by Merusdraconis ( 730732 ) on Tuesday October 07, 2008 @03:26AM (#25282379) Homepage

    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.

  • by SandmanWAIX ( 674838 ) on Tuesday October 07, 2008 @03:27AM (#25282385)
    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.
  • Re:Oh just go away (Score:5, Interesting)

    by Chuck Chunder ( 21021 ) on Tuesday October 07, 2008 @03:29AM (#25282399) Journal

    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.

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

  • by zermous ( 1196831 ) on Tuesday October 07, 2008 @03:41AM (#25282459)

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

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

  • 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 dbIII ( 701233 ) on Tuesday October 07, 2008 @04:01AM (#25282565)
    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.

  • Re:Oh just go away (Score:3, Interesting)

    by Tatsh ( 893946 ) on Tuesday October 07, 2008 @04:02AM (#25282573)

    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.

  • by Kentaree ( 1078787 ) on Tuesday October 07, 2008 @04:05AM (#25282601) Homepage
    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?
  • Mostly P/Invoke (Score:2, Interesting)

    by rdnetto ( 955205 ) on Tuesday October 07, 2008 @04:32AM (#25282777)

    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.

  • by Westley ( 99238 ) on Tuesday October 07, 2008 @04:34AM (#25282793) Homepage

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

  • Re:Oh just go away (Score:2, Interesting)

    by Anonymous Coward on Tuesday October 07, 2008 @04:38AM (#25282811)
    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.
  • Re:Oh just go away (Score:2, Interesting)

    by anomaly256 ( 1243020 ) on Tuesday October 07, 2008 @04:50AM (#25282875)
    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
  • by jesterzog ( 189797 ) on Tuesday October 07, 2008 @04:52AM (#25282887) Journal

    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.

  • 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 YttriumOxide ( 837412 ) <yttriumox@nOSpAm.gmail.com> on Tuesday October 07, 2008 @05:48AM (#25283155) Homepage Journal

    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:Oh just go away (Score:2, Interesting)

    by Daengbo ( 523424 ) <daengbo&gmail,com> on Tuesday October 07, 2008 @05:52AM (#25283179) Homepage Journal
    Anyone writing for Gnome should use Vala [wikipedia.org], Gnome's own c#-alike language.
  • by cyberjessy ( 444290 ) <jeswinpk@agilehead.com> 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 StrawberryFrog ( 67065 ) on Tuesday October 07, 2008 @06:08AM (#25283289) Homepage Journal

    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.

  • by cyberjessy ( 444290 ) <jeswinpk@agilehead.com> on Tuesday October 07, 2008 @06:20AM (#25283353) Homepage

    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.

  • Re:IDE (Score:3, Interesting)

    by DrXym ( 126579 ) on Tuesday October 07, 2008 @06:29AM (#25283415)
    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.

  • Re:Oh just go away (Score:3, Interesting)

    by rufus t firefly ( 35399 ) on Tuesday October 07, 2008 @06:37AM (#25283465) Homepage

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

    Or writing for Maemo [maemo.org]. 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.

  • by BhaKi ( 1316335 ) on Tuesday October 07, 2008 @06:43AM (#25283491)

    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.

  • Re:Oh just go away (Score:5, Interesting)

    by robthebloke ( 1308483 ) on Tuesday October 07, 2008 @06:44AM (#25283501)
    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 [taoframework.com] 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....
  • Re:Oh just go away (Score:2, Interesting)

    by x2A ( 858210 ) on Tuesday October 07, 2008 @07:28AM (#25283737)

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

    Are you serious?! How do you think that Mono prevents migration of software from Windows to Linux? Bare in mind that for that to be true, what you're saying, is that if I have some software written for .Net and want to migrate it to Linux, I could do if it wasn't for Mono? So surely that means that if I avoid installing Mono, then I will be able to migrate it to Linux? Without Mono, I can run it, but installing Mono prevents me from running it? If that's not what ya meant, maybe you could word your argument more clearly?

  • by rwiggers ( 1206310 ) on Tuesday October 07, 2008 @07:31AM (#25283759)
    If Orkut and Google Docs are .Net 3.5, how can I run them from my linux box?
  • Re:Oh just go away (Score:5, Interesting)

    by Lord Lode ( 1290856 ) on Tuesday October 07, 2008 @08:11AM (#25284057)
    Or better: Write a C# compiler that compiles to the java virtual machine.
  • Re:Oh just go away (Score:3, Interesting)

    by rufus t firefly ( 35399 ) on Tuesday October 07, 2008 @10:45AM (#25286221) Homepage

    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 [whirlpool.net.au]. 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.

  • by StrawberryFrog ( 67065 ) on Tuesday October 07, 2008 @12:27PM (#25287933) Homepage Journal

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

    Check out Stackoverflow [stackoverflow.com]. 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.

  • Re:Oh just go away (Score:3, Interesting)

    by Tatsh ( 893946 ) on Tuesday October 07, 2008 @01:01PM (#25288531)

    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.

  • Re:So what... (Score:3, Interesting)

    by Elektroschock ( 659467 ) on Tuesday October 07, 2008 @04:06PM (#25291151)

    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 platform for those apps than to update to a new Mono release without having time to test it."

Work is the crab grass in the lawn of life. -- Schulz

Working...