The SharePoint Web Services

Windows SharePoint Services was being designed and developed during the time when Microsoft was beginning to heavily push Web services. It should be no surprise, then, to find out that you can get at the data in SharePoint through Web services. In fact, there’s not just one Web service involved; there are 16. Here’s a brief rundown of the Web services that a SharePoint server makes available out of the box:

  • http://server:5966/_vti_adm/Admin.asmx – Administrative methods such as creating and deleting sites
  • http://server/_vti_bin/Alerts.asmx – Methods for working with alerts
  • http://server/_vti_bin/DspSts.asmx – Methods for retrieving schemas and data
  • http://server/_vti_bin/DWS.asmx – Methods for working with Document Workspaces
  • http://server/_vti_bin/Forms.asmx – Methods for working with user interface forms
  • http://server/_vti_bin/Imaging.asmx – Methods for working with picture libraries
  • http://server/_vti_bin/Lists.asmx – Methods for working with lists
  • http://server/_vti_bin/Meetings.asmx – Methods for working with Meeting Workspaces
  • http://server/_vti_bin/Permissions.asmx – Methods for working with SharePoint Services security
  • http://server/_vti_bin/SiteData.asmx – Methods used by Windows SharePoint Portal Server
  • http://server/_vti_bin/Sites.asmx – Contains a single method to retrieve site templates
  • http://server/_vti_bin/UserGroup.asmx – Methods for working with users and groups
  • http://server/_vti_bin/versions.asmx – Methods for working with file versions
  • http://server/_vti_bin/Views.asmx – Methods for working with views of lists
  • http://server/_vti_bin/WebPartPages.asmx – Methods for working with Web Parts
  • http://server/_vti_bin/Webs.asmx – Methods for working with sites and subsites

To use any of these Web services, replace server with the name of your SharePoint server. Because they’re implemented using ASP.NET code, you can retrieve the matching WSDL file for any service by appending ?WSDL to the end of the URL. When you do so, you’ll discover that each one supports multiple methods, making this one of the richest sets of Web services of any current product. For full information on the available Web methods, download the SharePoint Products and Technologies 2003 SDK.

VB.NET to SharePoint

To see how this works in practice, I’ll build a simple client using Visual Basic .NET 2003. To hook the client application up to my SharePoint server, I selected Add Web Reference from the References node shortcut menu in Solution Explorer. Entering the URL for one of the SharePoint Web services shows me all of the methods supported by that service, as shown in Figure 1.

Setting a reference to a SharePoint Web service

Adding the reference makes all the methods of the Web service available to the Visual Basic .NET client application. Well, almost. SharePoint servers require authentication, and the proxy class that Visual Studio .NET creates automatically doesn’t pass any credentials to the Web service. Fortunately, that’s easy to fix by adding one line of code. Click the Show All Files button on the Solution Explorer toolbar and drill into the Web reference you just added until you find the Reference.vb file; this is the proxy class. Open this file and add a line to the constructor to pass the user’s default credentials:

Public Sub New()
    Me.Url = "http://seesaw/_vti_bin/Lists.asmx"
    Me.Credentials = System.Net.CredentialCache.DefaultCredentials
End Sub

Of course, the URL for your own SharePoint server will be different than mine. Now, I’m going to use the SharePoint Web service to do two things. First, I’ll retrieve information about all of the lists on the server to a DataGrid control. Second, when the user clicks on a row in the DataGrid, I’ll display the information from the corresponding list in a TextBox control. So, I’ve added a DataGrid named dgLists and a TextBox named txtData to the default form in my VB .NET application. When the form loads, this code will fill the DataGrid with information on the lists:

Private Sub Form1_Load(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles MyBase.Load
    ' Get the list of lists from the server
    Dim L As New WSS_Server.Lists
    ' The list is returned as an XmlNode object
    Dim n As XmlNode = L.GetListCollection
    ' Prepare objects to handle the data
    Dim xd As XmlDataDocument = New XmlDataDocument
    Dim ds As DataSet = xd.DataSet
    ' Add an XML declaration to make the 
    ' XmlNode a valid XML document
    xd.LoadXml("<?xml version='1.0' ?>" & n.OuterXml)
    ' Display the result on the DataGrid
    dgLists.DataSource = ds
    dgLists.DataMember = "List"
End Sub

Most of the methods from the SharePoint Web services return XmlNode objects. An XmlNode object represents a node in an XML file, plus all of its children, but it isn’t a full XML document. You can use various methods to parse information from an XmlNode, but I’m going to turn it into a DataSet. The key to this is the XmlDataDocument object. The XmlDataDocument can hold any XML document, but it also exposes the document, via its DataSet property, as a DataSet. This gives me an easy way to map XML data to a DataGrid.

Before you load data from an XmlDataDocument into a DataSet, you need to specify the schema of the DataSet. This is especially useful if you want to display only some elements from the XML data. In this example, I’ve created a schema file that exposes all of the information in the XML as simple string columns:

<?xml version="1.0" standalone="yes"?>
<xs:schema id="Lists"
 attributeFormDefault="qualified" elementFormDefault="qualified">
  <xs:element name="Lists" msdata:IsDataSet="true"
      <xs:choice maxOccurs="unbounded">
        <xs:element name="List">
            <xs:attribute name="DocTemplateUrl" form="unqualified"
             type="xs:string" />
            <xs:attribute name="DefaultViewUrl" form="unqualified"
             type="xs:string" />
            <xs:attribute name="ID" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Title" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Description" form="unqualified"
             type="xs:string" />
            <xs:attribute name="ImageUrl" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Name" form="unqualified"
             type="xs:string" />
            <xs:attribute name="BaseType" form="unqualified"
             type="xs:string" />
            <xs:attribute name="ServerTemplate" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Created" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Modified" form="unqualified"
             type="xs:string" />
            <xs:attribute name="LastDeleted" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Version" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Direction" form="unqualified"
             type="xs:string" />
            <xs:attribute name="ThumbnailSize" form="unqualified"
             type="xs:string" />
            <xs:attribute name="WebImageWidth" form="unqualified"
             type="xs:string" />
            <xs:attribute name="WebImageHeight" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Flags" form="unqualified"
             type="xs:string" />
            <xs:attribute name="ItemCount" form="unqualified"
             type="xs:string" />
            <xs:attribute name="AnonymousPermMask" form="unqualified"
             type="xs:string" />
            <xs:attribute name="RootFolder" form="unqualified"
             type="xs:string" />
            <xs:attribute name="ReadSecurity" form="unqualified"
             type="xs:string" />
            <xs:attribute name="WriteSecurity" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Author" form="unqualified"
             type="xs:string" />
            <xs:attribute name="EventSinkAssembly" form="unqualified"
             type="xs:string" />
            <xs:attribute name="EventSinkClass" form="unqualified"
             type="xs:string" />
            <xs:attribute name="EventSinkData" form="unqualified"
             type="xs:string" />
            <xs:attribute name="EmailInsertsFolder" form="unqualified"
             type="xs:string" />
            <xs:attribute name="AllowDeletion" form="unqualified"
             type="xs:string" />
            <xs:attribute name="AllowMultiResponses" form="unqualified"
             type="xs:string" />
            <xs:attribute name="EnableAttachments" form="unqualified"
             type="xs:string" />
            <xs:attribute name="EnableModeration" form="unqualified"
             type="xs:string" />
            <xs:attribute name="EnableVersioning" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Hidden" form="unqualified"
             type="xs:string" />
            <xs:attribute name="MultipleDataList" form="unqualified"
             type="xs:string" />
            <xs:attribute name="Ordered" form="unqualified"
             type="xs:string" />
            <xs:attribute name="ShowUser" form="unqualified"
             type="xs:string" />

The code loads this schema into the DataSet, loads the XmlNode into the XmlDataDocument (by prepending an XML declaration to turn it into a valid document), and then shows the data on the grid.

At this point, you’ll be able to inspect the data that SharePoint maintains on each list on the server. The key piece of information for the current example is the ID attribute, which is nothing more than a GUID that uniquely identifies each list. To retrieve the data in an individual list (such as Announcements, Events, or Tasks), you need to send that GUID back in the GetListItems method. The code does this when the user clicks on the grid (placing the code in the MouseUp event ensures that the selection happens before the code runs):

Private Sub dgLists_MouseUp(ByVal sender As Object, _
 ByVal e As System.Windows.Forms.MouseEventArgs) _
 Handles dgLists.MouseUp
    ' Connect to the server
    Dim L As New WSS_Server.Lists
    ' Arguments required by GetListItems
    Dim viewName As String
    Dim query As System.Xml.XmlNode
    Dim viewFields As System.Xml.XmlNode
    Dim rowLimit As String
    Dim queryOptions As System.Xml.XmlNode
    ' Get the items from the list specified
    ' by the current row in the DataGrid
    Dim n As XmlNode = L.GetListItems( _
     dgLists.Item(dgLists.CurrentCell.RowNumber, 2), _
     viewName, query, viewFields, _
     rowLimit, queryOptions)
    ' Get a transform ready
    Dim xslt As XslTransform = New XslTransform
    ' Load the raw XML into an XML document
    Dim xd As XmlDocument = New XmlDocument
    xd.LoadXml("<?xml version='1.0' ?>" & n.OuterXml)
    ' Use the transform to prettify it 
    Dim ms As MemoryStream = New MemoryStream
    xslt.Transform(xd, Nothing, ms, Nothing)
    ' And display the results
    ms.Position = 0
    Dim sr As StreamReader = New StreamReader(ms)
    txtData.Text = sr.ReadToEnd()
End Sub

I can get the contents of the selected list by calling the GetListItems method and supplying the appropriate ID, which comes from the third column (that’s column number 2, because of zero-based counting) of the DataGrid in the same row as the current cell. The GetListItems method requires a bunch of arguments that can be used to narrow down the data that it returns. Although these arguments are not optional, they can be empty, so I’ve just supplied uninitialized variables for them.

Like GetListCollection, GetListItems returns an XmlNode object. The rest of the code in this method shows a useful little trick for “prettyprinting” XML data. If you apply a simple transform (which I’ve named Identity.xslt) to the original XML, it changes the indentation to make the XML more human-readable without changing any of the data. Here’s the contents of Identity.xslt:

<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl=""
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="node()|@*">
      <xsl:apply-templates select="node()|@*"/>

That’s it! Figure 2 shows the end result of loading up the lists from my server and clicking on the Events list

Data from SharePoint in a VB .NET application

Where Do You Go From Here?

The usefulness of the SharePoint Web services is directly proportional to how much of your organization’s information ends up in the new version of SharePoint. But note that the very existence of these Web services is an argument in favor of using SharePoint rather than alternative stores. Anything you store in SharePoint isn’t locked up at all; it’s open to any client that can make a Web Services call (with the proper authentication, of course). It’s nice to see this movement towards open standards and away from closed APIs for things such as appointments, events, and tasks.


I’ve been working with SharePoint Portal Server this past week and this technote answered a lot of questions I originally had.

Windows SharePoint Services 2.0 is a collection of services for Microsoft Windows Server 2003 that you can use to share information, collaborate with other users on documents, and create lists and Web Part pages. You can also use Windows SharePoint Services 2.0 as a development platform to create collaboration applications and information-sharing applications.

SharePoint Portal Server 2003 is a scalable, enterprise portal server that is built on Windows SharePoint Services 2.0.

The number of companies testing and then using SharePoint is expanding rapidly.  When we’re on site, a very common question that we receive is this:  “What’s the difference between Windows SharePoint Services and SharePoint Portal Server 2003?”.  The differences are profound and, at the same time, fairly easy to understand.

At Mindsharp, we like to say that the we use the portal to “get somewhere”.  Now, while that is primarily true, it is also true that the portal is used for other functions.  I often say that if you don’t need any of the following seven elements in your SharePoint deployment, then there’s no reason to purchase portal server:

  1. Aggregated Search and Indexing

  2. Flexible taxonomies

  3. Personal portals

  4. Audiences and users profiles (objects)

  5. Single-Sign On

  6. Shared Services

  7. Robust alert architecture

However, if you do need these functions or a subset of these functions, then you need to purchase portal server.  Now, did you notice something?  I didn’t mention collaboration or application development with reference to portal server.  Why?  Because we don’t recommend (strongly, in fact) that you don’t customize the portal or us it for collaboration. By collaboration, we mean developing documents or managing team sites within the portal itself.

It is fine to manage documents or team sites within the portal’s managed paths.  But creating team sites directly within the portal pages is what we strongly recommend against.  Why?  Because those teams sites are not as easily managed by the end users as they are if they exist inside a site collection that doesn’t involve (or have as it’s root) a portal.

SharePoint Portal Server 2003 really does three things:

  1. Aggregation of information and information resources

  2. Organization of information and information resources

  3. Presentation of information or information resources

If you take a long step back and look at a default portal, you’ll see that the default areas – Home, Topics, News and Sites – are all about aggregation (Topics and News), organization (Topics, News and Sites) and Presentation of that information (all four areas).  There isn’t any collaboration in the default portal.  Moreover, if you take a good look at the main features that portal brings to the table, you’ll see that none of them deal directly with collaboration or application development.

As a SharePoint administrator, if you want to customize your SharePoint sites, the first step is to create a custom site definition with a custom master page.

In order to create a new site definition, you pretty must have two options: design from scratch or copy and edit the existing template. The former will be more difficult than the latter. Designing your own site definition from scratch can be quite challenging if you are not comfortable with what you are doing. In this exercise, I will explain the “easy” way to do this.

1. You need to start with copying the existing site template from. On the server computer, browse to “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates\” folder. Each folder represents a site definition. Copy STS folder and paste with new name. In this exercise, we are going to name this site definition “Business” so rename it BUSINESS.

2. In this site definition, a custom master page will be used because in the future, you might want to change the master page of thie site definition and not unghost it. To do this, copy “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL\default.master” file to “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates\BUSINESS” folder with its name changed to businesscustom.master.

3. Open “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates\BUSINESS\default.aspx” file with notepad. In the first line, change
Doing so will allow the default.aspx file to use the custom master page. Repeat this step for “defaultdws.aspx” file.

4. Open “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates\BUSINESS\xml\ONET.XML” file with notepad.

5. Add the following line under <ListTemplates> tag:
     <ListTemplate Name=”mplib” DisplayName=”$Resources:MasterPageGallery;” Description=”$Resources:global_onet_mplib_desc;” SetupPath=”global\lists\mplib” Type=”116” BaseType=”1” Path=”GLOBAL” Hidden=”TRUE” HiddenList=”TRUE” NoCrawl=”TRUE” Unique=”TRUE” Catalog=”TRUE” OnQuickLaunch=”FALSE” SecurityBits=”11” AllowDeletion=”FALSE” AllowEveryoneViewItems=”TRUE” Image=”/_layouts/images/itdl.gif” AlwaysIncludeContent=”TRUE” DocumentTemplate=”100” />

6. Locate the first <Configuration> tag under <Configurations> tag.

7. Change
    <Configuration ID=”0″ Name=”Default”>
    <Configuration ID=”0″ Name=”Default” MasterUrl=”_catalogs/masterpage/businesscustom.master”>
Notice that I am assigning businesscustom.master value to MasterUrl.

8. Locate <Modules> tag under <Configuration ID=”0″…..> tag and add the following tag under <Modules> tag:
    <Module Name=”CustomMasterPage” />

9. Repeat step 6-9 for <Configuration ID=”1″…..> and <Configuration ID=”2″…..> tags.

10. Locate <Modules> tag after </Configurations> and add the following lines to <Modules> tag:
    <Module Name=”CustomMasterPage” List=”116″ Url=”_catalogs/masterpage” RootWebOnly=”FALSE”>
      <File Url=”businesscustom.master” Type=”GhostableInLibrary” IgnoreIfAlreadyExists=”TRUE” />
Notice the file url is the assigned to the custom master page.

11. So far, we have successfully created a site definition. All we have to do now is to register this definition to the site definition list. To do this, create “WEBTEMPBUSINESS.XML” file in “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\1033\XML” folder. Notice that there exists “WEBTEMP.XML” file in the folder and we are not editing this file. We are creating a new xml file to register a new custom site definition.

12. Open the file with notepad and insert the following lines:
 <?xml version=”1.0″ encoding=”utf-8″?>
 <!– _lcid=”1033″ _version=”12.0.4518″ _dal=”1″ –>
 <!– _LocalBinding –>
 <Templates xmlns:ows=”Microsoft SharePoint”>
  <Template Name=”BUSINESS” ID=”5″>
     <Configuration ID=”0″ Title=”Business Tools Team Site” Hidden=”FALSE” ImageUrl=”/_layouts/images/stsprev.png” Description=”A Business site for teams to quickly organize, author, and share information. It provides a document library, and lists for managing announcements, calendar items, tasks, and discussions.” DisplayCategory=”Corporation”>   
     <Configuration ID=”1″ Title=”Business Blank Site” Hidden=”FALSE” ImageUrl=”/_layouts/images/blankprev.png” Description=”A blank Business site for you to customize based on your requirements.” DisplayCategory=”Corporation” AllowGlobalFeatureAssociations=”False” >
     <Configuration ID=”2″ Title=”Business Document Workspace” Hidden=”FALSE” ImageUrl=”/_layouts/images/dwsprev.png” Description=”A Business site for colleagues to work together on a document. It provides a document library for storing the primary document and supporting files, a tasks list for assigning to-do items, and a links list for resources related to the document.” DisplayCategory=”Corporation” >
Notice DisplayCategory=”Corporation”; this will create a another tag named Corporation and the three items will be inserted to it. You can change titles, descriptions, and imageUrl’s based on your needs. Save and close the notepad.

13. Last but not least, do an iisreset for the server to recognize the new site definition.

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. (


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?          Enterprise search tools help organizations (including small and mid-size businesses—not just enterprises) find information in text documents and other unstructured data stored in a variety of sources. In general, enterprise search tools can be used to search internal data sources (such as intranets, messaging systems, file shares, databases, and local hard drives) and Web sites (public or controlled-access), but many solutions are focused on only one of the two scenarios.

Enterprise search is similar to Internet search, which is supported by the public Google Web site, MSN Search, and other providers. In both types of search, material must be aggregated from a wide variety of locations, users must have an interface to create queries and review results, and results should be arranged in some kind of order (e.g., hits that are most relevant to the query appear at the top of the list).

One critical difference between enterprise and Internet search tools is the scope of material aggregated. Internet search tools attempt to catalog as many public sources as possible but make little effort to catalog material stored behind firewalls, in databases, or on controlled-access Web sites. Enterprise search tools don’t need to catalog as many sources of data but must aggregate more types of data and provide access control, so that sensitive information is unavailable to unauthorized viewers.

In addition, algorithms that work well on Internet search may not work as well for enterprise search—for instance, Google’s PageRank system, which rates relevance partly based on how many other Web pages link to a particular page, is not as effective in a corporate environment where hyperlinking among resources is less common. As a consequence, enterprise search tools use algorithms different from Internet search tools.

In addition, enterprise search tools generally let the data owner exercise some programmable control over the results, such as the following:

  • Creating multiple data catalogs and letting the user specify which to search
  • Manually selecting or influencing search results (e.g., selecting particular sources to appear at the top of the list for particular queries; tweaking the algorithms used to determine relevance)
  • Enabling attributes (e.g., date, author) to be assigned to content sources in a systematic way so that searches can consider these attributes and arrange results accordingly.

Today, dozens of enterprise search tools are available, from free open-source tools that perform a single function (usually public Web site search) to costly installations from companies such as Autonomy and Verity. IBM and Oracle offer intranet search as part of larger solutions incorporating data storage, and a growing number of companies are offering software (Fast Search and Transfer, MondoSoft) or hosted services (Atomz) specifically for Web site search. Finally, although Google is best known for Internet search, it also offers search appliances ranging in price from US$5,000 to US$250,000 or more that can be used for both intranet and Web site search.


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

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




This guide to the features in Microsoft Office SharePoint Server 2007 provides information that can help you learn about new and enhanced features. This section will be of interest to anyone who plans, builds, deploys, or manages business solutions using Office SharePoint Server 2007.

The following figure shows the features of Office SharePoint Server 2007.

What will happen at this point if you just Run Prescan and start Upgrading Sites without adding v3 Site Definitions???? 

Then your sites will be upgraded to run in MOSS, but they’ll look and act like SPS03 sites. They will not have any of the MOSS functionality. You might want to give this a try in your VPC to see the effect.

In order to get the MOSS07 functionality, we need to:

  1. create a v3 custom Master Page 
  2. create v3 List “Features” that correspond to any custom lists in your custom v2 Site Definitions
  3. create v3 versions of any custom v2 web parts – compiling under .Net 2.0
  4. create v3 Site Definitions that correspond to your custom v2 Site Definitions and reference the custom Master Page, the Lists/Features, and the Web Parts
  5. create a WEBTEMP<Portal>.xml file that maps the v3 Site Definitions IDs to the same IDs of the corresponding v2 Site Definitions
  6. create an Upgrade Definition file that maps the custom v2 Site Defintions by ID to the v3 Site Definitions
  7. Add the IDs for the custom v2-v3 Site Definitions to the preupgradescanconfig.xml file
  9. Run Prescan again referencing the preupgradescanconfig.xml file
  10. Start Upgrading site collections

A very important thing to understand about the Site Definitions in MOSS, is that much of the functionality that SPS03 users customized to create a custom look and feel was in the Site Definitions, and that same functionality is now in the Master Page in MOSS07. In other words, if you added custom navigation and heavily customized the header of all of your SPS03 pages, then in MOSS 2007 the same thing can be accomplished with a single Master Page. Most likely you can upgrade your custom SPS03 Site Definitions to a generic Team Site Definition (for instance), but then put most of your effort into creating a custom Master Page which can then be applied to all of the pages within a site. 

And another nice aspect of having the Master Page stored as a file in the Global directory, is that you can modify it, and all of your pages on all of your team sites will be subsequently updated. For instance, you can add a new web part, or move existing web parts around, and those changes will instantly show up on all sites that use that Master Page.

Note that if you also want the administrative pages of your “Portal” to have the same customized look and feel as the other pages on your Portal, you will also need to create and add an application.master as described in my July blog on this topic. This is not really part of the upgrade process, and can be done separately once the upgrade is completed.

One major thing that has not changed between SPS03 and MOSS07 is the state of confusion regarding Site Templates versus Site Definitions. In fact, in MOSS 2007, as if to amplify the confusion, the Site Definitions are located in a folder named “Site Templates”.

A Site Template is what you create when you modify an existing Team Site and save it through the SharePoint user interface to an .stp file in a Template Gallery. A Site Template is based on an existing Site Definition, and what you are creating is a Diff of your customizations which are stored in the database.

A Site Definition is a set of files stored in the file system on the server in the 12\TEMPLATE\Site Templates folder.

A Site Template is by definition Unghosted because the template data is pulled from the database. A Site Definition is Ghosted because it is just a straight read from the file system. With improvements in MOSS 2007, Ghosted vs. Unghosted is not an issue anymore, but Site Definitions still have one advantage – you can modify the pages in your Site Definitions in the file system, and those changes will be reflected on all existing Ghosted sites. This may be helpful with installations that will use define the same sites hundreds or even thousands of times, and which you may need to update sometime in the future.