ShellBoost is a software component that allows .NET developers to easily write Windows Shell Namespace Extensions and Windows Shell-integrated Cloud Drives. Writing this type of component is a difficult and expensive task. ShellBoost makes that much easier and cheaper.

What is a Shell Namespace Extension?

Windows Explorer is a crucial component of any Windows installation, that every end-user is fully familiar with. It’s the out-of-the-box host program, over the Windows Shell, that provides a graphical and hierarchical representation of many Windows objects such as the desktop, the user’s documents, physical folders and files, or their content (like .zip files). These items are organized into namespaces hierarchies.

A Shell Namespace Extension is a virtual folder in the shell namespace, among other shell folders. When a user browses into such a virtual folder, the data is presented as a tree-structured hierarchy of folders and files, much like the rest of the Shell namespace:

Virtual Folder

The Shell’s namespace graphical representation also includes other visual information such as:
  • details views, list views, icon views
  • thumbnails and tooltips
  • property pages
  • toolbars and ribbons
Depending on the Windows version, the shell also comes with many standard end-user tools and actions, that can act on items and folders in a hierarchy, such as
  • context menus, with standard or specific items, added by other shell extensions
  • copy, paste, cut, delete, link, drag and drop
  • go to, backward, forward, level up, level down
  • grouping and filtering
  • searching

This sample demonstrates virtual items in a namespace extension with custom icons, including support for custom columns / Windows properties:
Shell Namespace Extension Screenshot

This sample demonstrates virtual items in a namespace extension, including support for property grid:
Shell Namespace Extension Screenshot

This sample demonstrates virtual items in a namespace extension, including images with thumbnail and preview support:
Shell Namespace Extension Screenshot

This sample mimics the official Windows Device Manager application:
Shell Namespace Extension Screenshot

This sample integrates files with the .7z extension in the shell namespace, just like Windows does using .zip files:
Shell Namespace Extension Screenshot

This sample mimics the Windows Registry Editor ("regedit.exe") in Windows Explorer with only virtual shell items and with full UI support:
Shell Namespace Extension Screenshot

Why would I ever want to write a custom Shell Namespace Extension?

Beyond the fact it’s just so cool because an extension tightly integrates with billions of copies of Windows running out there, here are some other reasons:
  • With a namespace extension, you can expose any data or info set to end-users, while implicitly providing them with a load of features provided by the Windows Shell (navigation, search, copy, paste, links, etc.).
  • Since most Windows users in the world know the Windows Shell / Explorer pretty well, this will considerably reduce the need for costly end-user change management and/or training for your project adoption.
  • Depending on how your data is organized, you may even end up not having to write anything else that a shell extension. Since folders and items can be fully virtual, you can use them to represent anything you want.
  • Even an item content can be created on demand. So for example, you can show an end-user a list of Excel or PDF files that don’t really exist, but that you will create on the fly when the user will double-click on them from the Explorer. These files content could be created on-the-fly from a CRM system for example.

.NET support

One of the main reasons why ShellBoost exists is simply because Microsoft recommends developers against writing in-process extensions using .NET as stated here: Guidance for Implementing In-Process Extensions and does not support it technically. Thanks to its unique architecture, writing an out-of-process .NET namespace extension using .NET is now possible, without the need to use any C/C++ or native languages, in a way that's still technically supported by Microsoft.

Files On-Demand

Windows 10 version 1709 (or "Fall Creators Update") also introduces the "Files On-Demand" feature. It allows users to see all their files stored on OneDrive from within the Windows Explorer, without having to first download these files. ShellBoost has exclusive support for on-demand technology, with or without a Shell Namespace Extension support:

Files On-Demand

If you want to build a Windows Shell integrated Cloud Drive and hesitate between the different available technologies, check out the Developing your own Cloud Drive page for a complete comparison.

Here are some images of a Files On-Demand Cloud Drives backed by Google Drive, written with ShellBoost and provided as a sample:

Google Drive with Files On-Demand technology
Google Drive with Files On-Demand technology