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.
-
- 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
+
+Frequently asked questions about the class library:
+
+Q: I am writing a new class that overrides one of the system classes,
+ and I am getting a 1595 warning from the compiler. Should we use a
+ different namespace?
+
+A: There is a quick solution to the problem, you can pass the command
+ line argument /nowarn:1595 and this will effectively let you use
+ your implementation of the code, while overriding the ones from the
+ system assemblies.
\ No newline at end of file