Add new roadmap files.
authorMiguel de Icaza <miguel@gnome.org>
Sat, 1 Nov 2003 19:39:10 +0000 (19:39 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Sat, 1 Nov 2003 19:39:10 +0000 (19:39 -0000)
Various updates: FAQ, layout, template updates

svn path=/trunk/mono/; revision=19528

14 files changed:
doc/faq
doc/forge
doc/mono-hacking-roadmap.html [new file with mode: 0644]
doc/mono-roadmap.html [new file with mode: 0644]
doc/web/commands
doc/web/makefile
doc/web/template.html.in
web/faq
web/forge
web/mono-hacking-roadmap.html [new file with mode: 0644]
web/mono-roadmap.html [new file with mode: 0644]
web/web/commands
web/web/makefile
web/web/template.html.in

diff --git a/doc/faq b/doc/faq
index 513f4e1f363cf019f99baad9c2dd32a7d5be0c0f..5024fa67fdb7275a925b59af292ee4a15fc082e8 100644 (file)
--- a/doc/faq
+++ b/doc/faq
@@ -1,5 +1,5 @@
 <a href="#basics">Basics</a><br>
-<a href="#ximian">The Ximian Role in the Mono project</a><br>
+<a href="#novell">The Novell Role in the Mono project</a><br>
 <a href="#gnome">Mono and GNOME</a><br>
 <a href="#gui">Building GUI applications with Mono</a><br>
 <a href="#msft">Mono and Microsoft</a><br>
@@ -87,8 +87,7 @@ A: The ".NET Initiative" is a somewhat nebulous company-wide effort by
    Microsoft, one part of which is a cross-platform development
    framework.  Mono is an implementation of the development framework,
    but not an implementation of anything else related to the .NET
-   Initiative, such as Passport, software-as-a-service, or
-   corporate re-branding.
+   Initiative, such as Passport or software-as-a-service.
 
 Q: What technologies are included in Mono?
 
@@ -147,49 +146,26 @@ Q: Will you offer an ECMA-compliant set of class libraries?
 
 A: Eventually we will.  Our current focus is on inter-operating
    with the Microsoft SDK, but we will also offer an ECMA compliant
-   set of libraries. 
+   subset of the libraries. 
 
 Q: What does the name "Mono" mean?
 
-A: Mono is the word for `monkey' in Spanish. We like monkeys.
+A: Mono is the word for `monkey' in Spanish. We like monkeys.  
 
-Q: Is Mono usable?
+Q: Does Mono work today?
 
-A: The JIT engine is usable on Intel x86 machines.  An interpreter
-   can be used on other non-Intel x86 machines.  
+A: The execution engine works on various platforms, we support
+   Just-in-Time and Ahead-of-Time compilations on Intel x86 machines
+   (and soon PowerPC).
 
-   The class libraries are mature enough to run some real applications
-   (the compiler for instance, and every day more and more applications
-   are natively developed with Mono).
+   The class libraries are mature enough to run various real
+   applications: our C# compiler, ASP.NET, and Gtk#-based
+   applications.
 
-Q: When will you ship it?
+Q: When will you ship Mono?
 
-A: Different parts of Mono will achieve usability at different stages,
-   once we are comfortable with the compiler, we will release "Mono Core",
-   which contains everything needed to develop applications with the base
-   class libraries, this will happen soon and in the meantime you can 
-   download daily snapshots of our work. Also the full ASP.NET support is 
-   close to completion. 
-
-   Other higher level class libraries (ASP.NET, ADO.NET, WinForms) will
-   be released when they become stable. 
-
-Q: When will Mono 1.0 ship?
-
-A: We are planning on releasing Mono 1.0 (Mono Core) which will ship all the
-   components of Mono that are known to be stable in Q4 2003/Q1 2004.
-
-   This release will lack System.Windows.Forms  and
-   Enterprise.Services, as they will not be production ready on this timeframe.
-
-   Mono 1.2 should come in Q2 2004 and include the missing components
-   libraries that will make Mono feature-compatible with .NET 1.0
-
-Q: What major components will you include in Mono?
-
-A: Hopefully everything that Microsoft ships on their Framework
-   (ADO.NET, ASP.NET, WinForms), and we encourage third party developers to 
-   create reusable components that work on both Mono and Windows.
+A: Please see the <a href="mono-roadmap.html">Mono Roadmap</a> for
+   more details on the release plans.  
 
 Q: How can I contribute?
 
@@ -211,26 +187,26 @@ Q: Miguel said once that Mono was being implemented in COBOL. Is that true?.
 A: No. It was a joke.
 
 
-<a name="ximian"></a> 
+<a name="novell"></a> 
 
-** The Ximian Role in the Mono Project
+** The Novell Role in the Mono Project
 
-Q: Why is Ximian working on .NET?
+Q: Why is Novell working on .NET?
 
-A: Ximian is interested in providing the best tools for programmers to
-   develop applications for Free Operating Systems.  
+A: Novell is interested in providing the best tools for programmers to
+   develop applications for Free Operating Systems.
 
    For more information, read the project <a
    href="rationale.html">rationale</a> page.
 
-Q: Will Ximian be able to take on a project of this size?  
+Q: Will Novell be able to take on a project of this size?  
 
-A: Of course not. Ximian a supporter of the Mono project, but the only way
+A: Of course not.  Novell is a supporter of the Mono project, but the only way
    to implement something of this size is for the entire free software
    community to get involved. Visit the <a href="contributing.html">contributing</a> 
    page if you'd like to help out.
 
-Q: What pieces will Ximian be working on?
+Q: What pieces Novell be working on?
 
 A: We will devote most of our resources to work on the pieces which are
    on the critical path to release a development and execution
@@ -238,25 +214,30 @@ A: We will devote most of our resources to work on the pieces which are
    the real world, it will achieve a critical mass of developers to
    improve it further.
 
-Q: Will Ximian offer Mono commercially?
+Q: Will Novell offer Mono commercially?
 
 A: When Mono is ready to be shipped Ximian will offer a commercial
-   support and services for Mono. 
+   support and services for Mono. Mono components are also
+   available to be licensed commercially. For licensing details,
+   contact <a
+   href="mailto:mono-licensing@ximian.com">mono-licensing@ximian.com</a>
 
-Q: Does Ximian provide consulting services around Mono?
+Q: Does Novell provide consulting services around Mono?
 
-A: Yes, Ximian does provide consulting services around Mono to
+A: Yes, Novell does provide consulting services around Mono to
    make it suitable to your needs.  Porting the runtime engine,
    customizing it, working on specific classes or tuning the code
    for your particular needs. 
 
+   Please contact <a
+   href="mailto:mono-licensing@ximian.com">mono-licensing@ximian.com</a>
+   for consulting services information.
+
 Q: Will you wait until Mono is finished?
 
 A: Mono will ship on various stages as they mature.  Some people
-   require only a subset of the technologies, those will ship first.
-
-   More advanced features will take more time to develop.  A support
-   time line will be available in June 2002.
+   require only a subset of the technologies, those will ship first,
+   see the <a href="mono-roadmap.html">Mono Roadmap</a> for details
 
 <a name="gnome"></a> 
 ** Mono and GNOME
@@ -270,6 +251,10 @@ A: In a number of ways.  This project was born out of the need of
    implement Winforms and the Drawing2D API and are considering
    GObject support.
 
+   Mono team members work actively on the <a
+   href="http://gtk-sharp.sf.net">Gtk#</a> project: a binding of the
+   GNOME class libraries for .NET and Mono.
+
 Q: Has the GNOME Foundation or the GNOME team adopted Mono?
 
 A: Mono is too new to be adopted by those groups. We hope that the
@@ -298,7 +283,8 @@ A: Yes, we will provide a set of classes for implementing and using
 Q: Does Mono depend on GNOME?
 
 A: No, Mono does not depend on GNOME.  We use a few packages produced by
-   the GNOME team like the `glib' library.  
+   the GNOME team like the `glib' library, we also use other
+   third-party open source libraries like Cairo and ICU.
 
 Q: But will I be able to build GNOME applications?
 
@@ -306,26 +292,29 @@ A: Yes, we will enable people to write GNOME applications using Mono.
 
 Q: Do you have C# bindings for GNOME?.
 
-A: Yes, we currently bind libgnome, libgnomecanvas, and libgnomeui --
-   although I dare say I have no idea how functional the bindings are
-   outside of what I tested in the sample app. I imagine other libraries 
-   under the GNOME framework will be added on an as-needed (and as-requested) 
-   basis...although a truly good bonobo binding will have to wait on the CORBA 
-   remoting support which has been started recently.
+A: Yes, the <a href="http://gtk-sharp.sf.net">Gtk# project</a>
+   provides bindings for Gtk+, Gdk, Atk, libgnome, libgnomecanvas, and
+   libgnomeui.  Other libraries under the GNOME framework will be
+   added on an as-needed (and as-requested) basis.
 
 <a name="gui"></a>
 ** GUI applications
 
 Q: Will Mono enable GUI applications to be authored?
 
-A: Yes, you will be able to build GUI applications.  Indeed, that is our
-   main focus.  We will provide both the Windows.Forms API and the Gtk# API.
+A: Yes, you will be able to build GUI applications.  Indeed, that is
+   our main focus.  Today you can use Gtk# or #WT to develop GUI
+   applications, and support for Windows.Forms is underway.
 
 Q: What is the difference between Gtk# and System.Windows.Forms?
 
 A: Gtk# is a set of bindings for the Gtk+ toolkit for C# (and other
-   CIL-enabled languages).  System.Windows.Forms is an API defined
-   by Microsoft to build GUI applications.
+   CIL-enabled languages), it integrates natively with the Gnome
+   desktop.  System.Windows.Forms is an API defined by Microsoft to
+   build GUI applications.
+
+   Windows.Forms is currently being implemented on top of a modified
+   version of Wine that can be used as a library: WineLib.
 
 Q: Why not implement System.Windows.Forms on top of Gtk# or Qt#?
 
@@ -374,9 +363,7 @@ A: Gtk# is becoming very usable and you can create applications and
 
 Q: How can I compile my HelloWorld.cs which uses Gtk#?.
 
-A: Try: mcs --unsafe -o HelloWorld.exe -r glib-sharp -r pango-sharp -r
-        atk-sharp -r gdk-sharp -r gtk-sharp -r gdk-imaging-sharp
-        HelloWorld.cs
+A: Try: mcs -r:gtk-sharp HelloWorld.cs
 
 Q: Is there any way how to connect DataAdapter to some GTK# controls?
 
@@ -391,9 +378,8 @@ A: There is a sample file called `DbClient' in gtk-sharp/samples that you
 
 Q: Do you have an estimate for when Windows.Forms will be released?
 
-A: We do not know, volunteers are working on this, but there is no set
-   date yet.  The current approach is using the Wine Library to implement
-   it.
+A: The plan currently is aimed at Q3/2004.
+
 
 Q: Do you have a comparission chart about the various toolkit
    offerings?
@@ -417,7 +403,7 @@ A: There is no high level communication between Ximian and Microsoft
    Ximian was also invited to participate in the ECMA committee
    meetings for C# and the CLI.
 
-Q: Is Microsoft or Corel paying Ximian to do this?
+Q: Are Microsoft or Corel paying Ximian to do this?
 
 A: No.
 
@@ -1091,37 +1077,11 @@ A: Yes, Java could target the CLI, Microsoft's J# compiler does that.
 
 Q: Is it possible to write a JVM byte code to CIL converter?
 
-A: Yes, it is possible.  Here are a few starting point:
-
-       <ul>
-               * A byte code representation is really a flattened forest of
-                 trees.  Look at the Mono JIT engine to see how we compute
-                 the basic blocks (this is used to figure out the "trees").
-
-                 The forest is just an array of trees.
-
-                 Indeed, run the JIT engine with -d (mono -d prog.exe) and
-                 you will see how these trees look like.
-
-                 You will have to do something similar for Java.
-
-               * Each "forest of trees" has a meaning.  This meaning can now
-                 be translated into the equivalent "meaning" in CLR-land.
-       </ul>
-
-   See also the <a href="http://weblog.ikvm.net/">IKVM project</a>
+A: Yes, this is what <a href="http://weblog.ikvm.net">IKVM</a> does.
 
 Q: Could mono become a hybrid CIL/java platform?
 
-A: No. It is quite far from the philosophy of the project. The idea of Mono 
-   is, to have only _one_ VM, on which all can run. And if there existing a 
-   binary-converter from Java-.class to IL and if there existing something 
-   like J-Sharp on Mono, you can write programs in Java, which than can run 
-   on Mono. You do not need two bindings (like your example: GTK-Sharp _and_ 
-   Java-Gnome). You need only _one_ of it (GTK-Sharp). Thats the idea of Mono.
-   An other point is, that there are no people, who use Open Source-JVMs. They 
-   all prefer Suns original. But for Unix there don't exist a .NET-Framework. 
-   So it is possible, that in the future Mono is the standard .NET for Unixes.
+A: This can be obtained easily with IKVM.
 
 Q: Do you plan to implement a Javascript compiler?
 
@@ -1162,7 +1122,7 @@ Q: Do you plan to Embrace and Extend .NET?
 
 A: Embracing a good technology is good.  Extending technologies in
    incompatible ways is bad for the users, so we do not plan on 
-   extending the technologies.
+   making incompatible changes to the technologies.
 
    If you have innovative ideas, and want to create new classes, we 
    encourage you to make those classes operate correctly well in both
@@ -1172,6 +1132,11 @@ A: Embracing a good technology is good.  Extending technologies in
    developed either by members of the Mono community, or other
    groups.  
 
+   In some cases, we have found the bits from Microsoft to be
+   incomplete, but we avoid breaking the API, instead we expose the
+   missing functionality in new assemblies (See Mono.Security and
+   System.Security).
+
 Q: Is there any way I can develop the class libraries using Linux yet?
 
 A: Yes.  Mono has been selfhosting since March 2002. 
@@ -1203,11 +1168,14 @@ A: Our main intention at Ximian is to be able to develop GNOME
 
 Q: What operating systems/CPUs do you support
 
-A: Mono currently runs on Linux, Windows, Solaris and FreeBSD.
+A: Mono currently runs on Linux, Windows, Solaris, FreeBSD, HP-UX and
+   MacOS X.
+
    There is a JIT engine available for x86 processors that can
    generate code and optimizations tailored for a particular CPU.
 
-   Interpreters exist for the SPARC, PowerPC and StrongARM CPUs.
+   Interpreters exist for the SPARC v8, SPARC v9, Itanium, HP-PA,
+   PowerPC and StrongARM CPUs.
 
 Q: Does Mono run on Windows?
 
@@ -1230,17 +1198,6 @@ A: It will depend only if you are using a particular assembly (for
    in Mono for implementing a `Hello World Enterprise P2P Web
    Service', you will not need any GNOME components.
 
-Q: Is anyone working on porting Mono to IA-64?
-
-A: Nobody is working on such port.
-
-Q: If I were about to start a Mono port to IA-64,would the same lburg code 
-   generator work for IA-64 also? or anything else need to be used for code 
-   generation(as the processor architecture is totally different from IA32)
-
-A: The lburg approach can be use for any processor architecture. But you might
-   think in another better approach.
-
 Q: Do you plan to port Rhino to C#?.
 
 A: Eto Demerzal has started a Rhino port to C#.
@@ -1260,29 +1217,12 @@ Q: What projects will you reuse or build upon?
 A: We want to get Mono in the hands of programmers soon.  We are
    interested in reusing existing open source software.
 
-Q: What about Intel's research JIT framework, ORP?
-
-A: At this time, we are investigating whether we can use elements of
-   ORP for Mono.   ORP is a research JIT engine that has a clearly
-   defined API that splits the JIT from the GC system and the actual
-   byte code implementation.
-
-   We are using some pieces of ORP (Their code generation interface)
-   and we use it as a source of inspiration for optimizations.  Paolo
-   and Dietmar consider ORP as being one of the best JIT engines out
-   there (and their research work and papers are very useful if you are
-   interested in JIT technology).
-
-Q: What about using GNU Lightning?
-
-A: We are not using GNU Lightning.  Our JIT is using an instruction
-   selector based on tree-pattern matching, and a code generation
-   interface that is very tied to the current architecture.
-
 Q: Will I be able to use Microsoft SQL Server 2000 or will I need to switch
    to a specific Open Source Database. Will I need to recode?
 
-A: There should not be any need to recode.
+A: There is no need to rewrite your code as long as you keep using
+   Microsoft SQL Server.  If you want to use an open source database,
+   you might need to make changes to your code.
 
 Q: What do I need to watch out for when programming in VB.NET so that I'm
    sure to be able to run those apps on Linux?
@@ -1296,7 +1236,7 @@ A: Not making any P/Invoke or DLL calls should and not using anything in
 Q: Will built-in reporting be supported for crystal reports? This is a
    heavily used part of our system.
 
-A: Probably not. Crystal Reports are propriety. Someone may try to emulate
+A: . Crystal Reports are propriety. Someone may try to emulate
    the behavior, but no-one has yet volunteered.
 
 Q: Who about writing to the registry? As I understand it, Linux does not have
@@ -1312,19 +1252,22 @@ A: Try to avoid it. Although there would be a emulation for registry in
 Q: System.Data.SqlClient with FreeTDS, will you port parts of these to C# and 
    use them?
 
-A: if their license is compatible with mono's, yes, we'd think about porting 
-   them. If not, we'll continue with the plan of using FreeTDS.
+A: This has been done.
 
 <a name="gcc"></a>
 ** Mono and GCC
 
 Q: Are you working on a GCC front-end to C#? A GCC back-end that will
-   generate CIL images? What about making a front-end to GCC that
-   takes CIL images and generates native code?
+   generate CIL images? 
+
+A: We would love to see a GCC modification that would generate CIL
+   images, but there is nothing at this point.
+
+Q: What about making a front-end to GCC that takes CIL images and
+   generates native code?
 
-A: We are currently seeking volunteers for those projects.
-   Visit the <a href="contributing.html">contributing</a> section if
-   you are interested.
+A: There is no active work on this area, but Mono already provides
+   pre-compilation services (Ahead-of-Time compilation).
 
 Q: But would this work around the GPL in the GCC compiler and allow
    people to work on non-free front-ends?
@@ -1332,12 +1275,6 @@ Q: But would this work around the GPL in the GCC compiler and allow
 A: People can already do this by targeting the JVM byte codes (there
    are about 130 compilers for various languages that target the JVM).
 
-Q: Why are you writing a JIT engine instead of a front-end to GCC?
-
-A: We want the JIT engine and runtime engine because they will be able
-   to execute CIL executables generated on Windows, and so no recompilation 
-   will be necessary.
-
 <a name="performance"></a>
 ** Performance
 
@@ -1346,11 +1283,9 @@ Q: How fast will Mono be?
 A: We can not predict the future, but a conservative estimate is that
    it would be at least `as fast as other JIT engines'.
 
-   We would like to ship various JIT engines with Mono, just like
-   Microsoft has done with their .NET development platform. We could
-   provide a faster, JIT for fast load times but lower performance,
-   and an and an optimizing JIT that would be slower at generating
-   code but produce more optimal output.
+   Mono's JIT engine has been recently re-architected, and it provides
+   many new features, and layers suitable for optimization.  It is
+   relatively easy to add new optimizations to Mono. 
 
    The CIL has some advantages over the Java byte code:  it is really
    an intermediate representation and there are a number of
@@ -1500,17 +1435,12 @@ Q: Will Ximian offer certifications on Mono or related technologies?.
 
 A: It's possible. But there is no plan about this. So the short answer is no.
 
-Q: Are there any Boehm's GC binaries?
-
-A: Yes. You can find RPMs <a href="http://java.thn.htu.se/~toor/">here</a>, though
-   if your distribution provides the correct packages, you should use those.
-   The suggested version of the Boehm GC is 6.1.
-
 Q: How can I report a bug?
 
-A: The best thing is to track down the bug and provide a simple test to
-   reproduce the bug. You can then add the bug to the 
-   <a href="http://bugzilla.ximian.com/enter_bug.cgi">bugtracking system</a>.
+A: The best thing is to track down the bug and provide a simple test
+   to reproduce the bug.  You can then add the bug to our bug tracking
+   system.  You can use our <a href="bugs.html">Bug Form</a> to enter
+   bugs for the appropriate component.
 
    Please provide information about what version of mono you're using
    and any relevant details to be able to reproduce the bug. Note that
index f3233756e8fba87c9c4ce5f440cd39b1f40072c7..3f85b3dc8975c96a2aecaa0231d78b58cddcde1d 100644 (file)
--- a/doc/forge
+++ b/doc/forge
@@ -1,20 +1,23 @@
 * Novell Forge
 
-       Novell Forge (http://forge.novell.com/) is a website managed by Novell
-       to promote the development of open source applications and solutions. 
-       Novell Forge features communities, akin to foundries on SourceForge.net,
-       which exist for the purpose of facilitating collaboration and
-       information exchange about certain technologies or solutions.
-       At Miguel's request, we have created a Mono community on Novell Forge
-       that is administered by Miguel.  This community, located at
-       http://forge.novell.com/modules/xfmod/community/?monocomm, provides a
-       resource for interaction and collaboration on Mono and associated
-       solutions.  Each community has the ability to provide forums, mailing
-       lists, FAQs, news, documentation, surveys, sample code, and links to
-       related applications.  The Mono community has been created for anyone
-       interested in Mono to use, and the exact set of features offered at the
-       community is determined by Miguel.
-       
+       Novell Forge (<a
+       href="http://forge.novell.com/">http://forge.novell.com/</a>)
+       is a website managed by Novell to promote the development of
+       open source applications and solutions.  Novell Forge features
+       communities, akin to foundries on SourceForge.net, which exist
+       for the purpose of facilitating collaboration and information
+       exchange about certain technologies or solutions.  At Miguel's
+       request, we have created a Mono community on Novell Forge that
+       is administered by Miguel.  This community, located at
+       http://forge.novell.com/modules/xfmod/community/?monocomm,
+       provides a resource for interaction and collaboration on Mono
+       and associated solutions.  Each community has the ability to
+       provide forums, mailing lists, FAQs, news, documentation,
+       surveys, sample code, and links to related applications.  The
+       Mono community has been created for anyone interested in Mono
+       to use, and the exact set of features offered at the community
+       is determined by Miguel.
+
        Any individual or group that wishes to provide Mono-based solutions in
        an open source fashion is encouraged to host their solution on the
        Novell Forge website, free of charge.  Once the project is hosted on
@@ -23,9 +26,7 @@
        relationship where the growth of Mono applications helps to improve
        Mono, and the growth of Mono likewise helps to increase the visibility
        and usefulness of your applications.
-
-
-
+       
 * Creating an Account
 
        A Novell Forge account is required in order to create a project on
@@ -64,6 +65,8 @@
 * Important Links:
 
        Novell Forge - <a href="http://forge.novell.com/">http://forge.novell.com/</a>
+
        Mono Community - <a href="http://forge.novell.com/modules/xfmod/community/?monocomm">http://forge.novell.com/modules/xfmod/community/?monocomm</a>
+
        Novell Forge Help - <a href="http://forge.novell.com/modules/xfmod/help/about.php">http://forge.novell.com/modules/xfmod/help/about.php</a>
 
diff --git a/doc/mono-hacking-roadmap.html b/doc/mono-hacking-roadmap.html
new file mode 100644 (file)
index 0000000..1a2d9a8
--- /dev/null
@@ -0,0 +1,261 @@
+<html>
+<head><title>Mono Hacking Roadmap</title>
+<style type="text/css">
+h1 {
+color: #efefef;
+font-size: 18pt;
+font-family: "Trebuchet MS";
+border: 0;
+margin: 0;
+padding: 1em;
+background: #666666;
+}
+
+h2, h3, h4, h5, h6 {
+font-family: Verdana,sans-serif;
+font-weight: bold;
+margin: 9pt;
+}
+
+h2, h3 {
+font-size: 18px;
+}
+
+h2 {
+padding: 3px;
+color: #000000;
+}
+
+h3 {
+font-size: 13px;
+border-bottom: 2px solid #dddddd;
+}
+
+h4 {
+border-bottom: 2px solid #dddddd;
+}
+
+body, table {
+background-color: #ffffff;
+font-family: Verdana, sans-serif; font-size: 12px;
+color: black;
+margin: 0;
+padding: 0;
+border: 0;
+       margin-left: 20%;
+       margin-right: 20%;
+}
+
+p {
+margin-left: 2em;
+margin-right: 2em;
+}
+
+ul li {
+margin-left: 2em;
+}
+
+img {
+border: 0;
+vertical-align: top;
+}
+
+</style>
+</head>
+<body>
+<center>
+  <h1>
+  Mono Hacking Roadmap
+  <br>
+
+  <font size=1>Miguel de Icaza (<a href="mailto:miguel@ximian.com">miguel@ximian.com</a>)</font>
+
+  </h1>
+  <p>
+</center>
+
+<h3>Introductory notes</h3>
+
+       <p>The intention of this document and the <a
+       href="http://www.go-mono.com/mono-roadmap.html">Mono
+       Roadmap</a> is to be a basis for discussion.  I want to build
+       on these two documents, and update as we get more insight into
+       the release process and the technologies we want to ship.
+
+<h3>Background</h3>
+
+       <p>At the 2003 PDC Microsoft introduced many new technologies,
+       which many of us are very excited about.  To me, it underlined
+       the importance of having a roadmap for users of Mono
+       technologies.  That way they know precisely what to expect
+       from us when.  We have been working on Mono for more than two
+       years, and it is important that we release a stable product to
+       the public.
+
+       <p>We have various degrees of maturity and feature
+       completeness in our code base, and I do not believe that we
+       should aim to be full implementation .NET 1.0 or .NET 1.1 in
+       our 1.0 release, that would just push the release at least for
+       another year .  The <a
+       href="http://www.go-mono.com/mono-roadmap.html">Mono
+       Roadmap</a> emphasizes this assumption.
+
+       <p>The 1.0 release is critical for the adoption of Mono on the
+       Linux environment, even if it is not as complete as the
+       Framework, lets get something stable, and fun to people to
+       use. 
+
+<h3>Mono 1.0: missing functionality.</h3>
+
+       <p>For the 1.0 release, there are a number of features that we
+       will have to complete, in no particular order:
+       
+       <ul>
+               <li>We need to fix corcompare and our cor-compare
+               pages to support both 1.0 and 1.1 API API compares.
+
+               We might want to move this outside of the Mono site,
+               to reduce the complexity of the HTML hackage, and use
+               ASP.NET to implement this.  Bonus points if we use
+               Piers' nice dynamic tree to load the CorCompare data
+               dynamically. 
+               
+               <li>Global Assembly Cache: Needed to support the
+               parallel installation of .NET 1.0 and 1.1 assemblies,
+               and to fix the various Assembly loading routines.
+
+               <li>PowerPC port.
+
+               <li>ECMA profile: We will like take care of this one
+               at Novell.
+
+               <li>Assembly signing: I do not know what is the state
+               of this feature currently in Mono, maybe Sebastien and
+               Zoltan could give us an update here.
+
+               <li>ASP.NET caching: Non-existant at this point, this
+               needs to be implemented. 
+               
+               <li>Stability of ASP.NET and Mod_Mono.  They are both
+               functional, but they fail under load.  Much debugging
+               and testing must go into these components.  As we use
+               more of it, we have found more little problems surface
+               on it. 
+
+               <li>Codebase audit: Duncan did an audit of Corlib, but
+               we must do an audit of all the assemblies that we we
+               are going to ship, just to get an idea of the major
+               areas missing.
+       </ul>
+
+       <p>The team at Novell can probably take care of most of these
+       things (help is always welcomed, of course), letting folks in
+       the open source world working on the more fun components. 
+       
+<h3>Alpha components.</h3>
+
+       <p>Various Mono developers are working on areas that will not
+       make it into the 1.0 timeframe: JScript, WSE, VB.NET,
+       Windows.Forms, Generics.  We should continue to work on
+       those components, as they will come shortly after, and they
+       are probably more fun to develop than stabilizing the core. 
+
+<h3>New components: Whidbey and Longhorn features</h3>
+
+       <p>Everyone is probably very excited about the new features in
+       the Whidbey release of .NET, and most importantly the Longhorn
+       features.  I am sure that many of us will not resist the urge
+       to put some of the new assemblies on CVS.
+
+       <p>We will likely add a profile for those of you that want to
+       work on this, and can not wait to get your hands in the code.
+       
+       <p>The things to keep in mind while adding code which is not
+       in .NET 1.0 and .NET 1.1:
+
+       <ul>
+               <li>Make sure you surround new classes and methods
+               with the appropriate define: NET_1_2 for things
+               available on the .NET 1.2 SDK (Whidbey) and NET_3
+               define for things only available on the Longhorn API.
+               We need this so that these methods do not appear on
+               the 1.0 and 1.1 builds.
+
+               <li>If you add generic types or methods, also surround
+               the method with GENERICS for now, since our compiler
+               can not currently build this code yet.   This is
+               redundant with the NET_1_2 define but important. 
+               
+               <li>For every assembly you update, make sure that you
+               also add the relevant AssemblyInfo versioning
+               information.  If possible, when you add methods from
+               .NET 1.2 to the build, also update the AssemblyInfo.cs
+               for the library.
+       </ul>
+
+       <p>There are three areas of new hot features:
+
+       <ul>
+               <li>Class library improvements (Whidbey, Mono 1.2
+               time frames).
+
+               <li>Indigo: They will release this in 2005 or 2006 and
+                wont make it into the 2004 Whidbey .NET 1.2 release.
+
+               <li>Avalon: Definitely a Longhorn-bound feature.
+       </ul>
+
+       <p>Most code that will reach the users in the short time frame
+       (next year) will be related to the Whidbey improvements, so I
+       encourage developers to work on those pieces, as they are the
+       ones that will help Mono the most.  
+
+<h3>ASP.NET 2.0 plans</h3>
+
+       <p>Gonzalo will continue to coordinate this effort;  At this
+       time ASP.NET 2.0 features will not make it into Mono 1.0.
+       
+<h3>Avalon plans</h3>
+
+       <p>On the surface Avalaon seems like it uses something like
+       GdiPlus/Cairo for rendering.  That was my initial feeling, but
+       it turns out that they had to rewrite everything to have a
+       performing rendering engine, and implement some very advanced
+       rendering features that include compositing with video
+       streams, also their brushes seem to be fairly powerful.
+
+       <p>XAML, a new markup language that binds tags to .NET classes
+       was also presented, but this is the least interesting part.  A
+       tiny compiler translates the XAML source files into C# code.
+       The whole process is just like Glade, and should be easy to
+       do.
+
+       <p>The really elaborate parts are the rendering engine, and the
+       composition model for widgets.  It is a complete new toolkit,
+       and if we want to implement this one, we will have to have a
+       new toolkit on Unix, incompatible with everything else, maybe
+       stressing the importance of working with other open source
+       projects in defining a cross-toolkit theming strategy to
+       address this particular problem.
+
+       <p>A Mini-Avalon is easy to do, but a complete one will
+       require much interaction with other groups: the Cairo folks
+       are probably the most qualified to assist us.
+
+<h3>Indigo Plans</h3>
+
+       <p>Indigo is still an early product (<a
+       href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx?pull=/library/en-us/dnlong/html/indigofaq1.asp">FAQ</a>,
+       but it could benefit from continued development of our WSE1
+       and WSE2 components, later to bring some of the code to it.
+
+       <p>Again, since people are visibly excited about this
+       technology, we will lay down in the next few days a framework
+       to contribute to it.
+       
+
+<p>
+<i>Last Updated: Nov 1st, 2003</i>
+               
+</body>
+</html>
diff --git a/doc/mono-roadmap.html b/doc/mono-roadmap.html
new file mode 100644 (file)
index 0000000..b5679ea
--- /dev/null
@@ -0,0 +1,367 @@
+<html>
+<head><title>Mono Roadmap</title>
+<style type="text/css">
+h1 {
+color: #efefef;
+font-size: 18pt;
+font-family: "Trebuchet MS";
+border: 0;
+margin: 0;
+padding: 1em;
+background: #666666;
+}
+
+h2, h3, h4, h5, h6 {
+font-family: Verdana,sans-serif;
+font-weight: bold;
+margin: 9pt;
+}
+
+h2, h3 {
+font-size: 18px;
+}
+
+h2 {
+padding: 3px;
+color: #000000;
+}
+
+h3 {
+font-size: 13px;
+border-bottom: 2px solid #dddddd;
+}
+
+h4 {
+border-bottom: 2px solid #dddddd;
+}
+
+body, table {
+background-color: #ffffff;
+font-family: Verdana, sans-serif; font-size: 12px;
+color: black;
+margin: 0;
+padding: 0;
+border: 0;
+       margin-left: 20%;
+       margin-right: 20%;
+}
+
+p {
+margin-left: 2em;
+margin-right: 2em;
+}
+
+ul li {
+margin-left: 2em;
+}
+
+img {
+border: 0;
+vertical-align: top;
+}
+
+</style>
+</head>
+<body>
+
+<center>
+  <h1>
+  Mono Project Roadmap
+  <br>
+  <font size=1>Miguel de Icaza (miguel@ximian.com)</font>
+  </h1>
+  <p>
+</center>
+
+<h3>Introduction</h3>
+
+       <p>This document describes the high-level roadmap for <a
+       href="http://www.go-mono.com">Mono</a>.  
+       
+       <p>The Mono project started in 2001 as an effort to implement
+       the .NET Framework to Unix.  To bring both the new programming
+       model based on the Common Language Infrastructure and C# as
+       well as helping people migrate their existing knowledge and
+       applications to Unix. Mono today supports a wide variety of
+       operating systems, CPUs and a large chunk of the functionality
+       available in the .NET Framework. 
+       
+       <p>At the October 2003 PDC conference a number of new
+       technologies were announced.  From the Mono release schedule
+       perspective, we should think about these technologies from
+       their release time perspective, and the features that must be
+       supported.
+
+       <p>This document outlines the roadmap for the Mono project
+       from my perspective: what we can effectively deliver on the
+       dates outlined.  Since Mono is a large open source project,
+       things might change and new features can be incorporated
+       into the plan if external sources devote enough attention to
+       those problems.
+
+<h3>Background</h3>
+
+       <p>So far Microsoft has published two versions of the .NET
+       Framework: 1.0 and 1.1, the later with incremental updates to
+       the changes in 1.1.
+
+       <p>The Mono project has been tracking some of the
+       improvements available in those two releases, some of the
+       highlights of our work so far are: 
+
+       <ul>
+               <li> Core: mscorlib, System, System.Security and
+               System.XML assemblies.
+
+               <li> ADO.NET: System.Data and various other database
+               providers.
+
+               <li> ASP.NET: WebForms and Web Services are
+               supported.  Work on WSE1/WSE2 has also started.
+
+               <li> Compilers: C#, VB.NET and various command line tools
+               that are part of the SDK.
+
+               <li> Open Source, Unix and Gnome specific libraries.
+       </ul>
+
+       <p>Other components like Windows.Forms, Directory.Services,
+       Enterprise Services and JScript are being developed but are not
+       as mature as the other components but are under development by
+       various people.
+
+       <p>Some other smaller and less used components do not have yet
+       a Mono equivalent.
+
+<h3>Mono release strategy</h3>
+
+       <p>The levels of maturity of Mono fluctuate depending on the
+       development effort we have put into it, and the use we have
+       given to them.  For example, the virtual machine and the C#
+       compiler very mature, while less commonly used functionality
+       like Windows.Forms or VB.NET are still under heavy
+       development.
+
+       <p>Our strategy is to release the mature components as Mono
+       1.0, and have upcoming versions of Mono add extra
+       functionality.
+
+<h3>Mono 1.0 goals</h3>
+
+       <p>The Mono 1.0 release would include the following
+       components:
+
+       <ul>
+               <li>C# compiler.
+
+               <li>VM, with JIT and pre-compiler.
+               
+               <li>IL assembler, disassembler.
+
+               <li>Development and security tools.
+
+               <li>Core libraries: mscorlib, System, System.XML.
+
+               <li>System.Data and Mono database providers.
+
+               <li>System.Web: Web applications platform and Apache
+               integration module.
+
+               <li>System.Web.Services: client and server support.
+
+               <li>System.Drawing.
+
+               <li>System.DirectoryServices
+
+               <li>JIT support: x86 and PPC architectures
+               (interpreter available for other architectures).
+
+               <li>ECMA profiles: special build options to build
+               Mono as an implementation of the various ECMA profiles
+               will be available.
+       </ul>
+
+       <p>Packaging:
+       
+       <ul>
+               <li>mono: will contain the above features implementing
+               the .NET 1.1 API.
+
+               <li>mono-1.0-compat: Will include a build of the
+               libraries with the .NET 1.0 API, this is a
+               compatibility build for people running .NET 1.0
+               applications. 
+
+               <li>mono-unstable: Will contain a snapshot of the
+               other technologies under development for developer's
+               convenience, but will be unsupported at this time.
+               These include the Generics edition of the C#
+               compiler. 
+       </ul>
+       
+       <p>Release schedule: Q1/2004 release.
+
+       <p>Bug fix releases would be done on a monthly basis.
+
+<h3>Microsoft's Whidbey</h3>
+
+       <p>To understand post 1.0 editions of Mono, it is important to
+       put it into perspective with the Microsoft Whidbey product, to
+       be released in 2004.
+       
+       <p>The new features in the Whidbey release of the .NET Framework
+       include:
+       
+       <ul>
+               <li><b>Generic types</b><br>
+               These introduce changes to the compiler, runtime and
+               class libraries.  
+
+               <li><b>ASP.NET 2</b><br>
+               Many tools to simplify web application development:
+               Master pages, new controls for common operations,
+               personalization and themes.
+
+               <li><b>Remoting</b><br>
+               New security channels and version-resistant remoting
+               (good news in the interop department).
+
+               <li><b>XML</b><br>
+               XQuery debuts on this release as well as an improved
+               XmlDocument system based on XPath: XPathDocument.
+
+               <li><b>Networking</b><br>
+               FTP client, Ssl streams.
+
+               <li><b>Console and Serial ports:</b></br>
+               Console terminal input/output is available as well as
+               serial port handling.
+
+               <li><b>Windows.Forms</b><br>
+               Layout containers finally appeared on Windows.Forms as
+               well as various new controls.
+
+               <li><b>ObjectSpaces</b><br>
+               An API for simpler data-base access.
+       </ul>
+
+<h3>Mono 1.2</h3>
+
+       <p>The Mono team is developing in parallel some features that
+       wont make it to the 1.0 release in stable form.  These will be
+       the foundation for the 1.2 release.  The focus of this release
+       is to track the core API for the .NET Framework 1.2, but
+       again, only a subset of the total framework will be
+       available.  
+
+       <p>Mostly, Mono 1.2 consists of components that were not
+       stable enough for Mono 1.0, but that would be mature at this
+       point, plus the incorporation of some new features from
+       Whidbey.  In addition to the Mono 1.9 components, this release
+       will add:
+
+       <ul>
+               <li>Generic types support: C# compiler, execution
+               system and core class libraries.
+
+               <li>ASP.NET 2.0 improvements.
+
+               <li>Remoting improvements from Whidbey.
+
+               <li>System.XML improvements from Whidbey, most likely missing XQuery.
+
+               <li>Console and Serial ports support.
+
+               <li>New compilers: VB.NET and JScript support.
+
+               <li>WSE1/WSE2 implementations.
+
+               <li>System.Windows.Forms officially debuts.
+       </ul>
+
+       <p>This release will by default provide .NET 1.2 APIs, but
+       compatibility libraries for 1.0 and 1.1 will be distributed in
+       the mono-compat package.  The unstable components of Mono will
+       be distributed on the `mono-unstable' package, the libraries
+       in this release will be unsupported. 
+
+       <p>Release schedule: Q3/2004 release.
+
+<h3>Peer projects</h3>
+
+       <p>Other projects like the debugger, the documentation browser
+       and Gtk# will remain on their own schedules.   This page will
+       be updated to contain that information when it becomes
+       available.
+
+<h3>Unscheduled activities</h3>
+       
+       <p>A missing component of Mono is the Code Access Security
+       (CAS).  This functionality is not needed in today's Mono as
+       currently Mono is being used to run fully trusted
+       applications, and we are not using it on embedded scenarios
+       where assemblies would have different trust levels.
+
+       <p>This is an important component, but requires three major
+       pieces of work:
+
+       <ul>
+               <li>Runtime support for implementing the security
+               demands.
+
+               <li>A guidelines document outlining what and where
+               must have security demands in place.
+
+               <li>A full audit of our class libraries: method by
+               method
+       </ul>
+
+       <p>All of these are major pieces of work, and we currently
+       have no plans to implement any of those.  A volunteer effort might be
+       able to help with the runtime requirements and the document,
+       but until those are done, we are unlikely to start doing any
+       work on the actual class library audit and instrumentation. 
+       
+<h3>Mono and WinFX: 2006</h3>
+
+       <p>WinFX is the name given to the new set of libraries that
+       makes up .NET in the Longhorn operating system: the existing
+       .NET set of class libraries, plus the new functionality
+       available in the OS.
+
+       <p>WinFX adds things like storage facilities (WinFS), a
+       new versatile communications stack (Indigo) and a new
+       eye-candy packed GUI programming system (Avalon).
+
+       <p>Although WinFS, Avalon and Indigo are very exciting
+       components, at this time it is too early to tell when those
+       components will be available for Mono.  Open source developers
+       will very likely start work on these, but since they are still
+       far from being officially released, they are not in the radar
+       at this point.
+
+<h3>Unsupported technologies</h3>
+
+       <p>Some technologies are very hard to implement or are being
+       phased out by components in the Longhorn time frame.  In some
+       cases, we feel that they are not crucial to the future of the
+       open source desktop.
+       
+       <p>System.EnterpriseServices and System.Management come to
+       mind, and we are unlikely to put any resources into the task.
+       We would gladly host the code if someone cares to implement
+       it, but they would likely remain unsupported features of Mono.
+
+<h3>Mono Developer Strategy</h3>
+
+       <p>Mono Developers should read the <a
+       href="mono-hacking-roadmap.html">Mono Hacking Roadmap</a>
+       
+<h3>Comments</h3>
+
+       <p>Feel free to send your comments or questions the roadmap to
+       <a href="mailto:miguel@ximian.com">miguel@ximian.com</a>
+
+
+<p>
+<i>Last Updated: Nov 1st, 2003</i>
\ No newline at end of file
index ab2577d19e1e294410767a1a7a09a6d5971e5bee..a35b02123e50c552f97f8a11e1bd7fc5c1b68c20 100644 (file)
@@ -1,4 +1,5 @@
 0,Home,index.html,index.src
+1,Roadmap,mono-roadmap.html
 1,FAQ,faq.html,faq.src
 1,News archive,http://monoevo.sf.net/mwn/archives.html
 1,Screenshots,screenshots.html,screenshots.src
index 9cf03e3bb85718ada9b619369b54e170f9e0870d..cf11567fda461a43e7511daeb555c863818f55cb 100644 (file)
@@ -71,6 +71,8 @@ OBJECTS=                                                                      \
        deploy/class-library.html                                               \
        deploy/classlib-doc.html
 
+HTML_SOURCES = ../mono-roadmap.html
+
 #2,Configuration.Install,class-status-System.Configuration.Install.html,class-status-System.Configuration.Install.src,cm/cormissing.css,cm/cormissing.js
 #2,Runtime.Remoting,class-status-System.Runtime.Remoting.html,class-status-System.Runtime.Remoting.src,cm/cormissing.css,cm/cormissing.js
 
@@ -83,6 +85,7 @@ NON_HTML_SOURCES=             \
 
 all: $(OBJECTS) deploy/index.rss ../team
        perl process.pl commands template.html.in deploy
+       cp $(HTML_SOURCES) deploy
        -mkdir deploy/team
        cp team/*png deploy/team
 
index babd4396e4fe448a5fe4fb49f4f5a88e1335d2b4..f82aeb5e917102aaaa5eb4c25acb2492976fa2e1 100644 (file)
        a.topmenu:visited { color: #cccccc; }
        a.topmenu:hover { color: #ee9900; text-decoration: underline; }
 
+       h1 {
+               border-bottom: 2px solid #dddddd;
+       }
+
 // --> 
 </style>
 #CSS#
diff --git a/web/faq b/web/faq
index 513f4e1f363cf019f99baad9c2dd32a7d5be0c0f..5024fa67fdb7275a925b59af292ee4a15fc082e8 100644 (file)
--- a/web/faq
+++ b/web/faq
@@ -1,5 +1,5 @@
 <a href="#basics">Basics</a><br>
-<a href="#ximian">The Ximian Role in the Mono project</a><br>
+<a href="#novell">The Novell Role in the Mono project</a><br>
 <a href="#gnome">Mono and GNOME</a><br>
 <a href="#gui">Building GUI applications with Mono</a><br>
 <a href="#msft">Mono and Microsoft</a><br>
@@ -87,8 +87,7 @@ A: The ".NET Initiative" is a somewhat nebulous company-wide effort by
    Microsoft, one part of which is a cross-platform development
    framework.  Mono is an implementation of the development framework,
    but not an implementation of anything else related to the .NET
-   Initiative, such as Passport, software-as-a-service, or
-   corporate re-branding.
+   Initiative, such as Passport or software-as-a-service.
 
 Q: What technologies are included in Mono?
 
@@ -147,49 +146,26 @@ Q: Will you offer an ECMA-compliant set of class libraries?
 
 A: Eventually we will.  Our current focus is on inter-operating
    with the Microsoft SDK, but we will also offer an ECMA compliant
-   set of libraries. 
+   subset of the libraries. 
 
 Q: What does the name "Mono" mean?
 
-A: Mono is the word for `monkey' in Spanish. We like monkeys.
+A: Mono is the word for `monkey' in Spanish. We like monkeys.  
 
-Q: Is Mono usable?
+Q: Does Mono work today?
 
-A: The JIT engine is usable on Intel x86 machines.  An interpreter
-   can be used on other non-Intel x86 machines.  
+A: The execution engine works on various platforms, we support
+   Just-in-Time and Ahead-of-Time compilations on Intel x86 machines
+   (and soon PowerPC).
 
-   The class libraries are mature enough to run some real applications
-   (the compiler for instance, and every day more and more applications
-   are natively developed with Mono).
+   The class libraries are mature enough to run various real
+   applications: our C# compiler, ASP.NET, and Gtk#-based
+   applications.
 
-Q: When will you ship it?
+Q: When will you ship Mono?
 
-A: Different parts of Mono will achieve usability at different stages,
-   once we are comfortable with the compiler, we will release "Mono Core",
-   which contains everything needed to develop applications with the base
-   class libraries, this will happen soon and in the meantime you can 
-   download daily snapshots of our work. Also the full ASP.NET support is 
-   close to completion. 
-
-   Other higher level class libraries (ASP.NET, ADO.NET, WinForms) will
-   be released when they become stable. 
-
-Q: When will Mono 1.0 ship?
-
-A: We are planning on releasing Mono 1.0 (Mono Core) which will ship all the
-   components of Mono that are known to be stable in Q4 2003/Q1 2004.
-
-   This release will lack System.Windows.Forms  and
-   Enterprise.Services, as they will not be production ready on this timeframe.
-
-   Mono 1.2 should come in Q2 2004 and include the missing components
-   libraries that will make Mono feature-compatible with .NET 1.0
-
-Q: What major components will you include in Mono?
-
-A: Hopefully everything that Microsoft ships on their Framework
-   (ADO.NET, ASP.NET, WinForms), and we encourage third party developers to 
-   create reusable components that work on both Mono and Windows.
+A: Please see the <a href="mono-roadmap.html">Mono Roadmap</a> for
+   more details on the release plans.  
 
 Q: How can I contribute?
 
@@ -211,26 +187,26 @@ Q: Miguel said once that Mono was being implemented in COBOL. Is that true?.
 A: No. It was a joke.
 
 
-<a name="ximian"></a> 
+<a name="novell"></a> 
 
-** The Ximian Role in the Mono Project
+** The Novell Role in the Mono Project
 
-Q: Why is Ximian working on .NET?
+Q: Why is Novell working on .NET?
 
-A: Ximian is interested in providing the best tools for programmers to
-   develop applications for Free Operating Systems.  
+A: Novell is interested in providing the best tools for programmers to
+   develop applications for Free Operating Systems.
 
    For more information, read the project <a
    href="rationale.html">rationale</a> page.
 
-Q: Will Ximian be able to take on a project of this size?  
+Q: Will Novell be able to take on a project of this size?  
 
-A: Of course not. Ximian a supporter of the Mono project, but the only way
+A: Of course not.  Novell is a supporter of the Mono project, but the only way
    to implement something of this size is for the entire free software
    community to get involved. Visit the <a href="contributing.html">contributing</a> 
    page if you'd like to help out.
 
-Q: What pieces will Ximian be working on?
+Q: What pieces Novell be working on?
 
 A: We will devote most of our resources to work on the pieces which are
    on the critical path to release a development and execution
@@ -238,25 +214,30 @@ A: We will devote most of our resources to work on the pieces which are
    the real world, it will achieve a critical mass of developers to
    improve it further.
 
-Q: Will Ximian offer Mono commercially?
+Q: Will Novell offer Mono commercially?
 
 A: When Mono is ready to be shipped Ximian will offer a commercial
-   support and services for Mono. 
+   support and services for Mono. Mono components are also
+   available to be licensed commercially. For licensing details,
+   contact <a
+   href="mailto:mono-licensing@ximian.com">mono-licensing@ximian.com</a>
 
-Q: Does Ximian provide consulting services around Mono?
+Q: Does Novell provide consulting services around Mono?
 
-A: Yes, Ximian does provide consulting services around Mono to
+A: Yes, Novell does provide consulting services around Mono to
    make it suitable to your needs.  Porting the runtime engine,
    customizing it, working on specific classes or tuning the code
    for your particular needs. 
 
+   Please contact <a
+   href="mailto:mono-licensing@ximian.com">mono-licensing@ximian.com</a>
+   for consulting services information.
+
 Q: Will you wait until Mono is finished?
 
 A: Mono will ship on various stages as they mature.  Some people
-   require only a subset of the technologies, those will ship first.
-
-   More advanced features will take more time to develop.  A support
-   time line will be available in June 2002.
+   require only a subset of the technologies, those will ship first,
+   see the <a href="mono-roadmap.html">Mono Roadmap</a> for details
 
 <a name="gnome"></a> 
 ** Mono and GNOME
@@ -270,6 +251,10 @@ A: In a number of ways.  This project was born out of the need of
    implement Winforms and the Drawing2D API and are considering
    GObject support.
 
+   Mono team members work actively on the <a
+   href="http://gtk-sharp.sf.net">Gtk#</a> project: a binding of the
+   GNOME class libraries for .NET and Mono.
+
 Q: Has the GNOME Foundation or the GNOME team adopted Mono?
 
 A: Mono is too new to be adopted by those groups. We hope that the
@@ -298,7 +283,8 @@ A: Yes, we will provide a set of classes for implementing and using
 Q: Does Mono depend on GNOME?
 
 A: No, Mono does not depend on GNOME.  We use a few packages produced by
-   the GNOME team like the `glib' library.  
+   the GNOME team like the `glib' library, we also use other
+   third-party open source libraries like Cairo and ICU.
 
 Q: But will I be able to build GNOME applications?
 
@@ -306,26 +292,29 @@ A: Yes, we will enable people to write GNOME applications using Mono.
 
 Q: Do you have C# bindings for GNOME?.
 
-A: Yes, we currently bind libgnome, libgnomecanvas, and libgnomeui --
-   although I dare say I have no idea how functional the bindings are
-   outside of what I tested in the sample app. I imagine other libraries 
-   under the GNOME framework will be added on an as-needed (and as-requested) 
-   basis...although a truly good bonobo binding will have to wait on the CORBA 
-   remoting support which has been started recently.
+A: Yes, the <a href="http://gtk-sharp.sf.net">Gtk# project</a>
+   provides bindings for Gtk+, Gdk, Atk, libgnome, libgnomecanvas, and
+   libgnomeui.  Other libraries under the GNOME framework will be
+   added on an as-needed (and as-requested) basis.
 
 <a name="gui"></a>
 ** GUI applications
 
 Q: Will Mono enable GUI applications to be authored?
 
-A: Yes, you will be able to build GUI applications.  Indeed, that is our
-   main focus.  We will provide both the Windows.Forms API and the Gtk# API.
+A: Yes, you will be able to build GUI applications.  Indeed, that is
+   our main focus.  Today you can use Gtk# or #WT to develop GUI
+   applications, and support for Windows.Forms is underway.
 
 Q: What is the difference between Gtk# and System.Windows.Forms?
 
 A: Gtk# is a set of bindings for the Gtk+ toolkit for C# (and other
-   CIL-enabled languages).  System.Windows.Forms is an API defined
-   by Microsoft to build GUI applications.
+   CIL-enabled languages), it integrates natively with the Gnome
+   desktop.  System.Windows.Forms is an API defined by Microsoft to
+   build GUI applications.
+
+   Windows.Forms is currently being implemented on top of a modified
+   version of Wine that can be used as a library: WineLib.
 
 Q: Why not implement System.Windows.Forms on top of Gtk# or Qt#?
 
@@ -374,9 +363,7 @@ A: Gtk# is becoming very usable and you can create applications and
 
 Q: How can I compile my HelloWorld.cs which uses Gtk#?.
 
-A: Try: mcs --unsafe -o HelloWorld.exe -r glib-sharp -r pango-sharp -r
-        atk-sharp -r gdk-sharp -r gtk-sharp -r gdk-imaging-sharp
-        HelloWorld.cs
+A: Try: mcs -r:gtk-sharp HelloWorld.cs
 
 Q: Is there any way how to connect DataAdapter to some GTK# controls?
 
@@ -391,9 +378,8 @@ A: There is a sample file called `DbClient' in gtk-sharp/samples that you
 
 Q: Do you have an estimate for when Windows.Forms will be released?
 
-A: We do not know, volunteers are working on this, but there is no set
-   date yet.  The current approach is using the Wine Library to implement
-   it.
+A: The plan currently is aimed at Q3/2004.
+
 
 Q: Do you have a comparission chart about the various toolkit
    offerings?
@@ -417,7 +403,7 @@ A: There is no high level communication between Ximian and Microsoft
    Ximian was also invited to participate in the ECMA committee
    meetings for C# and the CLI.
 
-Q: Is Microsoft or Corel paying Ximian to do this?
+Q: Are Microsoft or Corel paying Ximian to do this?
 
 A: No.
 
@@ -1091,37 +1077,11 @@ A: Yes, Java could target the CLI, Microsoft's J# compiler does that.
 
 Q: Is it possible to write a JVM byte code to CIL converter?
 
-A: Yes, it is possible.  Here are a few starting point:
-
-       <ul>
-               * A byte code representation is really a flattened forest of
-                 trees.  Look at the Mono JIT engine to see how we compute
-                 the basic blocks (this is used to figure out the "trees").
-
-                 The forest is just an array of trees.
-
-                 Indeed, run the JIT engine with -d (mono -d prog.exe) and
-                 you will see how these trees look like.
-
-                 You will have to do something similar for Java.
-
-               * Each "forest of trees" has a meaning.  This meaning can now
-                 be translated into the equivalent "meaning" in CLR-land.
-       </ul>
-
-   See also the <a href="http://weblog.ikvm.net/">IKVM project</a>
+A: Yes, this is what <a href="http://weblog.ikvm.net">IKVM</a> does.
 
 Q: Could mono become a hybrid CIL/java platform?
 
-A: No. It is quite far from the philosophy of the project. The idea of Mono 
-   is, to have only _one_ VM, on which all can run. And if there existing a 
-   binary-converter from Java-.class to IL and if there existing something 
-   like J-Sharp on Mono, you can write programs in Java, which than can run 
-   on Mono. You do not need two bindings (like your example: GTK-Sharp _and_ 
-   Java-Gnome). You need only _one_ of it (GTK-Sharp). Thats the idea of Mono.
-   An other point is, that there are no people, who use Open Source-JVMs. They 
-   all prefer Suns original. But for Unix there don't exist a .NET-Framework. 
-   So it is possible, that in the future Mono is the standard .NET for Unixes.
+A: This can be obtained easily with IKVM.
 
 Q: Do you plan to implement a Javascript compiler?
 
@@ -1162,7 +1122,7 @@ Q: Do you plan to Embrace and Extend .NET?
 
 A: Embracing a good technology is good.  Extending technologies in
    incompatible ways is bad for the users, so we do not plan on 
-   extending the technologies.
+   making incompatible changes to the technologies.
 
    If you have innovative ideas, and want to create new classes, we 
    encourage you to make those classes operate correctly well in both
@@ -1172,6 +1132,11 @@ A: Embracing a good technology is good.  Extending technologies in
    developed either by members of the Mono community, or other
    groups.  
 
+   In some cases, we have found the bits from Microsoft to be
+   incomplete, but we avoid breaking the API, instead we expose the
+   missing functionality in new assemblies (See Mono.Security and
+   System.Security).
+
 Q: Is there any way I can develop the class libraries using Linux yet?
 
 A: Yes.  Mono has been selfhosting since March 2002. 
@@ -1203,11 +1168,14 @@ A: Our main intention at Ximian is to be able to develop GNOME
 
 Q: What operating systems/CPUs do you support
 
-A: Mono currently runs on Linux, Windows, Solaris and FreeBSD.
+A: Mono currently runs on Linux, Windows, Solaris, FreeBSD, HP-UX and
+   MacOS X.
+
    There is a JIT engine available for x86 processors that can
    generate code and optimizations tailored for a particular CPU.
 
-   Interpreters exist for the SPARC, PowerPC and StrongARM CPUs.
+   Interpreters exist for the SPARC v8, SPARC v9, Itanium, HP-PA,
+   PowerPC and StrongARM CPUs.
 
 Q: Does Mono run on Windows?
 
@@ -1230,17 +1198,6 @@ A: It will depend only if you are using a particular assembly (for
    in Mono for implementing a `Hello World Enterprise P2P Web
    Service', you will not need any GNOME components.
 
-Q: Is anyone working on porting Mono to IA-64?
-
-A: Nobody is working on such port.
-
-Q: If I were about to start a Mono port to IA-64,would the same lburg code 
-   generator work for IA-64 also? or anything else need to be used for code 
-   generation(as the processor architecture is totally different from IA32)
-
-A: The lburg approach can be use for any processor architecture. But you might
-   think in another better approach.
-
 Q: Do you plan to port Rhino to C#?.
 
 A: Eto Demerzal has started a Rhino port to C#.
@@ -1260,29 +1217,12 @@ Q: What projects will you reuse or build upon?
 A: We want to get Mono in the hands of programmers soon.  We are
    interested in reusing existing open source software.
 
-Q: What about Intel's research JIT framework, ORP?
-
-A: At this time, we are investigating whether we can use elements of
-   ORP for Mono.   ORP is a research JIT engine that has a clearly
-   defined API that splits the JIT from the GC system and the actual
-   byte code implementation.
-
-   We are using some pieces of ORP (Their code generation interface)
-   and we use it as a source of inspiration for optimizations.  Paolo
-   and Dietmar consider ORP as being one of the best JIT engines out
-   there (and their research work and papers are very useful if you are
-   interested in JIT technology).
-
-Q: What about using GNU Lightning?
-
-A: We are not using GNU Lightning.  Our JIT is using an instruction
-   selector based on tree-pattern matching, and a code generation
-   interface that is very tied to the current architecture.
-
 Q: Will I be able to use Microsoft SQL Server 2000 or will I need to switch
    to a specific Open Source Database. Will I need to recode?
 
-A: There should not be any need to recode.
+A: There is no need to rewrite your code as long as you keep using
+   Microsoft SQL Server.  If you want to use an open source database,
+   you might need to make changes to your code.
 
 Q: What do I need to watch out for when programming in VB.NET so that I'm
    sure to be able to run those apps on Linux?
@@ -1296,7 +1236,7 @@ A: Not making any P/Invoke or DLL calls should and not using anything in
 Q: Will built-in reporting be supported for crystal reports? This is a
    heavily used part of our system.
 
-A: Probably not. Crystal Reports are propriety. Someone may try to emulate
+A: . Crystal Reports are propriety. Someone may try to emulate
    the behavior, but no-one has yet volunteered.
 
 Q: Who about writing to the registry? As I understand it, Linux does not have
@@ -1312,19 +1252,22 @@ A: Try to avoid it. Although there would be a emulation for registry in
 Q: System.Data.SqlClient with FreeTDS, will you port parts of these to C# and 
    use them?
 
-A: if their license is compatible with mono's, yes, we'd think about porting 
-   them. If not, we'll continue with the plan of using FreeTDS.
+A: This has been done.
 
 <a name="gcc"></a>
 ** Mono and GCC
 
 Q: Are you working on a GCC front-end to C#? A GCC back-end that will
-   generate CIL images? What about making a front-end to GCC that
-   takes CIL images and generates native code?
+   generate CIL images? 
+
+A: We would love to see a GCC modification that would generate CIL
+   images, but there is nothing at this point.
+
+Q: What about making a front-end to GCC that takes CIL images and
+   generates native code?
 
-A: We are currently seeking volunteers for those projects.
-   Visit the <a href="contributing.html">contributing</a> section if
-   you are interested.
+A: There is no active work on this area, but Mono already provides
+   pre-compilation services (Ahead-of-Time compilation).
 
 Q: But would this work around the GPL in the GCC compiler and allow
    people to work on non-free front-ends?
@@ -1332,12 +1275,6 @@ Q: But would this work around the GPL in the GCC compiler and allow
 A: People can already do this by targeting the JVM byte codes (there
    are about 130 compilers for various languages that target the JVM).
 
-Q: Why are you writing a JIT engine instead of a front-end to GCC?
-
-A: We want the JIT engine and runtime engine because they will be able
-   to execute CIL executables generated on Windows, and so no recompilation 
-   will be necessary.
-
 <a name="performance"></a>
 ** Performance
 
@@ -1346,11 +1283,9 @@ Q: How fast will Mono be?
 A: We can not predict the future, but a conservative estimate is that
    it would be at least `as fast as other JIT engines'.
 
-   We would like to ship various JIT engines with Mono, just like
-   Microsoft has done with their .NET development platform. We could
-   provide a faster, JIT for fast load times but lower performance,
-   and an and an optimizing JIT that would be slower at generating
-   code but produce more optimal output.
+   Mono's JIT engine has been recently re-architected, and it provides
+   many new features, and layers suitable for optimization.  It is
+   relatively easy to add new optimizations to Mono. 
 
    The CIL has some advantages over the Java byte code:  it is really
    an intermediate representation and there are a number of
@@ -1500,17 +1435,12 @@ Q: Will Ximian offer certifications on Mono or related technologies?.
 
 A: It's possible. But there is no plan about this. So the short answer is no.
 
-Q: Are there any Boehm's GC binaries?
-
-A: Yes. You can find RPMs <a href="http://java.thn.htu.se/~toor/">here</a>, though
-   if your distribution provides the correct packages, you should use those.
-   The suggested version of the Boehm GC is 6.1.
-
 Q: How can I report a bug?
 
-A: The best thing is to track down the bug and provide a simple test to
-   reproduce the bug. You can then add the bug to the 
-   <a href="http://bugzilla.ximian.com/enter_bug.cgi">bugtracking system</a>.
+A: The best thing is to track down the bug and provide a simple test
+   to reproduce the bug.  You can then add the bug to our bug tracking
+   system.  You can use our <a href="bugs.html">Bug Form</a> to enter
+   bugs for the appropriate component.
 
    Please provide information about what version of mono you're using
    and any relevant details to be able to reproduce the bug. Note that
index f3233756e8fba87c9c4ce5f440cd39b1f40072c7..3f85b3dc8975c96a2aecaa0231d78b58cddcde1d 100644 (file)
--- a/web/forge
+++ b/web/forge
@@ -1,20 +1,23 @@
 * Novell Forge
 
-       Novell Forge (http://forge.novell.com/) is a website managed by Novell
-       to promote the development of open source applications and solutions. 
-       Novell Forge features communities, akin to foundries on SourceForge.net,
-       which exist for the purpose of facilitating collaboration and
-       information exchange about certain technologies or solutions.
-       At Miguel's request, we have created a Mono community on Novell Forge
-       that is administered by Miguel.  This community, located at
-       http://forge.novell.com/modules/xfmod/community/?monocomm, provides a
-       resource for interaction and collaboration on Mono and associated
-       solutions.  Each community has the ability to provide forums, mailing
-       lists, FAQs, news, documentation, surveys, sample code, and links to
-       related applications.  The Mono community has been created for anyone
-       interested in Mono to use, and the exact set of features offered at the
-       community is determined by Miguel.
-       
+       Novell Forge (<a
+       href="http://forge.novell.com/">http://forge.novell.com/</a>)
+       is a website managed by Novell to promote the development of
+       open source applications and solutions.  Novell Forge features
+       communities, akin to foundries on SourceForge.net, which exist
+       for the purpose of facilitating collaboration and information
+       exchange about certain technologies or solutions.  At Miguel's
+       request, we have created a Mono community on Novell Forge that
+       is administered by Miguel.  This community, located at
+       http://forge.novell.com/modules/xfmod/community/?monocomm,
+       provides a resource for interaction and collaboration on Mono
+       and associated solutions.  Each community has the ability to
+       provide forums, mailing lists, FAQs, news, documentation,
+       surveys, sample code, and links to related applications.  The
+       Mono community has been created for anyone interested in Mono
+       to use, and the exact set of features offered at the community
+       is determined by Miguel.
+
        Any individual or group that wishes to provide Mono-based solutions in
        an open source fashion is encouraged to host their solution on the
        Novell Forge website, free of charge.  Once the project is hosted on
@@ -23,9 +26,7 @@
        relationship where the growth of Mono applications helps to improve
        Mono, and the growth of Mono likewise helps to increase the visibility
        and usefulness of your applications.
-
-
-
+       
 * Creating an Account
 
        A Novell Forge account is required in order to create a project on
@@ -64,6 +65,8 @@
 * Important Links:
 
        Novell Forge - <a href="http://forge.novell.com/">http://forge.novell.com/</a>
+
        Mono Community - <a href="http://forge.novell.com/modules/xfmod/community/?monocomm">http://forge.novell.com/modules/xfmod/community/?monocomm</a>
+
        Novell Forge Help - <a href="http://forge.novell.com/modules/xfmod/help/about.php">http://forge.novell.com/modules/xfmod/help/about.php</a>
 
diff --git a/web/mono-hacking-roadmap.html b/web/mono-hacking-roadmap.html
new file mode 100644 (file)
index 0000000..1a2d9a8
--- /dev/null
@@ -0,0 +1,261 @@
+<html>
+<head><title>Mono Hacking Roadmap</title>
+<style type="text/css">
+h1 {
+color: #efefef;
+font-size: 18pt;
+font-family: "Trebuchet MS";
+border: 0;
+margin: 0;
+padding: 1em;
+background: #666666;
+}
+
+h2, h3, h4, h5, h6 {
+font-family: Verdana,sans-serif;
+font-weight: bold;
+margin: 9pt;
+}
+
+h2, h3 {
+font-size: 18px;
+}
+
+h2 {
+padding: 3px;
+color: #000000;
+}
+
+h3 {
+font-size: 13px;
+border-bottom: 2px solid #dddddd;
+}
+
+h4 {
+border-bottom: 2px solid #dddddd;
+}
+
+body, table {
+background-color: #ffffff;
+font-family: Verdana, sans-serif; font-size: 12px;
+color: black;
+margin: 0;
+padding: 0;
+border: 0;
+       margin-left: 20%;
+       margin-right: 20%;
+}
+
+p {
+margin-left: 2em;
+margin-right: 2em;
+}
+
+ul li {
+margin-left: 2em;
+}
+
+img {
+border: 0;
+vertical-align: top;
+}
+
+</style>
+</head>
+<body>
+<center>
+  <h1>
+  Mono Hacking Roadmap
+  <br>
+
+  <font size=1>Miguel de Icaza (<a href="mailto:miguel@ximian.com">miguel@ximian.com</a>)</font>
+
+  </h1>
+  <p>
+</center>
+
+<h3>Introductory notes</h3>
+
+       <p>The intention of this document and the <a
+       href="http://www.go-mono.com/mono-roadmap.html">Mono
+       Roadmap</a> is to be a basis for discussion.  I want to build
+       on these two documents, and update as we get more insight into
+       the release process and the technologies we want to ship.
+
+<h3>Background</h3>
+
+       <p>At the 2003 PDC Microsoft introduced many new technologies,
+       which many of us are very excited about.  To me, it underlined
+       the importance of having a roadmap for users of Mono
+       technologies.  That way they know precisely what to expect
+       from us when.  We have been working on Mono for more than two
+       years, and it is important that we release a stable product to
+       the public.
+
+       <p>We have various degrees of maturity and feature
+       completeness in our code base, and I do not believe that we
+       should aim to be full implementation .NET 1.0 or .NET 1.1 in
+       our 1.0 release, that would just push the release at least for
+       another year .  The <a
+       href="http://www.go-mono.com/mono-roadmap.html">Mono
+       Roadmap</a> emphasizes this assumption.
+
+       <p>The 1.0 release is critical for the adoption of Mono on the
+       Linux environment, even if it is not as complete as the
+       Framework, lets get something stable, and fun to people to
+       use. 
+
+<h3>Mono 1.0: missing functionality.</h3>
+
+       <p>For the 1.0 release, there are a number of features that we
+       will have to complete, in no particular order:
+       
+       <ul>
+               <li>We need to fix corcompare and our cor-compare
+               pages to support both 1.0 and 1.1 API API compares.
+
+               We might want to move this outside of the Mono site,
+               to reduce the complexity of the HTML hackage, and use
+               ASP.NET to implement this.  Bonus points if we use
+               Piers' nice dynamic tree to load the CorCompare data
+               dynamically. 
+               
+               <li>Global Assembly Cache: Needed to support the
+               parallel installation of .NET 1.0 and 1.1 assemblies,
+               and to fix the various Assembly loading routines.
+
+               <li>PowerPC port.
+
+               <li>ECMA profile: We will like take care of this one
+               at Novell.
+
+               <li>Assembly signing: I do not know what is the state
+               of this feature currently in Mono, maybe Sebastien and
+               Zoltan could give us an update here.
+
+               <li>ASP.NET caching: Non-existant at this point, this
+               needs to be implemented. 
+               
+               <li>Stability of ASP.NET and Mod_Mono.  They are both
+               functional, but they fail under load.  Much debugging
+               and testing must go into these components.  As we use
+               more of it, we have found more little problems surface
+               on it. 
+
+               <li>Codebase audit: Duncan did an audit of Corlib, but
+               we must do an audit of all the assemblies that we we
+               are going to ship, just to get an idea of the major
+               areas missing.
+       </ul>
+
+       <p>The team at Novell can probably take care of most of these
+       things (help is always welcomed, of course), letting folks in
+       the open source world working on the more fun components. 
+       
+<h3>Alpha components.</h3>
+
+       <p>Various Mono developers are working on areas that will not
+       make it into the 1.0 timeframe: JScript, WSE, VB.NET,
+       Windows.Forms, Generics.  We should continue to work on
+       those components, as they will come shortly after, and they
+       are probably more fun to develop than stabilizing the core. 
+
+<h3>New components: Whidbey and Longhorn features</h3>
+
+       <p>Everyone is probably very excited about the new features in
+       the Whidbey release of .NET, and most importantly the Longhorn
+       features.  I am sure that many of us will not resist the urge
+       to put some of the new assemblies on CVS.
+
+       <p>We will likely add a profile for those of you that want to
+       work on this, and can not wait to get your hands in the code.
+       
+       <p>The things to keep in mind while adding code which is not
+       in .NET 1.0 and .NET 1.1:
+
+       <ul>
+               <li>Make sure you surround new classes and methods
+               with the appropriate define: NET_1_2 for things
+               available on the .NET 1.2 SDK (Whidbey) and NET_3
+               define for things only available on the Longhorn API.
+               We need this so that these methods do not appear on
+               the 1.0 and 1.1 builds.
+
+               <li>If you add generic types or methods, also surround
+               the method with GENERICS for now, since our compiler
+               can not currently build this code yet.   This is
+               redundant with the NET_1_2 define but important. 
+               
+               <li>For every assembly you update, make sure that you
+               also add the relevant AssemblyInfo versioning
+               information.  If possible, when you add methods from
+               .NET 1.2 to the build, also update the AssemblyInfo.cs
+               for the library.
+       </ul>
+
+       <p>There are three areas of new hot features:
+
+       <ul>
+               <li>Class library improvements (Whidbey, Mono 1.2
+               time frames).
+
+               <li>Indigo: They will release this in 2005 or 2006 and
+                wont make it into the 2004 Whidbey .NET 1.2 release.
+
+               <li>Avalon: Definitely a Longhorn-bound feature.
+       </ul>
+
+       <p>Most code that will reach the users in the short time frame
+       (next year) will be related to the Whidbey improvements, so I
+       encourage developers to work on those pieces, as they are the
+       ones that will help Mono the most.  
+
+<h3>ASP.NET 2.0 plans</h3>
+
+       <p>Gonzalo will continue to coordinate this effort;  At this
+       time ASP.NET 2.0 features will not make it into Mono 1.0.
+       
+<h3>Avalon plans</h3>
+
+       <p>On the surface Avalaon seems like it uses something like
+       GdiPlus/Cairo for rendering.  That was my initial feeling, but
+       it turns out that they had to rewrite everything to have a
+       performing rendering engine, and implement some very advanced
+       rendering features that include compositing with video
+       streams, also their brushes seem to be fairly powerful.
+
+       <p>XAML, a new markup language that binds tags to .NET classes
+       was also presented, but this is the least interesting part.  A
+       tiny compiler translates the XAML source files into C# code.
+       The whole process is just like Glade, and should be easy to
+       do.
+
+       <p>The really elaborate parts are the rendering engine, and the
+       composition model for widgets.  It is a complete new toolkit,
+       and if we want to implement this one, we will have to have a
+       new toolkit on Unix, incompatible with everything else, maybe
+       stressing the importance of working with other open source
+       projects in defining a cross-toolkit theming strategy to
+       address this particular problem.
+
+       <p>A Mini-Avalon is easy to do, but a complete one will
+       require much interaction with other groups: the Cairo folks
+       are probably the most qualified to assist us.
+
+<h3>Indigo Plans</h3>
+
+       <p>Indigo is still an early product (<a
+       href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx?pull=/library/en-us/dnlong/html/indigofaq1.asp">FAQ</a>,
+       but it could benefit from continued development of our WSE1
+       and WSE2 components, later to bring some of the code to it.
+
+       <p>Again, since people are visibly excited about this
+       technology, we will lay down in the next few days a framework
+       to contribute to it.
+       
+
+<p>
+<i>Last Updated: Nov 1st, 2003</i>
+               
+</body>
+</html>
diff --git a/web/mono-roadmap.html b/web/mono-roadmap.html
new file mode 100644 (file)
index 0000000..b5679ea
--- /dev/null
@@ -0,0 +1,367 @@
+<html>
+<head><title>Mono Roadmap</title>
+<style type="text/css">
+h1 {
+color: #efefef;
+font-size: 18pt;
+font-family: "Trebuchet MS";
+border: 0;
+margin: 0;
+padding: 1em;
+background: #666666;
+}
+
+h2, h3, h4, h5, h6 {
+font-family: Verdana,sans-serif;
+font-weight: bold;
+margin: 9pt;
+}
+
+h2, h3 {
+font-size: 18px;
+}
+
+h2 {
+padding: 3px;
+color: #000000;
+}
+
+h3 {
+font-size: 13px;
+border-bottom: 2px solid #dddddd;
+}
+
+h4 {
+border-bottom: 2px solid #dddddd;
+}
+
+body, table {
+background-color: #ffffff;
+font-family: Verdana, sans-serif; font-size: 12px;
+color: black;
+margin: 0;
+padding: 0;
+border: 0;
+       margin-left: 20%;
+       margin-right: 20%;
+}
+
+p {
+margin-left: 2em;
+margin-right: 2em;
+}
+
+ul li {
+margin-left: 2em;
+}
+
+img {
+border: 0;
+vertical-align: top;
+}
+
+</style>
+</head>
+<body>
+
+<center>
+  <h1>
+  Mono Project Roadmap
+  <br>
+  <font size=1>Miguel de Icaza (miguel@ximian.com)</font>
+  </h1>
+  <p>
+</center>
+
+<h3>Introduction</h3>
+
+       <p>This document describes the high-level roadmap for <a
+       href="http://www.go-mono.com">Mono</a>.  
+       
+       <p>The Mono project started in 2001 as an effort to implement
+       the .NET Framework to Unix.  To bring both the new programming
+       model based on the Common Language Infrastructure and C# as
+       well as helping people migrate their existing knowledge and
+       applications to Unix. Mono today supports a wide variety of
+       operating systems, CPUs and a large chunk of the functionality
+       available in the .NET Framework. 
+       
+       <p>At the October 2003 PDC conference a number of new
+       technologies were announced.  From the Mono release schedule
+       perspective, we should think about these technologies from
+       their release time perspective, and the features that must be
+       supported.
+
+       <p>This document outlines the roadmap for the Mono project
+       from my perspective: what we can effectively deliver on the
+       dates outlined.  Since Mono is a large open source project,
+       things might change and new features can be incorporated
+       into the plan if external sources devote enough attention to
+       those problems.
+
+<h3>Background</h3>
+
+       <p>So far Microsoft has published two versions of the .NET
+       Framework: 1.0 and 1.1, the later with incremental updates to
+       the changes in 1.1.
+
+       <p>The Mono project has been tracking some of the
+       improvements available in those two releases, some of the
+       highlights of our work so far are: 
+
+       <ul>
+               <li> Core: mscorlib, System, System.Security and
+               System.XML assemblies.
+
+               <li> ADO.NET: System.Data and various other database
+               providers.
+
+               <li> ASP.NET: WebForms and Web Services are
+               supported.  Work on WSE1/WSE2 has also started.
+
+               <li> Compilers: C#, VB.NET and various command line tools
+               that are part of the SDK.
+
+               <li> Open Source, Unix and Gnome specific libraries.
+       </ul>
+
+       <p>Other components like Windows.Forms, Directory.Services,
+       Enterprise Services and JScript are being developed but are not
+       as mature as the other components but are under development by
+       various people.
+
+       <p>Some other smaller and less used components do not have yet
+       a Mono equivalent.
+
+<h3>Mono release strategy</h3>
+
+       <p>The levels of maturity of Mono fluctuate depending on the
+       development effort we have put into it, and the use we have
+       given to them.  For example, the virtual machine and the C#
+       compiler very mature, while less commonly used functionality
+       like Windows.Forms or VB.NET are still under heavy
+       development.
+
+       <p>Our strategy is to release the mature components as Mono
+       1.0, and have upcoming versions of Mono add extra
+       functionality.
+
+<h3>Mono 1.0 goals</h3>
+
+       <p>The Mono 1.0 release would include the following
+       components:
+
+       <ul>
+               <li>C# compiler.
+
+               <li>VM, with JIT and pre-compiler.
+               
+               <li>IL assembler, disassembler.
+
+               <li>Development and security tools.
+
+               <li>Core libraries: mscorlib, System, System.XML.
+
+               <li>System.Data and Mono database providers.
+
+               <li>System.Web: Web applications platform and Apache
+               integration module.
+
+               <li>System.Web.Services: client and server support.
+
+               <li>System.Drawing.
+
+               <li>System.DirectoryServices
+
+               <li>JIT support: x86 and PPC architectures
+               (interpreter available for other architectures).
+
+               <li>ECMA profiles: special build options to build
+               Mono as an implementation of the various ECMA profiles
+               will be available.
+       </ul>
+
+       <p>Packaging:
+       
+       <ul>
+               <li>mono: will contain the above features implementing
+               the .NET 1.1 API.
+
+               <li>mono-1.0-compat: Will include a build of the
+               libraries with the .NET 1.0 API, this is a
+               compatibility build for people running .NET 1.0
+               applications. 
+
+               <li>mono-unstable: Will contain a snapshot of the
+               other technologies under development for developer's
+               convenience, but will be unsupported at this time.
+               These include the Generics edition of the C#
+               compiler. 
+       </ul>
+       
+       <p>Release schedule: Q1/2004 release.
+
+       <p>Bug fix releases would be done on a monthly basis.
+
+<h3>Microsoft's Whidbey</h3>
+
+       <p>To understand post 1.0 editions of Mono, it is important to
+       put it into perspective with the Microsoft Whidbey product, to
+       be released in 2004.
+       
+       <p>The new features in the Whidbey release of the .NET Framework
+       include:
+       
+       <ul>
+               <li><b>Generic types</b><br>
+               These introduce changes to the compiler, runtime and
+               class libraries.  
+
+               <li><b>ASP.NET 2</b><br>
+               Many tools to simplify web application development:
+               Master pages, new controls for common operations,
+               personalization and themes.
+
+               <li><b>Remoting</b><br>
+               New security channels and version-resistant remoting
+               (good news in the interop department).
+
+               <li><b>XML</b><br>
+               XQuery debuts on this release as well as an improved
+               XmlDocument system based on XPath: XPathDocument.
+
+               <li><b>Networking</b><br>
+               FTP client, Ssl streams.
+
+               <li><b>Console and Serial ports:</b></br>
+               Console terminal input/output is available as well as
+               serial port handling.
+
+               <li><b>Windows.Forms</b><br>
+               Layout containers finally appeared on Windows.Forms as
+               well as various new controls.
+
+               <li><b>ObjectSpaces</b><br>
+               An API for simpler data-base access.
+       </ul>
+
+<h3>Mono 1.2</h3>
+
+       <p>The Mono team is developing in parallel some features that
+       wont make it to the 1.0 release in stable form.  These will be
+       the foundation for the 1.2 release.  The focus of this release
+       is to track the core API for the .NET Framework 1.2, but
+       again, only a subset of the total framework will be
+       available.  
+
+       <p>Mostly, Mono 1.2 consists of components that were not
+       stable enough for Mono 1.0, but that would be mature at this
+       point, plus the incorporation of some new features from
+       Whidbey.  In addition to the Mono 1.9 components, this release
+       will add:
+
+       <ul>
+               <li>Generic types support: C# compiler, execution
+               system and core class libraries.
+
+               <li>ASP.NET 2.0 improvements.
+
+               <li>Remoting improvements from Whidbey.
+
+               <li>System.XML improvements from Whidbey, most likely missing XQuery.
+
+               <li>Console and Serial ports support.
+
+               <li>New compilers: VB.NET and JScript support.
+
+               <li>WSE1/WSE2 implementations.
+
+               <li>System.Windows.Forms officially debuts.
+       </ul>
+
+       <p>This release will by default provide .NET 1.2 APIs, but
+       compatibility libraries for 1.0 and 1.1 will be distributed in
+       the mono-compat package.  The unstable components of Mono will
+       be distributed on the `mono-unstable' package, the libraries
+       in this release will be unsupported. 
+
+       <p>Release schedule: Q3/2004 release.
+
+<h3>Peer projects</h3>
+
+       <p>Other projects like the debugger, the documentation browser
+       and Gtk# will remain on their own schedules.   This page will
+       be updated to contain that information when it becomes
+       available.
+
+<h3>Unscheduled activities</h3>
+       
+       <p>A missing component of Mono is the Code Access Security
+       (CAS).  This functionality is not needed in today's Mono as
+       currently Mono is being used to run fully trusted
+       applications, and we are not using it on embedded scenarios
+       where assemblies would have different trust levels.
+
+       <p>This is an important component, but requires three major
+       pieces of work:
+
+       <ul>
+               <li>Runtime support for implementing the security
+               demands.
+
+               <li>A guidelines document outlining what and where
+               must have security demands in place.
+
+               <li>A full audit of our class libraries: method by
+               method
+       </ul>
+
+       <p>All of these are major pieces of work, and we currently
+       have no plans to implement any of those.  A volunteer effort might be
+       able to help with the runtime requirements and the document,
+       but until those are done, we are unlikely to start doing any
+       work on the actual class library audit and instrumentation. 
+       
+<h3>Mono and WinFX: 2006</h3>
+
+       <p>WinFX is the name given to the new set of libraries that
+       makes up .NET in the Longhorn operating system: the existing
+       .NET set of class libraries, plus the new functionality
+       available in the OS.
+
+       <p>WinFX adds things like storage facilities (WinFS), a
+       new versatile communications stack (Indigo) and a new
+       eye-candy packed GUI programming system (Avalon).
+
+       <p>Although WinFS, Avalon and Indigo are very exciting
+       components, at this time it is too early to tell when those
+       components will be available for Mono.  Open source developers
+       will very likely start work on these, but since they are still
+       far from being officially released, they are not in the radar
+       at this point.
+
+<h3>Unsupported technologies</h3>
+
+       <p>Some technologies are very hard to implement or are being
+       phased out by components in the Longhorn time frame.  In some
+       cases, we feel that they are not crucial to the future of the
+       open source desktop.
+       
+       <p>System.EnterpriseServices and System.Management come to
+       mind, and we are unlikely to put any resources into the task.
+       We would gladly host the code if someone cares to implement
+       it, but they would likely remain unsupported features of Mono.
+
+<h3>Mono Developer Strategy</h3>
+
+       <p>Mono Developers should read the <a
+       href="mono-hacking-roadmap.html">Mono Hacking Roadmap</a>
+       
+<h3>Comments</h3>
+
+       <p>Feel free to send your comments or questions the roadmap to
+       <a href="mailto:miguel@ximian.com">miguel@ximian.com</a>
+
+
+<p>
+<i>Last Updated: Nov 1st, 2003</i>
\ No newline at end of file
index ab2577d19e1e294410767a1a7a09a6d5971e5bee..a35b02123e50c552f97f8a11e1bd7fc5c1b68c20 100644 (file)
@@ -1,4 +1,5 @@
 0,Home,index.html,index.src
+1,Roadmap,mono-roadmap.html
 1,FAQ,faq.html,faq.src
 1,News archive,http://monoevo.sf.net/mwn/archives.html
 1,Screenshots,screenshots.html,screenshots.src
index 9cf03e3bb85718ada9b619369b54e170f9e0870d..cf11567fda461a43e7511daeb555c863818f55cb 100644 (file)
@@ -71,6 +71,8 @@ OBJECTS=                                                                      \
        deploy/class-library.html                                               \
        deploy/classlib-doc.html
 
+HTML_SOURCES = ../mono-roadmap.html
+
 #2,Configuration.Install,class-status-System.Configuration.Install.html,class-status-System.Configuration.Install.src,cm/cormissing.css,cm/cormissing.js
 #2,Runtime.Remoting,class-status-System.Runtime.Remoting.html,class-status-System.Runtime.Remoting.src,cm/cormissing.css,cm/cormissing.js
 
@@ -83,6 +85,7 @@ NON_HTML_SOURCES=             \
 
 all: $(OBJECTS) deploy/index.rss ../team
        perl process.pl commands template.html.in deploy
+       cp $(HTML_SOURCES) deploy
        -mkdir deploy/team
        cp team/*png deploy/team
 
index babd4396e4fe448a5fe4fb49f4f5a88e1335d2b4..f82aeb5e917102aaaa5eb4c25acb2492976fa2e1 100644 (file)
        a.topmenu:visited { color: #cccccc; }
        a.topmenu:hover { color: #ee9900; text-decoration: underline; }
 
+       h1 {
+               border-bottom: 2px solid #dddddd;
+       }
+
 // --> 
 </style>
 #CSS#