3 There are many pending classes that need to be implemented. Those have
4 the highest impact in the Mono project: the sooner they are done,
5 the sooner we can start using this platform to create new and
8 That being said, if you are not very excited about working on class
9 libraries, here is a list of other related projects or tools that might
10 be useful to the Mono project.
12 Here are a few ideas of tools, classes and projects that you
13 could start. More are forthcoming.
18 We need a verifier that can be run on an executable (assembly)
19 and tells whether the metadata for the executable is correct
20 or not. It should report any anomalies.
22 For a list of anomalies in assemblies, check the various assertions
23 that are described on the ECMA documentation.
25 This will help test our generated executables and can be also
26 used as an external verifier.
32 TODO=jxta,The JXTA Peer to Peer foundation
33 * Implement a JXTA protocol implementation:
34 <a href="http://www.jxta.org">http://www.jxta.org</a>
37 * Implement a Mail API, similar to Camel or JavaMail (Camel has
38 significant architecture features that are required on a real
41 You can check the current C
42 <a href="http://cvs.gnome.org/bonsai/rview.cgi?dir=evolution%2Fcamel">
43 Camel implementation</a>.
45 Such an implementation could be used both with
46 Microsoft .NET and Mono.
49 * Interfacing to Multimedia systems. You might want
50 to look into the Quicktime API. I know <a
51 href="mailto:vladimir@ximian.com">Vladimir</a> has
52 researched the problem before
61 * Implement an xmlStorageSystem for the CLI:
62 <a href="http://www.soapware.org/xmlStorageSystem">
63 http://www.soapware.org/xmlStorageSystem</a>
65 TODO=guavac,Java compiler for .NET
66 * You could take one of the existing Java compilers
67 (Guavac comes to mind as it is so nice) and modify
68 it to generate .NET code rather than JVM byte
71 This should be a pretty straightforward task.
72 Guavac has the advantage of being written in C++ and
73 it could be compiled with the Microsoft Managed C++
74 compiler and produce a .NET executable with it.
76 TODO=CORBA,CORBA implementation
77 * Build a CORBA interoperability engine for the CLR.
78 You do not need to do all of the work, just talking
79 the protocol will get us a long way (<a
80 href="http://www.omg.org">The OMG site</a> has the
83 Get in touch with David Taylor (dtaylo11 at bigpond
84 dot net dot au) as he has been working on this
87 TODO=Bonobo,Bonobo for Mono
88 * Once CORBA is done, implement the Bonobo interfaces
89 to allow people to use Bonobo components in Mono and
90 Mono components with Bonobo. The best of both worlds!
92 TODO=moniker,Object Naming System with Monikers
93 * A naming space for Mono. An object naming space is
94 a very powerful tool. Bonobo implements a moniker
95 system that is more powerful than the original
96 moniker concept that was pioneered by COM/OLE in the
99 Our implementation builds on a concept, and we have
100 made it simpler, more powerful, more extensible and
101 a much better mechanism than the equivalent monikers
104 Implementing Mono monikers would benefit both
105 Windows users using .NET and Mono users on Unix and
109 href="http://primates.ximian.com/~miguel/monikers.html">an
110 overview of the moniker system</a> in Bonobo.