[Gtk-sharp-list] Confused about Gtk#

Matt Nuzum matt@followers.net
Tue, 16 Nov 2004 11:31:44 -0500

On Tue, 16 Nov 2004 17:59:02 +0200, Roland Giesler
<roland@giesler.za.net> wrote:
> > Not so much, Gtk# is comparable with Microsoft .NET Framework
> > WinForms
> > toolkit for creating rich client GUI applications.  Gtk# is
> > written in C#.
> So that means you use Gtk# to add a GUI for apps written with some other
> tool?  Can one develop complete applications with Gtk# that can access a
> database or is that not what its for?

A good example is this: You can write console programs in VB.  If you
use the WinForms toolkit you can also create GUI applications in VB.

Likewise, you can write Console programs in C#.  If you use WinForms
or Gtk# or one of the other gui toolkits you can also create graphical

Which gui toolkit you use depends on your needs.  Gtk# is nice because
it works on many platforms, not just Windows.  However, choosing a
toolkit is very important and you should look at the pros and cons of
each toolkit to decide which you want to make a commitment to.

If you're going to make database applications, make sure you choose a
toolkit that will meet your printing needs, if you'll be creating
reports. So far I have not found any cross-platform printing
solutions. I've seen some that work well only on windows and others
that work well only on *nix.

BTW, Yes, you can create DB applications with Gtk#.

> > However if you need GTK+ you will have it bundle with the
> > appropriate installer.  If you are willing to use a text
> > editor or an IDE like SharpDevelop you may be able to
> > forgo the MS .NET SDK when developing Mono applications \
> > with the Mono Combined installer.
> Why would I need Gtk+?  Does it do more than Gtk#.  Would you mind
> explaining briefly?

Gtk+ is a C (not C#) gui toolkit. It has been around for some time and
is cross platform and mature. Gtk# is the Gtk+ toolkit usable from C#
programs. So, if you use C you use Gtk+, if you use C# you use Gtk#.

> > > Is there somewhere where I can read a basic desciption of
> > how this all
> > > works.  I'm still very much used to the MS way of doing
> > something, so
> > > I need some help here.  The webpages I found don't help much.

I too am an experienced programmer and I found the book, "Mono
Developer's Handbook" to be phenominal. It is written with programmers
in mind and spends a lot of time talking about writting graphical
programs with Gtk#.

> Lastly, if I'm looking for an Open Source equivalent for Visual Studio .net,
> is there anything available (even if I have to use a combination of
> apps/IDEs/whatever?

In Windows I use SharpDevelop (www.icsharpcode.com) but it favors the
WinForms toolkit.  You can tweak it to help you in your Gtk#
development but there is no GUI builder such as VB if you choose Gtk#
as your gui toolkit with SharpDevelop.

If you are on Linux, check out MonoDevelop, a port of SharpDevelop
that is being tailored specifically to Gtk# developers.

If you want a VB like form building experience, the most mature tool
I've seen is glade. I believe it works with C#. It has a lot of
similarities with the drag-and-drop tools of VB but it is also a bit
different in the way it works, so allow some time to get used to it.

> PS. I'm seriously considering doing a fairly large development in an Open
> Source environment.  I'm a fairly proficient programmer (B.Sc Computer
> Science), but have worked only really in VB, lots of JavaScript/XML/VBS,
> Fortran, PL/1 and quite a few other ancient languages.  Would you say I'm
> doing the right thing by looking at Gtk#/Mono?

I just finished my first Mono based project, which is only my 2nd C#
project.  I'll say that the end result is 25 - 100 times faster than
what it replaced, a PHP/Stored Procedure based program.

Another thing to consider is your target audience.  If your users are
windows, be aware that Gtk programs feel just a little different than
other windows programs.  Check out gaim (http://gaim.sf.net) and
you'll see what I mean. It's a very functional and usable toolkit;
it's just a little different.

If you really need cross-platform, the only good choices I know that
are opensource are Gtk# and Wx#.

If you are developing for Linux/Gnome environment then Gtk# is the
best choice I believe.

Of course, these are my opinions and I'm a new subscriber to the Gtk#
mailing list.

Matthew Nuzum		| Makers of "Elite Content Management System"
www.followers.net		| View samples of Elite CMS in action
matt@followers.net		| http://www.followers.net/portfolio/