Thursday, March 3, 2016

SharEPoint 2013 Development Tools - Must Haves

Thank you to Tobias Zimmergren for his great post on SharEPoint 2013 tools. I've taken some of his suggestions and added some of my own to this list.
check out his original post here:
https://zimmergren.net/tools-for-your-sharepoint-2013-development-toolbox/

SharePoint Provisioning Tools

Using schema definition files to provision SharePoint artefacts is becoming a dying practice. two highly talented development teams have decided to solve the issues you would face with versioning and re-deployment of sharepoint artefacts using the traditional approach. Since SP2013 supports ever richer CSOM abilities, we can now take full control of deploying our artefacts, version control them, handle upgrades elegantly and repackage solutions more efficiently than ever before.
Some of the issues that the following libraries solve:
  • create site collections with multiple sub sites in one go
  • re-deploy changes to lists and libraries while content is present
  • apply advanced settings to lists and libraries that are not available in the schema definitions
  • apply security logic
  • apply business logic while provisioning changes to a site

SharePoint PnP (Patterns and Practices)

started with the Provisioning Engine for 2007 which would be used to create Publishing Portals and has evolved to a fully functional templating and provisioning engine for any sharepoint artefact
https://github.com/OfficeDev/PnP

SPMeta2

driven by TDD, the author of this package wanted to have a provisioning framework that was ROBUST. Tired of SharePoint stumbling over its own feet every time it tried to redeploy a list, library, content type they built a code driven provisioning framework from scratch. pretty impressive, but comes with a steep learning curve
https://github.com/SubPointSolutions/spmeta2

Visual Studio Enhancements

CKS Dev Tools

Must have for rapid testing of ghosted changes. careful, some changes require an IISreset and/or re-deployment. some don't. you'll figure it out fast enough :-)
https://cksdev.codeplex.com/

Debugging Assistant

allows you to be more specific as to what process you're recycling. speeds up the IISreset process. and believe me. you want to speed that up.
https://spassistant.codeplex.com/

ULs logs add-in

this brings the uls logs to your IDE. have not worked with it, but it looks worthy of a good trial
https://integrateduls.codeplex.com/

ReSharper

Analyses your code on the fly and applies rules that will highlight where you are breaking standards and conventions. you can add/remove your own rules to adapt your own standards to the tool. Also has built in refactoring capabilities to clean up your code with a few clicks.
https://www.jetbrains.com/resharper

SPCAF

The SharePoint Code Analysis Framework is your SharePoint version of ReSharper which will check for SharePoint specific Gotchas. very useful to keep your CSOM in shape!
http://www.spcaf.com/

Standalone tools you Must have

CAML Designer

You do not want to learn CAML inside out. you'll rather eat a frog for brekky. Using an automated tool to translate "give me all items from shared documents where the department is IT and created is within the last week" in a few seconds will make CAML a JOY!
http://www.camldesigner.com/

SharePoint Manager

Has gotten me out of very tight spots in the past when I by accident deployed very bad CAML causing endless grief. with this tool you navigate your way through the object model and can not only read out values but modify them in some instances. Also very useful to extract Field definitions and content type schema from your prototyping sites on the fly.
http://spm.codeplex.com/

SharePoint Client Browser

SPM does not work with Office365, as it reuquires the sharepoint server dlls to be loaded in GAC.  So if you want to look behind the curtains on your online tenant, or don't have local admin access tot he SP box, then try out the SP2013 client browser
https://spcb.codeplex.com/‎
(you're allowed to look, but not touch!)

SharePoint Log Viewers

this one is my favourite as it supports filtering and live logging, what it lacks is the ability to copy values from the list and filter by selection.
https://sharepointlogviewer.codeplex.com/

SharePoint Search tool

great way to learn by trial and error how to build search requests against the search API and manage the response that comes back to you.
http://sp2013searchtool.codeplex.com/

Fiddler

once started, this tool will log ALL http/s traffic originating from your computer and the responses. great tool to debug responses, errors, webs service calls, REST url format, claims issues and SAML tokens
http://fiddler2.com/get-fiddler

Reflector

when you are completely stuck and need to figure out how SharePoint works behind the scenes, Reflector will show you a C# or VB representation of the sharepoint dlls by reading the IL(Intermediate Language) from the .net assemblies and presenting the logic in human readable form. Super useful if you need to find a workaround to a SharePoint bug and can't wait for the hotfix to fix it.
http://www.red-gate.com/products/dotnet-development/reflector/

Telnet Client

by adding/removing windows features you can add the telnet client to your command line. I've found this tool great to do very quick connectivity tests when things don't seem to want to talk to each other.
i.e. test connection to the corporate SMTP server on port 25, test the SQL connection on port 1433, etc.
simply open a command prompt after you installed it and type: telnet and see if it opens a comms channel. if it does, you're good to go. if it times out, check your firewalls,  and configurations. maybe SQL is listening on a non standard port, maybe your exchange server won't accept your SharePoint server. BTW. look for EHLO on my blog to see some instructions on creating a test email message using Telnet. Useful to see if relay is properly configured on your main smtp server.

PowerShell Tools

Visual Studio Add-In

Planning on writing lots of powershell tools and want to keep them in Source Control? VS would be a great place to start. Sadly it does not do Highlighting natively. this tool will make writing Powershell in VS a breeze:
https://visualstudiogallery.msdn.microsoft.com/c9eb3ba8-0c59-4944-9a62-6eee37294597

PowerGUI

Dell have now bought up powergui, still a very nifty tool for writing and debugging powershell scripts
http://en.community.dell.com/techcenter/powergui/

SharePoint Installer

ALL installations should use this tool to install:
https://autospinstaller.codeplex.com/

REST tools

Chrome add-in: Advanced REST client

Great tool to quickly test your REST commands. Especially when you want to experiment with POST, PUT and DELETE commands
https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=en-US

PostMan

I've been using this tool for several months now and it's pretty slick! allows you to build a collection of HTTP requests that you can re-execute on a regular basis. allows you to build the input using JSON highlighting and shows the response also using different highlihgting options. the feature that makes it pretty awesome is its TEST client which will allow you to build assert statements in javascript to build your own "unit" tests using the REST calls.
it also comes with NewMan, which is the command line test runner which you can then execute automatically on your favourite build server (Jenkins comes to mind)
https://www.getpostman.com/

smtp4dev

this nifty tool will intercept all smtp traffic that was coming from your local sharepoint server (if you installed smtp on the machine and configured SP to use the local SMTP instance and not your corporate email server that is. Great to figure out if SharePoint is properly configured and also great when you're testing new workflows but don't want to bombard the users with emails. As this tool will hijack the emails being sent for you.

JavaScript debuggers

by now all browsers have pretty solid JS, HTML and CSS debugging capabilities. Just press F12 in your favourite browser and start experimenting with the DOM.
some tips: you can put break points into JS functions, breakpoints into inline JS.
But the thing I use most: being able to tweak css styles and style attributes on the fly in the browser. Nothing better than sitting with the customer and making colour and positioning changes on the canvas in seconds, then recording those tweaks and baking them back into the solution.

 

No comments: