At 03:09 PM 11/28/2004, Jeff White wrote:

>I had prepared a review of the
>mod_aspdotnet source code,
>but was afraid all would call it
>negative comments.   :)

All code review is a positive thing, even if the committers
can't agree on the 'one true way'.

>I was told before this is mod_aspdotnet
>not mod_NetUsage but are they really different?

Yes.  They are.

mod_aspdotnet serves one very specific purpose, to serve ASP.NET
content from httpd on Win32.  Nothing more nothing less.

>Should there or could there be:
>
>mod_aspdotnet1.so CPP that loads an assembly only
>(allowing C# or VB.NET or any of the 50+ languages for source code adjustments)

Please - not mod_aspdotnet1 - why not simply mod_dotnet.so?

That is a direction we are all thinking of moving in.

>mod_aspdotnet2.so CPP that test "who knows what later"

We can keep extending mod_dotnet, if it is sufficiently broad
in scope.  It would -not- serve ASP.NET - it would be for loading
.NET code into Apache-space.  (And yes - no issue with running
both modules.)

>Is this doable?

Certainly hope so.

>This would allow for those who only
>use the free available tools (no Visual
>Studio .NET CPP needed with assemblies but I'm told for the CPP way, Visual 
>Studio .NET
>CPP is required due to Apache designs). 

And it will remain a requirement for the short term.  Perhaps
in the long term, we will be able to cleanly separate out the
PInvoke stubs, and avoid having a mixed native/managed assembly.

But I do wonder what the other half will look like, and suspect
we will continue to have a .c or .cpp thunk within Apache.exe's
module.

>Plus using assemblies allows for using AppDomainSetup for the other AppDomains 
>and other such .NET extra calls (Yes CPP can add this too but requires Visual 
>Studio .NET CPP).

>A CPP file is needed to load the CLR,
>but after that can it all be done in .NET,
>and still keep Apache's pools, and etc. for the larger sites or maybe a 
>different mod_aspdotnet version for smaller sites?

Actually, it can't all be done in managed .net - we need some
IJW accessors or PInvoke thunks to dive back into unmanaged space.

I envision two namespaces, Apache::native and Apache::Server, which
would extend Apache 2.x to dotnet.  The ::native would be direct
access to the PInvoke stubs.  The ::Server would be .NET abstraction
which could handle all the ugliness (e.g. RequestRecord would be
a .NET class, not a thunked c object.)  Using methods of the ::Server
classes it would adjust the in-.NET flavor and update the native
structures as needed.

Apache::Pool would wrap the pool api, Apache::Server::Connection
would wrap the conn_rec.  One of the tricky bits, Apache::Hook
would provide some generic accessors for the hook registration
API, and Apache::Server::PreConfig would be the template for
coding a PreConfig event handler, with the appropriate delegates
then extended from the unmanaged (native Apache) side.

This isn't trivial code, we probably need to start from the bottom
(say, the APR library), but I have quite a few cycles during the
holidays to spend on this.  Any other volunteers to get hacking?

Bill


Reply via email to