Title: for Developers
1 for Developers
- Martin ParryDeveloper and Platform
GroupMicrosoft - martin.parry_at_microsoft.comhttp//martinparry.com
2Agenda
- Top 7 Ways To Light Up Your Apps on Windows
Server 2008 - Part 1 emphasis on
- IIS7, PowerShell
- Part 2 emphasis on
- WER, Restart and Recovery APIs, TxF
3The Top 7 Ways Part 1
- Build More Flexible Web Applications
- Design Highly-Manageable Applications
- Develop Federation-Aware Applications
- Build Connected Systems
- Build For Scalability
- Virtualize
- Develop More Reliable Applications
41. Build More Flexible Web Apps
5IIS 7.0 Introduction
- Client version shipped with Windows Vista
- Limited throughput
- Server version will ship with WS2008
- Currently available in RC form
- More features than client
6IIS 6.0 Architecture
7IIS 7.0 Architecture
8Windows Process Activation Service
- Manages configuration
- What used to be the metabase
- Responsible for starting worker processes...
- w3wp.exe
- ...and routing incoming requests to the
appropriate worker process - Also hosts the new listener adapter interface
- You can build your own listeners for WAS
9IIS 6.0 Request Pipeline
10IIS 6.0 Request Pipeline
- IIS pipeline extensible using ISAPI
- Native code
- Can apply to all requests
- ASP.NET pipeline extensible using IHttpModule
- Managed code
- Can only apply to requests routed via ASP.NET
- Certain pipeline elements are always there
- IIS authentication
- Logging
11IIS 7.0 Request Pipeline
12IIS 7.0 Request Pipeline
- Linear sequence of modules
- Any module can be enabled/disabled
- Including built-in ones
- Modules can be managed or native code
- Any type of module applies to any request
13IIS7 Modules
14IIS 6.0 Configuration
- IIS 6.0 (and earlier) use the metabase
- Stores all configuration information
- Originally in binary form, then in XML
- Hard to allow management of separate apps by
different groups of people
15IIS 7.0 Configuration
machine.config
root web.config
web.config
web.config
web.config
16IIS7 Configuration
17Building Native Modules
- Export a RegisterModule function from DLL
- Define one or more other functions
- To process request or response
- Inside RegisterModule...
- Hook up your other functions(s) at specific
points in the pipeline - E.g. Begin, AuthN, AuthZ, ExecuteHandler, End
18Building Managed Modules
- Implement IHttpModule
- Implement Init function
- Attach event handlers for specific points in the
pipeline - E.g. Begin, AuthN, AuthZ, ExecuteHandler, End
- Same as existing ASP.NET HttpModules
19IIS7 Managed Module
20IIS7 Diagnostics - RSCA
- Runtime Status and Control API
- Shows currently executing -
- Application Pools
- Requests
- Exposed via
- IIS admin tool
- Programmatically via WMI and Managed OM
21IIS7 Diagnostics Failed Requests
- IIS7 allows you to log trace information just for
requests that fail - For some definition of failure
- Buffers all trace output
- Only flushes to disk if the request fails
- Log output is XML, with a stylesheet
- Breaks down processing by module
- Includes timing details for each module
22IIS7 Failed Request Tracing
- Enable FREB at the Web Site level
- Configure FREB rules at the application level
- Each rule -
- Specifies the type of web content it applies to
- Can specify a specific failure code
- Can specify a duration in seconds
- Can specify a trace event severity
23IIS7 Failed Request Tracing
242. Design Highly-Manageable Apps
25Management in Windows Server 2008
- MMC v3.0
- Managed framework for building snap-ins
- Microsoft.ManagementConsole namespace
- Ships with .NET Framework v3.0
- Already seen it in use IIS Admin Console
- Windows PowerShell
26Windows PowerShell
- Its a command-line interface!
- Scriptable
- Commands may be composed
- Not based on text, based on .NET objects
- Available for...
- Windows XP
- Windows Server 2003
- Windows Vista
- Ships inside...
- Windows Server 2008
27Windows PowerShell and Scripting
28PowerShell and Developers
- Developers can create new commands
- ...and can create PowerShell drives
- Excellent way to provide admin experience for
your applications. - Exchange 2007 and SQL Server 2008, for example
29PowerShell Cmdlets and Providers
303. Develop Federation-Aware Apps
31Developing Federated Identity Apps
- With AD FS
- Active Directory Federation Services
- Why?
- Enables cross-domain, cross-platform access to
your Web applications - Provides Web SSO experience
- Promotes a claims-based programming model
- Achieve reach for your application
- Think outside of the firewall
32B2B Federation Scenario
Federation Trust
https
https
https
33Application Authorization Using Claims
- Claims
- Statements made by an authority about a user
- Used for authorization purposes
- Three types of ADFS claims
- Identity
- Email
- User Principal Name (UPN)
- Common Name
- Group
- Custom
Identity UPN eric_at_adatum.com
Custom DisplayName Eric Parkinson Position Pur
chasing Staff
Group Purchaser Administrator Adatum
34Coding a Federation-Aware app
- System.Web.Security.SingleSignOn
- System.Web.Security.SingleSignOn.Authorization
- In code -
- SsoId User.Identity as SingleSignOnIdentity
- SsoId.IsAuthenticated have we a good security
token? - SsoId.SecurityPropertyCollection each item
could be... - Group claim, UPN claim, custom claim
- Application can get any/all claim details
354. Build Connected Systems
36Windows Communication Foundation
.NET Remoting
ASMX
Interop with other platforms
Extensibility Location transparency
Attribute- Based Programming
Message- Oriented Programming
WS- Protocol Support
Enterprise Services
System.Messaging
WSE
37Poison Message Handling
Sub-queues
MSMQ 4.0
App-Specific Dead Letter Queues
Transactional Remote Receive
38Sub-queues
- Never created explicitly
- Accessed via DIRECT FormatName...
- DIRECTOSserver\private\myqueuemysubq
- Created at time of first Open
- Can receive in the normal fashion
- Can only insert with MQMoveMessage
- No managed code equivalent ?
39Poison Message Handling
- WCF binding configuration...
- ltnetMsmqBindinggt
- ltbinding name"PoisonBinding" receiveRetryCount
"0 maxRetryCycles"1 retryCycleDelay"00000
5 receiveErrorHandling"Move"gtlt/bindinggt - lt/netMsmqBindinggt
40End of Part One
- Build More Flexible Web Applications
- IIS7
- Design Highly-Manageable Applications
- Windows PowerShell, MMC3
- Develop Federation-Aware Applications
- AD FS
- Build Connected Systems
- WCF, MSMQ 4
41MSDN in the UK
- Visit http//msdn.co.uk
- Newsletter
- Events
- Screencasts
- Blogs
42(No Transcript)