2003-01-05 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / doc / asp-net
index 49f31f872d4906e455023c2072414ff1bedff82a..60e54c3ea4e7c028b062b0eaea98e37cb2bceb67 100755 (executable)
 * ASP.NET
 
+       ASP.NET support is divided in two pieces:
+       <ul>
+               * Web Forms (Web Applications infrastructure).
+
+               * Web Services (the SOAP-based rpc system).
+       </ul>
+
+       There is work underway for both systems.  The Web Forms
+       support is more advanced at this point, and various ".aspx"
+       programs can be run using the Mono runtime and the XSP page
+       parser.
+
+       We are now working bug fixing and adding missing features
+       after making the whole pipeline compatible with MS.
+
+       Tim started work on the Web Services.  Although we have a
+       SoapFormatter as part of the remoting infrastructure already
+       (contributed by Jesus), most people will be using the ASP.NET
+       Web Services support.  Work for the supporting class libraries
+       just started recently.
+
+* Web Forms: The pieces
+
+       There are a couple of components to the puzzle:
+
+       <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.
+       </ul>
+
+
+       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).
+
+       Most of the runtime support was 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.
+
        The classes for running ASP.NET are being actively written.
-       Gaurav, Leen and Patrik have been building the classes
+       Gaurav, Leen and Patrik worked in the core of the classes
        required to run ASP.NET web application as well as a small
        embeddable web server.
 
-       Currently ASP.NET does not work, but work is underway.  If you
-       are interested in helping the effort please contact the
-       mono-list mailing list.
+       Duncan got our System.Web assembly to compile.
+
+** HttpRuntime
+
+       Patrik has authored most of the HttpRuntime support (both on
+       the System.Web and on the foundation).
+
+       We are currently working on this.
+
+** 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. A couple of
+       classes of this new server can be reused/extended to make an apache
+       module/cgi using mono (MonoWorkerRequest and MonoApplicationHost).
+
+       There is also a bunch of .aspx pages to test the server along with
+       a few user controls under xsp/test.
+
+       You can check it out from CVS and run 'make install' to test it.
+
+** Controls
+
+       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.
+
+       We can now render all HtmlControls and almost all WebControls.
+       DataGrid and DataList controls are being finished by Gaurav.
+       Xml control needs some work on System.Xml related to XSL.
+
+** Extending ASP.NET
+
+       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.
+
+       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.
+
+** Roadmap
+
+        1. The Parser.
+
+        2. Get the parser to generate output compatible with ASP.NET.
+
+        3. Run the sample output with the real Microsoft runtime
+           but using our generated page.   
+
+        4. Run the sample with our classes with the .NET runtime.
+
+        5. Run the samples with our classes with the our runtime (without
+       using HttpRuntime).
+
+        6. Finish HttpRuntime.
+       
+        7. Running our sample code with our classes with our runtime.
+
+       8. Debug and add missing features.
+
+       We are in step 8. Among the missing features: server side includes,
+       better caching, some configuration stuff, more validators...
+       
+** How to Help
+
+        Testing and fixing HtmlControls, WebControls and validators is an
+       easy way to help.
+
+        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.