[MonoDevelop] wx.NET, #WT, or other cross-platform gui widgets

Michael Hutchinson m.j.hutchinson at gmail.com
Wed Dec 13 05:09:19 EST 2006

On 12/12/06, Jon Molesa <rjmolesa at consoltec.net> wrote:
> widgets of the system.  My question is why did GTK# become so popular so
> quickly?  If we really want true cross platform development wouldn't
> wx.NET serve that purpose better?  Don't get me wrong, GTK# is nice but
> when run on windows, it just doesn't look like windows, and to run on a
> Mac you need fink.

Most of the apps developed with GTK# aren't intended to be
cross-platform yet. For those that target GNOME as their native
platform, like Banshee, FSpot and Beagle, GTK# is the obvious choice.
Also, it's code that works on Windows and Macs but works *better* on
Linux, so might help to promote migration ;-)

Also, the WIMP GTK theme integrates pretty well into Windows, and
there's now a Mac-native GTK+ that doesn't require an X11 server. As
long as GTK+ looks similar enough to the native widgets, it's not a
bad option. Remember that wxWidgets also requires installation of
platform-specific unmanaged code.

>         I'm interested in taking porting the MD or SD code over to use
> wx.NET as its widget framework.  This would allow for an IDE that would
> run on the major platforms and we could create .NET apps on what ever
> system we have.  Further, it would use wx.NET for it's widgets of apps
> it creates.  Again, this would allow for an app to be coded and
> distributed to the major platforms.
>         Does anyone have any information on Sharpdevelop #WT effort?  The
> domain registered appears to have been snagged when it expired.  I

The #D developers decided that a cross-platform windowing toolkit was
beyond their remit, and discontinued work on #WT several years ago.

> appreciate any thoughts and insights that anyone can provide as to why
> this is either a good or a bad idea.  Thanks.

Don't underestimate the effort required to port the windowing toolkit
-- it's a *lot*. Bear in mind that the reason that MD was originally
forked from SD was originally to port the GUI to GTK#, and they now
both have large but largely separate communities of developers.
Maintaining a fork is going to be hard, whatever you do, and if you're
successful you'll be fragmenting the community.

If you must do it, MD is probably easier than #D because it has since
had a deliberate separation of GUI code to some extent, so you'd stand
a chance of maintaining a changeset rather than a a full fork. Forks
naturally diverge, making code sharing harder -- there hasn't been
much code sharing between MD and #D, at least relative to the amount
of independent development on each.

I do think that there might be some milage in promoting WX.NET or
something similar as a true cross-platform GUI system, but IMO there's
no need to port the IDE. Completing the toolkit itself will probably
keep you occupied for a long time. And there's no reason why you
couldn't have a WX.NET visual designer in MD and/or SD.

Alternatively you could try writing something fully managed that sits
on top of GTK#, Cocoa#, QT#, Avalon and SWF, a bit like #WT aimed to
do. That would be doubly interesting if it offered platform-specific
platform integration capabilities too, so that devs could write an app
that instantly runs on all platforms, then enhance it for each
platform. The problem with cross-platform toolkits like WX is that
they usually limit you to the lowest common denominator...

Michael Hutchinson

More information about the Monodevelop-list mailing list