Since IIS 7, the once monolithic web server has been broken up into about 40 components so a web server can be setup with only what it actually needs which reduces its security exposure and memory footprint. The architecture also facilitates replacing built in functionality with our own implementations. Support for HttpModules and HttpHandlers allow the web server to be extended using familiar managed .NET code rather than the previous ISAPI techiniques that required unmanaged C or C++. Great new diagnostic features provide the ability to save information about failed requests and allow inspection of worker processes and active requests running in the web server. The Microsoft.Web.Administration can also be used to write managed code that can create IIS web sites, application pools, or virtual directories.