Tuesday, 17 September 2013

SharePoint Interview Questions

SharePoint Developer 2010 Interview Questions

1) What Do you know about SharePoint Object Model?

Ans. In SharePoint Object model there are two Important namespaces.

The Microsoft.Office.Server namespace is the root namespace of all Office Server objects and Microsoft.SharePoint is the root namespace for all WSS objects.


2)  Can you develop webparts and other SharePoint solutions at your local machine?

Ans. In order to run and debug sharePoint solutions, the project must reside on the server which has Windows sharePoint services installed. However, you can reference the Microsoft.SharePoint dll in your project at your local, but you won’t be able to run it.

3)  How do you debug SharePoint Webparts?

Ans. To debug SharePoint webpart (or any solution) you can simply drag and drop your complied .dll in GAC and recycle the app pool. You can also run upgrade solution command from stsadm.

4) How would you retrieve large number of Items form the list ?

Ans. To retrieve large number of items with a better performance we can either use SPQuery or PortalSiteMapProvider Class. Read More with Examples


5) How Do you implement Impersonation in ShrePoint. 

Ans. By Using RunWithElevatedPrivileges method provided by SPSecurity class.

6)  What is the performance impact of RunWithElevatedPrivileges?

Ans. RunWithElevatedPrivileges creates a new thread with the App Pool's credentials, blocking your current thread until it finishes.


7) How will you add Code behind to a Custom Applictaion Page or a Layout Page in SharePoint?

Ans. You do not deploy a code behind file with your custom Layouts page. Instead, you can have the page inherit from the complied dll of the solution to access the code behind.


8) What is the difference between a Site Definition and a Site Template?

Ans. Site Definitions are stored on the hard drive of the SharePoint front end servers. They are used by the SharePoint application to generate the sites users can create. Site Templates are created by users as a copy of a site they have configured and modified so that they do not have to recreate lists, libraries, views and columns every time they need a new instance of a site.


9) Why do you use Feature Receivers ?

Ans. Feature Receivers are used to execute any code on Activation\Deactivation of a Feature. You can use it for various purposes.


10) Can you give a example where feature receivers are used.

Ans. You can use it to assign an event receiver feature to a specific type of list or can write a code in a feature receivers Deactivate method to remove a webpart from webpart gallery.


11) Where do you deploy the additional files used in your webpart, like css or javascript files, and how do you use them in your WebPart?
Ans. You can deploy the css or javascript files in _layouts folder in SharePoint's 12 hive. To use them in your webpart, you need to first register them to your webpart page and then specify a virtual path for the file for e.g. _layouts\MyCSS.css 

12)  When should you dispose SPWeb and SPSite objects? 

Ans. According to the best Practices you should always dispose them if you have created them in your code. You can dispose them in Finally block or you can use the "Using" clause, so that they gets disposed when not required. If you are using SPContext then you need not dispose the spsite or spweb objects.

13) What are the best practices for SharePoint development.

Ans. Some of the best practices are:

14) You should always dispose SPsite and SPWeb objects, once you refer them in your code. Using the "Using" clause is recommended.

2. Use RunwithelevatePrivilages to avoid errors for end users.

3. Try writing your errors to SharePoint error logs (ULS Logs). Since it’s a bad idea to fill-up event log for your production environment.

4. Use SPQuery instead of foreach loop while retrieving Items from the list.

5. Deploy additional files used in your webpart to 12 hive. Use your solution package to drop the files in 12 hive. Also, make sure that all the references (for e.g. Css or .js files) get removed when the solution is retracted.


Q.What is the main difference between using SPListItem.Update() and SPListItem.SystemUpdate()?

Ans. Using SystemUpdate() will not create a new version and will also retain timestamps.


Q. When do you use SPSiteDataQuery ?

Ans. You can use SPSiteDataQuery when you need to extract data from more than one list\library in your site colletcion. The data is extracted on the basis of the query you write and is
returened as a Datatable. You can also specify the GUID for the lists\libraries you want to query against.

Q. How do you create a Custom action for an item in a list ?

Ans. This can be done by adding a new feature into SharePoint. You would need to use customaction tag in your elements.xml file and will have to set various properties like imageurl or UrlAction for your customaction. You can later add this feature into sharepoint using stsadm install feature command.

Q. How would you bind this CustomAction to a specific list ?

Ans. To do this you can either create a new list type(again a feature) and use the listtype number for the new list in your RegistrationType property of the Customaction. The CustomAction will then show up only for the items of this list type. or You can create a new content type and then use that content type's id in your cutsomaction to bind the custom action to items of just that content type. Add the new content type to the list where you need this customaction.


Q. How will you deploy an existing asp.net webapplication or website in SharePoint?

Ans. You would need to wrap the web application in a solution package in order to deploy it in 12 hive or say ShraePoint. It is recommended to create a feature first, and then wrap everything in a Solution package. 

Q. How will you cancel a deployment from central admin -> solution managment, if its stuck at “deploying” or “Error”.

Ans. You can either try to force execute timer jobs using execadmsvcjobs command or can cancel the dpeloyment using stsadm command stsadm –o cancaldeployment –id {GUID} command. The Id here would be GUID of the timer or deployment job. You can get the Id from stsadm enumdeployment command. This will display all the deployments which are process or are stuck with Error.


Q. How do make an existing non-publishing site Publishing?

Ans. You can simply activate the SharePoint Publishing Feature for the Site, you want to make publishing.


Q. What are Application Pages in SharePoint?

Ans. Unlike site pages (for example, default.aspx), a custom application page is deployed once per Web server and cannot be customized on a site-by-site basis. Application pages are based in the virtual _layouts directory. In addition, they are compiled into a single assembly DLL.
A good example of an Application Page is the default Site Settings page: every site has one, and it's not customizable on a per site basis (although the contents can be different for sites).
With application pages, you can also add inline code. With site pages, you cannot add inline code.


Q. What is Authentication and Authorization?

Ans . An authentication system is how you identify yourself to the computer. The goal behind an authentication system is to verify that the user is actually who they say they are.
Once the system knows who the user is through authentication, authorization is how the system decides what the user can do.


Q. How do you deploy a User Control in SharePoint ?

Ans. You deploy your User Control either by a Custom webpart, which will simply load the control on the page or can use tools like SmartPart, which is again a webpart to load user control on the page. User Control can be deployed using a custom solution package for the webapplication or you can also the control in the webpart solution package so that it gets deployed in _controlstemplate folder.


Q. Which is faster a WebPart or a User Control?

Ans. A WebPart renders faster than a User Control. A User Control in SharePoint is usually loaded by a webpart which adds an overhead. User Controls however, gives you an Interface to add controls and styles.
Q. What SharePoint Databases are Created during the standard Install?

Ans. During standard install, the following databases are created :
SharePoint_AdminContent
SharePoint_Config
WWS_Search_SERVERNAME%_%GUID_3%
SharedServicesContent_%GUID_4%
SharedServices1_DB_%GUID_5%
SharedServices1_Search_DB_%
GUID_6%WSS_Content_%GUID_7%
Q. What are content types?

Ans. A content type is a flexible and reusable WSS type definition (or we can a template) that defines the columns and behavior for an item in a list or a document in a document library. For example, you can create a content type for a leave approval document with a unique set of columns, an event handler, and its own document template and attach it with a document library/libraries.


Q. Can a content type have receivers associated with it?

Ans. Yes, a content type can have an event receiver associated with it, either inheriting from the SPListEventReciever base class for list level events, or inheriting from the SPItemEventReciever base class. Whenever the content type is instantiated, it will be subject to the event receivers that are associated with it.

Q. Can you add a Cutsom Http Handler in SharePoint ?

Ans. Yes, a Custom httphandler can be deployed in _layouts folder in SharePoint. Also, we need to be register the handler in the webapp's webconfig file.
Q. While creating a Web part, which is the ideal location to Initialize my new controls?Override the CreateChildControls method to include your new controls. You can control the exact rendering of your controls by calling the .Render method in the web parts Render method.


Q. How do you return SharePoint List items using SharePoint web services?
Ans.In order to retrieve list items from a SharePoint list through Web Services, you should use the lists.asmx web service by establishing a web reference in Visual Studio. The lists.asmx exposes the GetListItems method, which will allow the return of the full content of the list in an XML node. It will take parameters like the GUID of the name of the list you are querying against, the GUID of the view you are going to query, etc. 

Q. How Do you deploy Files in 12 hive when using wspbuilder or vsewss?

Ans. Typically, you can add these files in the 12 hive folder structure in your project. In Vsewss however, you will have to create this structure manually.

Q. What files gets created on a file system, when a Site collection is created ?

Ans. Windows SharePoint Services does not create any files or folders on the file system when the site collection or sites are created; everything is created in the content database. The Pages for the site collection are created as instances in the content database. These instances refer to the actual file on the file system.


Q. What are Customized and Uncustomized Files in SharePoint ?

Ans. There are two types of Pages in SharePoint; site pages (also known as content pages) and application pages.

Uncustomized :

When you create a new SharePoint site in a site collection, Windows SharePoint Services provisions instances of files into the content database that resides on the file system. That means if you create a new Site "xyz" of type Team Site(or Team sIte Definition), an instance of the Team Site Definition( Which resides on the File System), i.e. "xyz" gets created in the Content database. So, When ASP.NET receives a request for the file, it first finds the file in the content database. This entry in the content database tells ASP.NET that the file is actually based on a file on the file system and therefore, ASP.NET retrieves the source of the file on the file system when it constructs the page.

Customized :

A customized file is one in which the source of the file lives exclusively in the site collection's content database. This happens When you modify the file in any way through the SharePoint API, or by SharePoint Designer 2007,which uses the SharePoint API via RPC and Web service calls to change files in sites. So, When the file is requested, ASP.NET first finds the file in the content database. The entry in the database tells ASP.NET whether the file is customized or uncustomized. If it is customized, it contains the source of the file, which is used by ASP.NET in the page contraction phase.

Q. What are event receivers?

Ans. Event receivers are classes that inherit from the SpItemEventReciever or SPListEventReciever base class (both of which derive out of the abstract base class SPEventRecieverBase), and provide the option of responding to events as they occur within SharePoint, such as adding an item or deleting an item.


Q. When would you use an event receiver?

Ans. Since event receivers respond to events, you could use a receiver for something as simple as canceling an action, such as deleting a document library by using the Cancel property. This would essentially prevent users from deleting any documents if you wanted to maintain retention of stored data.


Q. If I wanted to restrict the deletion of the documents from a document library, how would I go about it?

Ans. You would create a event receiver for that list/library and implement the ItemDeleting method. Simply, set: properties.Cancel= true and display a friendly message using Properties.Message("How can u delete this... Its not your stuff!");


Q. What is the difference between an asynchronous and synchronous event receivers?

Ans. An asynchronous event occurs after an action has taken place, and a synchronous event occurs before an action has take place. For example, an asynchronous event is ItemAdded, and its sister synchronous event is ItemAdding


Q. How do you Increase trust level for a single WebPart in the WebConfig file.

Ans. To list a Web Part with Full Permissions within your Web Application while still retaining a WSS_Minimal permission set for all other Web Parts, You need to create a Custom policy file. This file will be then referenced in SharePoint Web.config file and will allow your specific webpart to be of Full trust.
Steps :
1. Make a copy of the WSS_Minimal.Config file from the 12\Config folder and paste it into the same folder renaming it to Custom_WSS_Minimal.Config. Now, edit the Custom_WSS_Minimal.Config file using NotePad. Obtain the Public Key Token for the Web Part assembly that you want to deploy, using the following command: sn –Tp filename.dll. Create a new entry in your Custom_WSS_Minimal.Config file for your WebPart. Save the File.
Finally, Create a new TrustLevel element for your config file in the Web.Config called Custom_WSS_Minimal that points to your custom file in the 12\config folder. Recycle the Application Pool and You’re Done.


Q. How does Windows SharePoint Services help render the Webapplictaion in ShrePoint?

Ans. When a new web applictaion is created via Central Admin, Windows SharePoint Services creates a new Web application in IIS. Then the WSS, loads the custom HTTP application and replaces all installed HTTP handlers and modules with Windows SharePoint Services–specific ones. These handlers and modules essentially tell IIS to route all file requests through the ASP.NET 2.0 pipeline. This is because most files in a SharePoint site are stored in a Microsoft SQL Server database.


Q. How would you pass user credentials while using SharePoint WebService from your Web Part or application.
Ans. The web service needs credentials to be set before making calls.
Examples:

listService.UseDefaultCredentials = true; // use currently logged on user

listService.Credentials = new System.Net.NetworkCredential("user", "pass", "domain"); // use specified user


Q. How would you remove a webapart from the WebPart gallery? Does it get removed with Webpart retraction?Ans. No, Webpart does not get removed from the WebPart gallery on retraction. You can write a feature receiver on Featuredeactivating method to remove the empty webpart from the gallery.


Q. What is a SharePoint Feature? Features are installed at what scope 

Ans. A SharePoint Feature is a functional component that can be activated and deactivate at various scopes throughout a SharePoint instances, scope of which are defined as
1. Farm level 2. Web Application level 3. Site level 4. Web level
Features have their own receiver architecture, which allow you to trap events such as when a feature is Installing, Uninstalling, Activated, or Deactivated.



Q. What type of components can be created or deployed as a feature?

Ans. We can create menu commands, Custom Actions,page templates, page instances, list definitions, list instances,event handlers,webparts and workflows as feature.

Q. How Do you bind a Drop-Down Listbox with a Column in SharePoint List ?

Ans.Method 1 : You can get a datatable for all items in the list and add that table to a data set. Finally, specify the dataset table as datasource for dropdown listbox.

Method 2 : You can also use SPDatasource in your aspx or design page.




Q. How Does SharePoint work?

Ans. The browser sends a DAV packet to IIS asking to perform a document check in. PKMDASL.DLL, an ISAPI DLL, parses the packet and sees that it has the proprietary INVOKE command. Because of the existence of this command, the packet is passed off to msdmserv.exe, who in turn processes the packet and uses EXOLEDB to access the WSS, perform the operation and send the results back to the user in the form of XML.


Q. What is CAML?

Ans. CAML stands for Collaborative Application Markup Language and is an XML-based languagethat is used in Microsoft Windows SharePoint Services to define sites and lists, including, for Eg, fields, views, or forms, but CAML is also used to define tables in the Windows SharePoint Servies database during site provisioning. Developers mostly use CAML Queries to retrieve data from Lists\libraries.


Q. Can you display\add a Custom aspx or WebApplication Page in SharePoint Context ?

Ans. You need to make some modification in the aspx file to display it in SharePoint Context. Firstly, add the references for various sharepoint assemblies on the Page. Then wrap the Code in PlaceHolderMain contentPlaceholder, so that it gets displayed as a content page. Lastly, add a reference to SharePoint Master Page in aspx file and swicth it in Code behind if needed. 

Wednesday, 17 April 2013

SharePoint 2010 site collections

Steps to Create SharePoint 2010 Site Collection:

1) Go to SharePoint 2010 central administration site, Under Application Management ==> Select Create Site Collections.


2) Select the existing web application or go for new web application, Give title of the top level site, This title will be displayed in each page in the site. Specify URL name and path for creating a top level site.

Different types of templates are available in SharePoint 2010. Select Team site for sales site. Provide primary administrator and secondary administrator for the site collection and click OK.



3) It will take few minutes to create Top level site. The top level site will be created successfully with URL specified below. Click on the link it navigates to Sales Site collection.


4) Sales team site created.



Tuesday, 9 April 2013

What is Web Part


What is Web Part?
Modern web sites have different elements on their web pages. Each one of these elements provides unique functionality to end users. Sometimes these elements can be configurable or sometimes these events can talk to each other. These elements occupy rectangular areas on a web page. Different technologies use different words for these elements. Some technologies call them portlets. Some technologies call them widgets. SharePoint chooses to call them WebParts.

WebParts is an integral portion of ASP.NET 2.0. They were first introduced with SharePoint 2003 before ASP.NET 2.0. ASP.NET 2.0 adopted them, and SharePoint 2007 WebParts were largely built upon the ASP.NET 2.0 WebPart framework. In the previous chapter, I had an overview of what a basic WebPart is and how you would use and configure a basic WebPart. If you are unfamiliar with WebParts, I would strongly recommend reading that section before reading this chapter. In the previous chapter, you also wrote a simple HelloWorld WebPart. In this chapter, you will further your knowledge and look at all aspects of writing more involved and complicated WebParts.

What is SharePoint Pages?
SharePoint pages are simply ASPX's that you would use to browse through your SharePoint web site. Some of these pages come from the file system and are called application pages, whereas some other pages come from the database and are called site pages. There are unique differences between the usage and deployment of application pages and site pages. Also, some of these pages can be used to host WebParts. Sometimes they are called as WebPartPages, but WebPartPages are usually site pages. Technically speaking, you can have an application page host WebParts as well, but as you will learn by convention application pages seem to have a different purpose in SharePoint than site pages.

Using SharePoint Designer with WebParts
There are three ways to deliver functionality in SharePoint.
Through the browser
Through SharePoint Designer
Through Visual Studio
Each one of these options is successively more complicated and more compelling in its effort and results. In the previous chapter, you customized the content editor WebPart through the browser. Subsequently, in this chapter, you will start by looking at customizing a rather important out of the box WebPart using SharePoint Designer.

The specific WebPart you will be working with is the XSLT List View WebPart, referred to in code as the XsltListViewWebPart. There used to be a rather important WebPart in SharePoint 3.0 called the DataViewWebPart. The XsltListViewWebPart is a better and improved replacement for the DataViewWebPart. The DataViewWebPart is still available, but the XsltListViewWebPart is much easier and better to use, and I hope you will agree with me by the end of a real-world example.

To begin, I created a simple list based on the Custom List template. Then I added a column and called it "Population". This column will hold numeric data, so I made it a "Number" kind of a column. If you prefer to be adventurous and create your very own sample data.

Once my list is populated with some sample data, I will next start using the XsltListViewWebPart to customize the presentation of data in my List. To recap, my source data is a Custom List with a column called "Population". I put in some sample data to show populations of the top 50 most populous countries in the world.
First, start SharePoint Designer 2010. SharePoint Designer 2010 is a tool that ships with Office 2010. It is intended for use by developers and moderately sophisticated business users. The equivalent tool in SharePoint 2007 was SharePoint Designer 2007. SharePoint Designer 2010 can be used only with SharePoint 2010 sites; it cannot be used with SharePoint 2007 sites. Therefore, if you have SharePoint 2007 sites to manage as well, you can install SharePoint Designer 2007 and SharePoint Designer 2010 side by side on the same machine. However, it is important to note that if you need to install SharePoint Designer 2007 and SharePoint Designer 2010 on the same machine both of them will need to be 32 bit only. You cannot have 64 bit office 2010 and SharePoint Designer 2007 on the same machine. Personally speaking, I virtualize my work, so this is never an issue for me anyway.

When prompted to enter a site name enter, http://SiteName. If you have worked with SharePoint Designer 2007 before you would note that SharePoint Designer 2010 presents a completely different task oriented UI. What you should intend to do next is to edit the site home page and use the XsltListViewWebPart to display the information from the countries list in a user-friendly form. In SharePoint Designer 2010 with your site open in the customization section, click the edit sites home page link

Clicking on the edit site home page link opens the home page of the site in edit mode. Next, click the left WebPartZone and then click the Insert tab on the ribbon in SharePoint Designer. Under the insert, look for the data view button. Click the data view button and choose the countries list under lists  This would insert the country's list using the XsltListViewWebPart
 
If you saved the homepage in SharePoint Designer, refresh the page in your browser and you should see the countries list data surface on the home page of the site.
But let's make it a little bit more interesting. Go ahead and click any of the numeric population cells you see on the right. With your cursor in the numeric population cell, look for the options tab under list view tools in the SharePoint Designer ribbon. Click the conditional formatting button and then choose format column.

You will next be prompted with two dialog boxes: the first asks you for a condition for the column and the second asks you for a visual formatting style. Using these two dialog boxes, choose to format countries with population greater than 80,000,000 with a background color of pink. Next, save the page and using your browser visit http://SiteName. Note that the country's list information is showing on the homepage. Go ahead and sort the title column in ascending order. Now note that the formatting information you specified is carried through even when the sort order is changed.
As you can see, the XsltListViewWebPart gives you immense flexibility in formatting how your list looks in the browser. Before jumping into the next section, I'd like you to try two other things. First, I'd like you to see some other WebParts you can insert using SharePoint Designer on a web page and how you can customize them. Go ahead and play with SharePoint Designer 2010 a little.
 
The second thing, and perhaps the more interesting, I'd like you to try is to visit the countries list in the browser one more time, and click the list tab in the ribbon. Look for the Modify View dropdown and choose Modify in SharePoint Designer.

Saturday, 11 August 2012

how to install sharepoint

SharePoint 2010 was released as a 64 bit by Microsoft. So it supports only 64 bit windows Operating System

Prerequisites : install Microsoft SharePoint 2010 Service Pack1(SP1):