Recently I was given the task of creating some custom Web Parts for a newly implemented Microsoft Sharepoint 2007 site. Not knowing anything much about Sharepoint, the first step was to figure out how to create a basic Web Part and then figuring out how to publish it for use.
Web Parts in SharePoint 2007 are based on the ASP.NET 2.0 Framework so you can use your choice of .NET languages to create your custom Web Parts. My .NET language of choice is C#, so i’ll be using that for this example.
The first thing you need to do is create a new Class Library project in Visual Studio 2005. Once created, add a reference for System.Web as it contains the Web Part controls. You then need to add an override for Render() and for testing use Write to output some text eg. writter.Write(“Hello Trent!”); - See the below code for an example:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls.WebParts;
namespace SampleWebPart
{
public class SampleWebPart : WebPart
{
protected override void Render(
System.Web.UI.HtmlTextWriter writer)
{
writer.Write("Hello Trent!");
}
}
}
Before building the Web Part the assembly needs to be strongly named, you can do this in Visual Studio by opening the project properties and then going to the Signing tab. Tick on the Sign the assembly check box and then click on the drop down list and select New. Give the key a name and choose a strong password. Click Ok and you’re done. Additionaly you will need to open AssemblyInfo.cs and add [assembly: AllowPartiallyTrustedCallers()] on a new line. You can now build the Web Part assembly.
There are 2 ways that I found to deploy the Web Part assembly, Global Assembly Cache (GAC) or bin – I first tried using the GAC as it was the recommended way but was unsuccessful. Using the bin method worked without a hitch, so I will explain that method.
First copy your compiled assembly to the _app_bin directory (You’ll find it in your SharePoint installation directory – In my case it was at C:\Inetpub\intranet\_app_bin\).
For the next step you’ll need to get the Public Key Token for your assembly, see Strong Name Tool (Sn.exe).
Open the web.config file found in the SharePoint installation folder and add the following line to the SafeControls section (You’ll need to replace the PublicKeyToken with the Public Key Token of your assembly):
<SafeControl Assembly="SampleWebPart, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx"
Namespace="SampleWebPart" TypeName="*" Safe="True" />
Now open your SharePoint site, go to Site Actions, Site Settings, and select Web Parts (It’s underneath Galleries). Click on New, put a tick next to your Web Part in the list and the click on Populate Gallery.
You can now add your custom Web Part to any of the pages in your SharePoint site.