SharePoint 2007 is a pretty amazing product which does a lot of things out of the box. Sometimes however, the capabilities you are looking for are not part of the product and you need to do a little custom development. If you have tried to do this yourself, you may know that there are some gaps in the overall developer experience. As a consultant, I'm often asked what tools and utilities I use to create and deploy solutions. In this article I list a number of 3rd party and community tools which I have found to be very useful.
Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions, Version 1.2
To some extent, Microsoft has been dragging its feet in respect to development tooling for SharePoint. SharePoint has always been notoriously painful to develop for in comparison to the F5 to debug approach of ASP.Net and Windows Forms development.
Enter the Visual Studio 2008 Extensions for WSS 1.2. These extension add support for developing and debugging common SharePoint customizations such as site definitions and web parts. These tools are far from seamless but they do provide a path towards a more graceful development and debugging experience. The 1.2 version of the tools just came out in June and they support Visual Studio 2008. The word on the street is that the next version of these tools are going to be vastly improved and provide much more integrated (or at least a less kludgy) way to develop for SharePoint. I can't tell you how much I'm looking forward to it.
CodeRush is a Visual Studio Add-In developed by Devexpress. The tool provides a means to write common and repetitive code using a very intuitive and accessible shorthand notation. For example to add beautify formatted Try, Catch, Finally block you just type the letters tcf while your cursor is in the body of a method and BAM! There it is in your editor. The best thing is that it understands the context you are in. CodeRush knows that if you are defining a class you are going to be using different keywords than you would when you are editing code deep within a private method. It takes a little getting used to but once you do, you can save yourself a lot of time.
Like a couple of other tools, code rush is not SharePoint specific h however, SharePoint MVP Andrew Connell has created a set of CodeRush templates which can be used to for writing CAML for SharePoint Solutions. Andrew has a number of other great tools on his web site.
SharePoint Development Environment Modifications
Scot has, for quite some time, been the go-to guru on SharePoint and is arguably one of the most recognized names in the SharePoint community. His Development Environment Modifications project provides a quick and easy way to set up your development environment. The package includes a number of developer oriented STSADM extensions. Also include in the package are a number of Visual Studio tools for doing things such as making WSP files and managing IIS.
SmartPaster Visual Studio Add-In
AJAX Control Toolkit
The AJAX Control Toolkit is a collection of controls designed for use with ASP.Net AJAX. As of SP1, SharePoint officially supports the use of ASP.Net AJAX enabled controls. In the toolkit you will find a number controls which can be used add a lot of life to your web part without needing to have an extensive knowledge how AJAX works.
SharePoint 2007 Features
This codeplex project provides a number of convenient SharePoint features which assist in the development process. For example, there is a feature which can be used to update the web.config across the entire farm which is useful for setting up things like connection stirrings and application settings. . There is a feature that can be used to configured support for the 3.5 framework which is required in order to use features such as ASP.Net AJAX. In addition to this, there is a debugger feature which can assist in the process of connecting a debugger to a SharePoint application. Beyond this, there are also tools for administrators and end users.
MOSS Faceted Search
This really isn't a development tool per se; however the MOSS faceted search project on Codeplex enables you to extend the out of the box search capabilities by allowing users more easily navigate and refine search results. In many cases, this is the first tool I look to when a customer wants a richer search experience. The source code is available for this project so you can modify it to suit your needs if you want to do something a little differently.