Mono's WinForms 2.0 Implementation Completed 164
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 will be a big help (Score:4, Interesting)
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.
Re:too little, too late? (Score:3, Interesting)
SWF GUI builder? (Score:3, Interesting)
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
But why the Win32 style in WinForms? (Score:3, Interesting)
From the blog:
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.
Re:But why the Win32 style in WinForms? (Score:4, Interesting)
This work on WinForms is intended to provide a way to run
Re:Would be awesome... (Score:1, Interesting)
Re:This will be a big help (Score:4, Interesting)
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.
Re:too little, too late? (Score:2, Interesting)
WinForms as a library is a little old fashioned, but in combination with Visual Studio it's very slick and one of the most productive GUI environments around for building desktop applications. If you want to build fruity super-slick GUIs, you have WPF to do that (but the Visual Studio designer isn't as nice).
There isn't a better platform on Windows for developing desktop or server applications than
Re:too little, too late? (Score:3, Interesting)
"Java might be a great development platform, but the performance of java apps on the desktop is so pitiful they're painful to use."
More?
"Sever-side apps written in Java have great perfs, however, which is easily explained since they're meant to be run on a score of UltraSPARC hyperthreaded multicore CPUs that command a ton of RAM."
Better that way, yes, you're right.
Re:too little, too late? (Score:3, Interesting)
You'll find that that's because C# was designed with an IDE in mind. Everything is statically typed (for intellisense) and the object oriented nature allows for easy code completion. Even look at the new LINQ (Allows you to query arrays/lists/etc. in memory)
var result = from dataType in myCollection
where
Notice how it the IDE will have enough information to offer you code completion the whole way though. Even though it'd be more intuitive to format it more like SQL.
So in closing, Python can never even hope to have an IDE that matches C# or any language designed for the purpose.