In this post, I am going to list the most used tools aligned with MS recommended practices for custom SharePoint development and administration. Please note that there are hundreds of tools available (from MS or 3rd party) in the market and the tools listed below are either MS proprietary or MS open source.
- Windows PowerShell Cmdlets: It is the scripting and administrative tool for Windows platforms; widely used from SharePoint to TFS, from Exchange to SQL Server. If you are administrating a SharePoint farm, this tool should be your best friend. The one specific to SharePoint (use of Microsoft.SharePoint.PowerShell) is SharePoint Management Shell which is introduced with SP 2010 and its latest version currently is 3.0. PowerShell scripts can be called programmatically.
- STSADM Tool: It is a command-line tool used for administrating SharePoint farm. It is used particularly for MOSS 2007. Its equivalent tool is PowerShell cmdlets that is mentioned above, and use of PowerShell instead is recommended.
- Other OOB Tools (depending on the SharePoint version):
- SPDisposeCheck: Tool used for checking if SP objects disposed according to disposing best practices. It certainly gives you primitive idea if the deployment has any memory leak issue, but requires further study, dump analysis for example. Please note that SP objects underneath uses unmanaged codes such as COM objects, and you need to pay attention to those since not disposed by .NET garbage collector (gc) automatically. For such cases, recommended practices are use of ‘using’, ‘try-catch’, and/or ‘dispose() calls. It can be used as a standalone or as an add-in for Visual Studio. Applicable in all versions.
- SP Best Practices Analyzer: Checks best-practice rules against to data collected from performance counters, codes, repositories, etc..
- SharePoint Health Analyzer: It lets you set regular and automated checks for potential configuration, performance, and usage problems on servers across the farm per health rules defined in Microsoft.SharePoint.Health assembly by default. Rule run cycles (timer jobs) can be customized.
- SharePoint Administration Toolkit: Contains kits such as Load Testing Kit, Security Configuration Wizard and User Replications for farm administrators. Available for both SP 2010 and 2007.
- SharePoint Timer Job Administration: GUI tool to manage SharePoint timer jobs (schedule, enable/disable) deployed to your SharePoint solution.
- SharePoint Manager: It lets you to explore any property in any site within the local farm. Available for SP2007, 2010, and 2013 versions from codeplex.
- Visual Studio: Visual Studio (VS) is much more than a tool; in fact it is one of the most sophisticated Integrated Development Environment (IDE). Please see here for details on developing custom SharePoint applications by using VS. The most useful tools/features with VS for SP development, I think, are listed below:
- Web Performance and Load Test: Capacity planning (measuring minimal hardware configuration of SharePoint portal with business continuity targets) is one of the integral jobs in SharePoint development. It is especially critical when the portal is integrated more and more with other platforms (SAP, CRM, PeopleSoft, Lotus, etc.) and has massive concurrent user volume. This feature is to identify the areas causing bottlenecks in the system per performance counters (processor, memory, network) with threshold values that you set. It is closely related to Service Level Agreement(SLA) or OLA (Operation Level Agreement) that you defined for your processes. It requires VS Ultimate version and Load Test Feature Pack license if test runs with 250+ concurrent users.
- Performance Profiler: It is a feature comes with VS and does performance analysis from start to end. It does explicit code-based performance analysis, so that you detect code blocks slowing down the application. It requires VS Ultimate or Premium edition.
- Visual Studio 2010 SharePoint Power Tools: It comes with additional site templates and extended functionalities. Please note that with SharePoint 2013, one of the changes is having less number of site templates. So, use of these extensions may not be a good for new developments.
- Productivity Power Tools 2012: Add-in tool that facilitates your development efforts with power commands and features that boost developer productivity.
- SharePoint Designer: It let’s you work on the site collections directly. It uses “Discover and Use” approach – no deployment efforts needed. Thus, it is easy to use and does quick fixes/enhancements, but limited compare to Visual Studio IDE aforementioned.
- AjaxControl Toolkit: It is a library of AJAX-enabled controls. It has more than 40 controls from Calendar to Accordion, from Modal Pop-Up to Auto Complete.
- Silverlight Toolkit: It includes Silverlight components that are useful if your site has complex graphs.
- Developer Dashboard: Very similarly to ASP.NET Tracing, it monitors the performance of the SharePoint page rendered. It echoes execution times in page level (per web part, SQL query, etc.). By default, It is in Off mode; it can be changed by using STSADM, Windows PowerShell, or SharePoint Foundation object model. It comes with the framework and available in both 2010 and 2013. Once it is enabled, it is displayed on any page that uses master or custom master page where the Dashboard control is included. In SP 2013, it is displayed in a prompt page whereas it is displayed within the page in SP 2010. Compare to use and analysis of ULS logs, this is much simpler and quicker.
- Microsoft Code Analysis Tool .NET (CAT.NET): It is secure-code-analysis tool that checks the custom code against to common vulnerabilities, such as cross-site scripting and SQL injection.
- DebugView: It monitors debug outputs through TCP. Usable for troubleshooting purposes. Its effectiveness depends on the diagnostic code implementation within the application.
- WinDbg: Windows debugging tools lets you analyze the code by attaching to a process at run time or through the dumps taken. Dump analysis with WinDbg is a common practice, because taking dumps is an easy task and can let you work remotely and repeatedly.
- LogParser: Command-line utility to analyze text-based logs such as IIS and Windows event logs (XML, txt, csv, etc.). Logging is one of the standard practice to record the resource and/or application related data (health, statistics, etc.). Most of the time log files are to large and complex to analyze it. It uses standard query and can produce different outputs such as text-based files or graphs.
- NetMon: Tool to analyze the network traffic (in and out) on the network adapter it bounds to. It has both GUI and command-line utility (NMCAP). Certainly useful to capture and analyze the inbound and outbound traffic when explicit package study intended.
- CLR Profiler: Tools from MS is used for tracking memory usage of managed codes in .NET applications (2.0+).
- Developing Applications for SharePoint 2010
- Developing Applications for SharePoint 2007
- Software boundaries and limits for SharePoint 2013
- Software boundaries and limits for SharePoint 2010
- Software boundaries and limits for SharePoint 2007
- SharePoint 2013 Best Practices
- Best Practices SharePoint Server 2010
- Best Practices SharePoint Server 2007