A remote SharePoint Navigation tree control designed to scale to large Enterprise environments
Posted by Cameron Dwyer
The SharePoint Navigation tree (for remotely browsing/navigating SharePoint) is a central component in the OnePlaceMail product. It is used in all major operations such as Save to SharePoint, Open from/Insert from SharePoint, Preview SharePoint content, Managing favorite SharePoint locations. Being able to quickly find the right location in SharePoint, directly from desktop applications, is one of the key reasons OnePlaceMail has been adopted so openly into organizations. Core to this capability is the OnePlaceMail Navigation tree.
The primary purpose of the tree is to allow you to browse your SharePoint environments.
Here’s the features we baked into the tree at a low level to ensure we could build a scalable tree for enterprises.
- Support multiple SharePoint servers in the same tree (accessing them all at the same time)
- Support any mix of SharePoint servers at the same time (2007, 2010, 2013, SharePoint Online, Office 365, on-premises or hosted)
- Zero configuration – just give the tree a URL to SharePoint. The tree will figure out what type of server it is and the best way to communicate with it. Those irritating things like security are also hidden away (if possible you just don’t see any security prompts). Worst case the tree will ask you to login if it needs credentials.
- What a user see’s in the tree is driven 100% dynamically by SharePoint security.
- All communication with SharePoint is done asynchronously (in the background). This means the tree is silky smooth and responsive, even if the SharePoint server isn’t.
- Optimized client/server communication – minimum data payload and real-time loading at each level of the tree as nodes are expanded
- Large SharePoint environments sooner or later come up against SharePoint throttling and threshold limits. We designed with these in mind (think libraries with thousands of folders or document sets)
- Support for browsing over sites/libraries/folders where user only has read only access to allow saving of content into a lower level folder where user has contribute access
Advanced node filtering
As the SharePoint environment grows it is quite typical for a certain level of the tree structure to grow in line with some business process being modelled. Here are some examples:
If you create a site per project (or client) you end up with a lot of sites at a particular level in your SharePoint environment. Similarly you may end up with lots of libraries in a site, or the one we come across most frequently, a large number of document sets within a library.
For the user trying to find a location at this level, it creates a situation where they are forced to scroll through a long list to find the site/library/folder/document set they are looking for. What we have implemented in our navigation tree, is a type-ahead filter on any node in the tree. This will start filtering all nodes below by the characters as you continue typing. In the example below a document library is used to store legal matters. One document set is created for each legal matter, and this particular library has over 10,000 legal matters (document sets). As you can see in the screenshot, just by typing “77”, the legal matter document sets have been filtered from 10,000 to 10 (not bad for 2 keystrokes). We’ve also made the filter type configurable so it can perform a “starts with” filter or a “contains” filter. This filtering is available at all levels, on all node types in the tree so use it to filter a long list of sites or libraries as well and folders.
If you’ve been somewhere in SharePoint recently, then there is a good chance you’ll want to go back. The navigation tree will automatically remember recent locations so you can quickly get back to them. These recents aren’t just static locations, you can expand them and filter them just like any other node in the tree.
The organisation can only structure SharePoint in one single hierarchy (essentially in a tree). This one global structure of SharePoint rarely fits with how individuals see SharePoint. What we’ve done here is to allow a “My OnePlaceMail” area in the tree where a user can bookmark their own favorite locations from anywhere across any of their SharePoint environments. We’ve also given them the ability to create folders to organize and arrange these favorite SharePoint locations. What this delivers to users is the ability to setup a mini tree of SharePoint that reflects how they see SharePoint. This gives efficient access to just those areas of SharePoint that are relevant and removes the clutter of other areas of SharePoint. Similar to recents, these aren’t just static locations, you can expand them and filter them just like any other node in the tree.
Create New Folders and Document Sets
What good is a tree that doesn’t grow! Based on SharePoint settings and security you can simply create folders and/or document sets directly within the tree using the context menu on the tree node. This isn’t limited to a simple input for folder name. The screenshots below show the creation of a custom Legal Matter document set and completion of properties for the new document set (all dynamically read from SharePoint – zero configuration).
Search for locations rather than browsing
Sometimes the browse metaphor for navigating SharePoint just isn’t very efficient, rather than browse we have given the option to also use a search metaphor for finding locations in SharePoint, this works well in certain scenarios:
- Large SharePoint environments
- Areas of SharePoint where you are not familiar with the hierarchy structure
- When you know the exact location in SharePoint and search is faster than navigating to it
- Finding locations to save to
- Finding a site collection (as site collections have different top level URLs you often cannot browse them, you have to know the top level URLs to begin with). If you create a new site collection per client/customer/project and therefore have a large number of site collection, being able to find the site collection quickly via search in the tree is brilliant
- Finding locations across site collections
A key concept here is in the navigation tree we are searching for locations within SharePoint not content. To explain that a little bit, consider your conventional search via the SharePoint UI. This is designed for finding content e.g. documents, files. The navigation tree displays SharePoint hierarchy (or locations such as Sites, Libraries & Folders) not content. So unlike a normal SharePoint search for content, in the tree we are actually trying to find the location or container in which to store content or in SharePoint terms:
- Site Collections
- Folders (within a list or library)
- Document Sets (within a library)
The scope for the search is dynamic based on the selected location in the tree when the search is performed. For example, if you select the “Intranet” site collection in the tree, then only the “Intranet” site collection is searched. Likewise if you select a specific document library, then only that library is searched. This scoped searching works to restrict scope to a site collection, site, library, or folder/document set.
The converse of performing a search restricted to a scope is to perform a “farm wide search”. This performs a search across all site collections in the farm and as it returns locations it can be used to find site collections themselves.
Switch from search result to browse
The search feature for finding location works really well but what makes it simple awesome (just my opinion) is that we’ve allowed you to take a search result and then switch back to the browse navigation metaphor to explore that location further. This is really, really powerful. For example you may have a SharePoint environment where you create a new site per project and there are tons of these project sites scattered across multiple site collections. You can now do a simple search in the tree to find the site then drill down within the site to find a document library (which is actually where you would want to save or open files from).
The capabilities of the Navigation Tree make it scalable to fit any SharePoint environment from the very small to the very large and deliver a slick, modern, responsive interface to SharePoint. The tree control continues to evolve with each release of OnePlaceMail and we certainly have big plans to take it forward even further.
Download an evaluation of OnePlaceMail Enterprise and give the tree a go for yourself (it’s a client only 3 minute install)
This article was written based on OnePlaceMail Release 6.6 – read other highlights of this release