UPDATE: Here are the currently published entries in this series that highlight the improvements in the new IIS server programming model:

Reason #10 - C++ class-based programming model 
Reason #9  - Intuitive server object model
Reason #8  - Improved memory management
Reason #7 - Managing request state
Reason #6 - Sending http responses (coming up)

As you already know (if you don’t, go read about it right now - http://www.iis.net/default.aspx?tabid=7&subtabid=71), IIS7 core server has been completely re-engineered to provide a brand new extensibility model on top of which all of the server features are built.  This allows anyone to remove/replace all existing server features, or add new ones - by using either the new native APIs, or the managed ASP.NET APIs.

Over the past two years, we did a bunch of work to make sure the new native APIs are easy to use and help write more robust server code.  But, it is hard to appreciate all the benefits until you actually compare writing an IIS7 module with writing an IIS6 ISAPI Extension – I am often amazed at how much easier your life gets when developing IIS modules with the new APIs.

So, this post begins the series of posts explaining exactly why the new API is so much better, and why writing an IIS7 module in native code should not be nearly as scary as it was in the past.

If you want to learn more about ISAPI Extensions while reading these post, check out http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/df0c6290-edd3-498b-ae0e-d7195906305b.asp. 

Likewise, to read about building IIS7 native modules, check out http://www.iis.net/default.aspx?tabid=2&subtabid=25&i=938. 

Next - reason #10.