Tuesday, December 21, 2010

Page Processing Model in WSS3.0/MOSS 2007

The Page Processing Model

The following list gives a step-by-step breakdown of how ASP.NET 2.0 and Windows SharePoint Services 3.0 interact to render pages in a SharePoint site:
  1. The browser requests a Web page from Microsoft Internet Information Services (IIS).
  2. IIS passes the request to ASP.NET 2.0.
  3. An HttpApplication pipeline is created for the request.
  4. ASP.NET 2.0 fetches the page via the Windows SharePoint Services 3.03 file provider. ASP.NET passes the URL to the file provider, and the file provider fetches the page and returns the page stream. The Windows SharePoint Services file provider implements caching and reduces round-trips to the database.
  5. ASP.NET loads a Page class, parses the page stream, and finds a reference to the page layout upon which the page is based.
  6. The ASP.NET engine compiles the page stream and stores it in memory.
  7. ASP.NET queries the Windows SharePoint Services file provider for the page layout.
  8. ASP.NET loads the stream for the page layout associated with the current page.
  9. ASP.NET compiles the page layout and stores it in memory. ASP.NET can free this memory later if the system needs memory.
  10. ASP.NET determines the master page for the site and fetches the master page via the Windows SharePoint Services file provider.
  11. ASP.NET compiles the master page and writes to the disk so you never have to recompile the master page unless you modify it.
  12. The page layout runs each control on the page in the context of the page that was requested.
  13. ASP.NET updates the necessary caches.
  14. IIS returns the page to the browser.
The next time the page is requested by the same user or by a different user who has the same permissions to see the page as the first user, page processing is much more efficient:
  1. The browser requests a Web page from IIS.
  2. IIS passes the request to ASP.NET 2.0.
  3. An HTTPApplication pipeline is created for the request and hits the HandleRequest.
  4. ASP.NET uses all the internal caches.
  5. ASP.NET renders the HTML for the controls.
  6. IIS returns the page to the browser.


Note: Even though this process takes little time, ASP.NET renders the controls each time, and you may not want that. In such cases, you can turn on the ASP.NET 2.0 page output caching feature. 

No comments:

Post a Comment