SharePoint Development Tools

The following is the list of tools that I happen to use during Sharepoint Development. These tools help the SharePoint developers to do their work efficiently.

Visual Studio Extensions for Windows SharePoint Services 3.0 Tools

 

Tools for developing custom SharePoint applications: Visual Studio project templates for Web Parts, site definitions, and list definitions; and a stand-alone utility program, the SharePoint Solution Generator.

Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions

Visual Studio 2008 extensions for Windows SharePoint Services 3.0

SharePoint SDK

 

The Microsoft Office SharePoint Server 2007 SDK contains conceptual overviews, “How Do I…?” programming tasks, developer tools, code samples, references, and an Enterprise Content Management (ECM) starter kit to guide you in developing solutions based on MOSS 2007.

Windows SharePoint Services 3.0: Software Development Kit (SDK)

SharePoint Server 2007 SDK: Software Development Kit

Microsoft Best Practices Analyzer for WSS  3.0

 

The Microsoft Best Practices Analyzer for Microsoft Windows SharePoint Services 3.0 and the 2007 Microsoft Office System creates detailed reports to help administrators achieve greater performance, scalability, and uptime.

SPDisposeCheck

 

SPDisposeCheck is a tool to help you to check your assemblies that use the SharePoint API so that you can build better code. It provides assistance in correctly disposing of certain SharePoint objects to help you follow published best practice. This tool may not show all memory leaks in your code. Further investigation is advised if you continue to experience issues.

U2U CAML Query Builder

The tool will help you build, test and execute your CAML Queries. Download U2U CAML Query Builder

SPCamlViewer

This SPCamlViewer tool will help you in viewing/writing CAML Queries.

Imtech Fields Explorer

Imtech Fields Explorer for auto generating content type-based Page Layouts and features.

SharePoint Search Service Tool

 

The SharePoint Search Service Tool is a rich web service client that allows a developer to explore the scopes and managed properties of a given SharePoint Search SSP, build queries in either Keyword or SQL Syntax, submit those queries and examine the raw web service results. http://www.codeplex.com/SharePointSearchServ

Search Community Toolkit

 

The Search Community Toolkit is comprised of a number of tools and code samples that have been contributed to enhance the Microsoft search experience. http://www.codeplex.com/sct

WSPBuilder

WSPBuilder is a SharePoint Solution Package (WSP) creation tool for WSS 3.0 & MOSS 2007.

SharePoint Solution Installer

SharePoint Solution Installer for easy deployment of WSP packages.  Download @ http://sharepointinstaller.codeplex.com/

SharePoint 2007 Features

 

This CodePlex project contains a number of helpful features like Debugger Feature, Log Viewer, Toolbar Manager etc. http://www.codeplex.com/features

SmartPart for SharePoint

The SharePoint web part which can host any ASP.NET web user control. Download @ http://smartpart.codeplex.com/

SPVisualDev – SharePoint Developer Tool

 

SPVisualDev makes it easier for Sharepoint 2007 developers to develop features and artifacts with Visual Studio 2008. It is written in C# and is implemented as a Visual Studio 2008 Add-in. http://spvisualdev.codeplex.com/

SharePoint Manager 2007

 

The SharePoint Manager 2007 is a SharePoint object model explorer. It enables you to browse every site on the local farm and view every property. Download SharePoint Manager2007

SmartTools

The SmartTools for SharePoint project is a collection of SharePoint extensions to make your life as a SharePoint user, developer or administrator a little bit easier! http://www.codeplex.com/smarttools

SharePoint SUSHI

SharePoint SUSHI is a powerful, user-friendly utility enabling you to accomplish common administrative tasks. http://www.codeplex.com/sushi

SharePoint Portal Server Support Report Tool (SPSReport)

The SPS Reporting Tool is utilized to gather detailed information regarding a systems current configuration. The data collected will assist the Microsoft Support Professional with fault isolation.  Download @ http://www.codeplex.com/spsreport

BDC Meta Man

http://www.lightningtools.com/bdc-meta-man/default.aspx

SharePoint 2007 Test Data Population Tool

The SharePoint 2007 Test Data Population Tool (WSSDW.exe) is a capacity planning and performance testing tool that populates data for testing SharePoint deployments. http://www.codeplex.com/sptdatapop

SharePoint Content Deployment Wizard

 

This tool (beta version) provides a wizard-like approach to deploying content between SharePoint sites. http://www.codeplex.com/SPDeploymentWizard

Reflector

You can find more details about here

Fiddler

 

Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and “fiddle” with incoming or outgoing data.

Firebug

 

Firebug integrates with Firefox. Using firebug you can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page

Internet Explorer Developer Toolbar

The IE Developer Toolbar provides a variety of tools for quickly creating, understanding, and troubleshooting Web pages

DebugView for Windows

 

DebugView is an application that lets you monitor debug output on your local system, or any computer on the network that you can reach via TCP/IP. Download DebugView

 

Disclaimer: All information in this article is provided “AS IS” with no warranties, and confers no rights and on a “use at your own risk” basis.

  

Running Code with Elevated Privileges

During custom development in Sharepoint, sometimes your code must call restricted methods within the Windows SharePoint Services object model even though the request is initiated by a non privileged user. In such cases you must be able to elevate the privilege of your code as it executes on web server.  Meaning, instead of your code running under the context of the current user, you’ll want to run it using an account with a higher level of access.

The RunWithElevatedPrivileges method is used to for this purpose.

VB.Net Example:

Sub GetSiteInfo()

Dim siteColl As SPSite = SPContext.Current.Site

Dim site As SPWeb = SPContext.Current.Web

Using ElevatedsiteColl As SPSite = New SPSite(siteColl.ID)

Using ElevatedSite As SPWeb = ElevatedsiteColl.OpenWeb(site.ID)

End Using

End Using

End Sub

After you write a method such as GetSiteInfo you can execute it with elevated privileges by invoking the RunWithElevatedPrivileges method and passing a delegate reference created with the Visual Basic AddressOf operator. (note the creation of new SPSite and SPWeb objects)

SPSecurity.RunWithElevatedPrivileges(AddressOf GetSiteInfo)

Note:

You cannot use the objects available through the Microsoft.SharePoint.SPContext.Current property, because those objects were created in the security context of the current user. You need to create an new instance of the SPSite class and the SPWeb class after you elevate the privileges of your code by calling RunWithElevatedPrivileges within the context of a Windows SharePoint Services request. 

You can find more details at:

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

How to log errors to SharePoint Log file

When you work with share point custom code development such as Web parts, Features, Event Handlers, and Workflows etc., you can use the Sharepoint built in logging mechanism to log the errors instead of creating custom logging mechanism.

In SharePoint, log files are located at C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOG

To log errors/messages/exceptions to the default SharePoint log file use the following lines of code.

Microsoft.Office.Server.Diagnostics.PortalLog.LogString(”Exception Occurred: {0} || {1}”, Exc.Message, Exc.StackTrace);

Example Code snippet:

Try

{

}

catch (Exception Exc)

{

Microsoft.Office.Server.Diagnostics.PortalLog.LogString(”Exception Occurred: {0} || {1}”, Exc.Message, Exc.StackTrace);

}

MOSS 2007 limitations list for acceptable performance

If you are planning for big Sharepoint (MOSS 2007) Implementations, consider these limitations and guidelines for the best Sharepoint (MOSS 2007) Implementation.

The following table lists the recommended guidelines for site objects.

Site object

Guidelines for acceptable performance

Scope of impact when performance degrades

Site collection

50,000 per content database

Farm

Site collection

150,000 per Web application

Farm

Web site

250,000 per site collection

Site collection

Subsite

2,000 per Web site

Site view

Document

5 million per library

Library

Item

2,000 per view

List view

Document file size

50MB (2GB max*)

Library, file save performance

List

2,000 per Web site

List view

Field type

256 per list

List view

Column

2,000 per document library

4,096 per list

Library and list view

Web Part

50 per page

Page

Managed path

20 per Web application

Web application

 

You can find more details at:
Plan for software boundaries (Office SharePoint Server)

 

SharePoint Screencasts and Visual Howto’s

A huge list of Visual Howto’s related to Microsoft Office SharePoint Server 2007 is available @ http://msdn.microsoft.com/en-us/office/aa940989.aspx.Office Visual HowTo’s provide instruction, code examples, and short how-to videos

If you are new to Sharepoint 2007, take a look at the following screencasts series.

 

Accessing Lists through Sharepoint Object model

Is accessing the list taking more time…

Consider the following while accessing the list  through Object model

  1. SPWeb.GetList(string url)
    In this case, first it gets the list GUID from the url(database hit), then it loads the Meta data for that specific list.
  2. SPWeb.Lists[“name”]
    This method loads the meta-data information of the all lists for the SPWeb object under consideration. and then it does SPList.Title comparison with metadata of all the lists returned and returns the first matching list from the SPWeb.Lists collection.

The first approach provides better performance than the second one.

If we pass GUID of the list  instead of a list name in the second approach it works similar to the first approach (SPWeb.GetList (url)), however passing a List Index would work similar to the second approach.

Sharepoint internet facing sites

My list of nicely built Internet facing SharePoint sites goes here .

These  sites are really amazing and were built on SharePoint.

http://www.ferrari.com/
http://www.swissarmy.com/
http://www.eastman.com/
http://www.choosechicago.com/
http://www.kroger.com/
http://www.westernaustralia.com/
https://www.flybuys.co.nz/
http://www.energizer.com/

How to enable verbose mode logging in SharePoint

To enable verbose mode logging follow the below steps:

a. Go to SharePoint Central Administration Page
b. Select Operations and select Diagnostics logging under Logging and Reporting
c. In diagnostic logging page, select the Verbose mode and click on ok

Note:
1) It is not advisable to turn the verbose mode logging on. Turn it off once the required log is collected.
2) Sometimes Windows SharePoint Services Tracing service will stop when we do these modifications, you may need to restart the service.