[Mono-list] RE: Mono

Michael Lambert michaellambert@email.com
Sat, 29 Sep 2001 00:56:02 -0400

Well, its not like GTK+/Bonobo don't have their own problems.  They are closely
patterned after Windows. 8-0 In GTK+ you've got to choose between writing
against the 1.2 or 2.0 API.  There goes source level integration, but your
asking about the WinForms design.

WinForms is a pretty thin wrapper over the Windows API in some places. If you
don't think the Windows is well written to start with then nothing in .Net is
going to change your mind. Personally, I think it is going to be pretty hard to
achieve 100% compatibility.  It takes a lot of work to remove the platform from
the framework and appeal to developers at the same time.
System.Windows.Forms.IWin32Window - Uggh!

I, also, believe that the closer the platform is to the standard the better.
Where it diverges is somewhere in between but hopefully the software developer
will never know.  Call it the curse of the Java Phuel. Also, the MS version is
constantly changing and I would expect to see differences between now and any
December/January release.  That said there are some nice design aspects to .Net.

The System.Drawing is pretty much a thin wrapper over Win32 so there is a large
base of users who understand the API.  Although, this isn't evidence of a
superior design it pretty much means that a lot of developers have successfully
written applications that work. At any rate MS won't change the design to any
significant degree in years to come.

The .Net, GDK, and Java libraries are very close in many ways already.  There
are tons of new little bitty features in the members of many of the classes.  I
think its easier to do Alpha Blending and Transparency effects.  You can pass a
memory bitmap as a stream to a socket or file.  Makes serializing graphics from
a web server very efficient without ever having to touch the hard disk.

Specifying Anchoring, Window Docking, and Windowing Styles (SDI/MDI/etc) are
nicely designed. They are easy to use/specify.  Placing and organization windows
within frames is again easy to do.  They are organized into collections and are
easy to manipulate from your language's array syntax.

You get a few more kind of controls that are different, like PropertyGrid, than
you do in GTK+/Bonobo. Compare GtkList and ListView. However, there are largely
the same constructs in either library.

The .Net library is more like the Java library when compared to traditional
Windows programming.  MS looks to have put in a lot of work to make it more
generic.  Why not do this for the Mono version of .Net?  The event model for the
.Net controls is more like signals and less like traditional WM_ messages.  Very
simplistic and easy to adapt/adopt plus the coordination between the WinForms
and the WebForms has been thought out in the .Net design.

There are many parallels that went into the design of the WinForms and WebForms.
You have to respect the effort and consideration that went into the design of
hierarchies that are so dissimilar.  When comparing WebForms with Tomcat, I find
WebForms to have the better design.  WebForms is newer since Tomcat came out
earlier. WebForms seems to have looked at that design and improved on the ideas
behind it.

In short, I really don't think a comparison between WinForms and GTK+/Bonobo is
really a good idea.  We are in the era of large frameworks and the features
don't match always match up with features at such a granular level.  It is much
more appropriate to compare .Net against J2EE or Mono/Linux as whole.  What in
GTK+/Bonobo compares to these:

The applications that I've written so far have required very little code to get
functionality into an application.  That's a lot of bang for a little buck so I
won't end up with carpel-tunnel-syndrome at the end of the day.

I think the .Net resource/globalization design is nicer. More helpful when your
packaging sounds and graphics with applications.

DataBinding (SQL, XML) classes are nicely designed and make it very easy to hook
up a database query or cursor up to a WinForm and WebForm control.  Works great
moving data between table oriented SQL data and tag oriented XML data.  Very
little work on my part.

The manner in which you can introduce high availability (Load Balancing,
Transactioning, etc..) features into a code base or "form" (through attribute
usage) doesn't compare to anything in GTK+/Bonobo.

The WinForms and WebForms Designers are an incredible advantage over
GTK+/Bonobo. They pretty much guarantees that your less sophisticated developers
will be able to write software for either deployment model (Win/Web).  The VB
generation of software design is really the first successful attempt at
graphical software design.  Think of how you would use a UML product to do
graphical software design? The VB pallet is what that is; however, your
substituting ComboBoxes, Edit Controls, and Labels for Class Diagrams, Use
Cases, and Messages.  Something to think about.

GTK+/Bonobo doesn't do a lot to provide language interop. Unless interop between
C and C++ is nirvana in the programming world. There is always CORBA but that
would have you nibbling on the barrel pretty shortly. :-(

The framework is where competition is taking place.  It is not in the Windowing
(WinForms) arena.  That battle has been fought and everybody pretty much looks
the same anyway.  New framework competition is in the WebForms arena.  Many of
the tool developers, I know pretty much have the same opinion.  The big
companies are beginning to provide the technology that delivers the web in an
easier fashion.

We've seen the bottom fall out of the .COM (The Web not [D]COM/CORBA) market and
much of the historical value is quickly eroding.  From my perspective, there is
a real squeeze going on in the market since fewer and fewer companies are
providing more and more of the framework.  In the past having 5% of the tool
market was a pretty big share, not anymore.

I been stuck off doing other stuff and this turned into more of a rant so I have
to apologize.  In one aspect .Net is a 'standard' implementation.   Having an
implementation that matches the standard isn't a bad idea. I think a crew of
developers is introducing System.GTKPlusBonobo library somewhere. Each platform
has its own problems and if that isn't apparent then your not using enough

Michael Lambert

> -----Original Message-----
> From: Chris Seberino,,, [mailto:seberino@dt092n42.san.rr.com]On Behalf
> Of Chris Seberino
> Sent: Friday, September 28, 2001 4:03 PM
> To: michaellambert@bellsouth.net
> Subject: Mono
> Michael
> Can I please ask you a question about
> Mono/.NET's Windows.Forms people
> seem to be implementing?...
> Is Win-Forms an entirely (& well designed???)
> new GUI library GNOME people want
> future GNOME apps to use???
> Is it so different that you won't
> be able to tell if it is implemented
> with Win32 or GTK+/Bonobo for the most part??
> Is it nicer & *better* designed than GTK+/Bonobo? Why???
> Aren't all the GTK+/GNOME library lovers going
> to miss these APIs??? Please explain what is going
> on here to a newbie.
> Sincerely,
> Chris
> --
> =======================================================
> | Dr. Christian Seberino  || (619) 553-7811 (office1) |
> | SPAWARSYSCEN 2733       || (619) 553-2564 (office2) |
> | 53560 HULL ST           || (619) 553-6307 (fax)     |
> | SAN DIEGO CA 92152-5001 || seberino@spawar.navy.mil |
> =======================================================