[Mono-list] ASP

Miguel de Icaza miguel@ximian.com
11 Feb 2002 17:05:55 -0500

> My implementation uses a provider interface [1] instead of the virtual HttpWorkerRequest class that ASP.Net uses. The ASP.Net runtime has a number of limitations and and we could make a better implementation of the HttpRuntime and the HttpWorkerRequest. The good thing is that the HttpXXX classes will easily be used on a different server like apache or likewise. My idea is that our HttpWorkerRequest class will implement thje IHttpIOHandler interface (our interface) that our web server stubs supports. We don't need the IISAPIRuntime interfaces.. they are MS internal implementation and the documentation now says : "This type supports the .NET Framework infrastructure and is not intended to be used directly from your code."

Good news.  As long as we provide a compatible API where it matters (we
can later revisit this, we should mark these items as [MonoTODO] in
those cases).

Ideally, you should be able to just copy an assembly from Windows and
run on Linux.

> I have also implemented a Server. The HttpServer and HttpReqsponseHandler that is the base of the HTTP/1.0 1.1 web server. It uses separate threads for each request (as the ASP.Net runtime) and the reason for that is the possibility to call end in HttpResponse. (end throws a thread abort exception that is the only exception you can catch and it will be rethrown).

Beautiful!  Beautiful!

> HttpServer()
> HttpServer(int Port)
> HttpServer(int Port, bool UseDNS)
> Listen()   // Starts the operations
> Shutdown
> SoftwareName
> ServerName
> LookupRemoteInDNS 

It looks like these could comprise the "hearth" of the HttpChannel and
HttpServerChannel classes.  Very nice.

We will be waiting impatiently! ;-)