iis7 as a developer platform
DESCRIPTION
Discover a new world of opportunity for Web developers. Using modules, written in native or managed code, you can implement entirely new capabilities for IIS 7 and the Web applications it delivers. In this session, see how modules can change the client experience for all Web sites simultaneously without any modification to code on the site level.TRANSCRIPT
IIS7 As A Developer IIS7 As A Developer PlatformPlatform
Thomas DemlThomas DemlLead Program ManagerLead Program ManagerInternet Information ServicesInternet Information ServicesMicrosoft CorporationMicrosoft Corporation
NGW026NGW026
Distributed ConfigurationDistributed Configuration
Making Developer’s Jobs Making Developer’s Jobs EasierEasier
Configure IIS with web.configConfigure IIS with web.config
Use Single GUI For IIS and ASP.NetUse Single GUI For IIS and ASP.Net
Diagnose Tough Problems with Diagnose Tough Problems with Detailed Error InformationDetailed Error Information
Customize IIS For Your ApplicationCustomize IIS For Your Application
Extend IIS Using The Language Of Extend IIS Using The Language Of Your Choice (C#, VB.NET, C++) Your Choice (C#, VB.NET, C++)
Use Existing ASP.NET Features For All Use Existing ASP.NET Features For All Types Of ContentTypes Of Content
Customize IIS For Customize IIS For Your ApplicationYour Application
IIS6 ArchitectureIIS6 Architecture
Monolithic server Monolithic server implementationimplementation
Limited Limited customizationcustomization
Fixed functionalityFixed functionality
ISAPI Filter / ISAPI Filter / Extension Extension extensibilityextensibility
LimitedLimited
Difficult, error Difficult, error proneprone
Authentication
Basic NTLM Anon
...
DetermineHandler
...
Response Compression
Logging
HTTPHTTP RequestRequest
HTTPHTTP ResponseResponse
CGI
Static File
ISAPI
Authentication
...
ExecuteHandler
...
SendResponse
HTTP HTTP RequestRequest
HTTPHTTP ResponseResponse
Authorization
UpdateCache
ResolveCache
IIS7 ArchitectureIIS7 Architecture
BasicNTLM Anon
CGI
Static File
ISAPI
Log Compression
Componentized Componentized serverserver
Modular featuresModular features
Generic request Generic request pipeline pipeline
EnablesEnablesLightweight serversLightweight servers
Custom / specialized Custom / specialized serversservers
UrlAuthz
OutputCache
Forwarder
Basic40+
basicauth.dll
IIS7 ExtensibilityIIS7 Extensibility
Native Extensibility ModelNative Extensibility ModelDLL factoryDLL factory
Class-based C++ APIClass-based C++ API
Rich object model Rich object model
Managed Extensibility Managed Extensibility ModelModel
Continue To Use Continue To Use IHttpModule And IHttpModule And IHttpHandler InterfacesIHttpHandler Interfaces
Plug In Existing ASP.NET Plug In Existing ASP.NET Handlers and ModulesHandlers and Modules
Take Advantage Of New Take Advantage Of New IIS7 CapabilitiesIIS7 Capabilities
httpserv.h:
IHttpContext{ IHttpRequest IHttpResponse IHttpUser ...};
IHttpServer{ GetConfig LogEvent Recycle ... };
Authentication
...
ExecuteHandler
...
SendResponse
HTTP HTTP RequestRequest
HTTPHTTP ResponseResponse
Authorization
UpdateCache
ResolveCache
Basic
Extending IIS7Extending IIS7
IIS6 ASP.NET IntegrationIIS6 ASP.NET Integration
aspnet_isapi.dll
Authentication
MapHandler
Forms Windows
...ASPX
Trace
...
...
ISAPI ExtensionISAPI ExtensionOnly processes Only processes ASP.NET requestsASP.NET requests
Runtime limitationsRuntime limitationsISAPIISAPI
orderingordering
Feature duplicationFeature duplicationAuthenticationAuthentication
Handler mappingHandler mapping
Custom ErrorsCustom Errors
Authentication
Basic NTLM Anon
...
DetermineHandler
...
SendResponse
HTTPHTTP Request
HTTP HTTP ResponseResponse
CGI
Static File
ISAPI
CompressionLog
ISAPI
IIS7 ASP.NET IntegrationIIS7 ASP.NET Integration
Two modesTwo modesISAPI (compat)ISAPI (compat)
IntegratedIntegrated
Integrated modeIntegrated mode.NET modules plug .NET modules plug directly into serverdirectly into server
Process all requestsProcess all requests
Full runtime fidelityFull runtime fidelity
Anon
aspnet_isapi.dll
Authentication
MapHandler
...
...
Forms Windows
ASPX
Trace
...
Basic
Compression
Log
Static File
Authentication
...
ExecuteHandler
...
SendResponse
Authorization
UpdateCache
ResolveCache
HTTPHTTP Request
HTTPHTTP ResponseResponse
More Power To ASP.NET!More Power To ASP.NET!
IIS7 .NET ExtensibilityIIS7 .NET ExtensibilityFuture of ASP.NET DevelopmentFuture of ASP.NET Development
Existing ASP.NET 2.0 APIExisting ASP.NET 2.0 APIIHttpModule and IHttpHandler typesIHttpModule and IHttpHandler types
Existing API connected to server objectsExisting API connected to server objects
Bonus: API additionsBonus: API additionsResponse header enumerationResponse header enumeration
Manipulate Request headersManipulate Request headers
Manipulate Server VariablesManipulate Server Variables
ConfigurationConfigurationISAPI versus Integrated mode per app-poolISAPI versus Integrated mode per app-pool
Unified <modules>, <handlers> configurationUnified <modules>, <handlers> configuration
And Now Let’s Talk…And Now Let’s Talk…
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.