Forgot your password?
typodupeerror
Software Linux

Mono's WinForms 2.0 Implementation Completed 164

Posted by kdawson
from the do-not-confuse-with-wind-farms dept.
adrian.henke writes "After four years of development, 115K lines of source code, and 6,434 commits, Jonathan Pobst announces that Mono's WinForms 2.0 implementation is now complete. This announcement has been long awaited by any .NET WinForms developer who has ever tried to get an applications to work on Linux using Mono."
This discussion has been archived. No new comments can be posted.

Mono's WinForms 2.0 Implementation Completed

Comments Filter:
  • by Pikoro (844299) <init.init@sh> on Tuesday May 13, 2008 @11:35PM (#23398946) Homepage Journal
    Currently working on a C# implementation of a web based in house CRM system.

    Going to be nice to finally be able to support our Linux desktops as well.

    We'll see how porting goes and if it's really worth the trouble.
    • by pembo13 (770295)
      So the requirements of your business problem required cross-platform support, yet you chose a tool which is decidedly not cross-platform? Why?
      • by Anonymous Coward on Wednesday May 14, 2008 @12:27AM (#23399166)
        Where did he say that cross-platform support was required? There's a big difference between something that's required and something that's nice.
        • by Haeleth (414428)
          So you don't think it's a bit odd for any organisation that has Linux desktops as well as Windows desktops to deliberately choose a potentially-Windows-only system for developing corporate tools? Particularly one that's practically indistinguishable from Java, which runs perfectly on both Windows and Linux by design.
          • by ushering05401 (1086795) on Wednesday May 14, 2008 @05:05AM (#23400324) Journal
            "Particularly one that's practically indistinguishable from Java, which runs perfectly on both Windows and Linux by design."

            Except that Java doesn't run perfectly on Windows and Linux. Many people see C# as a language that set out to be a better Java than Java, and many people feel that on the Windows platform it succeeds. Combine that with the existing Windows install base and you have a pretty compelling reason to develop in C# over Java.

            Ten years down the line, however, I could see C# facing extinction if it does not become truly cross platform.

            • by LWATCDR (28044)
              Have you ever used Java?
              I do all the time. Try out Eclipse.org, Netbeans, or Jedit sometime.
              They work really well on both Linux and Windows.
              I find Java to be a good development system. It even works just fine on the desktop if you write good Java code.
              The real problem that java had was applet abuse. Applets are really a great solution to a lot of problems. The problem was when people start to use them for things like Hover buttons and other useless stuff that now is often written in flash.. The junk also gi
              • by smbarbour (893880)
                The biggest gripe I have about Java is that when no more applications are using the JVM, it doesn't go away. It just sits there wasting resources with no option to terminate it other than by force.

                I have taken classes on programming in Java, but since I had no real-world use for it, I have subsequently forgotten it, just as I have all but forgotten C/C++. The business world wants results now. They don't pay you to build each wheel from raw lumber when it's faster and cheaper to buy them pre-made.
                • by LWATCDR (28044)
                  That is one of the strengths of Java, there are so many libraries that getting a good application out the door is pretty dang fast. I think C# is much the same.
                  As for the JVM. It should be swapped out to VM if it is not being used and the ram is needed. So it hanging around isn't that big of a deal on a modern OS. Goodness only knows how much of .NET hangs around when it isn't in use.
                • by abigor (540274)
                  Er...hopefully you realise that the great, vast majority of server-side and webapp business programming is in Java, and has been for ages. Java is the new Cobol.

                • by radish (98371)
                  Ermm...what?? Java (generally) works on a single app per JVM model, in fact I have many servers running multiple JVMs (the merits of that is another discussion!). The JVM most certainly does go away when the app does, primarily because the JVM _is_ the app. If you're talking about applets then the browser is responsible for running the lifecycle of the shared JVM in that case, talk to them.
            • by radish (98371)
              What is it about Slashdot and the "Java isn't cross platform" FUD?. I've been a Java developer for around 8 years now. In all that time, developing server side and client side apps I can count on one finger the number of times I've had an app behave significantly differently between platforms. Java really does a fantastic job of running on pretty much any hardware you throw it at - typically I develop/unit test locally on XP and deploy serverside stuff out to Solaris & Linux for QA/prod.

              It. Just. Works.
          • by WED Fan (911325) <akahige&trashmail,net> on Wednesday May 14, 2008 @09:51AM (#23402156) Homepage Journal

            Particularly one that's practically indistinguishable from Java

            Knock knock.

            Who's there?

            ...long pause...

            Java.

            The only reason, ONLY reason, to use Java is because you are psychotic and have a deep, long standing hate for your users and wish to inflict some of the most insidious pain and torment upon them.

            • by mweather (1089505)
              I thought that was the reason to use Mono.
            • Re: (Score:3, Funny)

              by gstoddart (321705)

              The only reason, ONLY reason, to use Java is because you are psychotic and have a deep, long standing hate for your users and wish to inflict some of the most insidious pain and torment upon them.

              Well, I do hate my users and wish to inflict pain on them, but I don't want to use Java.

              Is there a way I can inflict pain and torment in a platform agnostic way? ;-)

              Cheers
          • by oliderid (710055)

            My company uses mono c# for a relatively big in house project too.

            Here how the selection has been made.
            "I like c#." stated the boss.
            "Why not java?" A Microsoft language on a Linux server?"
            "I don't care that you hate Microsoft. Lets focus on the language's merit. These elegant get and set will save us hundreds of redundant methods. See how simple delegate and Event handling are. Environment? I don't like Eclispe. I like MonoDevelop...Ok it is a bit buggy (not anymore), but this IDE took all the best f

    • by smbarbour (893880)
      I just noticed something that no one else mentioned... If it's a web-based system, how will the WinForms functionality help?

      WinForms is just for desktop apps, not web apps. (ASP.NET pages rendering HTML that is W3C compliant rather than "works great in IE" is another issue entirely.)
  • by beoba (867477) on Tuesday May 13, 2008 @11:53PM (#23399028) Homepage
    ..and still nothing on whether WinForms is legally safe to use.
    • SCO still has a few law schools worth of lawyers on retainer, and a new group of big bucks sugar daddies to fund a few more rounds of lawsuits.

      These extremists are not going to surrender. They see open source/free software as a form of communism. These are not the sort of people who call off an already declared war. They are going to keep on filing new lawsuits until they manage to land their lawsuit in the courtroom of a judge who is just as warped and extreme as they are.
    • by Vexorian (959249)
      Err, of course it isn't legally safe to use it. Microsoft hasn't ever released it to ECMA, it is not protected by OSP or whatever non-sense.
  • by Helmholtz (2715) on Tuesday May 13, 2008 @11:57PM (#23399042) Homepage
    ...by any .NET WinForms developer who has ever tried to get an applications to work on Linux using Mono."

    All five of them.
    • by pembo13 (770295)
      Some people realllyyyyy like .NET. I use .NET all the time, but I can't say I like it half as much as Python.
      • Re: (Score:2, Informative)

        by Anonymous Coward
        Any language that requires me to pay attention to white-space as much as Python should be dragged into the streets and beaten.

        Sorry.

        • by mweather (1089505)
          If you have problems with whitespace in python, you're doing something wrong. My 6 year old nephew picked it up right away. Granted he's not writing anything complex.
        • Any editor that requires me to pay attention to white-space as much as Notepad should be dragged into the streets and beaten.

          Fixed that for you.

    • by thegrassyknowl (762218) on Wednesday May 14, 2008 @01:28AM (#23399426)
      Five? I think you should stop rounding up to a whole hand!
    • Come on now, this is a pretty significant step. Lots of Slashdotters must be stuck developing Windows .NET applications and would love to find a way to deploy them on Linux. If you haven't tried it, Mono is pretty cool: copy your .NET executable to Linux and run

      % export MONO_IOMAP=all
      % mono my_program.exe

      You might be surprised how well it works.
    • I am one of them.
  • Very nice (Score:5, Funny)

    by nuzak (959558) on Wednesday May 14, 2008 @12:25AM (#23399158) Journal
    > I use .NET all the time, but I can't say I like it half as much as Python.

    I know what you mean -- ELF just doesn't hold a candle to Perl.

    • Re: (Score:2, Informative)

      by jamesh (87723)
      I can kind of see the point you were trying to make, but .NET doesn't just refer to the bytecode interpreter - it also refers to the runtime libraries etc, which is I think the point that the GP was trying to make.

      The fact that python can run under .NET confuses the issue a bit too... but I think most of us can get our heads around it :)
  • SWF GUI builder? (Score:3, Interesting)

    by IBBoard (1128019) on Wednesday May 14, 2008 @03:26AM (#23399928) Homepage
    Does this mean we can finally get a SWF GUI builder in MonoDevelop on Linux?

    I've got a couple of apps I wrote while I was using Windows and now I use Fedora Linux. The back-end library code and my newer apps that use GTK# are fine to edit in MonoDevelop, but I've got a VirtualBox install with WinXP and Visual Studio in it for now so that I can update the System.Windows.Forms layouts when I need to.

    Hopefully the "API complete" also means they'll fix some of the odd rendering I've seen at times :)
  • by master_p (608214) on Wednesday May 14, 2008 @03:41AM (#23399990)

    From the blog:

    You can use handles in Winforms, they just do not map to an actual HWND on non-Win32 systems, but you can definitely use them, and you can even override WndProc methods on derived classes from Control and process a pile of WM_ messages that Mono's Winforms actually builds on.

    Why WndProc, HWND and WM_ messages are still there? I understand Microsoft built a software monopoly by mixing Window System management and a GUI toolkit together (and transferring it to .NET ensures that monopoly), but isn't .NET supposed to be one of the most advanced toolkits out there? Having to rely on WndProc, HWND and WM_ messages seems a very bad design for me (I've been developing MFC apps for a decade now and I know of the numerous problems that might come up), and unfortunately Mono WinForms copied that in order to be compatible with .NET.

    Initially I thought 'wow, a contender to Qt/Java for building cross-platform apps', but after reading the blog and being an supporter of anything but Win32 (the ugliest API ever written), I will think twice before using Mono or .NET for cross platform development.

    • by jonwil (467024) on Wednesday May 14, 2008 @03:58AM (#23400074)
      Use GTK# if you want a cross-platform UI toolkit based on .NET.

      This work on WinForms is intended to provide a way to run .NET applications written for Windows on top of Mono. And for doing that, it has to be compatible with the Microsoft implementation of WinForms.
      • by master_p (608214)
        But if I want my app to be cross platform, why not right it in GTK# from the beginning?
        • Re: (Score:3, Funny)

          by drinkypoo (153816)
          Because GTK# is not a language? And because it's not tipped over?
          • by master_p (608214)
            Sorry, I meant 'write'. But the question is still valid. If I am going to write a cross platform app, why choose a toolkit with so many platform-specific -isms, like win32-isms (WM_ messages, HWND, WndProc etc) and not choose one that makes more sense, like GTK#?
            • You can, and I recommend it. An app I was involved with switched from WinForms to Gtk# on Windows because Winforms just isn't that good. It was a great improvement.

              I understand that Winforms 2 is catching up with Gtk and every other toolkit though: it does widget layout for you now! (wow!) (sarcasm).
            • by ChatHuant (801522)
              If I am going to write a cross platform app, why choose a toolkit with so many platform-specific -isms, like win32-isms (WM_ messages, HWND, WndProc etc) and not choose one that makes more sense, like GTK#?

              Because the "cross-platform" requirement often doesn't exist, at least not during the design of V1.0 of an application. The application is intended to work on a certain platform. A design requirement for "cross-platform compatibility" will have a major impact on resources and budget (think for example
    • by Haeleth (414428) on Wednesday May 14, 2008 @04:08AM (#23400114) Journal

      unfortunately Mono WinForms copied that in order to be compatible with .NET.
      Um, yes, Windows compatibility was kind of the entire point of supporting Winforms, you know?

      If you don't want to be compatible with Win32, use GTK#.
    • by argent (18001)
      I understand Microsoft built a software monopoly by mixing Window System management and a GUI toolkit together (and transferring it to .NET ensures that monopoly), but isn't .NET supposed to be one of the most advanced toolkits out there?

      I think you answered your own question.

      I don't know about "one of the most advanced toolkits out there", but it's an environment developed for a company that's been so reluctant to consider doing anything that might hurt their moneymaker that they've crippled project after
    • by nuzak (959558)
      Winforms is the old and busted tech that has all sorts of compatibility kludges to be backward compatible. The new sexiness is WPF, which unfortunately isn't even on Mono's roadmap (Silverlight is just a subset of it).
  • Six months after Microsoft's CTO declares WinForms dead [blogspot.com], Mono supports it. That's timing, baby!

    • by drinkypoo (153816)
      Actually, that's wonderful timing. It means that they provide support for legacy applications but don't actually (in this case) help Microsoft sell a current product. Did you think those WinForms programs were going to disappear now that WinForms was declared dead?
  • And we'll have WPF support...

You are in a maze of little twisting passages, all alike.

Working...