* The Class Library The Class Library should be compatible with Microsoft's .NET implementation. Ideally as much code as possible should be written using C#, in some cases we might either need to interface with code written in C for large chunks of functionality (libart and Gtk+ for example) or we would need to interface to the system libraries (libc on Unix for networking functions for example). ** Using existing components from GNOME. Our current plan is to implement the GUI tools on top of Gtk+. The only problem is that applications from Windows might expect to be able to pull the HWND property from the widgets and use PInvoke to call Windows functions. ** Class Library and Win32 dependencies. There are a few spots where the Win32 foundation is exposed to the class library (the HDC and HWND properties in the GDI+), it seems from casual inspection that these can be safely mapped to Gdk's GC and GdkWindow pointers without breaking anything. The only drawback is that, we will not support PInvoke invocations of Win32 code. This could be possible in the future by reusing pieces of Wine, and probably using Wine as our toolkit, but we think this is not as important as most people will always be isolated from the Win32 system. *** Initial GDI+ and WinForms implementation The initial implementation will use Gtk+ as the underlying toolkit, but implementations for other windowing systems should be possible (specially thinking about PDA devices here). Since Gtk+ 2.0 has been ported to other windowing systems other than X (frame buffer, Win32 and BeOS implementation exist) it should cover most uses for most users. *** Database access Implementing the ADO.NET functionality can be done through reusing GNOME-DB as GNOME-DB was implemented precisely to provide an ADO-like system for GNOME. *** Component Integration We will provide a new namespace to use GNOME specific features as well as a namespace to host Bonobo interfaces and classes in Mono. ** Licensing The class library will be licensed under the terms of the GNU GPL, with the special provision that linking to this library does not cause your application to be covered by the GNU GPL. This is a stop gap measure, I am using this until we can figure out why not use the laxer GNU LGPL license. We do request that contributors allow us to relicense the code under a GNU LGPL like license in the future for inclussion in the code base at any point in the future.