In my previous post "The tools for a SharePoint developer - Part 1" I mostly wrote about the developer infrastructure and basic tools to execute some scripts to manage your environment.
In this post, I will write more about the tools to help the developers with their developments.
If you are developing with modern environments you have to use the newest technologies like the SharePoint Framework.
You will find a very good article with all the information about what you have to install and which version you have to use, here:
I will not let you just with this information, I will also give you some additional tips that can be useful for your developments:
- pnpm: I chose this one in the first place because I am using it as often as possible and it works very well. If you do not want your SPFx package to take too much space, this solution will allow you to decrease drastically the number of files and the size of your SharePoint solution package
- externalize: like pnpm, this solution allows you to generate a lighter package than just simply builds it and compresses all files in the same container .sppkg; this solution is much lighter than pnpm because all or part of the npm modules are loaded directly from a CDN. You will find a great video from a PnP Community call performed by Vincent Biret on Youtube
- PnPjs: a great Framework that will allow you to save an incredible time of development and avoid you thinking about which SharePoint endpoints you have to use, what kind of requests (GET, POST, PUT) you have to use. PnPjs will make your code clearer (and which should be used in moderation)
- NVM: can be useful if you want to work with the latest version of NodeJs supported with SPFx (v10) for SharePoint Online only and if needed, allows you to switch NodeJs on an SPFx component compatible with SharePoint 2016 or 2019 that support the NodeJs version 8 only (see NVM for Windows)
- Fluent UI: to be compliance with the standard UI and with Microsoft 365 interface
#5 Visual Studio Code
If you have to install a code editor, Visual Studio Code is the tool you have to install because:
- there is a large community of users and developers
- it is really light and quick
- it supports a lot of languages and solutions
- you can manage the conflicts and git actions directly on it
- it is cross-platform supported
- several shortcuts to make your life easier
#6 A repository
This is certainly the best thing you should use: a repo.
Even if you are working locally, you can have a local repository based on git that allows you to see all changes, roll back your code based on a version, and maybe save your life 😉.
If you want to share your code, work in a team, you must use a specific platform to do that. Below, a small list of platforms that can be used in enterprise and I often see them or work with them:
- GitHub: the most popular for private, enterprise, or community projects
- GitLab: maybe the best alternative to GitHub that can be self-hosted too
- Azure DevOps: currently, the future of the pure Microsoft Online solution to host your code is uncertain after the acquisition of GitHub but still an awesome platform with the best interface to manage projects, pipelines, backlogs, etc.
For more alternatives, I found a good blog post talking about this:
#7 Git Clients
Before having to pay for access to it, Fork was my favorite one. Super user-friendly, easy to use, fast, and support GPG commits. If like me, you are looking for a free and cross-platform (Windows and Mac OS at least) Git Client, here are some potential alternatives that I have tested:
This list of alternatives excludes the partial freeware softwares (ex: GitKraken that is not free for the enterprises and no open-source projects)
- Git command lines: not easy for a beginner and even for an expert sometimes but totally free and you can access all available functions of a Git repository. In addition, if you are familiar with Git commands, you can take a look at GitHub CLI that is extremely powerful and can save you a lot of time
- GitHub Desktop: works with several repositories (tried with GitLab and local Git) and supports GPG commits. The UI is simple and sometimes too simple... It is still a good client to manage your projects
- SourceTree: maybe the greatest alternative to Fork. The interface is user-friendly, easy to use and allows you to access advanced settings of the repository to enable the GPG signing commits and so much more. The only thing is that you have to create an Atlassian account to use it
- Visual Studio: all editions of Visual Studio (Code, Community, professional) include a Git client. If you are used to working with it, you can keep it
- GitAhead: an open-source solution that allows you to manage several identities and repositories at the same time. It contains a lot of small bugs but it is a young app. I am keeping an eye on it because, in the future, this solution might be very interesting
Here, a list of GUI Clients for a larger overview:
#8 ResX Resource Manager Standalone
I was using the extension of Visual Studio on this project when I was developing WSP projects for SharePoint On-Premise and now I am still using it as Standalone with VSCode.
This tool is extremely useful when you want to manage ResX files; the ResX files are still used when you work with PnP Provisioning.
Only one con: it works only with Windows OS 😢
#9 SharePoint Designer 2013
Even if SharePoint Designer is deprecated, it is still a great tool to manage and access some "hidden" features.
#10 SharePoint Client Browser (SPCB)
For a developer, this tool turns really useful to browser all SharePoint objects and shows all properties even the hidden ones
#11 CAML Query "helper"
For a developer who wants to create some advanced CAML queries, this kind of tool is really helpful, and maybe even necessary
- CAML Designer: (my favorite one 😊) https://www.biwug.be/resources
- U2U CAML Query Builder: https://www.u2u.be/software
#12 SharePoint Search Query Tool
Creating a SharePoint search request can be challenging... this tool will save you a lot of time
Opening a log file while being used and updated by another script or application can make it impossible to read or to update in real-time. This portable tool allows you to open some log files in read-only mode and to view the log in real-time and so much more... you can highlight some lines based on some rules, support encoding, etc.
#14 Screen capture
If you need to take a screenshot of the whole SharePoint page with a lot of content you can take several screenshots and add them one after another or add this extension to your Microsoft Edge or Google Chrome browser
#15 Cmder | Console Emulator
If you do not like the Microsoft PowerShell console or the Visual Studio Code terminal or if you are more familiar with the Unix console, this tool can help you. In addition, I recommend it because it is case sensitive and it can be useful to avoid some build errors due to the case of files (true story ^^)
#16 A table of HTML special char
When you have to display special chars, it is not recommended to write them as is into the code and because it is not easy to remember all correspondences, find here a table of special chars https://dev.w3.org/html5/html-author/charref
#17 Page Diagnostics tools for SharePoint Online
The user experience is one of the keys for the adoption and satisfaction, this is why a SharePoint page that contains OOB components and custom ones should not be too slow and all content should be close to the Microsoft recommendations. This tool is great to provide a report of your pages
Only one con: it works only with SharePoint Online
When you are developing a component, you have to install some npm packages globally or locally; when you change the environment (other laptops, other OS, pipelines) you can be confronted with some issues:
- Case sensitivity of file names (Windows and Mac OS are not case sensitive)
- Missing dependency(ies)
- Environment version
A tip to avoid some issues is to try to build the solution on another platform. Docker lends itself well to this exercise; use a NodeJS container mapped with the folder of your solution and build the solution from the container directly
Here some other tools that have nothing to do with SharePoint but can be really useful:
# Password Manager
Passwords are critical for professional and personal usage. Using the same password or a password based on personal information (birthday, parents' name, family name, known location, etc.) is really risky. In addition to store passwords, this kind of tool can generate random string passwords and so much more
- KeePassXC: the latest version provides a very cool UI, in addition to a lot of features like Auto-Type that works very well. The information is stored into an encrypted flat file stored into the local machine; no server and no synchro with teammate (more for personal usage)
- Bitwarden: my new favorite tool 😁 compatible with iOS, Android, Windows, Mac, and several browsers (extension). Totally free when the server is self-hosted; very competitive if you choose the cloud solution. It is open-source and supports CLI
- Azure Key Vault: the best tool for your scripts or applications hosted on your Azure environment
- 1Password: the only cons are the following ones: this tool can not be self-hosted and the pricing plan is not really competitive; despite these points, this tool is robust, performant, and cross-platform
I choose to list these tools based on several criteria:
- Support TOTP (except Key Vault)
- I am using it for personal or professional usage
- Useful features
# AD Explorer
This tool can be useful in enterprise to check the user profiles in your Active Directory and to check if the information is the same on the SharePoint profiles for example
# Puran File Recovery
After having deleted a folder that contained some files (that should not be here) and emptied all my OneDrive trashes, I realized after a couple of minutes that I had deleted too many files (this kind of thing can happen to everyone 😁)… I spent part of my evening trying to restore the data, found a tool to recover them, and before giving up, I found this free tool that allowed me to recover all files🙏🏼
This kind of tool can save you a lot of time when you must merge folders with several files.
How that can happen?
In my case, I forget sometimes that I already created a folder this some files and I create a new one until I find again the old one 😑 Ouch! Do not panic, it is existing some tools that can help you to identify the changes and merge the files to finally have one folder up-to-date:
- WinMerge: maybe the most known tool for Windows
- DiffMerge: a cross-platform alternative of WinMerge
- FileMerge: for MAC OS included in XCode
Every time I will find a new tool, I will update this page to share it with you 😉
Hoping this post will help you 😉