2003-12-19 Martin Baulig <martin@ximian.com>
[mono.git] / web / asp-net
index 258c9725be64c654a11e05f395a29a9a39860938..f22866b0b7860a5b88a6accae7f7cc86e6e3ce96 100755 (executable)
 * ASP.NET
 
-       The classes for running ASP.NET are being actively written.
-       Gaurav, Leen and Patrik have been building the classes
-       required to run ASP.NET web application as well as a small
-       embeddable web server.
-
-       There are a couple of components to the puzzle:
-
+       ASP.NET support is divided in two pieces:
        <ul>
-               * .aspx page parser (converts .aspx to C# code).
-       
-               * System.Web.HttpRuntime support.
-       
-               * Web controls (System.Web.UI.HtmlControls and
-                 System.Web.UI.WebControls).
-       
-               * Underlying infrastructure for the controls (System.Web.UI).
-       
-               * HttpRuntime.ProcessRequest is the core of the ASP.NET
-                 implementation.
+               * Web Forms (Web Applications infrastructure).
+
+               * Web Services (the SOAP-based rpc system).
        </ul>
 
+       Both are functional at this point, and applications like
+       "IBuySpy" run with Mono.
 
-       Gonzalo has been working on an ASP.NET parser that takes .aspx
-       files and generated the code required to run them (the code lives in
-       module `xsp' along with a little web server for testing).
+       ASP.NET works either embedded into
+       our XSP server test server or the mod_mono Apache module.
 
-       Most of the runtime support was mostly written by Patrik Torstensson
-       (now at Intel).  This was interesting, because in order to implement
-       some of its features, Patrik had to go into the runtime/JIT engine and
-       he spent a few weeks doing work there.
+       We are now working on bug fixing and adding missing features
+       after making the whole pipeline compatible with MS.
 
-       Duncan got our System.Web assembly to compile.
+       Tim started work on the Web Services. After that, Lluis is in
+       charge and has been working hard on them as part of our
+       <a href="http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=sourcegear">SourceGear</a> contract.
+       
+       Web services are now supported and there are some samples in the
+       XSP set of tests.
 
-** HttpRuntime
+** Hosting
+
+       ASP.NET provides a hosting interface.  Today we ship support
+       for two different hosting mechanisms:
+       <ul>
+               * <a href="#xsp">XSP</a>: A light-weight C# web server.
 
-       Patrik has authored most of the HttpRuntime support (both on
-       the System.Web and on the foundation) but it is still not
-       ready to run.
+               * <a href="#mod_mono">mod_mono</a>: An apache module
+                 that can host the Mono runtime and the ASP.NET runtime
+       </ul>
 
+<a name="xsp">
 ** XSP
 
-       Currently XSP provides the .aspx compiler to C#.  It would be
-       interesting to see if it makes sense to extend the ASP.NET
-       syntax to make it simpler to develop applications.
+       XSP is a simple web server written in C# that can be used to
+       run your ASP.NET applications.  The code is available from our
+       <a href="download.html">download page</a> or from the <a
+       href="anoncvs.html">Anonymous CVS</a> repository (module name:
+       xsp)/.
+       
+       This is where initial development of the .aspx/.ascx/.asax
+       compiler to C# took place. That compiler is now integrated in
+       System.Web classes mostly under System.Web.Compilation
+       namespace.  We added a new web server that works with mono and
+       MS runtime and is being used to debug our classes.  It resides
+       in xsp/server.
 
-       Gonzalo is in charge of the compiler.
+       A couple of classes of this new server can be reused/extended
+       to make an apache module/cgi using mono (MonoWorkerRequest and
+       MonoApplicationHost).  This server also uses a couple of
+       plugins distributed with Mono to support gzip HTTP transfers.
 
-** Controls
+       There is also a set of .aspx pages to test the server along with
+       a few user controls under xsp/test.
 
-       A lot of work has been put in the various classes that
-       implement the controls (UI.HtmlControls and UI.WebControls),
-       but they have been coded mostly in the dark, and without being
-       able to test them in real life: Gaurav and Leen worked very
-       hard on this namespace, but needs to be finished.
+       You can check it out from CVS and run 'make install' to test it.
 
-       We can now render all HtmlControls and some WebControls. Work is
-       ongoing to make all WebControls render HTML.
+<a name="mod_mono">
+* mod_mono
 
-** Extending ASP.NET
+       This Apache module is available from our <a
+       href="download.html">download page</a>. The <a href="anoncvs.html">
+       cvs</a> module name is mod_mono. It works with both 1.3 and 2.0
+       versions of the <a href="http://httpd.apache.org">apache server</a>.
 
-       Currently you have to reference in your ASP.NET the control
-       and all of its properties, which works fine if you have a GUI
-       designer, but is harder for people used to develop using text
-       editors.
+       It allows apache to serve ASP.NET pages.
 
-       Since we have a parser, we could extend this parser to allow
-       people to still use ASP.NET controls, using a simpler syntax.
-       For example people doing blogs and editing their templates
-       over the web probably do not want to use direct ASP.NET but a
-       wrapper around it.
+       Work is underway to improve it.
 
-** Roadmap
+** Controls
 
-        1. The Parser.
+       A lot of work has been put in the various classes that
+       implement the controls (UI.HtmlControls and UI.WebControls).
+       They have been coded mostly in the dark, and without being
+       able to test them in real life: Gaurav and Leen worked very
+       hard on this namespace. After that, we keep fixing bugs on
+       them.
 
-        2. Get the parser to generate output compatible with ASP.NET.
+       We can now render all HtmlControls and all WebControls.
 
-        3. Run the sample output with the real Microsoft runtime
-           but using our generated page.   
+       Help in making the controls better is appreciated.
 
-        4. Run the sample with our classes with the .NET runtime.
-       <b>We are here</b>.
+** ASP.NET and free controls.
 
-        5. Finish HttpRuntime.
-       
-        6. Running our sample code with our classes with our runtime.
+       We want to encourage developers to create open source controls
+       that can be used both on Mono's ASP.NET and Microsoft's ASP.NET.  
 
 ** How to Help
 
-        Currently we are testing and fixing HtmlControls, WebControls and
-        validators.
+        Testing and fixing HtmlControls, WebControls and validators is an
+       easy way to help.
 
-        In the CVS module XSP you can find the aspx to C# page parser,
-        a little web server used for testing and a directory containing
-        sample aspx pages.
+        In the CVS module XSP you can find a small web server used for
+       testing and a directory containing sample aspx pages.
 
         You have some documentation under doc directory and in the README
         file of each directory. They explain how to test our System.Web.
         Testing is really easy!
 
+       As the server also works with MS runtime, you can use it to check
+       what the expected results are.
+