[via Paul Andrew’s blog]
SPDisposeCheck is a tool to help SharePoint Developers follow memory management best practices when using the SharePoint API with IDisposable objects including SPSite and SPWeb. This tool is not supported by Microsoft and is recommended to be used on Developer workstations and not on production SharePoint Server installations.
It was released yesterday at http://code.msdn.microsoft.com/SPDisposeCheck
The tool reviews a .NET Assembly (DLL or EXE) and evaluates SharePoint API’s used in that assembly. It will produce a report identifying where code doesn’t follow best practices for memory management in SharePoint. It may not find all memory leaks in your code and it may produce false positive results but it does it much faster than you can review source code yourself. The tool checks for guidance published in an update to the MSDN Article (Best Practices: Using Disposable Windows SharePoint Services Objects) that describes the best practices for this area of SharePoint development. This guidance applies only to customers building custom software that they compiled to .NET assemblies that make use of SharePoint API calls. While these messages need expert evaluation in order to determine if the software is not performing properly, in some cases just running the tool on your custom code can lead you to simple fixes that improve the quality and performance of custom code on SharePoint. Customers who are currently experiencing difficulties with memory management in their custom applications should review the guidance listed above. Customers who are currently experiencing difficulties with Microsoft Office SharePoint Server 2007 should contact their regular Microsoft Customer Support Services contact, or refer to https://support.microsoft.com.
You are encouraged to discuss usage of this tool on the SharePoint Developer MSDN Forum. You can also provide feedback directly on the CODE.MSDN site for SPDisposeCheck where we published it. We value your feedback on how useful this tool is.
We plan to use Roger Lamb’s blog as a place to update the latest guidance for specific cases that come up – and I will also post specific topics on my own blog.