Search This Blog

Total Pageviews

Sunday, October 31, 2010

SharePoint Filtered Views in List and Libraries

For lists and libraries with large numbers of items, users can access the items with a mix of views and search. The following are some suggestions for views that work well with an indexed column:

Recently changed: To create a view of only the items that have changed in the past week, you can index the Modified column and then apply the filter Modified (Indexed) is greater than [Today]-7.

New items: To create a view of only those items that were added in the past week, you can index the Created column and then apply the filter Created is greater than [Today]-7.

My items: To create a view of only those items that you added, you can index the Created By column and then apply the filter Created By is equal to [Me].

Due today: For lists or libraries with a Due Date column, you can index that column and then apply the filter Due Date is equal to [Today].

Discussion board updates: To create a view of only the discussions that were updated in the past month, you can index the Last Updated column on a discussion board, create a new Subject view, and then apply the filter Last Updated is greater than [Today]-30.

People and Groups: If you have a lot of people visiting your site, you can improve the performance of the All Groups and All People pages by indexing the Content Type column for the User Information List.

Even if only a few people appear on the All People page, many people visiting the site will result in inactive users being written to the User Information List, which can still affect the performance of this list.
Find links to more information about creating or changing views and about formulas and functions that you can use to filter views in the

Note: Because creating views that use a column index correctly is more complicated for large lists and libraries, you might want to remove the Manage Personal Views permission from contributors for a large list or library. By removing this permission, you can prevent users from creating a view that spans all of the items and that might adversely affect the performance of the rest of the site.

Thursday, October 28, 2010

SQL Server Version

SQL Server 2008 R2
10.5.1720.0 SQL Server 2008 R2 CU2 25 June 2010
10.5.1702.0 SQL Server 2008 R2 CU1 18 May 2010
10.5.1600.1 SQL Server 2008 R2 RTM 12 Apr 201

Bill Graziano at has a listing of all the SQL Server versions that come in very handy:

MCTS SharePoint 2010 Application Development 70-573 Study Guide

There are several study guides about now for example: and, but I wanted to record the articles and blogs etc I’d used.

To help I’ve copied in the Microsoft learning content from

Working with the SharePoint User Interface (19%)

Manage SPSite and SPWeb programmatically by using Visual Studio 2010

Read Inside Windows SharePoint Services 3.0 book:
Implement a dialog by using the Dialog Framework

Tobias Zimmergren’s article on the status bar:
MSDN tutorial:
Create a custom ribbon object

Chris O’Brien’s ribbon customisation series:
Customize navigation programmatically

SPWeb.Navigation property:
Customising the navigation:
Custom actions:
Create and apply branding to a SharePoint site

Working with the theme engine:
SPWeb theme property:
Theme class:
Explanation of masterpages MSDN:
Masterpage tokens:
CSSLink class:
Developing Web Parts and Controls (21%)

Create Web Parts

Basic web part walkthrough:
Wictor Wilen’s web part event diagram:
Create connectable Web Parts

Create connected web parts in SP2010:
Debug Web Parts

Waldek Mastykarz’s article on dev dashboard:
Waldek Mastykarz’s article on ULS logging:
Using SPMonitoredScope:
Create and implement delegate controls

MSDN delegate control:
How to customise a delegate control:
Developing Business Logic (19%)

Implement a custom workflow in Visual Studio 2010

MSDN workflows in SP2010:
Implement custom workflow walkthrough:
Association and initiation form walkthrough:
Add an application page to a workflow walkthrough:
Correlation tokens:
Deploying using a feature:
Create a custom workflow action

Expose a custom action in SPD:
Create a custom activity walkthrough:
Workflow actions schema:
Create and implement event receivers

How to create event receivers in VS2010 video:
Customize Enterprise Content Management (ECM)

Create a custom field control:
Content type hierarchy:
Create, implement and debug a Timer Job

Andrew Connell’s article about custom timer jobs:
Creating custom timer jobs how to:
Debug a timer job P&P:
Create and modify Business Connectivity Service model in Visual Studio 2010

Creating a BDC model in VS2010 video:
Creating a business model walkthrough:
Manage Users, Groups, Permissions

SPGroup class:
SPUser class:
SPRoleDefinition class:
SPRole class:
SPRoleAssignment class:
Working With SharePoint Data (22%)

Access list data by using the Server object model

SPDevWiki accessing data in SharePoint:
Tobias Zimmergren’s article about the CAML behind SPLINQ:
SharePoint magazine:
SPLinq blog article:
SPMetal and Entities:
Access SharePoint Data by using WCF Data Services

Corey Roth’s article on the listdata.svc:
WCF Data Services Team blog:
Access (CRUD) data by using the Client Object Model

Tobias Zimmergren’s getting started with client OM:
MSDN Client Object Model:
Channel 9 video about Silverlight object model:
Work with documents programmatically

Work with the meta data

User profile manager class:
Taxonomy namespace:
Chris O’Brien’s article series:
Extending SharePoint Search

Customise search results how to:
Search query object model:
Query class:
Implement and debug code that executes in an alternative security context

Waldek Mastykarz’s article on CAS:
MSDN RunWithElevatedPrivieges:
Elevating using a UserToken: or
Create and modify a custom content type

Walkthrough which upgrades a content type:
MSDN creating content types with VS2010:
Deploying content types:
Stabilizing and Deploying SharePoint Components (19%)

Manage a solution in Visual Studio 2010

MS VS2010 blog:
Manage a feature by using Visual Studio 2010

Chris O’Brien’s upgrading series:
Store and retrieve configuration data

Web modification class on MSDN:
Web modification known issues:
SPPersistedObject tutorial:
Wictor Wilen’s 6 ways article:
Create a site definition by using Visual Studio 2010

MSDN walkthrough for basic site definition:
MSDN walkthrough for content in site definition:
Manage SharePoint object life cycle by using the Dispose API

SPDisposeCheck homepage:
Dispose patterns:
Develop, debug, and deploy sandboxed solutions

MSDN magazine article:
Blog explaining how to create a sandbox solution in VS2010:
Blog covering most Sandbox topics including API restrictions and Full Trust Proxies:
Sandbox on MSDN:
I hope you find this information useful :D

SharePoint Email alert is not working

Question: How to Troubleshoot Alerts in WSS 3.0 / MOSS


The most common issue in alert is the user will get the initial email, but will not get when changes are made to the list where he configured the alert. Check the following settings in order and ensure that it is correct.

1. Is it an upgrade from V2 to V3? If yes, check the upgrade section at the bottom of this page.

2. If this is a new install of V3 (WSS or MOSS), then do the following

a. Create a new web app and see if the alerts work there. If yes, you can move the content db of the non-working site to this one. If customer is not ready to do that, then try the following.

b. Open the command prompt and go to the 12\Bin folder. Run this command and see whether alerts are enabled for the web application.

Stsadm.exe-o getproperty -url http://problemsite -pn alerts-enabled

The expected output is . If you don’t get this, run the following command to change the value.

stsadm.exe -o setproperty -pn alerts-enabled -pv "true" -url http://problemsite

If the property is Yes and still the alerts are not sent, toggle the property from Yes to NO
and then from No to Yes. This may delete all the existing alerts and warn the customer
about this.

c. Check the property job-immediate-alerts schedule through command prompt. Run this command from the 12\bin folder. If we have issues with Scheduled alerts like daily or weekly, then check the property job-daily-alerts and job-weekly-alerts.

stsadm.exe -o getproperty -url http://ProblemSite -pn job-immediate-alerts

The expected output is
. If you don’t get this, run the following command to change the value.

stsadm.exe -o setproperty -pn job-immediate-alerts -pv "every 5 minutes
between 0 and 59" -url http://ProblemSite

d. Confirm the above step through the UI. Central adminàOperationsàTimer Job Definitions and ensure that a job named Immediate Alerts is present for the web application.

e. Configure the alert for a user in a list. Instead of typing the domain name\ user name, type the email address of the user and see if he gets initial email. Then make a change to the list and see whether he gets the mail related to the change.

f. If he gets the alert as expected, then create a new alert and this time select the user from the people picker or type the domain name\user name.

g. If the alert is not working after doing the above step, then check the ImmedSubscriptions / SchedSubscriptions table of the content db of the web application depending on the type of alert and see a new record is added and ensure that the email field for the user is populated correctly. If not, check whether the email address is present in the user’s profile through the SSP admin page.

h. The initial alert is not security trimmed. So irrespective of whether the user has privileges on the list or not, the initial alert will be sent. If the user is not getting alert for any changes, then check whether the user has Read permission on the list.

i. This also happen if there is some issue in their mail provider (third party email providers. In this case, capture the ULS log with all information events in the verbose mode and check for lines which says Alert has been sent.

j. Email enabled security groups can also be used for configuring alerts. If the changes are not notified to the members of the group, check whether the group is added to the list with minimum Read permission. Also some email providers block email groups if the number of members are more than certain number.

k. Open SQL Query Analyzer; connect to the content database of problematic site. Run the following query.

Select * from timerlock

This server is responsible for processing the timer service. You can follow this KB – to sync the accounts and password across the

The internal working mechanism of how an alert should work in v3:

The EventCache table records the SQL level events as they occur and the EventData and ACL columns are not NULL for an alert event. There is an alerts timer job that runs periodically to process the records in the EventCache. After the alerts timer job runs, it nulls out the EventData and ACL columns. Then, it will log an event into the EventLog table. So check the following in SQL.

select * from eventcache where EventData is not null

This will output all of the subscriptions which have not been processed yet. We can see if there are some alerts which are not processed.

select * from eventlog where ListID = 'xxx'

You can get the ListID from the EventCache table by running

Select * from EventCache and check the documents which correspond to the problematic list.

If you cannot find any record, perform the following tests:

Run filemon on the MOSS server which is responsible for the timer service and check if the Timer
service picks up the alert template during the whole process.

Upload a new document to the document library which is supposed to have the alerts. Begin running
the filemon and analyze the logs.

p. select * from eventcache order by EventTime DESC

Check if the latest log is the one corresponds to your uploaded document. Make sure the EventData and ACL columns are not NULL.

After 5 minutes or more minutes, check the EventCache table again to see if the EventData and ACL columns are NULLed.

If so, stop filemon after the EventData and ACL columns are NULLed . Review log.

Upgrade from V2 to V3

1. Check this KB -

2. If no alerts are getting triggered even for a new web app, then run the Psconfig Wizard without changing any options.

The timer job displayed an older date because the upgrade job was hung

3. If the alert works on new web apps, then you can move the site collections from the upgraded web app to the newly created web app through stsadm –o backup / restore or stsadm –o export / import. This action will be useful only if you have fewer site collections and this is only a workaround.

Case Study

Running the psconfig wizard fails immediately with "Unable to upgrade SharePoint
Products and technologies because an upgrade is already in progress"
No psconfig process in task manager

The timer job displayed an older date because the upgrade job was hung

Sharepoint central administration page->Operations->Timer job definitions
Asked client to delete the "Upgrade job"
Now the psconfig wizard ran fine

Timer job definition showed all the jobs with the latest date. Especially the
Immediate alerts job

Filed under: News

Saturday, October 23, 2010


For .NET Framework 4.0: & For .NET Framework 3.5:
Download LINQPad.exe

How to use Effectively in LINQPAD below video will explain you more…

SharePoint 2010 Announcement webpart Background color

To change the Background color of the Announcement webpart.
Please find the following script tag.

Open the announcement webpart home page in sharepoint designer Add the following script.

Monday, October 4, 2010

SharePoint 2010 Publishing site

SharePoint 2010 Publishing site :

When you create a sharePoint Publishing site by defauly you can able to see only 2 sub site templates avaliable, but you can able to configure what are the types only site owners can create as a sub site.

Publishing site is not listing all list & Libraries

When you are working on the publishing site by default all list and libraries it will not appear.

if you want list like announcement & quick links then you need to active the "Team Collobration Lists" Feature