Over the last few releases, the web.config files within new
ASP.NET projects have steadily increased in size. For example: the default
web.config file that is added to a new web project in Visual Studio 2008 SP1 is
now some 126 lines long, and contains everything from tag definitions to
definitions of handlers and modules to be included in the ASP.NET HTTP
pipeline.
This increase in size is because .NET 3.0 and .NET 3.5 use
the same CLR and machine.config configuration file as those shipped with .NET
2.0 – and simply add and update assemblies in the framework when they are
installed. To avoid the risk of us accidentally overwriting customized
settings within the original 2.0 machine.config on the machine, we didn’t
register the tag definitions, handlers and modules that shipped with the new
ASP.NET functionality that came with the .NET 3.0 and .NET 3.5 versions.
Instead, we defaulted to having new projects register these settings within the
application’s local web.config file instead. This was safer – but caused
the web.config files to increase and become more complicated and harder to
read.