On 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 the modern environments you have to use the newest technologies like the SharePoint Framework.
You will find a very good article with all the informations 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 which SharePoint endpoints you have to use, what kind of requests (GET, POST, PUT) you have to use. PnPjs will make you 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 to switch NodeJs on a SPFx component compatible with SharePoint 2016 or 2019 that support the NodeJs version 8 only
- 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-platforms 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, rollback you 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 futur 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 favourite 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 to all available function 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 support GPG commits. The UI is simple and sometime 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 work 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 cons: 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 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 rule, 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 cons: 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 laptop, 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 exercice; 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 the personal information (birthday, parents name, family name, known location, etc.) is really risky. In addition to store passwords, this kind of tools 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 a encrypted flat file stored into the local machine; no server and no synchro with teammate (more for a 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 support 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 much files (this kind of things 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🙏🏼
Every time I will find a new tool, I will update this page to share it with you 😉
Hoping this post will help you 😉