60e54c3ea4e7c028b062b0eaea98e37cb2bceb67
[mono.git] / web / asp-net
1 * ASP.NET
2
3         ASP.NET support is divided in two pieces:
4         <ul>
5                 * Web Forms (Web Applications infrastructure).
6
7                 * Web Services (the SOAP-based rpc system).
8         </ul>
9
10         There is work underway for both systems.  The Web Forms
11         support is more advanced at this point, and various ".aspx"
12         programs can be run using the Mono runtime and the XSP page
13         parser.
14
15         We are now working bug fixing and adding missing features
16         after making the whole pipeline compatible with MS.
17
18         Tim started work on the Web Services.  Although we have a
19         SoapFormatter as part of the remoting infrastructure already
20         (contributed by Jesus), most people will be using the ASP.NET
21         Web Services support.  Work for the supporting class libraries
22         just started recently.
23
24 * Web Forms: The pieces
25
26         There are a couple of components to the puzzle:
27
28         <ul>
29                 * .aspx page parser (converts .aspx to C# code).
30         
31                 * System.Web.HttpRuntime support.
32         
33                 * Web controls (System.Web.UI.HtmlControls and
34                   System.Web.UI.WebControls).
35         
36                 * Underlying infrastructure for the controls (System.Web.UI).
37         
38                 * HttpRuntime.ProcessRequest is the core of the ASP.NET
39                   implementation.
40         </ul>
41
42
43         Gonzalo has been working on an ASP.NET parser that takes .aspx
44         files and generated the code required to run them (the code lives in
45         module `xsp' along with a little web server for testing).
46
47         Most of the runtime support was written by Patrik Torstensson
48         (now at Intel).  This was interesting, because in order to implement
49         some of its features, Patrik had to go into the runtime/JIT engine and
50         he spent a few weeks doing work there.
51
52         The classes for running ASP.NET are being actively written.
53         Gaurav, Leen and Patrik worked in the core of the classes
54         required to run ASP.NET web application as well as a small
55         embeddable web server.
56
57         Duncan got our System.Web assembly to compile.
58
59 ** HttpRuntime
60
61         Patrik has authored most of the HttpRuntime support (both on
62         the System.Web and on the foundation).
63
64         We are currently working on this.
65
66 ** XSP
67
68         This is where initial development of the .aspx/.ascx/.asax compiler 
69         to C# took place. That compiler is now integrated in System.Web classes
70         mostly under System.Web.Compilation namespace.
71
72         We added a new web server that works with mono and MS runtime and is
73         being used to debug our classes.  It resides in xsp/server. A couple of
74         classes of this new server can be reused/extended to make an apache
75         module/cgi using mono (MonoWorkerRequest and MonoApplicationHost).
76
77         There is also a bunch of .aspx pages to test the server along with
78         a few user controls under xsp/test.
79
80         You can check it out from CVS and run 'make install' to test it.
81
82 ** Controls
83
84         A lot of work has been put in the various classes that
85         implement the controls (UI.HtmlControls and UI.WebControls),
86         but they have been coded mostly in the dark, and without being
87         able to test them in real life: Gaurav and Leen worked very
88         hard on this namespace.
89
90         We can now render all HtmlControls and almost all WebControls.
91         DataGrid and DataList controls are being finished by Gaurav.
92         Xml control needs some work on System.Xml related to XSL.
93
94 ** Extending ASP.NET
95
96         Currently you have to reference in your ASP.NET the control
97         and all of its properties, which works fine if you have a GUI
98         designer, but is harder for people used to develop using text
99         editors.
100
101         Since we have a parser, we could extend this parser to allow
102         people to still use ASP.NET controls, using a simpler syntax.
103         For example people doing blogs and editing their templates
104         over the web probably do not want to use direct ASP.NET but a
105         wrapper around it.
106
107 ** Roadmap
108
109         1. The Parser.
110
111         2. Get the parser to generate output compatible with ASP.NET.
112
113         3. Run the sample output with the real Microsoft runtime
114            but using our generated page.   
115
116         4. Run the sample with our classes with the .NET runtime.
117
118         5. Run the samples with our classes with the our runtime (without
119         using HttpRuntime).
120
121         6. Finish HttpRuntime.
122         
123         7. Running our sample code with our classes with our runtime.
124
125         8. Debug and add missing features.
126
127         We are in step 8. Among the missing features: server side includes,
128         better caching, some configuration stuff, more validators...
129         
130 ** How to Help
131
132         Testing and fixing HtmlControls, WebControls and validators is an
133         easy way to help.
134
135         In the CVS module XSP you can find a small web server used for
136         testing and a directory containing sample aspx pages.
137
138         You have some documentation under doc directory and in the README
139         file of each directory. They explain how to test our System.Web.
140         Testing is really easy!
141
142         As the server also works with MS runtime, you can use it to check
143         what the expected results are.
144