Skip to main content

Tools that I use & ❤️

·7 mins

Whether you’re new to working with Microsoft 365, or have been working with it for many years, I’ve gathered some of my favorite tools to help with better working with the platform, most of these are from a development perspective, but some of them might also just help you as an IT-Pro!

I’m gonna skip the obvious tools like Visual Studio (and code) - and the official generators, CSOM, The Graph Explore, Entity Framework and so on, and instead reference some of the ones you might not find in the office Microsoft guides.


PnP Tools

If you don’t know what PnP is you should really start there, PnP is a community initiative to help you as a developer not having to reinvent the wheel, and instead help you find a set of patterns and practices that’ll solve most of your problems.

PnP Samples - Just a straight up awesome compilation of samples built by the community, you’re bound to find something interesting here, some of the stuff is so good I’ve even heard of organisations simply reskinning them and reselling them, please don’t do that, give credit where credit is due, and remember Sharing is Caring!

PnP PowerShell - As the name implies this is a PowerShell library, it’s a super powerful extension to the “SharePoint Online Management Shell” that simplifies a lot of the cmdlets to the point where almost anyone can use PowerShell without much introduction.

PnPjs - is an AWESOME JS library that let’s you fluently query SharePoint APIs without having to remember the exact syntax, and helps you write cleaner code as you’ll have less random urls spread around your code that makes refactoring a nightmare!

PnP Framework - If you’re used to working with CSOM you’ll love the PnP Framework, it’s essentially CSOM wrapped with a bunch of extensions methods around it, but more importantly, a VERY POWERFUL provisioning engine, that’ll let you essentially clone sites and build templates that you can then quickly redeploy again, and again and again - the provisioning stuff is also available in PnP PowerShell as that builds on top of PnP Framework.

PnP Core SDK - Is perhaps what Microsoft would’ve built today if they weren’t bound by supporting their legacy codebase, it let’s you write code that’ll automatically switches between using Microsoft Graph and the SharePoint APIs as it’s needed, so you as a developer no longer need to know what’s supported where, you can just write your code and trust that the right APIs are being called - how awesome is that?!

SharePoint Framework reusable React controls & SharePoint Framework reusable property pane controls are two absolutely must try libraries that contain a bunch of community build controls that’ll help you quickly get going if you’re building SPFx solutions, with anything from a fully functional People Picker to a Webpart Title


CAML

I personally hate working with CAML queries, or well, I love the flexibility they provide, but I hate writing them, so I’ve made it my life goal to never write a free hand CAML ever again! - Below are some of the tools I use to aid that goal!

CamlJS - a pretty intuitive JS library by Andrei Markeev that let’s you fluently write CAML in a JS syntax à la what we know from PnPjs, there is an accompanying browser extension CamlJS Console that let’s you use CamlJS outside of a JS project, to just quickly jot out a query.

new CamlBuilder().Query().Where().IntegerField("ID").In([1,4,6,8]).ToString();

Camlex.Net - Is a pretty similar tool by Alexey Sadomov but for .NET that let’s you write out full CAML queries which is readable by the next developer that comes along, and is dynamic to the variables you use!

Camlex.Query().Where(x => new[] { 1, 4, 6, 8 }.Contains((int)x["ID"])).ToCamlQuery();

Both will give you an output similar to this

<Query>
    <Where>
        <In>
            <FieldRef Name="ID" />
            <Values>
                <Value Type="Integer">1</Value>
                <Value Type="Integer">4</Value>
                <Value Type="Integer">6</Value>
                <Value Type="Integer">8</Value>
            </Values>
        </In>
    </Where>
</Query>

The last tool I use is a webpart I built myself called Caml2Table the pull request is still pending as off now - but it’s just a simple webpart that’ll let you fire a CAML query against a random list on a SharePoint site to verify you’ve got the query you want


Browser extensions

CamlJS Console - by Andrei Markeev in an awesome browser extension that let’s you use the CamlJS library to write CAML queries really easily and fast right from within your browser.

SP Editor - by Tomi Tavela perhaps the tool I use most frequently, several times a day! - it’s a quick tool that gives you quick access to a bunch of things, from loading an SPFx debugging manifest, to having a super nice search tool in your dev tools, to switch page layouts, or even just a quick link to the app catalog, without having to guess the url, if I was Macgyver this would be my swiss army knife!


Open XML

Open XML sdk 2.5 productivity tool is a tool that was built by Microsoft to help with working with Open XML documents, unfortunately the tool disappeared of the internet for a while, it does seem Microsoft has brought it back - but I’ll also provide a download link in case they go back on that decision again, but I recommend never trusting strangers, and that includes me… so if the official link works, use that.

The Open XML productivity tool enables you to “reverse engineer” any Open XML document and have a look at not only how it’s structured, but also to “reflect code” and thereby see how the document would’ve been built if it was built using the SDK, this is really powerful when you’re editing a document with code.


VS Code extensions

SPFx Check Locale - An awesome extension by Sergei Sergeev that helps with verifying all your locale files are correct while building SPFx solutions.

SPFx Snippets - an extension by Elio Struyf that’s lets you simply write ‘SPFx-fnc’ press tab and you’ve just made a new functional component and MANY more really simple and quick snippets, easily one of the biggest time saves I’ve used.

glean - An extension I might not have install had I seen it was built by WIX, a company I despise for their ads that are all over YouTube, but I couldn’t refactor React code at even close to half the speed I can now without it, things like “extract to new component” for a selected block of code is absolutely a must have in my book, something we’ve taken for granted in .NET for years.

PowerShell - The official PowerShell extension was it for me, it killed the need for PowerShell ISE a tool that we’ve all used and loved, this does it all, and right from within VS Code.

Other musts haves include

  • An XML formatter/toolpack
  • A SCSS formatter
  • Some kind of Spell checker is nice

Honorable mentions

Fast serve - In an NPM package by Sergei Sergeev that makes serving an refreshing of an SPFx solution while debugging literally 10 times faster (4 seconds vs. 40 seconds) - just start using it!

NVM for Windows - is a tool by Corey Butler that helps you manage using different versions of node on a single windows machine, ideal for working with different version of SPFx.

git-fork - If you’re like me you know the basics of using git commands, but not much more that pull/push/commit - git fork is (IMO) the perfect client, I came from GitKraken which is awesome, but I do not want to pay a monthly license for a tool that I use outside of work - meet git fork, The awesome devs Dan Pristupov and Tanya Pristupova have managed to built a fully featured git client that for me leaves nothing to be desired, and are selling it a one-time price, THAT’S AWESOME, GO SUPPORT THEM

A huge shout out goes to Hugo, the theme I’m using congo and the Front Matters VS code extension for making building this site a breeze!