Modular Web server architecture
IIS7 is built with a completely modular architecture, on top of rich extensibility APIs. This enables developers to easily add, remove and even replace built-in IIS7 components with hand-crafted ones, specifically suited for any given Web site. It also gives Web administrators complete control over the surface area of the server, enabling them to install and manage only the required components, thereby reducing the surface area of the Web server, and minimizing resource utilization.
Rich Native (C/C++) and Managed (.NET) Extensibility Throughout
Developers can rejoice at the many powerful extensibility options IIS7 provides. At the core, IIS7 is completely extensible using both native (C/C++) and managed (C#, VB.NET) extensibility APIs, offering developers complete flexibility over which language to develop extensions with. Here are just a few reasons to develop extensions on IIS7:
- Empower web applications. Extending IIS enables Web applications to benefit from powerful functionality that in many cases cannot be easily provided at the application layer. Using the managed (.NET) or native C++ extensibility, developers can build solutions that add value for all application components, such as custom authentication schemes, monitoring and logging, security filtering, load balancing, content redirection, and state management.
- Enjoy a richer development experience. The brand new C++ extensibility model
alleviates most of the problems that previously plagued the ISAPI development,
introducing a simplified object oriented API that promotes writing robust server
code. For example, the new C++ extensibility model is completely asynchronous,
enabling high performance request filtering, and replaces both the ISAPI filter
and extension programming model. In addition, better Visual Studio integration
further improves the experience of developing for IIS.
- Unleash the full power of ASP.NET! ASP.NET integration in IIS7 enables server modules to be rapidly developed with the familiar interfaces of ASP.NET 2.0 and rich ASP.NET application services. ASP.NET modules are able to provide services uniformly to ASP, CGI, static files and other content types, and are capable of fully extending the server without the limitation present in previous versions of IIS.
Reduced Security Footprint, Customized Installation Options
Because IIS7 is a completely modular Web server, Administrators have complete control over the surface area of the Web server. This enables several key advantages over previous versions of IIS:
- Secure the server by reducing the attack surface area. Reducing surface area is one of the most powerful ways to secure a server system. With IIS7, Administrators can remove all unused server features, achieving the minimum surface area possible while preserving the functionality of the Web application.
- Improve performance and reduce memory footprint. By removing unused server features, Administrators can also reduce the memory usage of the server, and improve performance by reducing the amount of feature code that executes on every request to the Web application.
- Build custom / specialized servers. By selecting a particular set of server features, Administrators can build custom servers that are optimized for performing a specific function within the datacenter, such as edge caching or load balancing. Administrators can add custom features to extend or replace any existing functionality using your own or third party server components built on the new extensibility APIs. The componentized architecture will provide long term benefits to the IIS community, by facilitating the development of new server features as they are needed both inside Microsoft and among third party developers.
IIS7 also runs on the Server Core installation option of Windows Server 2008, providing even greater control over the Windows Server footprint. Server Core on Windows Server 2008 omits graphical services and most libraries, in favor of a streamlined, command-line driven system. Server Core can be administered locally via the IIS command-line utility AppCmd, or remotely by using WMI. A Server Core installation installs the minimal files needed to provide the required functionality, so less disk space will be used on the server. With a smaller Server Core installation, there are fewer installed components that will need to be updated or patched, and the number of required restarts will be reduced, saving both WAN bandwidth usage by servers and administration time for the IT staff.