Share point helps team members to connect and exchange information in a collaborative manner. It helps to centralize enterprise information for efficient functioning. For instance below is how a normal organization works. Files and documents scattered in individual PC and data is transported according to custom protocols. The communication protocol for sending these data is also person dependent. Some body would use a email , some body would share a drive etc etc.

Share point unites all the documents in to one centralize place and unifies the data transport mechanism. In one words a central enterprise information portal.

|
Microsoft has divided share point products in two parts. One is called as WSS (Windows SharePoint services) and the other is MOSS (Microsoft Office SharePoint server). WSS is the platform on which MOSS is built. The WSS part is licensed through Windows 2003 server and it does not cost. MOSS is separate product by itself and it needs licensing and it has a good amount of cost J . WSS is good for small team and small projects. MOSS has extra functionalities in other words value added services. So the choice between WSS and MOSS will depend on budget of the project and the VAS provided by MOSS.

|
WSS does not work in an isolated fashion. It needs help of two more products IIS (Internet Information Server) and SQL Server.

|
In order to understand how WSS works with IIS we need first understand the concept of “HttpHandlers and HttpModules”. If you are not aware of it you can refresh about the same at HTTPHandler.aspx .
Using the HttpHandlers and HttpModules request is first passed through the Share Point runtime and then passed to the ASP.NET runtime (aspnet_isapi.dll).

If you open the web.config file of a WSS enabled IIS web application you can see the application run time handlers and modules. <httpHandlers> <add verb="GET,HEAD,POST" path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> .... ... </httpHandlers>
We have highlighted the application runtime module. <httpModules> <add name="SPRequest" type="Microsoft.SharePoint.ApplicationRuntime.SPRequestModule, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> ... ... </httpModules> |
Share point is all about enterprise data. When we talk about enterprise data it looks some as shown in the figure below. In other words grouping and sub groupings of data.

SharePoint extends the IIS web application structure to accommodate the above defined data structure using site and site collections. We will see in the later section how to create site collections.

|
As said previously SharePoint is all about data and data should properly authenticated / authorized to proper users. By defining the structure in site and site collection we can now define roles and responsibilities according to data. For instance in the above figure we will assign all HR user to payroll, recruitment and assessment site. These users will not be assigned to account site collection. Same holds true for accounts user.
So when you design your hierarchy of site and site collection you need to keep in mind the enterprise hierarchy structure and design the same accordingly. |
SQL Server is used to store content and configuration information. We have two types of databases one is the content database and the other is the configuration database. We had said previously that content is according to every site. So every site has his own content database. For instance if we have a payroll site and recruitment site they have their own content database. Configuration database is for the entire site as they are used in web farms, site configuration and lot of other things which are generic and common across all the sites.

|
|
Any project has two parts one is the standard and common part and the other is the customized version. In ASP.NET we have two types of pages for any project one is common ASPX pages and the other is customized ASPX pages. Common pages are stored on file directories while customized versions of pages are stored in content database.
So in other words we need an abstract mechanism by which we can render pages from SQL Server content database and also from the virtual directories. This is achieved by using the virtual provider provided by SharePoint. So for all customized pages virtual provider reads from the content database and passes the same to the ASP.NET runtimes. For all common pages it goes to the directory, parses it and the passes the same across to the ASP.NET runtime.

Virtual provider is an abstraction which loads the page from the content or the file system depending on whether it’s customized or common pages and passes the same to the ASP.NET runtime.

|
In SharePoint most of the site pages derive from templates. The custom pages only store the difference between them. The template is loaded in memory and applied to the custom pages on fly. In other words the template is stored in a cache. This definitely brings in performance and flexibility. Flexibility is in terms that when we change the template page it’s applied to all custom pages. These pages are loaded from the file system. So pages which are loaded from the file system are termed as ghosted pages.

If the page data is loaded from the content database it’s termed as unghosted pages.
As a note let me clarify the concept of document and content table as we are already trying to understand the concept of ghosting and unghosting. As we know that SharePoint stores all pages in the database. Looking from a 50,000 feet it has two tables one is the document table which has the entry of page and the other is the content which has the source code of the ASPX page.
So when a page is requested it first checks in the document table and then goes to the content table to load the page. If it does not find data of the page it goes to the file directory to load the page. This loading is done by ASP.NET runtime himself. But if there is data present in the content table then it’s loaded by the ‘safe mode’ parser.

|
As said the previous section there are two tables one is the document and the other content. If the page is stored in the content database it’s loaded by the SafeModeParser which is page parser provided by SharePoint. If there is no data found in the content it’s loaded from the file directory by simple ASP.NET runtime. |
Site pages are customized pages and are saved in to content database. So when you use the SharePoint designer to make custom changes it saves the changes in to content database. If you want to make generic pages in a site collection which will be used by every one, like for instance the ‘Settings.aspx’ page then you need to use application pages.
In other words Site pages are nothing but customized pages stored in content, while application pages are generic pages which will be used by all the sites in a site collection. |
Below figure shows what is the quick launch menu. In this question we just wanted to make sure you know the terminology and where it maps to. In the further section we will be using this terminology for the left hand menu shown in the figure below.

|
We will continue with the same example of our blank site which we discussed previously. On the left hand side corner you will see a site actions menu. So click on the site action menu and click on site settings menu link. Once you click on the link you will be popped with different settings by which you can do customization. We will not discuss right now what every setting is, but in the later section we will understand some important settings by which we can achieve customization.
To increase your confidence you can play around with the ‘Look and feel’ settings. But this will be the landing page when we want to implement customization in SharePoint.

|
Oh, yes you have heard it loud, right and clear. The best part about SharePoint is collaboration. Collaboration has four major entities people, task, data and communication.

So below are some key points of enterprise:- • We have people in our organizations. • People are assigned task. • To complete task we need to exchange data. • We also need to plan/monitor tasks. • To communicate data we need a communication channel like email, WIKI etc.

SharePoint has lot of ready made function which can help us to accommodate all the requirements of collaboration. To see those ready made functionalities click on site actions and click on create. You will be popped with a list of reusable functionality page which you can pick up and achieve collaboration.

Now let’s map the ready made functionalities with collaboration requirements.
Ready made functionalities in SharePoint |
People |
Contacts |
You can get this section in the communication section of the create page. It creates page which can help us to maintain contact information about people. |
Task |
Tasks |
You can get this in the tracking section of the create page. It helps us to track task which your team member needs to complete. |
Data |
Document library |
Its helps to share, edit and version documents. |
|
Picture Library |
Helps to share picture documents |
|
Translation management |
Helps to create document in multilingual languages. |
|
Data connection library |
It helps to share files that contain information about external data. |
Monitoring |
Project task |
You can get this in the tracking section of the create page. It gives a Gantt chart view of tasks. |
|
Issue tracking |
You can get this reusable functionality in the tracking section of create page. Its helps to manage / assign and prioritize issues from start to finish. |
|
Calendar |
Helps to create calendar for deadlines and events |
Communication |
WIKI |
Helps to create interconnected system like WIKI. |
|
Announcement |
Helps to share news and status through announcements. |
|
Discussion board |
Helps to create discussion board like the news group. | |
Ok, now that we are familiar with the reusable components and how they map to the collaboration requirements. Its time add one reusable functionality in your website. We will add a link inside the documents menu called as ‘SharePoint tutorial’. In this section team can upload tutorials for SharePoint in word document format. It’s a simple three step process so let’s understand the same step by step.

Step 1:- Click on the site actions and click on create link from the menu. You will be displayed reusable functionalities provided by SharePoint. Select ‘Document library’ from the libraries section.

Step 2 :- Give the link name as ‘SharePoint tutorial’ and select document types to be unloaded as word format. For this you need to select the document template to be of type ‘Microsoft word’.

Step 3:- Bravo! You can now see the SharePoint tutorial link and you can click on upload to push in a word document inside this library collection.

You can see from the figure below how we have uploaded a word document i.e. “SharePoint tutorial”. You can right click and experiment with more functionalities like check out , versioning , workflow , send alerts when document is modified etc etc.

Note: - You can try adding other functionalities like WIKI, announcement board, picture library and lot more. So feel free to experiment and see how you can easily leverage the reusable functionalities to meet the collaboration requirements. |