SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Things that Every ASP.NET
Developer should know


Darren Sim
Microsoft MVP (ASP.NET / IIS)
Member, Microsoft Developer Guidance Web Advisory Council
Director, Singapore Software Quality Testing Board (SGTQB)
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
Fundamentals

•   Internet is based on TCP/IP


•   World Wide Web is based on HTTP
    – HTTP based on Request/Response paradigm
    – Header and body
    – Stateless
    – Specification @ http://www.ietf.org/rfc/rfc2068.txt
Http Request

GET http://localhost:99/default.aspx HTTP/1.1
Accept: */*
Accept-Language: en-us
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET
  CLR 3.0.04506; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.5.21022)
Host: localhost:99
Proxy-Connection: Keep-Alive
Pragma: no-cache
Http Response

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.0
X-AspNet-Version: 2.0.50727                                             Header
X-Powered-By: ASP.NET
Date: Sun, 07 Mar 2010 19:22:19 GMT
Content-Length: 686

<head><title> Home Page </title></head>
<body class="basic">
   <form name="form1" method="post" action="default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwULLTE0MDkxNzYwNDNkZKn1tb3qjzVWNrSAgGULkE4nvHPg" />
</div>                                                                  Body
   <div style="background-color:Blue">
      <h3>Home</h3>
   </div>
   </form>
</body>
</html>
How we connect to the internet?




                    ISP
IIS Architecture

                    Configuration              Application Pool

  SvcHost.exe                                     w3wp.exe

         WWW          Windows
       Publishing      Process
         Service      Activation
        (W3SVC)     Service (WAS)

User Mode
Kernel Mode

                                    HTTP.sys
Configuration File


                                                 Site               Application
   Machine.config            Root web.config
                                               web.config           web.config
                                                <system.Web>         <system.Web>



    Applicationhost.config
                                               <system.webServer>   <system.webServer>




*Web.config has a 100Kb file size limit.
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
Fiddler

•   Tracing tool specifically for HTTP
•   Shows complete request and response (not packets)
•   Can save archive of session
•   Can be used on own machine (ipv4.fiddler, ipv6.fiddler)
•   Can create own GET requests
•   Can decrypt SSL traffic!
Microsoft Network Monitor

•   General network tracing tool for many protocols
•   Hooks into network adapters
•   See network frames at multiple levels
•   Apply filters for specific protocols, IP addresses, etc


Free download at http://www.microsoft.com/downloads/en/details.aspx?FamilyID=983b941d-06cb-
4658-b7f6-3088333d062f&displaylang=en
IIS Log Files

•   Time Taken (execute, queue, and time to client – IIS 7/6)
•   Sub-status codes are very useful for indicating the exact problems
•   Log entries are made AFTER the page execution is complete
•   Log file entries are always in GMT
•   Setup cookie, referrer, bytes sent
Log Parser

•   Utility to query IIS log files, event logs, etc
•   Query syntax nearly identical to SQL
•   Write series of queries for site health (HTTP status, time taken, file
    sizes, down pages, orders, etc)
•   ASP.NET Response.AppendToLog( )


Download Log Parser at http://tinyurl.com/5uoxz
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
Performance Culprits
Problem Statement

•   HTTP requests are the biggest web performance killer
•   Reduce Requests, massively improve performance
Performance Culprits
Solution

•   Combine all Javascript into one file
•   Combine all CSS into one file
•   Using MSAjax CDN instead of your own
Reduce & Avoid Requests

•   Avoid Response.Redirect
    –   Invokes an extra client side HTTP Request


•   Use Server.Transfer instead
Reduce Page Size

•   The smaller the page, the quicker the download


•   Especially important in these areas
    – Mobile Applications (Windows Mobile, IPhone, 3G Data Card)
    – Non Broadband Users
    – Many offices have less capacity than broadband
    – Developing Countries
Reduce Page Size

•   Most Browsers support HTTP Compression
    –   GZIP & Deflate
    –   IE, Firefox etc
•   Drastically reduces page size
•   Steps
    – Browser Passes Accept-Encoding in Request Header
    – Data is compressed and sent to browser
    – Browser decompresses html

•   Only GET is compressed, POST IS NOT Compressed
HTTP Compression

•   Server evaluates the “Accept-Encoding” header for request,
    compresses resulting response
•   largeGridView.aspx - 41 frames down to 7
•   Implemented in February 2003 when about 3% of Fortune 1000 web
    sites utilized
•   Used 53% less bandwidth, ~25% faster Keynote measurements
•   Now use IIS Compression (free)
HTTP Compression (cont…)

•   IIS 7
    –   Can control when to stop using if CPU usage is too high
    –   Minimum default file size is 256K
    –   Only static compression is on by default

Detailed article about enabling IIS 6 compression at http://tinyurl.com/yjdo7w
Content Expirations

•   Client asks “if-modified-since”
•   Small content files it is just as expensive to see if modified as to
    receive content
•   Setup expiration times for content folders
•   Avoid requests for files that seldom change (.js, .css, images, etc)
•   Rename the file if need to override browser caching
Ajax Minifier

•   Microsoft Ajax Minifier (Codeplex.com)
•   Minimize CSS and JavaScript files
    –   Remove whitespace, comments, excessive semicolons, etc
•   Command line, .dll, and build tasks
•   jQuery-1.4.2.js minimized 55.5%
•   Test after minimize!
•   MSBuild Extension Pack (version #)
ETags

•   Used for cache validation
•   IIS sends the ETag header in response for static files
    –   hash:changeNumber
•   IIS 6
    – changeNumber – specific to server
    – Set to 0 with Metabase Explorer, http://tinyurl.com/2agsbtc

•   IIS 7
    – changeNumber - 0 by default
    – Completely remove header with HttpModule
CSS Sprite

•   Combine small images into a single image
•   Use CSS to “index” into the larger image


•   Often 70-95% of time taken for a user is time requesting components
    (images, .css, .js)
•   Reduce the number of requests


**Free CSS Sprite generator at http://spritegen.website-performance.org/
Tracing

•   Setup ASP.NET to save information about recent requests


•   <trace enabled="true" pageOutput="false" localOnly="false"
    requestLimit="2" mostRecent="true" />


•   /Trace.axd
Tracing (code)
Trace Outputs
Analysis of Trace Output
Error Page Configurations

•   <deployment retail=”true” /> (machine.config only)
    –   <customErrors mode=”On” />
    –   <compilation debug=”false” />
    –   <tracing enabled=“false” />


•   External config files (no restart)
Global.asax Application_Error( )

•   Every ASP.NET web site should have this coded to ensure that
    unhandled exceptions are caught and logged


•   HKLMSystemCurrentControlSetServicesEventLogApplication and
    add key for source


•   Use <customErrors mode=“On” /> to redirect to a down page
Validation Controls

•   OWASP Top 10
    – XSS (Cross Site Scripting)
    – SQL Injection

•   All input from web controls needs to be verified
•   Leverage client validation for user experience but must validate on the server


•   Common validators
    –   RequiredFieldValidator
    –   RangeValidator
    –   RegularExpressionValidator
    –   CompareValidator
    –   CustomValidator
Caching

– Data caching (Cache), cut 50% of our SQL queries which was 72,080,000
  less queries each month!
– Substitution
– Output caching (shared)


–   Don’t cache page (set specific cache ability)
    • Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Yahoo! A List Browsers
                        Win XP             Win 7            Mac 10.6.†      iOS 3.†   iOS 4.†   Android 2.2.†

Safari 5.†                                                   A-grade

Chrome † (latest
                        A-grade
stable)


                                      A-grade (upon GA   A-grade (upon GA
Firefox 4.†
                                           release)           release)


Firefox 3.6.†           A-grade           A-grade            A-grade


                                      A-grade (upon GA
IE 9.0
                                           release)

IE 8.0                  A-grade           A-grade
IE 7.0                  A-grade
IE 6.0                  A-grade

Safari for iOS                                                              A-grade   A-grade

WebKit for Android
                                                                                                  A-grade
OS



Complete list available at http://developer.yahoo.com/yui/articles/gbs/
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
Reference Model to Guide Architecture Projects
Model for Web 2.0


                     Users

          Client applications/runtimes

           Connectivity/reachability

                    Services

                  Capabilities
Basic Service-Consumer Pattern

                         Consumed
                             via
                          internet
     Service                         Client Applications

                                               Provides View

            Offered as
                                       Interface

     Capability
Landscape leading to hybrid platforms
Web 2.0 Reference Architecture (basic)
Web 2.0 Reference Architecture (detailed)
Components of a pattern (basic)
Components of a pattern (detailed)
Patterns for Web 2.0

•   The Service-Oriented Architecture Pattern
•   The Software as a Service (SaaS) Pattern
•   The Participation-Collaboration Pattern
•   The Asynchronous Particle Update Pattern
•   The Mashup Pattern
•   The Rich User Experience Pattern
Patterns for Web 2.0 (cont…)

•   The Synchronized Web Pattern
•   The Collaborative Tagging Pattern
•   The Declarative Living and Tag Gardening Pattern
•   The Semantic Web Grounding Pattern
•   The Persistent Rights Management (PRM) Pattern
•   The Structured Information Pattern
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
AGENDA

HTTP and Web Server Fundamentals

Debugging and Analysis Tools

Development Techniques

Patterns & Practices
Resources & Readings

Performance Management
http://www.sitepoint.com/books/aspnetant1/aspnetant1-sample.pdf


ASP.NET Developer Guidance Map
http://www.darrensim.com
itsme@darrensim.com   http://www.facebook.com/darrensim   http://www.twitter.com/darrensim

Contenu connexe

Tendances

Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
Eric ShangKuan
 

Tendances (20)

Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8
 
Configuring CQ Security
Configuring CQ SecurityConfiguring CQ Security
Configuring CQ Security
 
WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
 
Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11Orlando DNN Usergroup Pres 12/06/11
Orlando DNN Usergroup Pres 12/06/11
 
Presentation on Instant page speed optimization
Presentation on Instant page speed optimizationPresentation on Instant page speed optimization
Presentation on Instant page speed optimization
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
 
Tuning Web Performance
Tuning Web PerformanceTuning Web Performance
Tuning Web Performance
 
SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)SPSUtah 2014 SharePoint 2013 Performance (Admin)
SPSUtah 2014 SharePoint 2013 Performance (Admin)
 
JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
 
JBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 TroubleshootingJBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 Troubleshooting
 
SharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 PerformanceSharePoint Saturday The Conference 2011 - SP2010 Performance
SharePoint Saturday The Conference 2011 - SP2010 Performance
 
Jboss App Server
Jboss App ServerJboss App Server
Jboss App Server
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office Hours
 
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB AtlasMongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
MongoDB World 2019: Why NBCUniversal Migrated to MongoDB Atlas
 
Turn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly SwarmTurn you Java EE Monoliths into Microservices with WildFly Swarm
Turn you Java EE Monoliths into Microservices with WildFly Swarm
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web Summit
 
J boss
J bossJ boss
J boss
 

En vedette (7)

Ms Cloud Day Closing - Harish
Ms Cloud Day Closing - HarishMs Cloud Day Closing - Harish
Ms Cloud Day Closing - Harish
 
The Trouble with Social Computing Systems Research
The Trouble with Social Computing Systems ResearchThe Trouble with Social Computing Systems Research
The Trouble with Social Computing Systems Research
 
Visual Studio 2010 ALM Overview - Sreedhar Kakade
Visual Studio 2010 ALM Overview - Sreedhar KakadeVisual Studio 2010 ALM Overview - Sreedhar Kakade
Visual Studio 2010 ALM Overview - Sreedhar Kakade
 
Windows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan WongWindows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan Wong
 
Developing Applications for Windows Phone 7 - Chris Ismael
Developing Applications for Windows Phone 7 - Chris IsmaelDeveloping Applications for Windows Phone 7 - Chris Ismael
Developing Applications for Windows Phone 7 - Chris Ismael
 
The Windows Azure Platform: A Perspective - David Chappell
The Windows Azure Platform: A Perspective - David ChappellThe Windows Azure Platform: A Perspective - David Chappell
The Windows Azure Platform: A Perspective - David Chappell
 
01 server manager spiffy
01 server manager spiffy01 server manager spiffy
01 server manager spiffy
 

Similaire à CTU June 2011 - Things that Every ASP.NET Developer Should Know

Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnet
rsnarayanan
 
Asp.net performance secrets
Asp.net performance secretsAsp.net performance secrets
Asp.net performance secrets
Mahmoud Ghoz
 

Similaire à CTU June 2011 - Things that Every ASP.NET Developer Should Know (20)

Generating the Server Response: HTTP Status Codes
Generating the Server Response: HTTP Status CodesGenerating the Server Response: HTTP Status Codes
Generating the Server Response: HTTP Status Codes
 
SharePoint Performance Optimization In 10 Steps for the IT Professional
SharePoint Performance Optimization In 10 Steps for the IT ProfessionalSharePoint Performance Optimization In 10 Steps for the IT Professional
SharePoint Performance Optimization In 10 Steps for the IT Professional
 
All About Asp Net 4 0 Hosam Kamel
All About Asp Net 4 0  Hosam KamelAll About Asp Net 4 0  Hosam Kamel
All About Asp Net 4 0 Hosam Kamel
 
SharePoint 2010 Boost your farm performance!
SharePoint 2010 Boost your farm performance!SharePoint 2010 Boost your farm performance!
SharePoint 2010 Boost your farm performance!
 
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
Building Highly Scalable Java Applications on Windows Azure - JavaOne S313978
 
Preparing for Upgrade to SharePoint 2010 with Joel Oleson Quest Software Webcast
Preparing for Upgrade to SharePoint 2010 with Joel Oleson Quest Software WebcastPreparing for Upgrade to SharePoint 2010 with Joel Oleson Quest Software Webcast
Preparing for Upgrade to SharePoint 2010 with Joel Oleson Quest Software Webcast
 
Joomla! Performance on Steroids
Joomla! Performance on SteroidsJoomla! Performance on Steroids
Joomla! Performance on Steroids
 
Dot Net Nuke Presentation
Dot Net Nuke PresentationDot Net Nuke Presentation
Dot Net Nuke Presentation
 
Web server
Web serverWeb server
Web server
 
IIS 6.0 and asp.net
IIS 6.0 and asp.netIIS 6.0 and asp.net
IIS 6.0 and asp.net
 
DOTNET8.pptx
DOTNET8.pptxDOTNET8.pptx
DOTNET8.pptx
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By Design
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
Harish Understanding Aspnet
Harish Understanding AspnetHarish Understanding Aspnet
Harish Understanding Aspnet
 
PHP on Windows 2008
PHP on Windows 2008PHP on Windows 2008
PHP on Windows 2008
 
Asp.net performance secrets
Asp.net performance secretsAsp.net performance secrets
Asp.net performance secrets
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
WSS And Share Point For Developers
WSS And Share Point For DevelopersWSS And Share Point For Developers
WSS And Share Point For Developers
 
Spring 2007 SharePoint Connections Oleson Advanced Administration and Plannin...
Spring 2007 SharePoint Connections Oleson Advanced Administration and Plannin...Spring 2007 SharePoint Connections Oleson Advanced Administration and Plannin...
Spring 2007 SharePoint Connections Oleson Advanced Administration and Plannin...
 

Plus de Spiffy

Active Directory Upgrade
Active Directory UpgradeActive Directory Upgrade
Active Directory Upgrade
Spiffy
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornment
Spiffy
 
Agile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentAgile in Action - Act 2: Development
Agile in Action - Act 2: Development
Spiffy
 
Agile in Action - Act 3: Testing
Agile in Action - Act 3: TestingAgile in Action - Act 3: Testing
Agile in Action - Act 3: Testing
Spiffy
 
Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?
Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?
Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?
Spiffy
 
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Spiffy
 
MS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatMS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for That
Spiffy
 
MS TechDays 2011 - NUI, Gooey and Louie
MS TechDays 2011 - NUI, Gooey and LouieMS TechDays 2011 - NUI, Gooey and Louie
MS TechDays 2011 - NUI, Gooey and Louie
Spiffy
 
MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7
MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7
MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7
Spiffy
 
MS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on AzureMS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on Azure
Spiffy
 
MS TechDays 2011 - HTML 5 All the Awesome Bits
MS TechDays 2011 - HTML 5 All the Awesome BitsMS TechDays 2011 - HTML 5 All the Awesome Bits
MS TechDays 2011 - HTML 5 All the Awesome Bits
Spiffy
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
Spiffy
 
MS TechDays 2011 - Simplified Converged Infrastructure Solutions
MS TechDays 2011 - Simplified Converged Infrastructure SolutionsMS TechDays 2011 - Simplified Converged Infrastructure Solutions
MS TechDays 2011 - Simplified Converged Infrastructure Solutions
Spiffy
 
MS TechDays 2011 - SCDPM 2012 The New Feature of Data Protection
MS TechDays 2011 - SCDPM 2012 The New Feature of Data ProtectionMS TechDays 2011 - SCDPM 2012 The New Feature of Data Protection
MS TechDays 2011 - SCDPM 2012 The New Feature of Data Protection
Spiffy
 
MS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid Deployment
MS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid DeploymentMS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid Deployment
MS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid Deployment
Spiffy
 
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
Spiffy
 
MS TechDays 2011 - Cloud Management with System Center Application Controller
MS TechDays 2011 - Cloud Management with System Center Application ControllerMS TechDays 2011 - Cloud Management with System Center Application Controller
MS TechDays 2011 - Cloud Management with System Center Application Controller
Spiffy
 
MS TechDays 2011 - Virtualization Solutions to Optimize Performance
MS TechDays 2011 - Virtualization Solutions to Optimize PerformanceMS TechDays 2011 - Virtualization Solutions to Optimize Performance
MS TechDays 2011 - Virtualization Solutions to Optimize Performance
Spiffy
 
MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...
MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...
MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...
Spiffy
 
MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...
MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...
MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...
Spiffy
 

Plus de Spiffy (20)

Active Directory Upgrade
Active Directory UpgradeActive Directory Upgrade
Active Directory Upgrade
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornment
 
Agile in Action - Act 2: Development
Agile in Action - Act 2: DevelopmentAgile in Action - Act 2: Development
Agile in Action - Act 2: Development
 
Agile in Action - Act 3: Testing
Agile in Action - Act 3: TestingAgile in Action - Act 3: Testing
Agile in Action - Act 3: Testing
 
Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?
Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?
Agile in Action - Keynote: Becoming and Being Agile - What Does This Mean?
 
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
 
MS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatMS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for That
 
MS TechDays 2011 - NUI, Gooey and Louie
MS TechDays 2011 - NUI, Gooey and LouieMS TechDays 2011 - NUI, Gooey and Louie
MS TechDays 2011 - NUI, Gooey and Louie
 
MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7
MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7
MS TechDays 2011 - Mango, Mango! Developing for Windows Phone 7
 
MS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on AzureMS TechDays 2011 - Generate Revenue on Azure
MS TechDays 2011 - Generate Revenue on Azure
 
MS TechDays 2011 - HTML 5 All the Awesome Bits
MS TechDays 2011 - HTML 5 All the Awesome BitsMS TechDays 2011 - HTML 5 All the Awesome Bits
MS TechDays 2011 - HTML 5 All the Awesome Bits
 
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure PlatformMS TechDays 2011 - Cloud Computing with the Windows Azure Platform
MS TechDays 2011 - Cloud Computing with the Windows Azure Platform
 
MS TechDays 2011 - Simplified Converged Infrastructure Solutions
MS TechDays 2011 - Simplified Converged Infrastructure SolutionsMS TechDays 2011 - Simplified Converged Infrastructure Solutions
MS TechDays 2011 - Simplified Converged Infrastructure Solutions
 
MS TechDays 2011 - SCDPM 2012 The New Feature of Data Protection
MS TechDays 2011 - SCDPM 2012 The New Feature of Data ProtectionMS TechDays 2011 - SCDPM 2012 The New Feature of Data Protection
MS TechDays 2011 - SCDPM 2012 The New Feature of Data Protection
 
MS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid Deployment
MS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid DeploymentMS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid Deployment
MS TechDays 2011 - Microsoft Exchange Server and Office 365 Hybrid Deployment
 
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
MS TechDays 2011 - How to Run Middleware in the Cloud Story of Windows Azure ...
 
MS TechDays 2011 - Cloud Management with System Center Application Controller
MS TechDays 2011 - Cloud Management with System Center Application ControllerMS TechDays 2011 - Cloud Management with System Center Application Controller
MS TechDays 2011 - Cloud Management with System Center Application Controller
 
MS TechDays 2011 - Virtualization Solutions to Optimize Performance
MS TechDays 2011 - Virtualization Solutions to Optimize PerformanceMS TechDays 2011 - Virtualization Solutions to Optimize Performance
MS TechDays 2011 - Virtualization Solutions to Optimize Performance
 
MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...
MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...
MS TechDays 2011 - Automating Your Infrastructure System Center Orchestrator ...
 
MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...
MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...
MS TechDays 2011 - Self-Service Private Cloud Management through Integrated P...
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

CTU June 2011 - Things that Every ASP.NET Developer Should Know

  • 1. Things that Every ASP.NET Developer should know Darren Sim Microsoft MVP (ASP.NET / IIS) Member, Microsoft Developer Guidance Web Advisory Council Director, Singapore Software Quality Testing Board (SGTQB)
  • 2. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 3. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 4. Fundamentals • Internet is based on TCP/IP • World Wide Web is based on HTTP – HTTP based on Request/Response paradigm – Header and body – Stateless – Specification @ http://www.ietf.org/rfc/rfc2068.txt
  • 5. Http Request GET http://localhost:99/default.aspx HTTP/1.1 Accept: */* Accept-Language: en-us UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.5.21022) Host: localhost:99 Proxy-Connection: Keep-Alive Pragma: no-cache
  • 6. Http Response HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.0 X-AspNet-Version: 2.0.50727 Header X-Powered-By: ASP.NET Date: Sun, 07 Mar 2010 19:22:19 GMT Content-Length: 686 <head><title> Home Page </title></head> <body class="basic"> <form name="form1" method="post" action="default.aspx" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE0MDkxNzYwNDNkZKn1tb3qjzVWNrSAgGULkE4nvHPg" /> </div> Body <div style="background-color:Blue"> <h3>Home</h3> </div> </form> </body> </html>
  • 7. How we connect to the internet? ISP
  • 8. IIS Architecture Configuration Application Pool SvcHost.exe w3wp.exe WWW Windows Publishing Process Service Activation (W3SVC) Service (WAS) User Mode Kernel Mode HTTP.sys
  • 9. Configuration File Site Application Machine.config Root web.config web.config web.config <system.Web> <system.Web> Applicationhost.config <system.webServer> <system.webServer> *Web.config has a 100Kb file size limit.
  • 10. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 11. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 12. Fiddler • Tracing tool specifically for HTTP • Shows complete request and response (not packets) • Can save archive of session • Can be used on own machine (ipv4.fiddler, ipv6.fiddler) • Can create own GET requests • Can decrypt SSL traffic!
  • 13. Microsoft Network Monitor • General network tracing tool for many protocols • Hooks into network adapters • See network frames at multiple levels • Apply filters for specific protocols, IP addresses, etc Free download at http://www.microsoft.com/downloads/en/details.aspx?FamilyID=983b941d-06cb- 4658-b7f6-3088333d062f&displaylang=en
  • 14. IIS Log Files • Time Taken (execute, queue, and time to client – IIS 7/6) • Sub-status codes are very useful for indicating the exact problems • Log entries are made AFTER the page execution is complete • Log file entries are always in GMT • Setup cookie, referrer, bytes sent
  • 15. Log Parser • Utility to query IIS log files, event logs, etc • Query syntax nearly identical to SQL • Write series of queries for site health (HTTP status, time taken, file sizes, down pages, orders, etc) • ASP.NET Response.AppendToLog( ) Download Log Parser at http://tinyurl.com/5uoxz
  • 16. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 17. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 18. Performance Culprits Problem Statement • HTTP requests are the biggest web performance killer • Reduce Requests, massively improve performance
  • 19. Performance Culprits Solution • Combine all Javascript into one file • Combine all CSS into one file • Using MSAjax CDN instead of your own
  • 20. Reduce & Avoid Requests • Avoid Response.Redirect – Invokes an extra client side HTTP Request • Use Server.Transfer instead
  • 21. Reduce Page Size • The smaller the page, the quicker the download • Especially important in these areas – Mobile Applications (Windows Mobile, IPhone, 3G Data Card) – Non Broadband Users – Many offices have less capacity than broadband – Developing Countries
  • 22. Reduce Page Size • Most Browsers support HTTP Compression – GZIP & Deflate – IE, Firefox etc • Drastically reduces page size • Steps – Browser Passes Accept-Encoding in Request Header – Data is compressed and sent to browser – Browser decompresses html • Only GET is compressed, POST IS NOT Compressed
  • 23. HTTP Compression • Server evaluates the “Accept-Encoding” header for request, compresses resulting response • largeGridView.aspx - 41 frames down to 7 • Implemented in February 2003 when about 3% of Fortune 1000 web sites utilized • Used 53% less bandwidth, ~25% faster Keynote measurements • Now use IIS Compression (free)
  • 24. HTTP Compression (cont…) • IIS 7 – Can control when to stop using if CPU usage is too high – Minimum default file size is 256K – Only static compression is on by default Detailed article about enabling IIS 6 compression at http://tinyurl.com/yjdo7w
  • 25. Content Expirations • Client asks “if-modified-since” • Small content files it is just as expensive to see if modified as to receive content • Setup expiration times for content folders • Avoid requests for files that seldom change (.js, .css, images, etc) • Rename the file if need to override browser caching
  • 26. Ajax Minifier • Microsoft Ajax Minifier (Codeplex.com) • Minimize CSS and JavaScript files – Remove whitespace, comments, excessive semicolons, etc • Command line, .dll, and build tasks • jQuery-1.4.2.js minimized 55.5% • Test after minimize! • MSBuild Extension Pack (version #)
  • 27. ETags • Used for cache validation • IIS sends the ETag header in response for static files – hash:changeNumber • IIS 6 – changeNumber – specific to server – Set to 0 with Metabase Explorer, http://tinyurl.com/2agsbtc • IIS 7 – changeNumber - 0 by default – Completely remove header with HttpModule
  • 28. CSS Sprite • Combine small images into a single image • Use CSS to “index” into the larger image • Often 70-95% of time taken for a user is time requesting components (images, .css, .js) • Reduce the number of requests **Free CSS Sprite generator at http://spritegen.website-performance.org/
  • 29. Tracing • Setup ASP.NET to save information about recent requests • <trace enabled="true" pageOutput="false" localOnly="false" requestLimit="2" mostRecent="true" /> • /Trace.axd
  • 33. Error Page Configurations • <deployment retail=”true” /> (machine.config only) – <customErrors mode=”On” /> – <compilation debug=”false” /> – <tracing enabled=“false” /> • External config files (no restart)
  • 34. Global.asax Application_Error( ) • Every ASP.NET web site should have this coded to ensure that unhandled exceptions are caught and logged • HKLMSystemCurrentControlSetServicesEventLogApplication and add key for source • Use <customErrors mode=“On” /> to redirect to a down page
  • 35. Validation Controls • OWASP Top 10 – XSS (Cross Site Scripting) – SQL Injection • All input from web controls needs to be verified • Leverage client validation for user experience but must validate on the server • Common validators – RequiredFieldValidator – RangeValidator – RegularExpressionValidator – CompareValidator – CustomValidator
  • 36. Caching – Data caching (Cache), cut 50% of our SQL queries which was 72,080,000 less queries each month! – Substitution – Output caching (shared) – Don’t cache page (set specific cache ability) • Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
  • 37. Yahoo! A List Browsers Win XP Win 7 Mac 10.6.† iOS 3.† iOS 4.† Android 2.2.† Safari 5.† A-grade Chrome † (latest A-grade stable) A-grade (upon GA A-grade (upon GA Firefox 4.† release) release) Firefox 3.6.† A-grade A-grade A-grade A-grade (upon GA IE 9.0 release) IE 8.0 A-grade A-grade IE 7.0 A-grade IE 6.0 A-grade Safari for iOS A-grade A-grade WebKit for Android A-grade OS Complete list available at http://developer.yahoo.com/yui/articles/gbs/
  • 38. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 39. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 40. Reference Model to Guide Architecture Projects
  • 41. Model for Web 2.0 Users Client applications/runtimes Connectivity/reachability Services Capabilities
  • 42. Basic Service-Consumer Pattern Consumed via internet Service Client Applications Provides View Offered as Interface Capability
  • 43. Landscape leading to hybrid platforms
  • 44. Web 2.0 Reference Architecture (basic)
  • 45. Web 2.0 Reference Architecture (detailed)
  • 46. Components of a pattern (basic)
  • 47. Components of a pattern (detailed)
  • 48. Patterns for Web 2.0 • The Service-Oriented Architecture Pattern • The Software as a Service (SaaS) Pattern • The Participation-Collaboration Pattern • The Asynchronous Particle Update Pattern • The Mashup Pattern • The Rich User Experience Pattern
  • 49. Patterns for Web 2.0 (cont…) • The Synchronized Web Pattern • The Collaborative Tagging Pattern • The Declarative Living and Tag Gardening Pattern • The Semantic Web Grounding Pattern • The Persistent Rights Management (PRM) Pattern • The Structured Information Pattern
  • 50. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 51. AGENDA HTTP and Web Server Fundamentals Debugging and Analysis Tools Development Techniques Patterns & Practices
  • 52. Resources & Readings Performance Management http://www.sitepoint.com/books/aspnetant1/aspnetant1-sample.pdf ASP.NET Developer Guidance Map http://www.darrensim.com
  • 53. itsme@darrensim.com http://www.facebook.com/darrensim http://www.twitter.com/darrensim