Have you ever tried to find something in the Metabase? What about change a
setting? Well unless you were on the team that wrote IIS it's no picnic.
ASP.NET and the new NGWS framework address this problem by placing configuration
information in an xml file that is easily human readable and writeable. At the
same time this system is still hierarchical (as it should be) and allows for
easy tool integration so you can still have a nice user interface when you
want it. The fact that the files are in a relatively standard format also
allows you to relatively simply build your own administration tool or
even a limited version of one for your users.
The best part of this new system however is that since these settings are
stored as plain text with the application, new setting can be applied without
having to pcAnywhere or Terminal Server into the box. This
"zero local administration" strategy allows you to deploy applications
by simply copying the appropriate files to the server, which is what I call...
XCopy or FTP deployment - Even of components!
This is something I've been waiting to come back since the good old days of
DOS. No more registering stuff in different locations so the system knows it
exists. No server restart is needed, even to deploy or replace running
compiled code. The framework simply starts a copy of the new version and
directs all new requests to it. At the same time it keeps the older version
running until the processes using it have finished. No down time and no
deployment headaches of having to restart the web server just to change one
little line of code.
And it's not just ASP code. This goes for components too! If you don't get
excited about that then you've either got a much more exciting life then I do
or you're still in shock from the caching discussion! ;) I promise I'll stop
soon!
Tracing
As if I haven't said it enough... this is really cool. Tracing is an option
that allows you to do things like Trace.Write or Trace.Warn and have this
information output to a tracing display. It's only displayed if you turn
tracing on so it makes a perfect debugging tool for checking the value of a
variable or asserting that a value should be in a certain range.
There are two types of tracing: page-level tracing and application-level
tracing. Page level tracing appends a report to the bottom of the page you
just ran while application logs the same data to a separate area so you can
look at it via a separate interface. This is nice for debugging live code,
but make sure you don't leave this on... it's really meant as an occasional
thing and from what I've been told adds a lot of overhead to the server.
Here's an example of the output from a very
simple page, which has page-level
tracing turned on. Only the drop-down part at the top is the actual ASP.NET
page. All
the rest was gathered during execution and added to the page for your use
when there's a problem.
Debugging
Did you ever try to get Visual Interdev to debug your ASP code? Did it work?
Real cross language debugging in one unified debugger. That's all I'm
gonna say! Well that and thank goodness we're not stuck using Response.Write
statements for debugging anymore!