Please Microsoft, Stop Holding .NET Back!

As dedicated developers, end-users, and champions of Microsoft’s .NET Framework, we’re making a final plea to Microsoft and the .NET Framework team to save .NET and make it a real multi-platform framework. Please!

Sun could (and did) do it with Java, so why can’t Microsoft just swallow the pill already and provide real support for the .NET Framework on all operating systems? Yes, that includes Linux and Mac too. It’s ironic, because the .NET Framework has so much potential as a platform with its unique multi-language structure, nifty features, excellent libraries, (relatively) well-performing output, and darn-good innovative technologies like LINQ coming-up and XAML already here. Yet Microsoft just doesn’t realize that if they truly want .NET to succeed, they’ll have to bite the bullet and stop pretending that only officially supporting Windows won’t make users leave Linux/Mac/BSD/Whatever and buy licenses for Windows instead.

Now, that said and done, it’s interesting to note that in past Microsoft has been much more kind to Mac OS and its users with regards to Office, MSN Messenger, even to some extent the .NET Framework, Silverlight, and just about everything else than they have been to Linux and the rest of the world – despite Mac OS’ relatively low market-share.

Obviously Microsoft doesn’t view OS X as a threat (whether they’re right or not isn’t the question) and therefore feel comfortable enough to release several otherwise Windows-only applications, platforms, suites, etc. to the Macintosh domain. Be it Office or Internet Explorer (yes, the failure), Microsoft has always pretended Linux and its share of the OS Market simply doesn’t exist. Technically, that’s not wrong: Microsoft has its own OS to push, and if it sees Linux as a serious competitor and tries to force users looking to take advantage of other non-OS Microsoft solutions to use Windows, that’s their right and their call to make.

But with .NET, what Microsoft just doesn’t seem to realize is, they gave up the privilege of releasing Windows-only binaries when they declared .NET a cross-platform development package. While it may be unfair to compare Sun’s Java along with their own OS (Solaris) to Microsoft’s .NET and Windows because Solaris was almost never targeted as a home operating system (until Jonathan Schwartz came up with that wonderful idea), it does beg the question: why is Microsoft so unwilling to support Linux, OS X, and BSD in their quest for cross-platform programming?

Look at it this way: how much time, money, and resources (programmers and otherwise) would it take from Microsoft to port a fully working and 100% compatible version of Visual Studio .NET, the Windows Controls, and C#/VB 2005 to OS X and Linux? The answer: not much… relatively speaking of course.

People won’t switch to Microsoft Windows just because of the .NET Framework. Sure, people already using Windows may not be comfortable leaving Windows because their .NET programs won’t comfortably run on any other operating system, and Windows developers may feel a little bit locked-in if that’s all they know (to put it mildly!), but that’s about it. Let’s face it: Microsoft is only hurting .NET developers and end-users alike by locking them into the Windows platform. While this may seem like something that Microsoft excels at doing and has tons of experience with, in this case it’s just absolutely illogical and insensible seeing as it’s not winning them any Windows licenses nor doing them any favors with the developer crowd (yet Ballmer’s “Developers, Developers, DEVELOPERS!” comes to mind…).

To be brutally honest, Mono and MonoDevelop (the .NET Framework and Visual Studio IDE equivalents for Linux, respectively) are complete crap – compared to the Windows versions that is. While Microsoft may “endorse” Novell’s project, that’s nothing more than a political statement, a strategic business move, and a (quite pitiful) attempt at making the .NET Framework look more cross-platform than it really is(n’t). Sure, Mono is (kinda) great, but it’s absolutely no substitute for a full 100% compatible port of Visual Studio and the .NET 3.0 platform to Linux, created and maintained by none other than Microsoft.

Microsoft needs to wake up and realize that they’re not gaining themselves any favours by ignoring the fact that there is a sizeable amount of the Linux userbase willing to adopt Microsoft solutions so long as they actually work. If Microsoft can’t release a Linux-compatible version of Silverlight, how the hell can they label it as a “Flash killer?” What about Windows Media Player 11 and the WMP codecs? Since WMP 11 shipped, Firefox and Opera plugins to add WMP functionality to their browsers was broken. Microsoft may have solved it for Firefox, but what about everyone else?

The bottom line is, Microsoft doesn’t understand the definition of the word “standard.” While that’s fine (for them) when they’re ignoring standards set by others, it’s not OK if they want standards they define to be adopted unanimously by the rest of the computer industry as well. That’s just not what a “standard” is. In order for something to be a standard, it has to just work… Everywhere. Yes, Linux too. We want to be able to just drag and drop an application compiled on Windows (no, not a console application, a real application) to Linux, OS X, BSD, or Solaris and just have it work.

A year ago, we published a 5-page article commending Microsoft for the .NET Framework’s ease-of-use, power, and aesthetics; while concluding that all it needs to become the only programming language desktop-developers would ever need was improved multi-platform support. Unfortunately, that hasn’t happened, and judging by Microsoft’s release of Silverlight earlier this week, it’s not going to happen for a long, long time. So please Microsoft, can you do something about it?

37 thoughts on “Please Microsoft, Stop Holding .NET Back!

  1. Sorry, it’s not that easy. As a Unix developer I would refuse to use a build environment served in binary form.

    Microsoft would have to open-source the framework too, like SUN is on it’s way to. MS will never do this.

  2. I disagree – it doesn’t have to be Open Source to be accepted by the Linux community.

    I agree with what you’re saying, an open source Visual Studio would end all competition forever; but you know, it’s not like Linux users never ran Java apps in the decade prior to Sun’s open-sourcing…

    As a developer, I’m willing to settle for MS doing half of what Sun did (before last year) in terms of community, cross-platform, and support.

  3. Sun’s Java got popular – even on the Linux/Unix platforms – while being closed source. The talk that “it has got to be open source or no one will use it” is utter trash. Some of the best pieces of software that many people use on their Ubuntu (or whatever) are closed source and I have news for you: it doesn’t suck.

    Idealism and technology do not mix in real world outside the small boxes of imaginary worlds of the open source zealots.
     

  4. The answer is obvious. Most useful parts of .NET are tied to Win32 and other MS proprietary technologies. Let’s take a look at SUN/Java case. They have leverage OS neutrality from the very beginning. Every API is carefully architected to be platform independent. Let’s take a look at JTA. This is based on industry standard, which is by definition platform neutral. See what MS did – they reinvented their own, Windows only MSTS. Take a look at JMS, MS tied .NET with their own MSMQ – this is true for every single technology. C’mon, .NET never was portable, and never be portable. It runs in VM, but this doesn’t make it portable at all…

    Artur 

  5. Come on… it’s like you’re pretending this isn’t Microsoft you’re talking about.  Their primary motivation is and has always been fear. They will never port .net to linux. Ever.

  6. What you have said about the mono project as complete crap. Is it actually true. I having used mono yet, but was thinking about it.

  7. “champions of Microsoft?s .NET Framework”…LOL

    I have yet to meet some programmer worth his salt that calls himself that.

    BTW, computer guru, I could list about 100 ways why other IDE’s are 10 years ahead of Visual Studio…but we don’t want a flame war here, do we.

    As I read through these threads… I don’t think I have to say much, let’s just look at some gems from your loyal readers…

    “Some of the best pieces of software that many people use on their Ubuntu (or whatever) are closed source and I have news for you: it doesn?t suck.”

    “Idealism and technology do not mix in real world outside the small boxes of imaginary worlds of the open source zealots.” — Keep telling yourselves that. The “open source zealots” have moved on from those issues, if they even were zealots at some point. OSS is about pragmitism and profits. Calling OSS devs zealtos is just another lame stereotype.

    “What you have said about the mono project as complete crap. Is it actually true. I having used mono yet, but was thinking about it.” —- LOL…and I plan to be next world’s richest man. I haven’t done anything towards it yet, but I was thinking about it.

    Bunch of douchebags…

  8. The original post is absolutely spot on.

    As a Java developer, I see an awful lot to like happening over in .NET at the moment. LINQ is brilliant, the dynamic language support looks promising, the functional programming features being introduced into C# should be very useful. Nullable types, closures, XML literals… all very innovative.

    So am I going to ditch Java and develop for .NET? Not a chance in hell!
     

  9. Mono is shipping in several commercial projects and is making lots of progress every day. It takes time and money to equalize Microsoft’s investment in .NET tools.

    Microsoft itself produces Rotor, a fully compliant CLI for .NET for Mac OS X and Linux; it is released under their “shared source initiative” which is certainly not ideal, but it’s there.

  10. Unfortunately the author is wrong on four points.  One is the assumption it would be easy to create a fully complete version of .NET for Linux.  If they went the Java route they could get the logic working, but the UI part would either suffer dramatically or be extremely difficult.  Impossible, no, but if the difficulty is similar to a release of Windows I think that?s significant. 

    The second mistake is assuming all Linux developers would switch.  Significant numbers are religious, and would never switch.   Most of the rest are in some way connected to a religious person, company, product or project that makes it difficult or impossible to switch.  Beyond that, a lot are already invested in other things, like Java, and while they might in time switch it would take a long-long time.  That would be true even if something not made by Microsoft, and 5 times better than anything else out there became available (or already is).

    The third mistake is assuming there is great value to Microsoft in getting Linux developers to switch.  Sun has proven how ultimately useless it is to be that company.  People love you but they give all their money to some company that traps them Into Buying Major consulting services.  There would be value after most of Microsoft?s applications, including Office, are written on the .NET Framework.  In this case Microsoft would be able to sell those tools to Linux developers, users, IT staff, and most importantly, organizations.  But most likely they?d find more money in supporting Solaris than Linux, since Solaris users are more apt to actually spend money on software at all.  (That?s also why they support Mac OS more).

    The fourth mistake is assuming it wouldn?t hurt Windows.  If .NET ran just as well on Linux as Windows (it would be hard as hell to do this because of the way Linux distros fork and change), it would present a threat.  The same threat would be true if Java ran GUI?s as well as .NET or Windows.  The fact that it is extremely difficult to do is what a) makes Windows hard to develop b) makes it valuable. 

    I?d bet the harm is exaggerated in the minds of plenty of MS executives (like all risks are in almost all executives minds).  It’s not worth denying the development of other revenue streams, but it is real.  But until those revenue streams exist, the downside is still greater than the upside.

    Now, what would make sense is if MS created a version of ASP.NET for Linux and sold it at $500-$1000 per server.  They could create a version of .NET with all the GUI support and sell it to Linux users, but I doubt there is a price point which would outweigh the development cost yet please Linux developers.  If it was $70-$100 for an end user to purchase a license (As in, if you want to run any .NET programs, pay this amount), no one would buy it.  Some people might at $30-$50, but not enough to make it worthwhile.  Less than that and it?s not worthwhile even if all the Linux users bought it, unless you?re going to trick them into using it so you can sell them consulting services later (ala IBM).  Few developers agree to per-user royalties, and I expect you?d find even less in Linuxland.

    Someday, maybe.  For now, not going to happen.  Microsoft should keep their standards, specs and such open so things like Mono can happen.  And if they don?t want to I think it?s perfectly justifiable for someone (ala the government) to make them do so.  But you can?t force them to rewrite all the Windows GUI code for Linux.  If someone actually can economically write a .NET clone for Linux that satisfies your interests, they should have the tools to be able to.  But in my opinion, they can’t do it without either losing money or the support of far more open-source developers are likely to support such a project.

  11. Ryan, you have some interesting points regarding the sale of a .NET-compatible framework to Linux users – but I disagree with one thing you say: you claim the article says it won’t hurt Windows sales, yet I think the article said just what you did: it will.

    The way I see it, this article is a brilliant play on open-letters/satire because it’s full of wishful-thinking, and then debunking it along the way too. Excellent article, great work & kudos to the author(s).

    I have to agree with the article. .NET is great and all, and MS could do with more love coming in its direction, but it’s not going to happen – at least that’s the way I’m reading the post above.

    ravuya, that’s not really true. Microsoft created rotor to urge the creation of something like DotGnu and the Mono project. They explicitly state “use this to learn how to make your own cross-platform code.” It’s only available for personal and student use – that means even open-source non-profit freeware projects can’t use it – because it’s no longer personal use!

    I don’t consider that to be a port of .NET. As far as I’m concerned, it’s just proof-of-concept.

    If Microsoft wants .NET to succeed, they should split it into its own company. Honestly, that’s the only hope. Separate .NET from Windows, technically separate it from Microsoft; and let nature take its course.

  12. Excellent essay. I would like to share a couple of references that fit well here as they answer questions you raise:

    Microsoft’s ‘Everywhere’ excludes Linux

    ,—-[ Quote ]
    | This browser add-on enables rendering of WPF content, but
    | “Everywhere” doesn’t include Linux.
    `—-

    http://www.itwire.com.au/content/view/7794/53/

    “Microsoft :For example, we should take the lead in establishing a common approach to UI and to interoperability (of which OLE is only a part). Our efforts to date are focussed too much on our own apps, and only incidentally on the rest of the industry. We want to own these standards, so we should not participate in standards groups. Rather, we should call ‘to me’ to the industry and set a standard that works now and is for everyone’s benefit. We are large enough that this can work.”

    http://www.os2site.com/sw/info/comes/px09509.zip

  13. “Come on? it?s like you?re pretending this isn?t Microsoft you?re talking about.  Their primary motivation is and has always been fear.”

    Bs. Microsoft is a corporation. Corporations exist to make money. They make money. Their primary motivation is making money. In the long run stuff like porting .net to Linux doesn’t make as much money. It’s quite rational behaviour from their behalf. (The same can not be said about you.)

    “C?mon, .NET never was portable, and never be portable. It runs in VM, but this doesn?t make it portable at all?”

    The new frameworks like the WPF are very portable. (It consists basically of a state engine + event engine + lots of quite generic xml stuff + binds to drawing libraries ["Cairo"]) Porting the main VM is pretty easy too. (When Microsoft was designing NT they hired the same guys that made VMS, and some venerable Unix people. It’s not compatible alright but it’s not from entirely other planet. That means that the overall environment the VM is running is is quite similar…) There are parts that are harder but a) they could leave some legacy stuff like winforms out b) it’s still doable. Futhermore Microsoft has competent engineers for the task..

    Oh yes, porting most of the .NET would be a task of couple weeks to couple months for Microsoft. If they wanted to. It’s portable enough. The point just is the earlier: there’s no money in it.
     

  14. Your post clearly hilights the value of Java.   You’re foolish to think MS would allow this to happen.  There are other technical problems beyond .Net that would have to take place as well.  IIS would need to be ported for one, otherwise there would still be subtle differences between the windows version and the multiplatform version.

     Just use Java, participate in the open JDK project and join the JCP.  Microsoft doesn’t understand community at all.  They break compatibility with impunity.  You’ll be much happier in the Java environment.
     

  15. IIS is not a part of the .NET Framework.

    If you’re referring to ASP.NET, even on Windows it’s not acuatlly a part of IIS, but an extension – a single DLL that you add as an ISAPI filter + extension to IIS. This is probably the very easiest to re-deploy on another OS since it doesn’t have UI involved (and in fact, Mono is just perfect for that).

    Rob, while I agree with your POV, your premise is invalid. Microsoft may break standards, but not compatibility…. Every officially supported platform (basically, Windows and Windows alone) remains compatible – no problems there.

    But I agree with your conclusion.. so it doesn’t really matter ;)

  16. Why do you guys keep getting fooled by Microsoft, and then keep screeming they fooled me??? I’ve seen this before, and I moved away from getting fooled by this crap.  At one time MS was even claiming that if you write to MFC, your apps will get Macintosh apps for free.  They did have it working for simple apps, just like what you are experiencing now.  Get away and start using a real open platform like Java, Eclipse, Perl, Python, Unix, etc.  The longer you keep holding on to MSFT tools, the longer MSFT will take the caret.

  17. Actually, I disagree with some of what was said. I think Microsoft SHOULD open source the framework but it’s hardly surprising that they haven’t. Whatever the case, I think the mono project is pretty amazing. It’s come a long way in the past year or two. I feel quite comfortable using it for production applications. Several other major products already run it. Second Life anyone?

  18. I think MS is capable of producing surprises. They surely watch closely what they users / customers want, so if we ask it politely & insistently we may have it. I like Alyssa’s idea of a new spin off for developer tools from MS, just like CodeGear from Borland. Who knows what the future holds?

    However, interesting article & debates.

  19. Suppose MS did release a complete version of .NET + tools for Linux and Mac, I’d certainly check it out again. I was seriously unimpressed with C# and the .NET 1.0 framework and haven’t bothered to look at 2.0 or 3.0, but the possibilities of mixing and matching languages was (and is) very exciting. 

    Then a year or two goes by and suddenly the next version for Mac is late, or a strange bug pops up under Linux and the fix keeps getting pushed back. Everyone except Windows users would have a broken/limited platform (again) with a lot of investment in writing programs for it and no escape (Mono doesn’t cut it now; a few years of direct competition from MS definitely won’t improve that.) What are the odds anyone would write to the old version to keep supporting OSX & Linux?

    Trouble is, MS has done exactly this so many times in the past that I can’t see how they’d ever convince me it wasn’t all a trick again. They can screw over their competition if they want, but I don’t choose to let them get me, and I especially don’t want to help them do it to others.

  20. What is to stop MS from embarrassing the Unix community just to gain market share. While gaining market share and trying to put Adobes Flash out to pasture. Then removing support for certain platforms.

    It isn’t like MS has a great history of supporting other platforms.

    1) IE for the mac
    2) WMP for the mac
    3) WMP for Linux; what happened it was never release
    4) Office support for the Mac (IE: Scripting) is gone in the new version.

    There is too much for MS to gain and too much for the community to loose. I personally will not support MS in anyway shape of form.

  21. You may have noticed the difficulty that Microsoft had getting Visual Studio to work on Vista.  Porting to Linux (Which one?) and then maintaining the code would be a big expense.  For what?  There aren’t a lot of developers who’re going to pony up for Visual Studio pro or Team System. 

    I’ve always contended that the original push to present .Net as a cross platform framework was instigated primarily by the impending Itanium, which never happened.  Using IL and being able to JIT to any machine code was a necessity when the processor was going to change.  Now that the Itanium is dead, or nearly so, much of the original cross-platform motivation is gone.

     

  22. You write about what you want (and me too by the way): MS should port .NET to OS X and Linux and any other relevant OS. We want that because we sometimes feel uneasy, by becoming a .NET professional, you tie yourself to Windows, and it doesn’t feel right. But the way you try to present this as being a wise decision for Microsoft is missing the point.

    Porting .NET is a lot of work. Imagine porting Windows Forms to OS X and to KDE/Gnome? And for what? For all those big banks/insurance companies/government agencies/etc. that run on 100% Windows so they can finally contemplate switching to OS X? Or for those small design bureau’s that run a mix of Windows and OS X? Seriously, there is no business case.

    “Developers, developers, developers” sure, but there’s probably already a couple of million devs using .NET. And the market for Windows/Office/Exchange lock-in is way bigger than potential sales of Visual Studio (are they gonna port that to OS X as well?).

    So, you need to stop looking at this not from your perspective and try to find a reason they should satisfy your wishes. You need to understand that the real customers (multimillion accounts) are not asking for this. That is the mistake I also see in discussions about Internet Explorer. When MS says: our customers are not asking for CSS 2.1 compliance, developers tend to cry out: “Yes we do” but they forget that they are not the customers that MS refers to.

  23. Come on! Mono is not designed to be a drop-in replacement for the .NET Framework. Both Mono and .NET Framework implement the CLR and core libraries. Both do that pretty well, but differ for additional libraries. For exemple, .NET has pretty good UI libraries, while Mono has damn good libraries for databases and cryptography. Mono even shipped a compiler with generics support before the final version of .NET 2.0.

    So Mono is not equivalent to .NET and .NET is not equivalent to Mono. Both have great advantages in some areas. Before saying that something is crap, just try to learn it better. They are just different with a common base.

  24. “Microsoft may break standards, but not compatibility?. Every officially supported platform (basically, Windows and Windows alone) remains compatible – no problems there.”

     
    Never used past versions of Office documents with later versions of Office, eh?

     
    You prefer ribbon menus to the old ones, eh?
     

    Oh, wait, you said WIndows alone…right… 

     

    You all need to get a clue. Bill Gates runs Microsoft – and if something doesn’t make him gobs of money, it isn’t done. Period. That’s why there is no security, reliability,scalability – or basically any other “ability” – in Windows except “featuritis” – because Bill and his droids can sell features – and features only.

     
    And they can’t even do features right. I remember years ago, back when Microsoft had a COBOL, when I noticed that you could look at their language products in comparison to those from Borland and others and discern that they were designed by making a list of useful features to leave OUT – and whatever was left was what you got. Why? Because those features left out were TOO useful – and too hard for Bill and his 24-year-old incompetents hired right out of college to design and implement. And anything that WAS implemented was done so in such a complicated way as to be nearly unusable. This is reflected in Windows 2003 Server, Active Directory and numerous other Microsoft “technologies”.

     

    Microsoft is history. Unless they can do a “re-invention” like IBM did in the ’90′s, they’re simply on a slow-mo roll to the dustbin of technology companies. It may take another ten years, but it’s over. Vista was the last nail in the coffin.

     

     

  25. It’s a bit foolish to think that Microsoft cares about anything or anyone but itself, seeing the long history of deception it has.

  26. I’ve suggested that Microsoft open the source of the Visual [Programming Language] Express series, under the template Microsoft Community License, which is as near to the Mozilla Public License as Microsoft dares to approach, primarily to assure developers that Microsoft won’t leave them in the lurch, as has happened to far too many people …

     I firmly expect it won’t happen, of course – Microsoft (chiefly BillG and SteveB) gets paralytic with apoplexy over the idea expressed in the GPL that you can do whatever you like with the GPLed code, as long as you don’t stop others from doing the same sort of thing with it, and as long as the cool things you’ve been doing with the code are available to whoever wants them – and that’s Microsoft’s big Achilles Heel.  They can’t see things from others’ points of view.

     That should be obvious from their various mutterings about standards – there’s quite a lot of interesting stuff in their ECMA 376 “standard”, except that there’s a whole heap of cruft as well that specifically refers back to the various incarnations of MS Office etc, beforehand – and they haven’t abstracted the functionality out of that, they’ve just let the cruft stay, as is where is – “for the sake of backwards compatibility”, they say.  They don’t understand why people are up-in-arms over the issue!

     It’s all a political issue.  Nothing but politics.

  27. It seems that most people seem to be missing the point. The point is that Microsoft’s .NET framework is not some program to be sold or distributed under its own weight. The arguments of ?M$ would make more $$ if they ported to so and so? would only be true if they intend to make money from .NET alone. However, .NET is not a standalone product. It is designed to leverages M$s monopoly. Sure, .NET may make more money if it was cross platform, but that would cause people to buy less windows boxes and jeopardize their monopoly. And M$ doesn’t do anything to jeopardize their monopoly.

    It more or less comes down to: Developers develop for windows because that is where the clients are and they have good dev tools. People buy windows because that is where the applications are. Then more devs develop for windows because that is where their clients are etc. M$ will do anything to uphold this monopoly and it is *much* more profitable then any single app. For example, M$ simply gave away its web browser for free simply to ensure Netscape wouldn’t be a thread.

    Read this ( http://www.albion.com/microsoft/ ) if you want the real facts on Microsoft.

  28. Sorry, it?s not that easy. As a Unix developer I would refuse to use a build environment served in binary form.  Microsoft would have to open-source the framework too, like SUN is on it?s way to. MS will never do this.

    The entire framework is not obfuscated; the IL is completely visible to whomever wants to read it or translate it into any language.  Check out Lutz Roeder’s Reflector before you start flapping those gums again.  Or waggling those fingers, whichever you prefer.

  29. Sure Visual Studio is a bit behind due to closed source and due to the evil empire holding tight as if it were a last gasp for money. 

    In my perspective I applaud microsoft for trying at least. I want a better faster enviroment than java. I am sorry but if you have ever coded in java and watched how slow the runtimes are even on a solaris server. I will take .net anytime and yes we all know .net has its issues too.

    I hope with microsoft opening up and involving the open source community it will finally put a nail in the coffin for sun. *sarcasm*

  30. Hand waving does not a rational argument make, so please at least outline the technical details surrounding precisely why Mono sucks as a .NET implementation. As I pointed out with empirical data, MS can’t even get .NET right on their own platform, and Mono has a pretty decent .NET 2.0 compatible VM and runtime running on multiple platforms and for multiple architectures.

    I’m not a Mono fanboy, as I use Visual Studio and MS’s .NET everyday for work, but credit where credit is due: Mono is a pretty good implementation of .NET, and very cross platform to boot.

  31. I think you’re mixing up the CLR with .NET.

    Mono is a good implementation of the CLR. The code is the same, but the output is different.

    With Mono, you have to use GTK#. I don’t consider a platform to be “equivalent” if I have to recode the entire interface and the hooks.

    Sure, the code beneath may look more or less the same (more of more than of less), but the amount of work involved in making a .NET application run on Mono is insane. I don’t know if you tried it, but it’s no different than starting over from scratch.

  32. Mono has a mostly working implementation of Windows.Forms, and with the recent release of the Moma checker and the subsequent bug reports that have been fixed, they’re closer than ever to full API compatibility.

    So no, you don’t have to use GTK# for GUI development (I believe both SharpDevelop and Paint.NET now work out of the box). A great deal of .NET development is web-based as well, for which Mono is eminently suited. I grant you that they’ll always lag behind MS simply because of the size of the .NET APIs (much of which is unnecessary bloat).

    Also, consider the fact that you can develop on GTK# in the first place, and have it run even with the MS.NET implementation. There you go: code GUI once, run everywhere.

  33. That’s very true – our next project is actually GTK# compiled under Windows yet runs on Linux; but let me tell you, it’s been a rough ride :)

    We’ll probably publish a follow-up article on just what it took to get this project running on all platforms without trouble, but that’s for another day :D

  34. I look forward to reading about it. I’m sure the Mono devs will be interested in smoothing out those bumps as well so you should definitely post it to their mailing list! :-)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>