Sunday, May 30, 2010

Inside SharePoint Foundation Server 2010

In this article I am going to write about inside of SharePoint Foundation Server 2010. First I will explain “The Request Pipeline” Model. Mainly I am going to explain “What modification are done over Asp.Net pipeline Model to handle SharePoint Request”.

The Request Pipeline

When IIS server receives a request from a client, the request is passed through a pipeline that process the request. This processing includes authenticating the user, verifying the user’s authorization, building the response, sending the response, and finally, logging the request.

HTTP Handler

The Response is generated by HTTP Handler. Request are assigned to handler as per config file, based on file/page requested and the verb in the Request like “Get,POST”. Usually multiple Handler are registered through config file.

HTTP Module

The request pipeline also contains HTTP modules. Modules are assemblies that typically contain one or more event handlers or define new events that other modules can handle. An HTTP module can register for one or more events in the lifecycle of the request.

For more information on The Request Pipeline please visit

http://msdn.microsoft.com/en-us/library/be3378e2-7071-48d4-9d6f-1b31d73bc7aa

Also to know more about IIS 7.0 Integrated Mode Please visit

http://learn.iis.net/page.aspx/101/introduction-to-iis-7-architecture/

Modification in Pipeline to handle SharePoint Site’s Request

Now lets discuss where and how SharePoint makes changes to Request Pipeline.

1) Pipeline Changes at the IIS Configuration Level

  • SharePoint Foundation changes the IIS Configuration file ApplicationHost.Config.
  • Registering Global Module “SharePoint14Module” as shown below
  • Addition of <isapiCgiRestriction> Section
  • <Site> section for every Web app in IIS

2) Pipeline Changes at the SharePoint Web Application Level

  • A <Safe Controls> section specifies the controls that are allowed to run in safe mode
  • A <pages> section is added that identifies the custom SharePoint Foundation page parser filter (derived from PageParserFilter) that screens for unsafe controls
  • A <modules> section overrides the inherited configuration in the following ways.
  • A <handlers> section overrides the inherited configuration mainly by removing some HTTP handlers that SharePoint Foundation does not use and by adding handlers that support AJAX.
  • A <microsoft.sharepoint.client> section is added to support the client object model of SharePoint Foundation and client-side programming.
  • A <WorkflowServices> section and a <System.Workflow.ComponentModel.WorkflowCompiler> section are added to support workflows in SharePoint Foundation.
  • A <securityPolicy> section is used to add two additional trust levels, WSS_Minimal and WSS_Medium.
  • A <compiliation> section notifies the page parser of four additional assemblies it can use for compiling SharePoint Foundation as?x files.
  • A <sitemap> section specifies four special SharePoint Foundation site map providers. The following markup shows the <sitemap> section.

----------------------------------------------------------------------------------

No comments: