2007-06-08 Jonathan Pobst <monkey@jpobst.com>
[mono.git] / web / class-library
index 694502c607a4291e660b9345611cef77b7cd832f..95b56cacf9dad6a37dbbd14c90d25a945ad0ece7 100644 (file)
@@ -3,10 +3,45 @@
        The Class Library should be compatible with Microsoft's .NET
        implementation.
 
+       Please see the <a href="class-status.html">Class Status</a>
+       page for a status of who is working on which classes.
+       
        We will write as much code as possible in C#. We may need to
        interface with code written in C to gain access to the
-       functionality of
-        libraries like libart, Gtk+, and libc.
+       functionality of libraries like libart, Gtk+, and libc.
+
+** Contributing
+
+       We welcome contributions to the the Class Library.  To get
+       started, check the status page for information about which
+       APIs are being worked on, and how to get in touch with 
+       individual maintainers.  
+
+       If you want to work on a class, first check the <a
+       href="download.html">Classes Distribution</a> to see if it is
+       not implemented yet, if not, check the <a
+       href="class-status.html">Class Status</a> to see if someone is
+       already working on it, and maybe contact them.
+
+       If nobody is working on it, mail <a
+       href="mailto:mono-list@ximian.com">mono-list@ximian.com</a>
+       with the class you want to implement and CC <a
+       href="mailto:miguel@ximian.com">miguel@ximian.com</a>.
+
+       You can also track live the activities of the Mono CVS module
+       by subscribing to the <a
+       href="http://lists.ximian.com/mailman/listinfo/mono-cvs-list">mono-cvs-list</a>
+
+
+** Missing features
+
+       Our class libraries miss some features, for example, most classes
+       do not implement the serialization bits at all, it would be a good
+       contribution to add this to each class.
+
+       This is a simple task, but it needs to be done in a compatible way
+       with the Microsoft.NET classes: using the same arguments to serialize
+       and reincarnate data.
 
 ** Layout
 
 
 ** Licensing
 
-       The class library will be licensed under the terms of the GNU
-       LGPL.  Some people have pointed out that the plain LGPL is
-       troublesome for embedded use of the Mono class libraries.  So
-       we are considering to use the GPL with a special exception
-       (like the <a
-       href="http://www.gnu.org/software/classpath/classpath.html">GNU
-       Classpath</a> project did.
-
-       The exception to the GPL would be:
-
-       <i>The library is distributed under the terms of the GNU General
-       Public License with the following exception:
-
-       If you link this library against your own program, then you do not
-       need to release the source code for that program. However, any
-       changes that you make to the library itself, or to any native
-       methods upon which the library relies, must be re-distributed in
-       accordance with the terms of the GPL.</i>
-
-       If you are going to contribute, please keep in mind that we
-       might require you to agree that Ximian might adjust the
-       license to enable the use of the class libraries on embedded
-       systems or to develop proprietary applications using Mono.
-
-       We suggest that you assign the copyright of your work to the
-       GNOME Foundation or the Free Software Foundation to simplify
-       defending the code in case it is used inappropiately. 
+       The class library is being licensed under the terms of the 
+       <a
+       href="http://www.opensource.org/licenses/mit-license.html">MIT
+       license.</a>  This is the same license used by the X11 window
+       system.
 
 ** Class Library testing
 
        the correctness of the class library, compiler, and JIT
        engine.
 
+       Please write your regression tests using <a
+       href="http://nunit.sourceforge.net">NUnit</a>
+
 ** Coding conventions
 
        Please follow the conventions on the ECMA specification (On
 
        In those cases, use the keyword "LAMESPEC".
 
-** Contributing
-
-       We welcome contributions to the the Class Library.  To get
-       started, check the status page for information about which
-       APIs are being worked on, and how to get in touch with 
-       individual maintainers.
+** Namespaces
+
+       We are using a number of namespaces in the class libraries for
+       private classes when we need them, you are encouraged to use these:
+
+<pre>
+Mono
+ .Languages     // General Compiler classes
+   .CSharp      // Specific C# parsing/tokenizing classes
+   .MonoBASIC   // Specific VB.NET/MonoBASIC parsing/tokenizing classes
+   .Python      // Specific Python parsing/tokenizing classes
+ .Runtime
+   .LateBind    // General latebinding-support for MonoBASIC/Python
+   .MonoBASIC   // Specific runtime classes for MonoBASIC programs
+   .Python      // Specific runtime classes for Python programs
+ .Web
+   .UI
+     .Utils     // Gaurav utility classes
+</pre>
 
 ** FAQ