Jean Paul's Blog

There are 2 types of People in the World, One who Likes SharePoint and..

  • Microsoft MVP

  • MindCracker MVP

  • CodeProject MVP

  • eBook on SharePoint 2010

  • eBook on Design Patterns

  • eBook on Windows Azure

  • NLayers Framework @ CodePlex

  • MSDN Forums

  • .Net vs. Java

    Due to Public Demand

Archive for May, 2012

SharePoint 2010 – Lists and Event Handlers

Posted by JP on May 31, 2012

In this article we can explore the Event Handling features of List through code. Using the SPList in Server Object Model we can access event handling for a list.

We can use the event to perform the following activities:

· Validate the Item

· Log the information

· Create associated items

There are multiple Event Types for a List:

· List Events

· List Item Events (Add, Edit, Delete)

· Web Events

· Feature Events

· Workflow Events

Create Event Receiver Project

For starting with create an Event Receiver project inside Visual Studio.

clip_image002

You will be prompted for the site:

clip_image004

By default the machine site will be shown in the dialog box. Leave the default option of Sandboxed solution and click the Next button.

clip_image006

Select the List Item Events and use event source as Contacts. Check the check boxes for added, updated and deleted events and click the Finish button.

Note: The site url can be changed later. For time being we are using hard coded urls.

On clicking Finish button, the code will be generated for the List Event Receiver and you can place a break point in the ItemAdding event as shown below.

clip_image008

Now execute the application and your Event will be added and activated.

Try adding a new contact inside SharePoint:

clip_image010

On clicking the Save button, the breakpoint inside Visual Studio will get hit:.

clip_image012

SPItemEventProperties

You can cancel the operation by using the Cancel property.

You can report an error message using the ErrorMessage property.

Cancel for Delete

You can cancel and item delete by setting the properties.Cancel = true;

public override void ItemDeleting(SPItemEventProperties properties)

{

properties.ErrorMessage = "Deleting Item is not permitted!";

properties.Cancel = true;

}

Try deleting an item from the Contacts inside SharePoint:

clip_image014

You will get the following message prompted:

clip_image016

Deploying the Event Receiver

You can take a note that while you stop Visual Studio, the item deletion is allowed inside SharePoint. To make the event receiver permanent, use the project Deploy option.

clip_image018

Now try Deleting an item without Visual Studio Debugging. You will get the same Error Message Dialog and this concludes the Event Creation and Deployment to a SharePoint site.

Properties of Project

You can change the Url and other properties created through the Wizard. Use Project > Properties to access/modify these properties.

clip_image020

Features

The event receiver is actually deployed as a feature inside SharePoint. You can view the Feature properties and the associated xml file under Features special folder as shown below.

clip_image022

The Event code and Elements.xml reside inside the EvntReceiver1 group as shown below.

clip_image024

References

http://msdn.microsoft.com/en-us/library/bb736146(v=office.12).aspx

Summary

In this article we have explored the List Event facility of SharePoint. In advanced List Management these flexibilities are great tool for a SharePoint Developer.

Advertisements

Posted in C#, SharePoint | Tagged: , , , | 2 Comments »

C# code to find your motherboard serial number

Posted by JP on May 30, 2012

ManagementScope ms = new ManagementScope("\\\\" + Environment.MachineName + "\\root\\cimv2");
ms.Connect();
ManagementObject wmiClass = new ManagementObject(ms, new ManagementPath("Win32_BaseBoard.Tag=\"Base Board\""), new ObjectGetOptions());
string sn = wmiClass.Properties.Cast<PropertyData>().Where(p => p.Name == "SerialNumber").FirstOrDefault().Value.ToString();
Console.WriteLine(sn);
Console.ReadKey(false);

// Please add reference to System.Management

Posted in C# | Tagged: , , | Leave a Comment »

SharePoint 2010 – Server Object Model

Posted by JP on May 30, 2012

For programming against the SharePoint items, we need to retrieve the properties and the methods to operate on them. The SharePoint Object Model provides various classes to accomplish this. In this article we can discuss the Object Model with the core classes involved with little amount of coding.

Please note that there are 2 Object Models in SharePoint 2010

1. Server Object Model

2. Client Object Model

Here we are discussing only about the Server Object Model. Server Object Model classes are used for server side programming and will be executed on the SharePoint Server Farm.

Namespace

The Server Object Model classes are residing in the Microsoft.SharePoint assembly. The general classes are available inside Microsoft.SharePoint namespace and the administration classes inside Microsoft.SharePoint.Administration namespace.

Core Classes

Following are the important classes and their corresponding SharePoint items.

Class

SharePoint Item

SPFarm

Farm

SPServer

Server

SPSite

Site Collection

SPWeb

Web site

SPControl

Control

SPList

List

SPDocumentLibrary

Document Library

SPContentType

Content Type

SPUser

User

SPException

SharePoint Exception

Programming

Now we can start with experimenting some of the above classes. For starting with we can create a SharePoint Console Application. Use the New Project > SharePoint > Console Application project item.

clip_image002

Accessing the List Items in a List

For proceeding with this example create a list derived from the Contacts template and name it as “My Contacts”. Add some items inside it with First Name and Last Name set.

Use the following code inside the Console application and execute it.

using (SPSite site = new SPSite("http://appes-pc/my/personal/dotnet&quot;)) // Site Collection

{

using (SPWeb web = site.OpenWeb()) // Site

{

SPList list = web.Lists["My Contacts"]; // List

int i = 1;

foreach (SPListItem item in list.Items)

{

Console.WriteLine("Item: " + (i++).ToString());

Console.WriteLine(item.Name);

Console.WriteLine(item.Title);

Console.WriteLine(item.GetFormattedValue("First Name"));

Console.WriteLine(item.GetFormattedValue("Last Name"));

Console.WriteLine(string.Empty);

}

}

}

Console.ReadKey(false);

If you receive any build errors regarding namespace, change the Project Properties > Target to .Net Framework 3.5.

clip_image004

Now try building the application and it should work fine. You can see the following output.

clip_image006

Please note the usage of Title, Name properties and the GetFormattedValue() method.

Accessing the items in a Library

Now we can proceed with accessing the document library items programmatically. For proceeding with you need to create a document library inheriting from Document Library template and name it as “My Docs”. Upload one or two documents into it. We are proceeding to get the file name and length in this example.

Enter the following code in the console application.

using (SPSite site = new SPSite("http://appes-pc/my/personal/dotnet&quot;)) // Site Collection

{

using (SPWeb web = site.OpenWeb()) // Site

{

SPDocumentLibrary library = web.Lists["My Docs"] as SPDocumentLibrary; // Library

int i = 1;

foreach (SPListItem item in library.Items)

{

Console.WriteLine("Item: " + (i++).ToString());

Console.WriteLine(item.File.Name);

Console.WriteLine(item.File.Length);

Console.WriteLine(string.Empty);

}

}

}

Executing the application you can see the following results.

clip_image008

SPControl

The SPControl class acts as the base class while developing server controls. It reseides in the namespace Microsoft.SharePoint.WebControls.

SPControl provides static methods that returns reference to the current site, web, web application, module. The methods are:

SPControl.GetContextSite()

SPControl.GetContextWeb()

SPControl.GetContextWebApplication()

SPControl.GetContextModule()

SPException

The SPException class can be used to handle exception inside a try catch block. It represents the exceptions thrown by the server object model.

try

{

// Code here

}

catch (SPException ex)

{

// Handle Exception

}

SPUser

The SPUser class can be used to access user information for a SharePoint site. Enter the following code to get the number of users and their names.

using (SPSite site = new SPSite("http://appes-pc/my/personal/dotnet&quot;))

{

using (SPWeb web = site.OpenWeb())

{

foreach (SPUser user in web.AllUsers)

Console.WriteLine("User: " + user.Name);

}

}

On running the code you can see the results based on your machine users.

clip_image010

Note

You can add a new list item or library item using the Items.Add() method. For updation and deletion use the item.Update() and item.Delete() methods respectively. More code coverage on these areas will be provided later.

References

http://msdn.microsoft.com/en-us/library/ms473633.aspx

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spcontrol.aspx

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.aspx

Summary

In this article we have explore the SharePoint Object Model and some basic coding examples with List and Library. The advanced coding examples will be provided at later point of time.

Posted in C#, SharePoint | Tagged: , , | 2 Comments »

SharePoint 2010 – Project Items inside Visual Studio

Posted by JP on May 25, 2012

In this article we can closely examine the SharePoint Project items and related topics. I believe that the previous article regarding installation of SharePoint Tools for Visual Studio 2010 is completed successfully.

We can see the following Project Items inside Visual Studio under the node SharePoint:

clip_image002

Each of the Project Item is described below:

Empty SharePoint Project

This is a template whose contents are common to all other templates.

It includes all the references needed for SharePoint development.

clip_image004

This template contains the Features and Package files needed for deployment.

clip_image006

Sequential and State Machine Workflow

Sequential Workflow refers to a series of business logic steps performed in sequence. State Machine Wofkflows are not performed in sequence, but carried out by actions and events. The workflow templates contain the items to create Sequential and State Machine Workflows. We can create site level or global workflows through these templates.

clip_image008

Site Definition

This project contains a site definition folder which includes the default aspx page for the site, site component file, site configuration file etc.

List Definition

This project template contains the List templates. It includes content type, list templates, event receivers etc.

Modules

The module template is used to include the manifest xml file and the notes about a project. It is not the Module concept in Visual Basic.

Visual Web Part

We can create Web Part using the designer inside Visual Studio. This project template contains supports Visual Web Parts.

Content Type

Content Types are information on data. For example a Task can be declared as a Content Type. Later Task can be used inside a List.

Apart from the custom properties, we need to explore the other topics related to SharePoint development using Visual Studio.

Sandboxed Solutions

A Sandboxed Solution is a new concept in SharePoint Foundation that allows the users to upload their own code solutions. The Sandboxed Solutions are viewable and validated by Administrators through the Solutions Gallery.

The Solutions Gallery can be accessed from Site Actions > Site Settings > Solutions.

clip_image010

We can view the resource usage of solutions and manage the quota from the Solutions Gallery.

clip_image012

References

http://msdn.microsoft.com/en-us/library/ee231554.aspx

http://msdn.microsoft.com/en-us/library/ee539083.aspx

Summary

In this article we have explored the Project Items inside Visual Studio and had an overview of the various aspects of SharePoint development. In the upcoming articles we can jump into coding solutions for SharePoint 2010.

Posted in C#, SharePoint | Tagged: , , | Leave a Comment »

SharePoint 2010 – Starting Programming

Posted by JP on May 25, 2012

In this article we can start with programming part of SharePoint 2010. Through programming we are able to get more control and flexibility over SharePoint. We can use Visual Studio to do the programming part with the support of SharePoint server side object model library.

Some of the advantages gained through programming SharePoint are:

· Server Object Model to Iterate over Lists and Libraries

· Content Type Creation

· Web Part Creation

· WorkFlow Creation

· Assembly Signing

· Business Data Connectivity Model Creation

· Site Definition Creation

· Automated Backup and Restore

Visual Studio

Here we are using Visual Studio 2010 to work with SharePoint 2010. You can use a 32 bit or 64 bit version of Visual Studio 2010.

Visual Studio 2010 Tools for SharePoint Development

After the Visual Studio 2010 is ready, you need to install the following component to start with:

· Visual Studio 2010 Tools for SharePoint

This tool helps with custom templates, automatic web part deployment to SharePoint server and other integration facilities.

Download

You can download the tool from the following link:

http://sharepointdevtools.codeplex.com/

According to the documentation the tool provides extensions to four core areas:

1. Environment

2. Exploration

3. Templates

4. Deployment

After installing the tool, start a New Project in Visual Studio and you will be able to see the following SharePoint project category:

clip_image002

For starting with select the Empty SharePoint Project template and click Ok button. The following site dialog box will be prompted.

clip_image004

Enter your site url, leave the other options as unchanged and click Finish button.

Now the Solution Explorer will look like below:

clip_image006

Try building the project and if the build succeeds your Visual Studio is ready for SharePoint 2010 development. We can explore the programming areas in the upcoming articles.

References

http://msdn.microsoft.com/en-us/magazine/ee309510.aspx

Summary

In this article we have explored the programming part of SharePoint 2010. Using Visual Studio we can gain control over the SharePoint sites and features. In the upcoming articles we can play around with the object model and features.

Posted in C#, SharePoint | Tagged: , , , | 2 Comments »

SharePoint 2010 – Creating a List Definition using SharePoint Designer

Posted by JP on May 22, 2012

In this article we can experiment with List Definition creation using SharePoint Designer.

We can create List Definition using the following tools:

1. SharePoint

2. Visual Studio

3. SharePoint Designer

To proceed with run the SharePoint Designer application. Use the Open Site button to open the default SharePoint site. Now select the Lists and Libraries option from the left Navigation bar.

clip_image002

From the ribbon menu, use the Custom List button.

clip_image004

In the appearing dialog box enter the Name and Description for the List.

clip_image006

Click the OK button continue. The new List Definition will get added as shown below.

clip_image008

Now use the Edit Columns button from the ribbon menu.

clip_image010

You can see the default Title column already in the list. Add the following 2 columns using the Add New Column button from the ribbon menu.

clip_image012

· ContactName as Single line of Text

· Address as Multiple lines of Text

Now the Columns list look like below:

clip_image014

Click on the Save button from the Top menu.

clip_image016

Now you are ready with the new List Definition. Go back to SharePoint inside browser and you can see the new List there:

clip_image018

You can try adding a new item and the dialog window shows the columns we added.

clip_image020

Click the Save button and this concludes our List Definition creation using SharePoint Designer.

Summary

In this article we have experimented with List Definition creation using SharePoint Designer. Designer provides an easier way for Administrators.

Posted in C#, SharePoint | Tagged: , , , | Leave a Comment »

SharePoint Designer 2010

Posted by JP on May 2, 2012

In this article we are going to explore SharePoint Designer. It is another great tool to work with SharePoint. It is a free tool and can be used for editing of items inside SharePoint.

Features

Some of the cool features of Designer are:

· It is Free

· WYSIWYG (What you see is what you get) Editor

· No Coding Required

· Useful for Administrators as well as Developers

· Workflow Creation

· Editing of Site, Styles Possible using Designer

· Branding

· Form Customizations

· Visio Integration

· InfoPath Forms Data Source Configuration

· Manage Site Permission, Site Columns etc.

· BCS (Business Connectivity Configuration)

· Create Content Types

· ASP.NET, XML, XSLT, RSS, XHTML support

· SOAP and REST support

· Administrator can restrict the use of Designer on sites

Version

The version compatible with SharePoint 2010 is SharePoint Designer 2010.

The previous version of designer was SharePoint 2007. The ancestor of SharePoint Designer is Microsoft FrontPage which was a web editor of the times.

Download Link

You can use the following links to download the 32bit and 64bit version of Designer 2010:

http://www.microsoft.com/download/en/details.aspx?id=16573

http://www.microsoft.com/download/en/details.aspx?id=24309

Enabling/Disabling Designer Features

To enable/disable the features of SharePoint Designer use the following item:

Site Actions > Site Settings > Site Collection Administration > SharePoint Designer Settings

clip_image002

You can change the following options on the above screen:

· Enable / Disable SharePoint Designer for the Site

· Enable / Disable detaching page from the site definition

· Enable / Disable customizing master pages

· Enable / Disable managing of web site url feature

Running SharePoint Designer

After the installation you can execute SharePoint Designer using the following link:

All Programs > SharePoint > Microsoft SharePoint Designer 2010

Following is the application snapshot on executing the above link:

clip_image004

Use the Open Site button and you will get the following dialog:

clip_image006

Enter the site url and click the Open button. Enter the credentials in the appearing dialog.

You will get the site opened in the main Designer window as shown below:

clip_image008

The left side pane shows various features of the site like:

· Lists and Libraries

· Workflows

· Site Pages

· Site Assets

We can select the item from the left pane and the properties are displayed on the right side.

Customizing Site Pages

Now we can try customizing an existing page using SharePoint Designer. For this create a new list named contacts in the site deriving from the Contacts template.

Refresh the site in the Designer using the button on left top system menu.

clip_image010

Now select the Lists and Libraries item from the left pane. You will be able to see list named contacts.

clip_image012

Click on the contacts item and you will get the properties of it.

clip_image014

You can see 3 forms on the Forms pane which are described below:

Form

Description

DispForm.aspx

Used to display the item details (View command)

EditForm.aspx

Used to edit the item details (Edit command)

NewForm.aspx

Used to add a new item (New command)

Now we can add a new page and apply the Display (View command) to it. Click on the New button from the Forms pane. Enter the following details in the appearing dialog.

clip_image016

Click the Ok button to continue. Now the new form gets added and acts as the default View form. You can try changing the color of the form labels, deleting some rows, adding a hyper link, custom formatting etc. After the changes click the Save button and you are ready to check the edited page inside SharePoint. (Use the Refresh button to get the controls)

Inside SharePoint site, add a new contact and use the View Item command for the newly added item. You can see the following screen:

clip_image018

Note

Please make sure that you are editing only the new custom form. Changing the SharePoint pages may create problems and hence not advisable to new users.

Editing Master Pages and CSS

We can also edit the Master Pages using the left side link Master Pages.

clip_image020

Click on the v4.master item and it will get opened as shown below. Use the Edit File option from the appearing page.

clip_image022

clip_image024

You can modify the control properties in the appearing window. There is an option on the bottom of Designer to switch to the Code View from the Design View.

clip_image026

Editing CSS (Cascading Style Sheets)

As you might be knowing the CSS files determines the font sizes, colors and various attributes. Use the Style > Manage Style option to get the CSS properties.

clip_image028

You can see the Manage Styles properties window in the right end bottom of the designer.

clip_image030

Right click on the item, and use the Edit Item menu item. There you can change the style of the particular item. Any changes will get reflected in the SharePoint site on saving.

Working with Controls

We can add / edit controls to the custom pages or master page. Use the Insert menu option to add controls. You can choose from HTML, ASP.NET, SharePoint controls as shown below:

clip_image032

References

http://community.bamboosolutions.com/blogs/sharepoint-2010/archive/2010/04/01/new-features-in-sharepoint-designer-2010.aspx

http://blogs.msdn.com/b/sharepointdesigner/

Summary

In this article we have explored about SharePoint Designer. The Page Customization, Master Page Editing facilities using the Designer were explored.

Posted in C#, SharePoint | Tagged: , , , | Leave a Comment »

SharePoint 2010 – Web Parts

Posted by JP on May 2, 2012

Web Parts are rectangular areas of HTML content. We can provide information to the users using Web Parts. The history of Web Parts starts from year 2000 in the name Digital Dashboard. Later it evolved as Web Parts and includes support in SharePoint Designer and Visual Studio. We can use the existing web parts or build custom web parts for SharePoint.

SharePoint 2010 contains inbuilt web parts and provides custom web part integration facilities. Web Parts provides set of controls to display, modify, and configure the contents.

Example of Web Part

clip_image002

Adding a WebPart

For starting with open our site collection using the url.

clip_image004

We can start by adding an image WebPart to the main page. Click on the left top menu Site Actions > Edit Page option.

clip_image006

On the appearing screen below, click on the first Add a Web Part button.

clip_image008

The following options appears:

clip_image010

Select Media and Content from the first pane and Image Viewer from the second pane and click the Add button. Now the Web Parts gets added into the page.

clip_image012

Use the open the tool pane option and enter an image url inside it, then click the Apply button.

clip_image014

Now click the Stop Editiong button from the ribbon menu.

clip_image016

Now you are ready with the main page with an image as shown below.

clip_image018

Editing a Web Part

We can edit a web part by logging in as a user with permissions to edit and using the Edit Web Part option from the right side context menu of the web part.

clip_image020

Deleting a Web Part

To delete an existing Web Part, use the Edit Web Part option from the context menu.

clip_image022

Then use the Delete option again from the Web Part context menu.

clip_image024

Now the Web Part gets deleted.

Using List Web Parts

We can use List Web Parts to show the custom Lists made inside SharePoint. Use the Add web part option to locate the Lists and Libraries category as shown below:

clip_image026

There we can locate the custom List created inside SharePoint. The List Web Part allows us to add the List to other sites through web parts.

Silverlight Web Part

Another notable feature in SharePoint 2010 is the Silverlight web part. Using the Silverlight web part we can now host silverlight applications inside SharePoint. The XAP files needed to be located for the web part.

To add a silverlight web part use the Media and Content category from the Add Web Part dialog as shown below:

clip_image028

Web Part Galleries

The Web Part Gallery provides a view on the installed web parts for a site collection. You can access this window from Site Settings > Galleries > Web Parts.

clip_image030

On clicking the above link you can see the page as shown below:

clip_image032

We can create our custom web part and deploy it to the SharePoint server. These topics are discussed in advanced chapters. The web parts will be having extension .dwp expanding as Dashboard Web Part.

References

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.webpart.aspx

Summary

In this article we have explored the Web Part feature, Adding/Editing/Deleting Web Parts, Silverlight Web Part, Web Part Galleries etc.

The key points of web parts would be:

· A rectangular area of HTML content

· Flexible piece of Functionality

· Users can manage adding/deleting web parts

· Custom web part creation is possible

Posted in C#, SharePoint | Tagged: , , , | Leave a Comment »

SharePoint 2010 – Using Libraries

Posted by JP on May 2, 2012

In this article we can focus on Libraries which are the document management repositories in SharePoint 2010. The previous article should have given a good overview of the Document Management features of SharePoint.

Creating a Library

Now we can create a library. A library represents a collection of documents. For example a Document library, PDF library etc.

Click on the Libraries item from the left pane.

clip_image002

You will get the following screen:

clip_image004

Click the Create button to get the following dialog.

clip_image006

Select the Library option from the left pane, then choose Document Library from the middle pane and enter the name on the right pane. Click the Create button to continue.

You will get the progress screen as shown below:

clip_image008

Now you are ready with the document library created:

clip_image010

Click the Add document button to start adding documents to the library.

clip_image012

Choose a document and click the Ok button. Your new file will be listed in the document library as shown below.

clip_image014

So this concludes our Library creation.

Deleting a Library

For deleting a particular library, the steps are similar to deleting a list. Open the library, click the Library Settings option and use the Delete the document library option as shown below.

clip_image016

Summary

In this article we have explored Libraries in SharePoint. There are many more templates to explore in the Library section.

Posted in C#, SharePoint | Tagged: , , , | Leave a Comment »