[Mono-devel-list] Plan for XSP Changes

Brian Ritchie brian.ritchie at gmail.com
Fri Apr 8 00:22:36 EDT 2005

Based on comments from Gonzalo, Sebastien, and Miguel and I'm planning
on making the following changes to the XSP code base.  Hopefully I'm
not putting words in your mouth :)

Please review...

1) Create 2 modules: xsp.exe & Mono.ASPNET.dll (Let me know what names
you prefer for the modules)
2) Configure library to be compiled with both mcs and gmcs (for 1.x
and 2.x profiles and controls)
3) Add a .pc file so third parties can link against it. I'm not
familiar with the pkg-config stuff, so I'll need a hand on this one.
4) Divide existing code between the modules:
- xsp.exe would contain all configuration options, functinality such
as AddApplicationsFromConfigDirectory, AddApplicationsFromConfigFile,
AddApplicationFromElement, AddApplicationsFromCommandLine.  It would
handle console output, help messages, etc.
- Mono.ASPNET.dll would contain the core HTTP Server.  In the future
this would be further split into the new HttpListener class (.net 2.0)
and ASP.NET integration code.
5) Make class & method accessibility changes to limit the public
"surface" of the assembly.
6) Add HTTPS support.  The core assembly will utilize the
SslServerStream from Mono.Security.  Besides IP & Port, it will also
require a SecurityProtocolType, X509 Certificate, and a
PrivateKeySelectionCallback which returns an AsymmetricAlgorithm to
the private key.  xsp.exe will be enhanced to allow the protocol
types, certificate filename, private key filename & password to be
specified.  This can be enhanced in the future to support other kinds
of certificate stores.  Also, client-side certs will be looked at in a
future round of changes.
7) Add OnCreateHost delegate to allow trapping of loading (or
reloading) of application hosts.  This is useful for responding to an
AppDomain reload after a config file or other change.

Well, that's the basic plan.  Let me know what you think,

More information about the Mono-devel-list mailing list