14 May 2012

SharePoint Explorer 365

UPDATE: Newer version of the tool now available here.



Ever wanted to see what is happening under the UI in your SharePoint Online (Office 365) environment? Read on for a download link to a tool that may come in handy...

I recently came across Stefan Stanev's very useful SharePoint Explorer, which is a bit like the SharePoint Manager tool that many SharePoint developers would be familiar with. The key difference with SharePoint Explorer is that it uses the .NET Client Object Model to connect to SharePoint, so it can run on any machine with connectivity to your SharePoint environment!

The Client OM is available in SharePoint Online, but one major difference is the authentication system which I have been playing around with recently for some project work. It's not too difficult to shoe-horn the MSDN sample code for authenticating into SharePoint Online into the source code for SharePoint Explorer (which Stefan has graciously shared with the SharePoint community). Now we can get a quick and easy view of object properties which are generally hidden from view.

Disclaimer:
This tool is best used for examining the state of SharePoint objects and making quick development changes in non-production environments. As always, be careful! Although it is restricted by the boundaries of the Client OM, this tool has enough power to turn your site collection into a nasty state of affairs (e.g. if you ask it to delete your root web, it will comply and then your site will be completely broken). With this in mind:
  • Don't log in with higher privileges than you absolutely need;
  • Don't log in to production if you can avoid it;
  • Don't make any updates (especially in production) if you can avoid it;
  • Don't use it as a short cut for proper deployment methodologies; and
  • Use at your own risk!
OK, so now you've gotten past the disclaimer, here's the download for the Office 365 version of SharePoint Explorer.

When you connect (see below), there is an option to specify whether you are connecting to a SharePoint Online environment. If you are, the remaining authentication details are ignored and the code provides you with a login screen into Office 365. If the current user has an active cookies from recently logging in to Office 365 in Internet Explorer, then the tool will reuse the cookie so no additional login is required.

See Stefan's blog post entry for detail on how the tool works once you're connected. Massive thanks to him  for making the SharePoint Explorer source code available!

Specifying to connect to a SharePoint Online site on Office 365

The login form you will use if you don't already have an active cookie available for the tool to reuse

The tool in action

Let me know how you go with the tool, I've found it quite handy to track down and delete orphaned hidden Taxonomy columns created by SharePoint whilst testing my content type provisioning feature. Much faster than having to write sandbox code or custom Client OM code!

5 comments:

  1. Thanks for adjusting the tool to work for Sharepoint Online. I just wanted to try it out, but the download link doesn't seem to work. I'm getting a "forbidden (403)" error. Could you check this out?

    ReplyDelete
  2. Hi Martijn, thanks for pointing this out. I've updated the link, please try it again. It opens up in Google Docs which expands the .zip into the 4 component files, you can select File -> Save to download the .zip package at once.

    ReplyDelete
  3. Martin, can you share the source code for how you check "if the current user has an active cookie from recently logging in to Office 365 in Internet Explorer, then the tool will reuse the cookie so no additional login is required"? I am very interested in seeing how this is done as I have to duplicate this functionality for an unrelated project. Thank you.

    ReplyDelete
    Replies
    1. Hi Michael, the MSDN sample code for Remote authentication takes care of this. The .NET Framework objects created for the authentication process will reuse any cookies created in IE for the currently logged in user.

      Delete