2002-09-22 Andrew Birkett <andy@nobugs.org>
[mono.git] / web / ideas
index 2d838d4dc9b8d5dffe05f99bac7f47bf8202c3fd..0a97cdcc4d244967a995d23d06ec1ec7a1915f3e 100644 (file)
--- a/web/ideas
+++ b/web/ideas
@@ -1,15 +1,39 @@
 * 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. 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
 
        <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>
 
+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).
                <a href="http://cvs.gnome.org/bonsai/rview.cgi?dir=evolution%2Fcamel">
                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
 
        <ul>
+TODO=xmlStorage,
                * 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).
+                 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.  
+
+                 Here is <a
+                 href="http://primates.ximian.com/~miguel/monikers.html">an
+                 overview of the moniker system</a> in Bonobo.
 
        </ul>