X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=doc%2Fclass-library;h=95b56cacf9dad6a37dbbd14c90d25a945ad0ece7;hb=218b4601715bf168d32e751cd0def4cdec8efbfb;hp=77ad5a6df84b03153874763fe4f8fec89cf78af0;hpb=16e3d27af5966e8516080566fcd5a2574b6ecad3;p=mono.git diff --git a/doc/class-library b/doc/class-library index 77ad5a6df84..95b56cacf9d 100644 --- a/doc/class-library +++ b/doc/class-library @@ -3,10 +3,45 @@ The Class Library should be compatible with Microsoft's .NET implementation. + 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. + 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 @@ -71,12 +106,11 @@ ** 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 + MIT + license. This is the same license used by the X11 window + system. ** Class Library testing @@ -84,6 +118,9 @@ the correctness of the class library, compiler, and JIT engine. + Please write your regression tests using NUnit + ** Coding conventions Please follow the conventions on the ECMA specification (On @@ -119,10 +156,35 @@ 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: + +
+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