Thursday, May 19, 2011

Quick Tips for Improving Search in SharePoint 2010

Many organizations implement SharePoint for a number of different reasons including collaboration, content management, business intelligence, process improvement, and many others. These are areas where organizations are leveraging the vast capabilities of SharePoint 2010 to allow their users to work smarter and not harder.

View this article, and more, on the MVP Award Program Blog.

SharePoint 2010 Workflow Video Tutorial

A quick view on whats new with SharePoint 2010 Workflows :

1. SharePoint 2010 workflows are build upon the workflow engine provided .Net Framework 3.5.

2. List and Site workflows - In addition to the SharePoint lists we can now create workflows for SharePoint sites as well. These are called as "Site Workflows".

3. SharePoint Designer 2010 Changes - MS has provided a new graphical workflow designer for designing workflows. These workflows can be deployed in SharePoint Server directly from the designer.

4. Editing Out-of-Box workflows - Another Improvement in SharePoint Designer 2010 workflows is that it now allows you to edit the out-of-the-box workflows that come with SharePoint.

5. Re-usable Workflow - In addition to above, with Designer 2010 you can also create reusable declarative workflows. That means unlike SharePoint 2007 designer workflows, you don't have to bind a workflow to a specific list. You can reuse them by binding it to more than one list or multiple lists.

6. User profile in Workflow - User Profile data can now be bound to properties in workflow. This will make it possible to get information about the SharePoint user profile in the workflow itself.

7. Moving SharePoint Designer Workflows - The resuable designer workflows can now be moved to another SharePoint server or to Visual Studio 2010 with a workflow .wsp file. "Save as Template" command can be used to create the WSP file for the workflow.

8.Changes in List Events - SharePoint 2010 adds four new workflow Event Receivers for list based workflows. The four workflow event receivers available are Starting, Started, Postponed and Completed. These are similar to other SharePoint list\library event receivers and they execute code on the server in response to the event.

9. Workflow Templates - To make development easier, Visual Studio 2010 includes event receiver project types to make using the workflows and events fairly simple.

Create Workflow in SharePoint Designer 2010:
The workflow is created to Approve or Reject new products according to their selling price.
See the Video below
Create Workflow with SharePoint Designer 2010

Creating Workflow using Visual Studio 2010:
The workflow in the below video will be a Site Workflow which can be run one time to approve\reject all the products in the products list which has selling price more $4000.
Creating Workflow using Visual Studio 2010

Creating Workflow Initiation form:
This video will help you create a Initiation form for the above created Visual studio Workflow, so that user can manually enter the selling price (which was $4000 in above video )with which the products in the SharePoint list are compared for approval.
Creating Workflow Initiation form for SharePoint 2010 Workflow

Creating Event handlers for Workflow:
In this Video you will learn how to create Handlers for the Workflow. You will then be able to run code on various workflow events like Workflow Initialized or Completed.
Create Handlers for SharePoint 2010 Workflow

Create SharePoint 2010 Workflow in Visio:
In this Video you will learn how to Create Workflows in Visio using Visio SharePoint Template and then export it to SharePoint designer 2010.
Create SharePoint 2010 Workflows in Visio 2010

SharePoint 2010 Easy Setup Script

The SharePoint 2010 Easy Setup Script will enable you to easily build a SharePoint developer machine.

File Name: SharePoint2010EasySetup


The SharePoint 2010 Easy Setup Script is a new set of pre-packaged tools that help developers easily get started with SharePoint 2010 development by automating the provisioning of a developer workstation using Windows 7, SharePoint & associated tools.

Written in Windows PowerShell these scripts will install and configure all the pre-requisites & products to get you up and running with SharePoint development.

Additionally the script will download evaluation copies of the products it installs (or use fully licensed product bits you supply), install them either locally or in a user supplied Windows 7 VHD & set that VHD up for duel boot using the Windows 7 VHD native boot feature. It also allows you to configure what products are installed via a configuration file, so you can add or remove products.


After downloading the SharePoint Easy Setup Script kit, run the self-extracting executable to extract all of the kit files to your local machine. After the content is extracted, the starting page for the training kit will be displayed in your default browser. One the starting page click the Lab:SharePoint Development link. Open the Hands-On Lab document for instructions to run the scripts. Click on the Browse Source Files link to browse the PowerShell script files.

Making every site in SharePoint 2010 into a BI Center

The other day I had an interesting and great workshop with a customer about the BI features in SharePoint 2010. SharePoint Insights is one thing that really gets me going - so much great stuff can be unleashed using Excel, Visio and PerformancePoint Services.

One thing that annoys me with the default settings in SharePoint 2010 is the BI Center. A BI Center does not support the "BI for everyone" mantra - that center only turns numbers and KPI fans on. What you should do is enable BI features on all of your sites; your Intranet home page, your department sites or even on project sites etc. But it isn't as easy as you could imagine. So here's some tips for you all to BI-enable all your sites. Oh wait, don't say to your end-users that you BI-enabled their site - tell them that you have Insight enabled their site instead so you don't scare them off.

Let's start this little excursion by enabling the PerformancePoint features and Dashboard Designer on an new Site Collection with a top-level site based on a plain ol' Team Site. Of course it is on a SharePoint 2010 Server with Enterprise features installed.

Enabling basic Insight features

First of all we need to make sure that the Enterprise features are enabled on your site. If not enable them on the Site Collection or enable them on all Site Collections from Central Administration under Upgrade and Migration.

Enterprise Features

Enabling BI-Center features

So what is so special about the BI-Center. It contains some demo pages using Excel Services, indicators and PerformancePoint content. But most interestingly it contains the special libraries and lists used by PerformancePoint Services to store the PerformancePoint data; the Data Connections Library, the PerformancePoint Content list and the Dashboards library. These lists and libraries cannot be created directly in the web interface, the definitions for these are "hidden" inside the BI-Center site definition. This can easily be solved using PowerShell or by creating our custom Insight enabler feature. PowerShell is great; but building a custom feature allows us to either staple it onto other site definitions or allow the end-user to turn the features on or off.

Let's create a new feature that adds the necessary lists and libraries. Open Visual Studio and create a new Empty SharePoint Project and to that project we need to add a new feature, scoped to Web. The first thing we need to do is to enable two PerformancePoint features. Since these are hidden ones, activation dependencies is out of question. Let's make it using a Feature Receiver. This feature receiver enables the PPSSiteMaster feature on the current web site and PPSSiteCollectionMaster feature on the Site Collection:

public const Guid PPSSiteMaster = new Guid("0b07a7f4-8bb8-4ec0-a31b-115732b9584d");
public const Guid PPSSiteCollectionMaster = new Guid("a1cb5b7f-e5e9-421b-915f-bf519b0760ef");
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{SPWeb web = properties.Feature.Parent as SPWeb;SPSite site = web.Site;
if (site.Features[PPSSiteCollectionMaster] == null)
if (web.Features[PPSSiteMaster] == null)

In the FeatureDeactivated method, these features are removed as well. Of course you can add or check for any other features here that you would like to add, such as the Enterprise Features.

Insights Enabler

Next up is to create the libraries and lists. Just add a new Empty Element SPI to the project and the lists as follows:

<ListInstance Title="$Resources:ppsma,Onet_BICenter_Title"
TemplateType="450" Url="Lists/PerformancePoint Content"
QuickLaunchUrl="$Resources:core,lists_Folder;/PerformancePoint Content/AllItems.aspx"
OnQuickLaunch="TRUE"/> <ListInstance Title="$Resources:ppsma,Onet_BIDataConnections_Title"
Url="Data Connections for PerformancePoint"
OnQuickLaunch="TRUE"/> <ListInstance Title="$Resources:ppsma,Onet_BIDashboards_Title"

Insight list and librariesThis CAML is almost a copy of what is in the BI Center site definition, with only modifications so that the correct elements and attributes are used (ListInstance instead of List etc).

Just hit F5 and watch it build and deploy beautifully. You can see the PerformancePoint lists and libraries in the Quick Launch. Also if you inspect the lists you can see that the correct content types are there.

Adding the Dashboard Designer

In order to utilize this fully we need to use the PerformancePoint Dashboard Designer. In the BI-Center template this application could be accessed through a button on one of the publishing pages that was added by default - not a nice solution.

Instead we would like to have this one in the Site Actions menu, or any other suitable location. Site Actions is where I think it belongs. Let's add it there.

Add a new Empty Element SPI and in that elements.xml add a CustomAction as follows:

<CustomAction Id="LaunchPPSDD"
Title="Dashboard Designer"
Description="Launch PerformancePoint Dashboard Designer"
> <UrlAction Url="javascript:
var a = _spPageContextInfo.siteServerRelativeUrl.toLowerCase();
var b = _spPageContextInfo.webServerRelativeUrl.toLowerCase();
var c = location.protocol + '//' + + a;
var d = b.replace(a,'');
location.href = b + '/_layouts/ppswebparts/designerredirect.aspx' +'?SiteCollection=' + c + '&SiteLocation=' + d;"

The CustomAction uses the default Dashboard Designer image and contains a UrlAction with a JavaScript. This JavaScript launches the Dashboard Designer with the correct Site Collection and Site.

Dashboard Designer CustomAction

Deploy your solution once again and create your dashboards - without the BI-Center.

Team BI Center

New Features and Enhancements in SharePoint 2010

Microsoft has recently launched SharePoint Server 2010 which includes a lot of enhancements, fixes, and new features as compared to SharePoint Server 2007.

I have been working on SharePoint 2007 for couple of years and done couple of portal implementations using SharePoint 2007. I was very curious to know more about SharePoint 2010 since I heard that Microsoft is going to launch new version of SharePoint.

New Features and Enhancements in SharePoint 2010 - Part1
New Features and Enhancements in SharePoint 2010 - Part2
New Features and Enhancements in SharePoint 2010 - Part3