What a Good SharePoint Consultant Should Know!

August 23, 2008

Everyone who can spell SharePoint

o            What is Sharepoint?


Sharepoint is the portal. It is developed by Microsoft. This is used to create Content Management System web sites. We can develop individual sites, team sites and enterprise portals.


o            What is the difference between Sharepoint Portal Server and Windows Sharepoint Services?


Sharepoint Portal Server features are very high. Search portal and navigations are most important features of the Sharepoint Portal Server.


Windows Sharepoint Services are used to create CMS Web sites and blogs, Forums and document sharing Libraries.


o            What is a document library?


To share a document that referenced in news, articles published site.


o            What is a meeting workspace?


Meeting workspace is used to store information about particular organization employees work related tasks meetings (related information). And also place the minutes of the meeting and each person task details.


o            What is a document workspace?


To share a document with others, we create a document workspace site. We can easily share documents and some other files. We can give each and every file permissions.


o            What is a web part?

WSS 3.0 has a new infrastructure called Web Part. The WSS Web part classes are derived from ASP.Net Web Part Class. It is supported by Widows Sharepoint Services 3.0. We can also create connectable web parts. The connectable web part is connected to any other related web part. These two connected web parts are has some programs.


Mid-level SharePoint Consultant

o            What is the difference between a document library and a form library?


Document Library has documents and content, which gets stored in the Sharepoint content database.

Form Library has an Info path XML forms. When submitting with InfoPath Form Services, the submitted data is generated as XML which refers the original form template .XSN. The XML files are stored in Document Library.


o            What is a web part zone?


Web Parts are displayed by using Web Part Zone. The WebPartZone class derived from WebZone and WebPartZoneBase classes. A Web Part zone is a WebPart container that can be configured to control the organization and format of the Web Parts contained in it.


o            How is security managed in SharePoint?


Sharepoint using three types of user authentications. There are Windows, Form and Single Sign On.

Security Socket Layer (SSL) is also used for authentication in Sharepoint. Authorization, Authentication and Impersonation these are configured by config file.


o            How are web parts developed?


WebParts developed by using Visual Studio .Net 2005. It offers many Sharepoint templates like Site Definition, Web Part etc. And also using Widows Class Library.


o            What is a site definition?


A Site Definition is a group of files that used to define a unique type of Sharepoint Site. Example, one site definition defines the Team Site, Blank Site, and Document Workspace templates, and another site definition defines the Basic Meeting Workspace, Blank Meeting Workspace, Decision Meeting Workspace, Social Meeting Workspace, and Multipage Meeting Workspace templates.


o            What is a template?


Templates are built-in solutions for applications, business portals, Design and Look & Feel. Sharepoint has a some pre-build templates. The templates are customizing and deploying in to the server.


o            How do you install web parts?


  1. Open the Command prompt in Visual studio .Net.
  2. Find the path for you developed web part dll file path.
  3. Type the command gacutil /I  dll name, then press enter.
  4. Reset the IIS using iisreset command.
  5. Open the Folder “C:\Inetpub\wwwroot\” Open the web.config file. Copy the SafeControl for your installed web Part. And Open your web site config file, paste here the SafeControl tag.
  6. Open your web site. Go to Site Actions > Site Settings > Site collection Features. Now find and activate your installed web Part.
  7. Next, go to site settings> Web Parts here click the “New” link. Here find your installed Web Part and select. Then press “Pop up Gallery” button.
  8. Now you can add web part any page in this site.


o            What is the difference between a site and a web?


Site is defined as Website. It has many subsites.

Web is a single subsite of the Site.


o            What are the differences between web part page gallery, site gallery, virtual server gallery and online gallery?


1. Web Part Gallery has a many WebParts.

2. Site Gallery has a many site galleries. For example. Shared Document, Calendar, Announcement, Lists, Tasks, Team Discussion.

3. Virtual Server Gallery has developer developed web parts are stored in a particular server.


o            What is the GAC?


GAC is Global Assembly Cache. Each computer where the CLR installed has a machine code is called GAC. It stores assemblies. We can use GAC to install the web parts in Sharepoint application.


o            What is a DWP?


DWP means Dashboard Web Part. The DWP files are importing to the Sharepoint Site after we used.


o            What is CAML?


CAML is Collaborative Application Markup Language. It is the XML based language. That is used to build a customize web site based on Sharepoint services. It is used to get a list values, particular data in a list.


o            What are themes?


A theme is a collection of CSS and Graphics. That are modifying / customizing how a web site looks you want.

A Basic web site needs a graphical look and feel. Sharepoint has a some built-in themes. We can create new themes is possible for Sharepoint site.


o            What is presence?

Groove features include presence information, chat, application sharing, file sharing, contacts, messaging, project management, data sharing, and content synchronization.


o            Can web parts be connected? If so, how?

Yes. Two web parts has sharing information in a runtime. We use the Connection Interfaces to create Connectable Web parts.


o            What is a personal view and what is a shared view?


A Web Part page view has two views. There are Personal view and Shared View.


Personal View: This view is set by each user. For example, one user has changed the list in some format. The changes will not see the other users.


Shared View: This view web part designs and any thing is not changed by users. Users will not be changed these types of web parts. The site admin can change the web part view and anything


o            What is an STP file?


STP means Site Template. We can create new site definition. This definition has webparts and list (there are derived from default Sharepoint components). We can save the file for .stp format.


o            What is an FWP file?


FWP file is nothing a backup file for Sharepoint site. We can restore and backup the Sharepoint site.


o            Can you upload MP3’s to SharePoint?


Yes. (http://manish-sharepoint.blogspot.com/2008/06/playing-audiovideo-files-within.html)


o            how does SharePoint support MS Outlook integration?


We can use some features from OutLook in Sharepoint, ex. Calendar and contacts


o            How can you extend lists in SharePoint?


We expand the size of the lists. Click Start, point to All Programs, point to Administrative Tools, and then click SharePoint Central Administration.



o            Explain the document versioning in SharePoint document libraries


We can maintain version in all Sharepoint libraries and lists.  When we upload or update any document, while Sharepoint creates version.

Senior SharePoint Consultant

o            Where is web part resources contained?


The WebPart resources can not part of the DLL, because there are used in url based. Like images, jscript files. The WebPart is installed in GAC and Bin directory.


o            What are the different installation methods for deploying web parts? And what are the pros/cons?


  • We use GAC
  • We develop web part in Windows Class Library. While the web part once runs, it will install automatically in GAC.


o            What is a ghosted/unghosted page?


A Ghosted Page is modified by Sharepoint Designer. Example, Master page.

An Unghosted Page is not modified by Sharepoint Designer. Example, forum pages, calendar lists etc


It has another one page there is “Reghosted” it means by Reset to Site Definition


o            How is site data stored?


In Database.


o            Where is metadata for a web stored?


Meta Data is stored inside XML files on the server or SQL Server database.


o            What is an audience and describe the use?




The primary audience for this clinic is the IT Professional who generally works with both Windows and Office technologies. The types of duties that are typical of this IT Professional are administrative and support duties such as planning and deployment of Office server products in a Microsoft Windows environment, configuration and security administration, and updates of Office upgrades and patches. The target audience for this clinic is IT Professionals that want an overview of what Microsoft Office SharePoint Server 2007 is, and how to deploy it.


o            What are the trust levels and what is the default trust associated with Sharepoint?


The Sharepoint Trust Levels has Security and user interaction with the site. 3 types. There are WSS_FULL, WSS_MEDIUM, WSS_MINIMUM.



o            What are the two logging mechanisms for usage statistics?

  • All default log files are stored in \%windir%\system32\LogFiles\STS this path.
  • Virtual server Folder. It’s like a cache.


o            What functionality does owssup.dll provide for client side activities?


The owssup.dll is used to create Single Sign On in Sharepoint Portal Server.


o            What is the difference between a site owner and a site administrator?


Site Owner has only individual site and sub sites access only.

Site Administrator access all site and Central Administration


o            What is STSAdm and what can it be used for?


It is used to create/manage sites, lists, web parts etc..


o            Can WSS search subsites?


The Subsite has a unique permission of the parent site, we can search subsite content. Until we can’t search Subsite Content.


o            Can you register alerts for users?


No, the admin can give some permission.


o            Are PDFs searchable?


Yes, but default is now. We can use IFILTER type functionality do this moment.


SharePoint Architect

o            What is a SharePoint farm?


It is a deployment scenario, we have two are more server to host Sharepoint. It is 3 types.

1. Small Server, 2. Medium Server, 3. Large Farm.


o            Describe a large deployment


2 Sharepoint servers 2 SQL Server 1 Search Server 1 Clustering Server. It is called large deployment.


o            How can you synchronize custom Active Directory attributes to SharePoint?


Profile Importer from Shared Services Provider.

o            If it is anticipated that our organization would need to store 1 terabyte of documents, what is the recommended configuration and storage requirement?


It is based on your users count.


o            Describe the implementation of SharePoint and Project Server


We can use Project server web parts inside Sharepoint portal server and also create dashboards on Sharepoint pages and can also create custom WebParts using PDC and .Net.


o            What are the BKMs for workflow and SharePoint?


o            Explain how you would deploy SharePoint on an extranet


Usually servers that are accessible from external sources are housed in DMZ’s. Depending on the requirements and the workflow for publishing content you could go with Multiple Servers hosting the same information. One server would reside inside with the SQL Cluster while the external server resides in the DMZ simply calling data. Security would be handled by the same or different active directory domain clusters as well increasing security.


o            What is the BKM for maximum number of virtual servers configured for SharePoint on a single box?


15 Virtual servers.


o            What are the migration strategies for moving sites around?


You could use the Sharepoint Portal Server backup and restore tool as well as the STSADMIN and GUI STSAMIN tools. We have migrated database from the SQL Level and have simply reconnected the front end.


o            What are the archiving strategies?


o            Describe the search strategies?


o            Can you implement forms-based authentication with SharePoint?


Yes. We can implement forms-based authentication with SharePoint.


o            Describe how single sign-on works

1. Easily maintain Role and group users’ information in one place.





A base SharePoint web part for AJAX in ASP.NET 3.5

August 8, 2008


This article describe an abstract web part class developed for the SharePoint 2007 (WSS 3.0 or MOSS 2007) platform. The web part contains the logic to address some known conflicts between SharePoint and ASP.NET AJAX and is designed as the base class for all AJAX enabled SharePoint web parts.


With SharePoint (WSS 3.0 or MOSS 2007) SP1, AJAX is officially supported. However, there are still lots of manual configuration needs to be performed for AJAX to work in the SharePoint environment. Basically you can create an ASP.NET web application targeting .NET framework 3.5 and merge the AJAX related entries into the web.config of your SharePoint application. However, this is not enough. In the MSDN article titled Walkthrough: Creating a Basic ASP.NET AJAX-enabled Web Part, a technique is introduced to fix the conflict between SharePoint and the ASP.NET AJAX UpdatePanel. This article provides a good starting point for developing AJAX enabled SharePoint web part. However, the technique described in the article had its limitations as well. I will go over these limitations below and explained how they can be addressed.

Using the code

ASP.NET AJAX requires one instance, and only one instance of the ScriptManager on any page. There are several ways to include the ScriptManager in a SharePoint web part page. One thing you can do is to modify the master page. Another common technique is to detect if an instance of the ScriptManager already exist, and create one on demand if it does not exist. I like the later approach as it is more flexible than modifying the master page, which affects all pages regardless if AJAX is used in the page. After all, there are 3rd party AJAX libraries that are not currently compatible with ASP.NET AJAX, and you may not have full control on all the contents that appears on a portal.

After reviewing the life cycles of an ASP.NET page one more time, I decided to place the logic that creates an instance of the ScriptManager inside the OnInit event, and that seems to work pretty well.

Another issue comes with the “EnsurePanelFix” logic, as it too, should not be registered more than once. By creating a common base class for AJAX enabled web part, and register the script using the type of the base web part, the problem can be solved. This is especially good as not only the base web part promotes code reuse, it also fixes problems!

The full code for the web part is included below:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.ComponentModel;
using System.Xml.Serialization;
using System.Web.UI.WebControls;
    public abstract class AjaxBaseWebPart : System.Web.UI.WebControls.WebParts.WebPart
        protected override void OnInit(EventArgs e)
            // Register the ScriptManager
            ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
            if (scriptManager == null)
                scriptManager = new ScriptManager();
                scriptManager.ID = ScriptManager1″;
                scriptManager.EnablePartialRendering = true;
                Controls.AddAt(0, scriptManager);

        protected override void CreateChildControls()
            // Add fix according to http://msdn2.microsoft.com/en-us/library/bb861877.aspx

        private void EnsurePanelFix()
            if (this.Page.Form != null)
                String fixupScript = @”
     function _initFormActionAjax()
       if (_spEscapedFormAction == document.forms[0].action)
         document.forms[0]._initialAction =
     var RestoreToOriginalFormActionCore =
     RestoreToOriginalFormAction = function()
       if (_spOriginalFormAction != null)
         document.forms[0]._initialAction =
                  typeof(AjaxBaseWebPart), UpdatePanelFixup”,
                  fixupScript, true);

Points of Interest

Despite the official support of AJAX in SP1 of SharePoint 2007, it still take lots of effort to start using AJAX in the SharePoint environment. Maybe the next service patch for Visual Studio 2008 will provide the same support for SharePoint development as the support we get for ASP.NET 3.5 AJAX? Let’s keep our fingers crossed.

ASP.NET AJAX and Web Parts in Windows SharePoint Services 3.0

August 8, 2008

You can now extend Microsoft ASP.NET 2.0 by using Microsoft ASP.NET 2.0 AJAX Extensions 1.0, which is a new Microsoft Web development technology that integrates cross-browser script libraries with the ASP.NET 2.0 Web application framework. ASP.NET AJAX allows you to quickly create pages with sophisticated, responsive user interfaces and more efficient client-server communication, simply by adding a few server controls to your Web pages.

This topic introduces Microsoft ASP.NET AJAX Extensions 1.0 technology in the context of Windows SharePoint Services 3.0. It also provides an overview of the server controls provided with ASP.NET AJAX. For a comprehensive look at the technology behind ASP.NET AJAX, see About ASP.NET AJAX.

Microsoft ASP.NET AJAX

ASP.NET AJAX enables you to create Web pages that use partial-page updates to create a dynamic user experience. ASP.NET AJAX includes AJAX Extensions 1.0, which is the server-side control framework, and the Microsoft AJAX Library, which is the set of client-side browser scripts.

The Microsoft AJAX Library can be installed without the .NET Framework. It can also be used in environments that are not Windows-based, to create Web applications for browsers that support JavaScript. See ASP.NET AJAX Downloads to download the ASP.NET 2.0 AJAX Extensions 1.0, the Microsoft AJAX Library, and other ASP.NET AJAX components.

Server Controls in Microsoft ASP.NET AJAX

ASP.NET 2.0 AJAX Extensions include server-side controls that are used for partial-page updates, as well as progress bars, timers, and script management components. A brief overview of the server-side controls is included here.


The ScriptManager control manages all client script for ASP.NET AJAX. The ScriptManger automatically registers the script for ASP.NET AJAX when you add it to the Web page. You must add this as the first item in the page controls collection. The ScriptManager controls partial-page rendering in a browser when a page contains one or more UpdatePanel controls.


The UpdatePanel control stores other controls and allows partial-page updates. The UpdatePanel control allows you to request partial-page updates without writing any client script. You can, however, add custom client-side script if you want to enhance the client user experience. The UpdatePanel and associated triggers are tracked by the ScriptManager control.


The UpdateProgress control provides status information on partial-page updates in UpdatePanel controls. By default, a div element is created and displayed while an update is in progress. You can customize the default display of the div control by using the ProgressTemplate property.


The Timer control fires a postback at defined intervals. You can also use the Timer control to post the whole page rather than partial-page updates. Timer controls can be used inside or outside of an UpdatePanel control. If you want the Timer control to trigger an update, you must add a trigger attribute to the UpdatePanel control declaration.