* ILParser.jay: de-bacwardificate values passed to add method,
[mono.git] / doc / ideas
index 485380da32cd15be0c4a5a56d90d187e3a586488..f34f4495e0214882739ab3d04d69cd020518f693 100644 (file)
--- a/doc/ideas
+++ b/doc/ideas
@@ -1 +1,107 @@
-* Better Web Development Tools
+* 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).
+
+                 You can check the current C 
+               <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
+
+
+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.  
+
+                 Here is <a
+                 href="http://primates.ximian.com/~miguel/monikers.html">an
+                 overview of the moniker system</a> in Bonobo.
+
+       </ul>