X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=web%2Fclass-library;h=95b56cacf9dad6a37dbbd14c90d25a945ad0ece7;hb=c336ea7c1518e827802a5b329dc0c6ed46eeceb8;hp=5a4649c1d230047cd0f12b540961a5ebc4ec16e7;hpb=25b5d7a7ff00b6ab4ce35d7604f4e45801791b85;p=mono.git
diff --git a/web/class-library b/web/class-library
index 5a4649c1d23..95b56cacf9d 100644
--- a/web/class-library
+++ b/web/class-library
@@ -1,11 +1,69 @@
* The Class Library
The Class Library should be compatible with Microsoft's .NET
- implementation.
+ implementation.
- 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.
+ Please see the Class Status
+ 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.
+
+** 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 Classes Distribution to see if it is
+ not implemented yet, if not, check the Class Status to see if someone is
+ already working on it, and maybe contact them.
+
+ If nobody is working on it, mail mono-list@ximian.com
+ with the class you want to implement and CC miguel@ximian.com.
+
+ You can also track live the activities of the Mono CVS module
+ by subscribing to the mono-cvs-list
+
+
+** 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
+
+ The Class Library resides in the `mcs' module in the directoy
+ `class'.
+
+ Each directory in the directory represents the assembly where
+ the code belongs to, and inside each directory we divide the
+ code based on the namespace they implement.
+
+ There are two cases when we should consider portability: when
+ we are dealing with a couple of classes only that differ from
+ system to system (Consider System.Net and System.IO for Win32
+ and Unix). In those cases we will just place the files for
+ example on
+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 ++ +** 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