So you are building a new super cool app that will utilize the PnP taxonomy picker. Your customer thinks that is great, but what they don't know is that a taxonomy picker is not equal to a taxonomy picker. You should tell them...
The taxonomy picker in the Pnp Solutions library is a pretty complex story looking from a code point of view. Overall it does a good job of providing the same kind of experience you get with the built in taxonomy picker, however there are some differences between them. This post is about the "taxonomy picker battle" PnP vs SharePoint
"Ability" find terms
To me this is maybe the most important of all functionalities regarding the taxonomy picker. If users can't find the tags - it is useless.
The built in taxonomy picker in SharePoint does an OK job but lacks one fundamental thing - you can't get suggestions based on a "contains" search. If you have a term set that contains
- Something CompanyX Ltd
- CompanyX Ltd
If you start writing "Comp" using the SharePoint taxonomy picker you will only get "CompanyX Ltd" as a suggestion. The problem is that some taxonomies are pretty large and impossible for the user to know if there are any more relevant terms without scrolling through the whole list = not that user friendly.
In the PnP version I fixed this recently so you now have the option to control if you want the starts-with or the contains logic.
This can be a BIG thing for companies that for example are having troubles with duplicate terms being created. Using the contains logic would decrease the amount of duplicates since the users could find tags more easily instead of creating new ones. Remember - end users are lazy, if there is a short way to achieve something - they will go that way. So go ahead and get the latest version of the PnP source and modify your implementation to support better usability for the end users, and contribute back to the community (here is a guide to get started)!
Paging vs Scroll
SharePoint loads a few terms at a time - if you have a lot it can be painful to browse through them.
The PnP version on the other hand loads all terms - you can quickly scroll to the end of a list of 1000 terms.
Add new terms to an open termset
When using an open term set with the built in taxonomy picker you have to open a dialog, click new, and then add the term. This is not very convenient in all scenarios, in the PnP version adding a term can be done in a snap. When using this the term is added to the root of the term set, if you want to add it to a child of a child, then you can use the more time consuming but more flexible way of doing it, i.e. opening the modal dialog and clicking "new".
So if you have an open term set with many levels it might be a bad thing to let them create terms in it, since you might clutter the root level. But in any case in the PnP version you can do both even though improvements are possible.
General differences in interaction
Tabbing: In the PnP version tabbing through the contents does not seem to work. In SharePoint it does.
Enter to select In the SharePoint version you can select an item and press enter to select the term. This does not work in the PnP version.
Search in the modal dialog In the SharePoint version you can get suggestions after clicking the little term icon, opening a modal dialog that shows all available terms. This does not work in the current PnP version.
I'm sure there are some more differences out there, but the general feeling is that the SharePoint component is more robust regarding these things.
The SharePoint taxonomy picker has been running for a couple of years and is stable in it's current form as well as supported. Neither of these are true regarding the PnP version. It works well, but there are most probably bugs lurking around the corner.
"Ability" to be customized
You don't wan't to mess with the SharePoint taxonomy picker. You could replace it, but I would not mess with the original one. PnP on the other hand is up for grabs. It's both good and bad of course - but it's a fact.
Winner: PnP (if customizations are a good in your case)
Can you use the Pnp taxonomy picker within SharePoint?
Yes you certainly can, I'm doing it in one of my current projects! Is it recommended? Well that depends on the scenario...
Can you use the SharePoint taxonomy picker in a provider hosted app for example?
Well this is not really a good approach since that is wired up to the context of the "current item". You would need to do some HAXXing to get it working. Let me know if you ever tried it!
As always when using this or other components from PnP, remember to plan for the maintenance.
Is this is an exhaustive list of the differences? This highlights the most important differences, however I'm sure there are more differences regarding functionality, like support for Labels etc. If you find more differences let me know and I'll add it to the list!
We at Cognit Consulting dig the PnP taxonomy picker and would like to see it evolve - it should win the taxonomy picker battle on all fronts!
This component is an other example of the power of community - we can fix whatever we think is needed without waiting or being dependent on Microsoft or any other vendor.
If you want to help - check out this guide on how to get started with git