Developing and Deploying Applications on Microsoft Internet Information Services (IIS)Thomas DemlGroup Program ManagerWeb Platform And ToolsMicrosoft Corporation
Agenda
Getting startedReview of the web platform stackDemo: Downloading the web platform stack
Getting productiveExtend an application using IIS’ total extensibility Demo: Extend web application with custom functionality
Going liveFrom your dev box to the live serverDemo: Deploying an app to a live server via explorer
Fine-tuning and troubleshooting:Management, monitoring and troubleshootingDemo: Database manager, powershell and request tracing
Going publicSubmit to the web application gallery
Getting Started: Installing the Web Platform Stack
demo
Top 8 Reasons to Move to IIS7
8. SecurityFeature delegation, built-in accounts, Application pool isolation, rich authentication and authorization infrastructure, request filtering
7. Single platform for both ASP.NET and PHPIntegrated Pipeline, FastCGI
6. High availability Rich process model
5. PerformanceOptimized for multi-proc environments, compression, SSL in kernel-mode
Top 8 Reasons to Move to IIS7
4. DiagnosticsPowerful, extensible diagnostics stack, run-time data
3. Configuration systemReadable, extensible, delegateable, distributed, centralized
2. AdministrationUser interface, remoteable, command-line tools, scripting and rich API set
1. Extensibility Run-time, configuration, diagnostics stack and user interface
IIS Application ExtensionsURL rewrite module• Security• SEO• Clean
URLs
Database manager• Simple,
application-centric database managment
Remote manager• Delegate
d• Firewall-
friendly
Web deployment tool• Applicatio
n packaging and deployment
IIS7 Server ExtensionsWebDav and FTP• Standards-
based• Secure and
firewall-friendly
Admin Pack and Power Shell Snap-in• Powerful
ways to manage IIS
Media Services 3.0• Smooth
Streaming• Bit-Rate
Throttling• Live
Smooth Streaming
Application Request Routing• Load-
balancing• Proxy
functionality
• Edge caching
Dynamic IP Restrictions• Prevent
DoS attacks
Web Deployment Tool• Migration• Web Farm
Sync
Total Extensibility
Server run-timeExtend IIS in native or managed code via the integrated pipeline
Configuration systemExtend the configuration system with a simple XML file. Automatic support in the user interface, command-line, script, native and managed code apis
TracingFollow your requests from start to finish: get detailed errors, monitor currently executing requests, go deep with request traces
User interfaceIntegrate your own user interface with a few lines of code, get automatic remoting and delegation
Run-time ExtensibilityIIS6 Architecture
Authentication
Basic NTLM Anon
...
DetermineHandler
...
Response Compression
Logging
HTTP Request
HTTP Response
CGI
Static File
ISAPI
Monolithic server implementation
Limited customizationFixed functionality
Limited ISAPI Filter extensibility
Authentication
...
ExecuteHandler
...
SendResponse
HTTP Request
HTTP Response
Authorization
UpdateCache
ResolveCache
Extensibility IIS7 Architecture
BasicNTLM Anon
CGI
Static File
ISAPI
Log Compression
UrlAuthz
OutputCache
Forwarder
Basic40+ Componentized serverPluggable modular functionalitySmall generic request pipeline
EnablesLightweight serversCustom/specialized servers
Extensibility IIS6 + ASP.NET
ISAPI extensionOnly processes ASP.NET requestsRuntime limitationsFeature duplication
Authentication
Basic NTLM Anon
...
DetermineHandler
...
SendResponse
HTTP Request
HTTP Response
CGI
Static File
ISAPI
Compression
Log
aspnet_isapi.dll
Authentication
MapHandler
Forms Windows
...ASPX
Trace
...
...
ISAPI
Authentication
...
ExecuteHandler
...
SendResponse
Authorization
UpdateCache
ResolveCache
HTTP Request
HTTP Response
IIS7 ASP.NET IntegrationClassic mode
For compatibilityIntegrated mode (Integrated pipeline)
Can process all requestsEnhanced functionalityHigher fidelity notifications
Anon
aspnet_isapi.dll
Authentication
MapHandler
...
...
Forms Windows
ASPX
Trace
...
Basic
Compression
Log
Static File
.NET Extensibility
Existing ASP.NET APIIHttpModule and IHttpHandler types
Expanded ASP.NET APIsNew HttpApplication Events
MapRequestHandler, LogRequest, PostLogRequest
HttpRequest.HeadersHttpResponse.HeadersHttpResponse.DisableKernelCacheHttpRequest.ServerVariables
Handlers versus Modules
Modules provide services to all requestsBasic authentication moduleCompression module (etc)
Handlers provide services to specific extensions
ISAPI handler (.dll)Static handler (.htm, .jpg, .gif, etc)
IIS 7 pipeline allows native and managed modules and handlers
“Integrated” application pool mode Use the managed modules and handlers
“Classic” application pool IIS 6 style invocation of .NET
Getting Productive: Extending an Existing Application
demo
Going Live
Package and deploy your web application with the web deployment tool
You don’t have to be adminDeployment via
IIS management snap-inRemote managerCommand-lineApiPowershell
Can also be used for Synchronization
Incremental sync supportBackupVersioning
Deploying an App to a Live Server
demo
Managing the Server
User interface remoted via HTTPSNon-admin and delegation support
Command-linePowershell snap-inAppcmd
ScriptingPowershellCOM via AHAdminWMI
APIsConfiguration APIMicrosoft.Web.Administration
Managing Your Web Application on a Live Server
demo
Summary
IIS7 is built with total extensibility in mind
Run-timeConfiguration systemUser interfaceDiagnostics
IIS7 application and server extensions offer compelling functionality
IIS7 Extensions
Powershell snap-in
Database manager
Admin pack
URL rewriterApplication
request router
WebDav
FTP server
Web platform installer
Web deployment
tool
Media services
Remote manager
Dynamic IP restrictions
Please Complete an Evaluation FormYour feedback is important!
Evaluation forms can be found on each chairTemp Staff at the back of the room have additional evaluation form copies
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.