It appears that ASP.Net is similar to J2EE in that some of software
run natively, while other parts run under managed code. IIS runs
natively. ASP.Net runs under managed code. MS SQL Server runs
natively. I assume each tier communicates via sockets - even though
each may be running on the same box. Is that the case?
Starting w/IIS7 major parts of IIS are managed code too, especially
w/the integrated pipeline. You can use .net handlers just about anywhere
along the request pipeline, no more ISAPI filters! Yea. But yes, certain
parts of IIS are of course "native", not the least of which for example
would be the kernel-mode cache. ASP.Net is managed, yes. SQL Server is
native code, or at least most of it is, parts aren't. The spatial data
types in 2008 for example are actually CLR (.net) objects.
As for communication, don't think of IIS and ASP.Net as being separate
tiers, especially not IIS7+, they're very integrated. Any communication
between them I'm sure is shared memory. As for ASP.Net to the database,
that connection can be a number of different types. If the database is
on the same machine as the web app then you will likely use shared
memory as the transport. But otherwise TCP sockets would be the
transport.
-Walden
As an Amazon Associate we earn from qualifying purchases.