Wednesday 13 April 2016

Office 365 changes - new document libraries, Groups enhancements and new APIs

Microsoft recently made some changes to Office 365 which I think are particularly interesting. Of course, being an “evergreen” service things are evolving all the time, but these particular cases are interesting either because they have a big impact, or perhaps because of what they indicate for the future. I’m not sure it’s all good news, but there you go! I’ve previously talked about some the things which are now being rolled out back in December 2015 in Enhancements to SharePoint collaboration, Office 365 groups, user profiles, PowerApps and more on the way! (end 2015) but now they’re here. The ones I’m focusing on in this article are:

  • The new experience for SharePoint document libraries
  • Office 365 Groups – now with “full” SharePoint document library
  • A new approach to synchronizing user data to Office 365
These changes are now available in “First Release” tenants, and will be made generally available soon.

Modern SharePoint document libraries

Many of us knew changes in this area were coming, but the impact is pretty big in my view. At it’s core, the new doc lib experience is very similar to the user interface previously rolled-out to OneDrive for Business sites. The new experience may not be enabled by default (we’ll see), but when it is enabled the ‘All Documents’ view has the option of a ‘Grid’ view to give document libraries a much more visual experience:

Modern doc lib - grid view - small

Note that up to 3 documents can be pinned to the top area of the screen – I really like this, it’s a nice way to highlight key content in a library. When the ‘All Documents’ view is set to ‘list’ instead of grid, the pinned documents continue to be shown but the view is more appropriate to larger numbers of items:

Modern doc lib - list view - small

A big thing for me is that it’s now easy to move or copy a document within SharePoint. It was *hugely* annoying to have to download a document just to do this, but now there’s a simple interface to facilitate this:

Modern doc lib - move and copy
Unfortunately this only seems to support move/copy operations *within* the document library at the moment. I’m really hoping this gets extended, including the ability to copy a document to the same location (e.g. suffixed with “_copy” or similar) as part of a copy/modify kind of flow.
Other notable aspects include a new ‘details’ pane on the right-hand side. This is used for:
  • Viewing/editing properties of an item
  • Seeing recent activity
  • Seeing sharing details (including sharing to new people)
Here’s what it looks like when details are being edited – note the new controls, including a new taxonomy picker:

Modern doc lib - new taxonomy picker

Something else I really like is the view of ‘Recent activity’ across all documents in the library. That should be *very* useful in identifying changes as you land in a doc lib:

Modern doc lib - recent activity

As you’d expect, the user interface is quick and looks good on a mobile device too (shown here in ‘PC’ mode rather than ‘mobile’ mode):

Modern-doc-lib---mobile-vie

Other bits and pieces include a new toolbar:

Modern doc lib - toolbar
..and a new experience for sorting and filtering:

Modern doc lib - sorting and filtering
And finally, another thing to love is that document libraries can now have *links* to other things (anything):

Modern doc lib - add link 1 Modern doc lib - add link 2 Modern doc lib - add link 3
So, all good right? Well no, I wouldn’t say that..

Modern SharePoint document libraries – the downside

Whilst the new experience is great in many ways, I note the following things which, depending on your circumstances, may not be good:
  • No JavaScript or CSS customization (aside from some JSLink scenarios I believe). Basically there is no way to get your custom JavaScript to execute on this page.
  • No ribbon customizations – so in addition to any you might have implemented, any 3rd party products you’re using (including things like Nintex as far as I can tell?) will not be surfaced.
  • No branding – if the site uses a custom master page, any document libraries using the new experience will not respect this. This means you may lose branding colors and so on (aside from Office 365 themes), but also any custom global navigation your site might be using - which might be pretty vital cross-site navigation
On this last point, here’s a screenshot showing the confusing user experience – when I navigate from the Site Contents page (on the left) into the doc lib (on the right):

Modern doc lib - no custom master page - UX - small

Overall, one of the things that’s the most frustrating to clients about this is the lack of communication around this change. Sure, it’s only in First Release tenants at the moment, but the big question is why was this item not conveyed in the Office 365 roadmap? I have no answer on that one unfortunately, but I’d love to hear the Microsoft thinking on that personally. Let’s hope that the final rollout of this change happens in a way which at least gives some choice and control to how things happen.

Anyway, on to the next change I want to talk about today..

Office 365 Groups enhancements – steps towards “full” document libraries:

We all know that Office 365 Groups are the future in many ways. They tie many aspects of Office 365 together – providing conversations, file storage, calendars, a notebook, projects and tasks in Planner and so on. But one of the things holding me back from recommending their usage has been the limitations around files stored there. So far it’s been a cut-down document library (a OneDrive for Business library), and it wasn’t possible to apply content types, change versioning and content approval settings and so on. The content type thing is particularly limiting, because if you’re tagging documents in SharePoint in other locations, that wasn’t possible here. And that can screw up the search experience, because if you have search refiners to help filter results down – well, these won’t work across your files in Groups because they’re not tagged in that way.

The good news is that things are gradually being unlocked, and Microsoft are taking the first steps to allow content types in the doc lib behind a Group:

Content types in Office 365 group libraries
Unfortunately I notice it’s not all there yet. It’s not actually possible to add a custom content type at this time, because you can’t get to the site settings in order to create one, and furthermore you can’t add a list content type directly. You *can* add custom columns to the out-of-the-box ‘Document’ content type though, so that’s something:

SNAGHTML1eee5fd2

Wait! Full support for content types not there yet..

However, overall the real enterprise support is not there yet – it’s not possible to deploy content types through the content type hub, and I can’t find API coverage which would allow me to deploy content types through code (because it’s not possible to get a reference to the “site” behind an Office 365 Group). So, we still have gaps that prevent using this across many sites/libraries. Let’s hope real support for content types is coming soon, along with the ability to deploy content types in an enterprise way to these libraries.

On that note, what I really hope is coming soon is more than a document library. I’d like to see a full team site become available behind an Office 365 Group (something Microsoft have alluded to) – AND, I want to be able to easily make simple customizations to that site. For example, maybe I’ve got some specific document libraries I want to add, or any number of other tweaks which help my users in their use of the platform. It would be nice if there’s some kind of web hook that fires so I can plug in some code which adds these bits as the site behind the group is created.

We’ll see!

And the final item I wanted to highlight is..

User profile properties – bulk import API in CSOM

The other thing that caught my eye is that Microsoft have made available their Office365Tenant.QueueImportProfileProperties API which I talked about back in December (introduced in CSOM version 16.1.4727). This allows you to update user profiles in SharePoint Online with attributes that aren’t synchronized by the existing native tools such as AAD sync. So if you have some custom user properties such as Division, Department, Country, Favorite Pasta or whatever, you can now sync values into these fields from some existing data you have. It works by reading a JSON file you provide (by uploading somewhere into your tenant) – this gives you the flexibility to *get* the data from anywhere you like, so long as you can generate that file. So, whether your data is in AD, on-premises SharePoint user profiles, SAP or some other HR system, you can implement the code to run on a scheduler every night and sync from the source to the target.

This is useful because it was a gap we previously had to deal with ourselves – we implemented a custom solution to tackle this gap with some of our clients (see Improving the Office 365 SharePoint hybrid experience). However, it’s nice to know there’s now a Microsoft approach. It’s still just building blocks of code (which you need to implement) rather than a simple configuration switch, but it’s still nice to have. And since it does bulk updates, this should work better in larger organizations with many profiles to update.

For more details, start with Vesa’s very nice article here:

Summary

So that’s a quick run down of some recent changes that Office 365 practitioners should be aware of. Of course, there are many more things going on that I’m not covering here – don’t forget the rollout of Delve analytics (which I covered with screenshots in Enhancements to SharePoint collaboration, Office 365 groups, user profiles, PowerApps and more on the way! (end 2015)), the rollout of PowerApps to quickly build simple apps which work on mobile devices, and also more things that will be announced on May 4 at the Future of SharePoint event!