[Gtk-sharp-list] Seeking a .NET binding maintainer for Tinymail
Philip Van Hoof
spam at pvanhoof.be
Thu Feb 7 09:43:37 EST 2008
I'm looking for a passionate C# developer who's willing to understand
how both GObject and GtkSharp's Gapi work in high detail to maintain
Tinymail's DotNet bindings.
The raw bindings are already finished and working. There are, however, a
lot of nuances that could be done better.
Example todo items are case per case analysing the callback mechanisms
of each asynchronous API in Tinymail. Gapi generated nice C# delegates
but there might be scoping issues here and there (the garbage collector
being too quick with unreferencing the delegate itself, I'm not sure).
It might also be nice to make it use the asynchronous pattern that is
used in System.* in .NET.
Another problem is property vs. method. Some of Tinymail's APIs are
intended to be methods, but got generated as a property, and some got
generated as a method but where intended as a property.
My own guideline to distinguish between a property and a method is what
Brad Adams & co. in his/their "Framework design guidelines" book wrote:
if it's quickly accessible, it should probably be a property in stead of
a method. If accessing the field takes time, it should probably be a get
I already made the Tny.List interface-type implement IEnumeratable, the
Tny.Iterator therefore implements IEnumerator. It would be sweet if
things like LINQ would work. I have not yet tested this.
I also have an interface-based type called Tny.Stream. Instances that
are a Tny.Stream could also inherit System.IO.Stream after the binding
is done with it. This would foster further integration with .NET too.
Other than that updating the binding as soon as an API change occurred
in the C API would be among the tasks.
I think maintaining Tinymail's .NET bindings will be comparable in
difficulty to the directory "gtk" of GtkSharp's code: mostly getting
the .custom files and the .metadata files right.
If somebody is interested, here are some pointers:
The current working raw binding:
The current working C# DotNet demo user interface:
Tinymail's mailing list
Right now nobody is yet funding the .NET bindings of Tinymail.
I'm planning to someday port Tinymail's GObject code to WinCE. I think
the Compact Framework .NET is lacking a good E-mail library and a decent
Your binding would help filling up this gap.
ps. Via the Camel-MAPI effort being done by a Novell team working on
Evolution, we'll soon have MAPI support too, in case you are mostly
interested in talking with Exchange servers.
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be
gnome: pvanhoof at gnome dot org
More information about the Gtk-sharp-list