1 * Contributing to the Mono project
3 There are many ways in which you can help in the Mono project:
6 * <b>Programmers:</b> You can work on a free
7 implementation of the <a
8 href="class-library.html">class libraries</a>, the
9 <a href="runtime.html">runtime engine</a>, <a
10 href="tools.html">the tools</a>, the <a
11 href="testing.html">testing framework</a>
13 * <b>Writers:</b> You can help us bywriting <a
14 href="documentation.html">documentation</a>.
17 Those are just broad things that need to be worked on, but
18 something that would help tremendously would be to help with
19 small duties in the project that need to be addressed.
21 ** To start contributing
23 To start developing classes or to contribute to the compiler,
24 you only need Windows and the .NET Framework 1.0 SDK. Please notice
25 that you do not need Visual Studio (although you can use it if
28 You can get it <a href="http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml&frame=true">here</a>
30 If you are new to .NET, writing regression tests is a good way
31 of starting to contribute: it will help you get used to C# as
32 well as getting comfortable with the .NET APIs.
34 This helps because at this point you might be the best
35 qualified person to fix a problem found by the regression
36 test, or you might have a new class to implement in the .NET
37 world that only has a test suite.
41 If you find bugs in Mono, please make sure you enter a bug
42 report so we can keep track of problems in Mono.
44 To enter bug reports go to <a href="http://bugzilla.ximian.com">
45 http://bugzilla.ximian.com</a> and enter bug reports against
46 your favorite component (Mono, Runtime, C# compiler).
50 A few smaller tasks are here, dropped in no particular order:
52 * <b>Mono/doc and web site:</b> They need to be
53 packaged up in the official `distribution'
55 * Adding serialization support to all the classes.
57 We have many classes, but we have not implemented in
58 many cases the serialization and re-incarnation support in
59 them (this is pretty straight forward code, and simple,
60 but there is a lot to be done here).
65 Brad Merryl's C# mode for Emacs is available: <a
66 href="http://www.cybercom.net/~zbrad/DotNet/Emacs/">http://www.cybercom.net/~zbrad/DotNet/Emacs/</a>
68 * Books on C# and DotNet.
71 * Dotnet Books (<a href="http://www.dotnetbooks.com">http://www.dotnetbooks.com</a>)
73 * Dotnet Resources (<a href="http://www.dotnetexperts.com/resources/">
74 http://www.dotnetexperts.com/resources</a>)
76 * O'Reilly C# Essentials (<a href="http://www.oreilly.com/catalog/csharpess/">
77 http://www.oreally.com/catalog/csharpess</a>)
79 * O'Really .NET Essentials (<a href="http://www.oreilly.com/catalog/dotnetfrmess/">
80 http://www.oreally.com/catalog/dotnetfrmess</a>)
85 If you have looked at Microsoft's implementation of .NET or
86 their shared source code, you may not be able to contribute
87 to Mono. Details will follow when we know more about this.
89 In general be careful when you are implementing free software
90 and you have access to proprietary code. We need to make sure
91 that we are not using someone else's copyrighted code
94 Please do not use the <b>ildasm</b> program to disassemble
95 proprietary code when you are planning to reimplement a class
96 for Mono. If you have done this, we might not be able to use
99 Please stick to published documentation for implementing any