Friday, 27 September 2013

SharePoint 2007 Interview Questions

Q What is the GAC?
Ans.
Global Assembly Cache folder (or assembly) stores the strongly typed signed assemblies for webparts or other sharepoint components(which require full trust) for services to share them.
Pre-SharePoint :
Before SharePoint 2003 arrived, in 1996 Microsoft launched a product called Microsoft Site Server for managing websites and the user's authentication/authorization. In 1998, Microsoft launched Site Server v 3.0 with following features:
• Indexing and Search
• Content Management
• Product Management
• Order Processing
• Site Personalization
• Ad Server
In 1997, Microsoft came with Microsoft Office FrontPage used to create and administrate websites



2001
SharePoint Team Services (STS)       
1.      STS developed from the Microsoft FrontPage
2.      The websites created using STS supported a maximum of 75 users
3.      STS was also known as Office webserver    
SharePoint Portal Server (SPS)
1.was developed from the Site Server for site administrators.
2.SPS is used to index and search files stored on STS
3.There was still a clear disconnect between the STS and SPS. The move to integrate their functionality drove the development of SharePoint.
2003
Windows SharePoint service 2.0 (WSS 2.0)
1.      freely available as a component with Microsoft windows server 2003
2.      WSS 2.0 enables organizations to create websites and portals easily for information sharing and document collaboration.
Microsoft windows server 2003
1.      SharePoint 2003 server is a licensed product.
2.      It provides all the features of WSS 2.0 and many additional features
2007
Windows SharePoint service 3.0 (WSS 3.0)
1.      Microsoft upgraded WSS 2.0 to WSS 3.0
Microsoft Office SharePoint Portal Server 2007 (MOSS 2007)
2010
SharePoint Foundation Server
 SharePoint Server 2010

Microsoft Office SharePoint Server 2007 is a rich server application for the enterprise that facilitates collaboration, provides full content management features, implements business processes, and provides access to information essential to organizational goals and processes. It provides an integrated platform to plan, deploy, and manage intranet, extranet, and Internet applications across and beyond the enterprise.
1.   Difference between WSS and MOSS
SharePoint = WSS 3.0 or MOSS 2007 (or both)

WSS = Windows SharePoint Services 3.0
MOSS = Microsoft SharePoint Server 2007

WSS is part of Windows Server, specifically Windows Server 2003 and Windows Server 2008. It is not automatically installed. You must first install IIS (Internet Information Server) and ASP.NET 2.0, plus .NET 3.0. These components are found either on your Windows Server media (CD/DVD) or through Windows Update. The important thing to understand is WSS is part of your Windows Server license.

MOSS is a separate product. MOSS requires either a MOSS Standard or MOSS Enterprise license. These both install from the same media, just require a different activation key. MOSS builds on top of WSS and adds additional components such as enhanced search, My Sites, Business Data Connector, Excel Services, and other features.

WSS and MOSS offer many of the same collaboration features:
  • Site provisioning
  • Document management (check in/check out)
  • Discussions
  • Wikis, Blogs, RSS Feeds
  • Basic workflow
  • Custom lists
MOSS builds upon WSS and adds:
  • Additional workflows
  • Web content management (web publishing features)
  • Records management
  • Auditing
  • Additional search such as people search
  • My Sites (each user has their own personal site with public and private areas)
  • Enterprise features such as Excel Services and BDC
More explanation
  • My Site personal site – each user has a site where the user can control the public and private content. It provides other users with the ability to learn about the user and the user’s areas of expertise, current projects, and colleague relationships. ‘My site’ acts as a central location to view and manage all of a user’s documents, tasks, links, calendar, etc.
  • Extended workflow support – some existing workflow templates come with MOSS. If you want, you can create your own with tools like SharePoint Designer or Visual Studio.
  • Site Directory – MOSS automatically creates a site map and presents it in an easy-to-use format.
  • Business intelligence – MOSS provides support for business intelligence dashboards, Key Performance Indicators (KPI), Business Data Catalog (BDC), etc. BDC integrates external data into MOSS.
  • Search – MOSS overcomes the limitation of WSS to search only within the current site and its subsites. You may search over file shares, web sites, etc.
  • Enterprise Content Management – approval workflow allows web content to be sent for approval prior to publishing. Content deployment to production sites can be scheduled by setting up jobs.
  • Audience targeting – the content inside lists, libraries, web parts, etc can be targeted to appear only to users who are members of a particular group or audience. The audiences can be identified via SharePoint groups, Distribution lists and Security groups.
  • Excel Services – allows you to publish excel files so the user can view them in web page without the need of Microsoft Office Excel installed on his machine. You can control what part of the excel file to be visible and which part can be editable.
  • InfoPath Forms – allows you to design forms in Microsoft Office InfoPath and distribute them via MOSS. Users will fill the form in the web browser without downloading the form.

Explain the Share Point Architecture.

 Having 3 layers, like 3 tire architecture

1. WFE <Front End Web Server>
2. Application Layer
3. Data base Layer


1. WFE :-
Here we have share point Installed.
We have 12-hive structure & virtual drives.
Here IIS web sites are hosted.
Here servers are clustered on & are in synch.

2. Application Layer:-
Share Point provides different services.
This layer provides those services, like my site hosting, user profile & searching etc.
One server can be dedicated to particular service depend upon the scalability.

3. Data Base Layer :-
Here we have SQL server installed.
Here content DB is hosted.
For moss 2007, it is SQL server 2005. For Share Point 2010, it is SQL server 2008.
Here servers are clustered on & are in synch.

* Every layer has load balancer for control the traffic.

2.   What is the difference between CustomMasterUrl & MasterUrl?
MasterUrl property is used to change the System master page through code
CustomMasterUrl property is used to change the site master page through code.
What is SharePoint Delegate Control?
a. With the help of delegate control, we can take any OOB control of SharePoint and replace with our custom control without any modification in the SharePoint page. So that new custom control overrides the existing one.

b. So the delegate control provide one of the option to add control (either server control or user control) on a SharePoint page.

c. This is one of the important features of SharePoint, introduced in WSS v3 and so in MOSS 2007.

d. For example : In master page SearchBox control is included as

<SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox" />

e. The above lines instantiate the delegate control object.

f. This delegate control object uses features to locate the control which is specified in ControlId. So there must be the features (it includes feature at any scope) which creates and deploys the SmallSearchInputBox control.
What are the zones in SharePoint?
1. Zones provides the separate logical paths of authentication for the same web application.

2. We can create 5 zones for each web application as follows :
a. Default
b. Intranet
c. Extranet
d. Internet and
e. Custom

3. Each zone represented by different web sites in IIS.
How can we use custom controls in SharePoint?
Step 1:- Create the custom control by inheriting from the ‘WebControl’ class and override the ‘RenderContents’ method with your implementation. In the below code snippet we are just writing the site title and site URL to the browser.
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;

namespace NameSpaceCustomControl
{
public class CustomControl1 : WebControl
{
protected override void RenderContents(HtmlTextWriter output)
{
SPWeb site = SPContext.Current.Web;
output.Write("The Site title is " + site.Title);
output.Write("<br/>");
output.Write("The URL of the site is " + site.Url);
}
}
}
Step 2:- Compile the custom control class and generate the DLL from the same. Once the compiled DLL is generated, register the same in GAC.

Step 3:- Refer the custom control assembly in your ASPX page using the register attribute. Please note to specify the public key token of the GAC.
<%@ Register Assembly="CustomControl,Version=1.0.0.0,Culture=neutral,PublicKeyToken=4adae03f3c0d5b8e"
Namespace="NameSpaceCustomControl" TagPrefix="CustomSitePages" %>
Specify the custom control with a proper unique ID.
<CustomSitePages:CustomControl1 ID="cc1" runat="server" />
Below is the complete code of the page.
<%@ Page Language="C#" MasterPageFile="~masterurl/default.master" meta:progid="SharePoint.WebPartPage.Document"%>

<%@ Register Assembly="CustomControl,Version=1.0.0.0,Culture=neutral,PublicKeyToken=4adae03f3c0d5b8e"
Namespace="NameSpaceCustomControl" TagPrefix="CustomSitePages" %>

<asp:Content runat="server" ContentPlaceHolderID="PlaceHolderMain">

<h3>Hi this is a Site Page</h3>
<CustomSitePages:CustomControl1 ID="cc1" runat="server" />

</asp:Content>

Now if you run the page you can see the custom control in action.

What is host header ?
Host header mode is a new feature in Windows SharePoint Services 3.0, which allows a user to create multiple domain-named sites in a single Web application
IIS has the ability to host multiple websites on one single server. To do this, a unique combination of the host header name, IP address and port number must exist.
The data sent between the client and server is called a HTTP message
The HTTP message has a body section and a header section.
The body section may contain the HTML code of the webpage returned from the server to the client as an answer to a GET request.
The header section contains information such as Content-Length, Referer, Host
Internet Explorer will default to the HTTP protocol and the default port (80) for HTTP.
The browser will now need to resolve the domain name the user has typed into their browser because the client must establish a connection to the IP address and port number. The resolution of the domain name into an IP address can be done by utilizing a DNS server or the hosts file.



Once the domain name has been resolved, the client established a connection to the webserver and then sends a request message. This request message contains the host header, and may look like:
GET /index.htm HTTP/1.1
Host:
www.ilopia.com
The server receives the HTTP message and examines it. If a host header is found (a HTTP message may not have a host header), IIS will find out if there is any host header name configured in IIS that matches the host header received in the HTTP message. If there is a host header name that matches the host header, index.htm will be served from this website's home folder.
Each website set up in IIS "binds" to an IP address, port number and host header name. Each website's configuration is stored in the metabase property ServerBindings, which has the string format IP:Port:Hostname. An example would look like 192.168.0.1:80:www.gafvert.info. The host header name (www.gafvert.info in the example) and IP (192.168.0.1 in the example) can be omitted.
To determine which website should handle a request, IIS checks if there is a website configured to listen on the IP address and port number the request came in on, and which also matches the host header value sent in the HTTP message. If it finds a website with a ServerBindings property that matches this exactly, the request is routed to that website.


Scenario: You want to deploy multiple Windows SharePoint Services (WSS) Sites in your organization, and each site should have its own domain name. You do not want to create a new IIS Virtual Server for each site. Can WSS handle this configuration
Host Header is a third piece of information to identify a web site.
Thus the web site can be identified by using the following:
    • IP Address
    • Port
    • Host Header
Host Headers was introduced in HTTP 1.1
Eg: http://www.google.com
www.google.com is the host header
Configuration in IIS
We can configure host header in IIS using inetmgr application.
After configuration we need to publish the host header in the WINS (Windows Name Service) or DNS (Domain Name Service) depending on the site is an intranet or internet site.
Which are default master pages in Sharepoint 2010?
1. v4.master - This is default master page.
2. default.master - this is used to support the 2007 user interface
3. minimal.master
4. simple.master- it is used for accessdenied.aspx, confirmation.aspx, error.aspx, login.aspx, reqacc.aspx, signout.aspx & webdeleted.aspx pages.
What is BDC and how it is differ from BCS?
BDC (Business Data Catalogue) is use to connect an external database and view it in share point.
BCS (Business connectivity Services) is new in SharePoint2010. Using BDC one can only read from external Database, but using BCS one can read and write into the external Database.

SharePoint has two types of ASPX pages.
1. One type is the application page, also known as a _layout page.
2. The other type of ASPX page is a content page, also known as a site page

Content Pages or Site Pages:
·         Content pages or Site pages are basically built to display and manage site content.
·         Content pages can be customized by end users from within the SharePoint user interface or with Microsoft Office SharePoint Designer.
·         When you create a SharePoint site, many content pages are created automatically, for example, home page (default.aspx) of the as well as the pages associated with lists and document libraries, such as AllItems.aspx, NewForm.aspx, and EditForm.aspx, and several others.
·         Logically all content pages are stored within their SharePoint sites. (Physically all the content pages that have not been customized, also known as uncustomized or ghosted pages, are stored on disk on the front-end Web server, while content pages that have been customized, also known as customized or unghosted pages, are stored in their associated SharePoint content database.)
·         Content pages do not support in-line server side code under the default security policy enforced by Windows SharePoint Services.

By default SharePoint disabled the ability to run server side code in the pages. This means you can't have C# or VB.net code blocks in your layout pages, master pages, or web pages like we would have with a normal asp.net applications.
But it is possible to use the server-side code block within the SharePoint pages. To use the server-side code in C# or VB.Net within SharePoint custom pages, we need to write the C# or VB.Net code within the .aspx page inside the <script> tag as below:
< script runat="server">
protected void Page_Load(Object sender, EventArgs e)
{
Response.Write("Hello World");
}
< /script>
Now open the web.config file of the SharePoint web site and locate PageParserPaths tag and modify this as below:
< PageParserPaths>
<PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" />
< /PageParserPaths>

Application Pages or _layout Pages:

·         Application pages or _layout page are basically built for site management activities.
·         Application pages does not support customization and typically created to allow users to manage settings for lists, sites, and site collections.
·         Application pages are stored typically in the file system of the front-end Web server within a directory "c:\program files\common files\microsoft shared\web server extensions\12\TEMPLATE\LAYOUTS".
·         settings.aspx, viewlsts.aspx, etc. are few examples of application pages which you can find in the layouts directory.
·         Application pages are available across the server farm which allows these pages to run on any site collection in the farm.
·         When you create a new SharePoint web application, it creates a new website in the IIS. If you look at the created website in the IIS, you can see that SharePoint automatically created a virtual directory name "_layouts" which is mapped to the physical LAYOUTS directory i.e. "c:\program files\common files\microsoft shared\web server extensions\12\TEMPLATE\LAYOUTS".
·         Application pages, unlike content pages, supports in-line server side code but cannot host SharePoint features such as dynamic Web Parts and Web Part Zones.

Ghosted = Un-Customized, The asp.net parser renders the page.
Unghosted = Customized, Controlled by the SafeMode parser.
Reghosting = Changing from Customized to Un-Customized

main difference between the SafeMode parser and Asp.net? Code compilation
As everyone knows, Asp.net will parse a page on first render and compile it into an assembly. The SafeMode parser does NOT compile pages. It is designed to interpretatively parse a page and create the object structure of the page. In the event inline server-side code is detected, the SafeMode parser will not allow the page to render. Additionally, the only objects within the page (i.e. controls marked as runat=server) which can be instantiated are those items found in the SafeControls list.

The SafeContol entries are checked by SharePoint parser to make sure Controls are “safe” to be placed in a page declaratively.

  Site Definitions :
·         A Site definition is "core definition of a site”.
·         A site definition is installed on file system of web front ends, located at ..\12\Template\SiteTemplates. This directory is language-neutral
·         A site definition consists of .aspx pages and .xml files with Collaborative Application Mark-up Language (CAML)..
·         A major benefit is that the Page and List definition is read locally from the file system, not from Content Database

  Site Template
·         A site template (*.stp file) is created through the user interface or through implementation of the object model.
·         The site template package is a package containing a set of differences and changes from a base site definition.
·         The site template package is stored as a CAB-based file that can be downloaded or uploaded to site collections by users with the appropriate rights

Site Definitions
Site Templates
  A Site definition is "core definition of a site”.
The site template package is a package containing a set of differences and changes from a base site definition

A site template (*.stp file) is created through the user interface or through implementation of the object model.

Files are on disk, better performance.

A site definition is installed on file system of web front ends, located at ..\12\Template\SiteTemplates. This directory is language-neutral

Files are in database, less efficient.
Can provision multiple webs *
Can only provision one web
Complex to create
Easier to create
   .WSP File
  .STP File

Created by developer
Can be created by site administrator
Requires admin access to server for deploying.
Installable from a Web UI by site owners.


What is the Onet.xml file?
Onet.xml is a file which is most importnat part of the sharepoint site definition.It helps to createa custom site definition.

When SharePoint Foundation is installed, several Onet.xml files are installed, one in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\GLOBAL\XML
that applies globally to the deployment, and several in different folders within %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. Each in the latter group corresponds to a site definition that ships with SharePoint Foundation
(1) The global Onet.xml file — defines list templates for hidden lists, list base types, a default definition configuration, and modules that apply globally to the deployment.
(2) Each Onet.xml file in a subdirectory directory can define navigational areas, list templates, document templates, configurations, modules, components, and server e-mail footers used in the site definition to which it corresponds.
ONET.XML can be part of a Site Definition or Web Template.
You cannot create new base list types in either a site definition or a Web template. The base types defined in the global Onet.xml file are the only ones supported.
Microsoft does not support
making changes to an originally installed Onet.xml file.
<Project> is the top-level element of ONET.XML

In ONET.XML, strings that begin with “$Resources” are constants that are defined in an resx file.
The NavBars element contains definitions for the top navigation area
An Onet.xml file in a Web template cannot have an DocumentTemplate element.

BaseTypes section
is implemented only in
the global Onet.xml file
A ServerEmailFooter element can only be included in an Onet.xml file that is part of a site definition, not in an Onet.xml file that is part of a Web template.
ONET.XML defines the project and list defaults, as well as the base types for fields.
Base types:
0 — Basic List
1 — Document Library
2 — unused
3 — Discussion List
4 — Survey
If “Site Definition” is mentioned, look for ONET.XML…….

What are features in SharePoint?
Features allow you to customize your site very easily. You may add new functionality by using features.
Features can have different level of scope. The scopes are Farm, Web Application, Site and Web.
This scope can be define in feature.xml file.
Below is the details of scope that we can use in feature.xml.Also, the elements details on which a particular scope will be applicable.

Web (Web site)
Control, Custom Action,
Custom Action Group,
Hide Custom Action,
List Instance, List Template,
Module, Receiver

SharePoint Feature Stapling
The process of associating a SharePoint feature with a specific site definition, without modifying the site definition or creating code routines to activate the feature on each site.
Feature Stapling allows you to create a feature and then associate it with any site definition without ever touching the site definition files themselves.
To staple a Feature to a site definition, you actually need to create another Feature that will do the stapling, and this feature is called as Stapler Feature. A feature which is going to be stapled/associated with a site definition is called as Staplee Feature. Below is an example of a staple feature to staple a Multilanguage feature to the STS, and SPS site definitions:
Feature.xml file (for stapler feature):
<?xml version="1.0" encoding="utf-8" ?>
<Feature Id="82E2EA42-39E2-4B27-8631-ED54C1CFC491"
Title="$Resources:MultiLangStaplingFeatureName"
Description="$Resources:MultiLangstaplingFeatureDescription"
Version="12.0.0.0"
Scope="Farm"
xmlns="http://schemas.microsoft.com/sharepoint/"
DefaultResourceFile="_Res">
<ElementManifests>
<ElementManifest Location="Elements.xml"/>
</ElementManifests>
</Feature>
Elements.xml file (for stapler feature):
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<FeatureSiteTemplateAssociation Id="29D85C25-170C-4df9-A641-12DB0B9D4130" TemplateName="STS#0" />
<FeatureSiteTemplateAssociation Id="29D85C25-170C-4df9-A641-12DB0B9D4130" TemplateName="STS#1" />
<FeatureSiteTemplateAssociation Id="29D85C25-170C-4df9-A641-12DB0B9D4130" TemplateName="SPS#0" />
</Elements>
Authentication
1.Claims Based Authentication
2. Classic Mode Authentication


Security Configuration
1.Negotitate(Kereros)
2. NTLM
Allow  Anonymous  Yes   No
Use Secure Sockets Layer(SSL) : Yes  No



Site cration