* Ideas
+ There are many pending classes that need to be implemented. Those have
+ the highest impact in the Mono project: the sooner they are done,
+ the sooner we can start using this platform to create new and
+ exciting applications.
+
+ That being said, if you are not very excited about working on class
+ libraries, here is a list of other related projects or tools that might
+ be useful to the Mono project.
+
Here are a few ideas of tools, classes and projects that you
- could start.
+ could start. More are forthcoming.
+
+<a name="runtime">
+** Runtime
+
+ We need a verifier that can be run on an executable (assembly)
+ and tells whether the metadata for the executable is correct
+ or not. It should report any anomalies.
+
+ For a list of anomalies in assemblies, check the various assertions
+ that are described on the ECMA documentation.
+
+ This will help test our generated executables and can be also
+ used as an external verifier.
<a name="classes">
** Classes
- Implement a JXTA protocol implementation:
+ <ul>
+TODO=jxta,The JXTA Peer to Peer foundation
+ * Implement a JXTA protocol implementation:
<a href="http://www.jxta.org">http://www.jxta.org</a>
- Implement a Mail API, similar to Camel or JavaMail (Camel has
- significant architecture features that are required on a real
- mailer)
+TODO=camel,Mail API
+ * Implement a Mail API, similar to Camel or JavaMail (Camel has
+ significant architecture features that are required on a real
+ mailer).
+
+ You can check the current C
<a href="http://cvs.gnome.org/bonsai/rview.cgi?dir=evolution%2Fcamel">
- Camel implementation</a>
+ Camel implementation</a>.
+
+ Such an implementation could be used both with
+ Microsoft .NET and Mono.
+
+TODO=multimedia
+ * Interfacing to Multimedia systems. You might want
+ to look into the Quicktime API. I know <a
+ href="mailto:vladimir@ximian.com">Vladimir</a> has
+ researched the problem before
+ </ul>
+
+<a name="projects">
** Projects
- Here are some projects you might be interested in working on:
- Implement an xmlStorageSystem for the CLI:
- <a href="http://www.soapware.org/xmlStorageSystem">
- http://www.soapware.org/xmlStorageSystem</a>
+TODO=guavac,Java compiler for .NET
+ * You could take one of the existing Java compilers
+ (Guavac comes to mind as it is so nice) and modify
+ it to generate .NET code rather than JVM byte
+ codes.
+
+ This should be a pretty straightforward task.
+ Guavac has the advantage of being written in C++ and
+ it could be compiled with the Microsoft Managed C++
+ compiler and produce a .NET executable with it.
+
+TODO=CORBA,CORBA implementation
+ * Build a CORBA interoperability engine for the CLR.
+ You do not need to do all of the work, just talking
+ the protocol will get us a long way (<a
+ href="http://www.omg.org">The OMG site</a> has the
+ CORBA specs).
+
+ Get in touch with David Taylor (dtaylo11 at bigpond
+ dot net dot au) as he has been working on this
+ project.
+
+TODO=Bonobo,Bonobo for Mono
+ * Once CORBA is done, implement the Bonobo interfaces
+ to allow people to use Bonobo components in Mono and
+ Mono components with Bonobo. The best of both worlds!
+
+TODO=moniker,Object Naming System with Monikers
+ * A naming space for Mono. An object naming space is
+ a very powerful tool. Bonobo implements a moniker
+ system that is more powerful than the original
+ moniker concept that was pioneered by COM/OLE in the
+ Microsoft world.
+
+ Our implementation builds on a concept, and we have
+ made it simpler, more powerful, more extensible and
+ a much better mechanism than the equivalent monikers
+ on Windows.
+
+ Implementing Mono monikers would benefit both
+ Windows users using .NET and Mono users on Unix and
+ Windows.
-** Better Web Infrastructure
+ Here is <a
+ href="http://primates.ximian.com/~miguel/monikers.html">an
+ overview of the moniker system</a> in Bonobo.
-
-
\ No newline at end of file
+ </ul>