SharePoint Framework Context Explorer web part

image.png

The new SharePoint Framework developer preview is available now and you can check out how to get started over in the Microsoft GitHub repo here: https://github.com/SharePoint/sp-dev-docs/wiki

Follow through the setup and tutorials if you’re new to the SPFx and how it all hangs together.

With the new SPFx we get given a context object as part of the core which provides properties we can leverage inside our web part. This example is super simple and is aimed just to provide an easy to consume view of the context.

The full technical document is found  here

We can run the web part in the WorkBench hosted on localhost to see something like this

image

 

When we run the same web part within a SharePoint online hosted WorkBench it updates to show something like this

image

Extend the render

We inject some additional code into the render method to display the various properties.

Helper functions

There are a couple of additional functions to help deal with the objects and enums.

Clone and extend

Hopefully this will help you get familiar with some of the properties you have access to. Feel free to clone the code from my repo SPFx Context Explorer Repo.

Smile

Office 365 settings gets a major update

image.png

The Office 365 settings area has received a major user experience update in the last month.

*note that some images have my personal data smudged, your page will display properly Winking smile

Getting to your settings?

To get to the settings pages an employee chooses the ‘Office 365 settings’ option from the suitebar menu as seen below.

image

This takes you into the settings area and loads the ‘Settings’ tab explained below.

My Account

The ‘My Account’ tab actually just forms a navigation aid to the other tabs, and is weirdly skipped from the suitebar menu.

image

Personal info

The ‘personal info’ tab allows you to view and edit contact and address information.

image

Subscriptions

Simply lists everything your organisation has provided for you.

image

App permissions

This tab lets you see all the applications from your subscription and also more importantly it shows everything you have allowed access to from the Office Store and Azure marketplace.

image

Install status

This tab gives you the ability to see where you installed software and if necessary deactivate it from that device.

image

Settings

The settings page covers a number of general settings for the employee as seen below.

image

Theme

The theme lets an employee override the default company theme with one they prefer. This might not be something the internal marketing/communications teams like to publicise to heavily.

image

Start page

This little gem allows you to pick which of the default Office 365 services is your ‘home page’ when you first log in.

image

There are some nuances around this though. It assumes you login via https://portal.office.com rather than typing a direct url to somewhere within Office 365. I also haven’t seen any way that an admin can set this for employees centrally.

Notifications

The notifications panel is also a fairly recent addition and shows up on the suitebar.

image

Here you can see that I have a new email waiting to be read.

image

You have the option to tweak which types of notifications show up and also it’s here you can turn off the notification sounds.

Software

This is where you can download and install various software from your tenant. It takes you to a separate screen as below.

image

Password

This is something worth highlighting to employees as it allows them to change their password in Azure AD. Obviously this is dependant on how IT have configured the identity underpinnings, so worth checking with them.

image

Contact preferences

A great place to turn off marketing email spam and partner marketing. I’m also a little surprised this is done at a per employee basis, I can’t imagine the average employee wanting to hear from partners. Not sure if this can be set centrally or not.

image

Language

Pick you language.

image

Next steps

Here are my thoughts about the impact of this great new experience on the different groups in your organisation.

  • IT and support
    • IT support need to be informed and understand these new screens to handle enquiries correctly. They may need to update training and self-help materials as well.
    • IT will need to check how some of these settings will behave inside their organisation considering things like password change and desktop software installation.
  • Internal communications and marketing
    • With the changes comes an opportunity to rave about the improvements in self-service password changing, the personal settings like themes, notifications and having the ability to install the desktop software from the tenant.
    • Informing the employees about the changes and maybe take advantage of the video portal to post a short 30 second sound bite about the updates. Maybe even push out a new Sway with the changes.
  • Developers
    • Knowing about changes is half the challenge in Office 365. With so much emphasis on dev APIs and new ways to customise it is often forgotten that you need to know your service as well. I bet half the organisations are asking for features to be built in SharePoint pages now available in the settings experience.

I hope you found the article useful.

The importance of naming your Office 365 tenant

There is a frequently referenced part of Romeo and Juliet where Juliet seems to argue that it does not matter that Romeo is from her rival’s house of Montague, that is, that he is named ‘Montague’. The reference is often used to imply that the names of things do not affect what they really are. When it comes to choosing a tenant name…. They really do!

Within Office 365 the choice of the tenant name is something you really need to think about from day one. Failure to do so often leads to later headaches and unhappiness.

Here are some points to consider:

  • The tenant name always appears in the SharePoint url for example https://contoso.sharepoint.com so you need to consider whether the url makes sense. Also you might be typing it a lot so choosing something short is great for users.
  • Has the right team in your organisation been involved? The name will be there an awful long time so make sure the right teams are involved in the choice, does your marketing or legal team need consulting. Does the name factor into the company growth?
  • Is the name already taken? If your desired name is in use Microsoft can contact the current owner and you may be eligible to regain that name. Often other elements of an organisation may well have already claimed the main name during a POC etc. This process can take a very long time upwards of 120 days.
  • If you choose the wrong name you will end up with a migration project entangled with rollout project.
  • You need to make sure you get the right licenses are assigned on the tenant. If the tenant gets created incorrectly it can sometimes lead to deletion and recreation which can take upwards of 60 days. This is due to the teardown process SLA for a tenant to release the name for reuse. Also Microsoft are the only ones who can perform this action.
  • The tenant name is used in cloud identities in the email address for example wes@contoso.onmicrosoft.com
  • The choice can be complicated if the company is split into groups or operating companies which have strong brand identity.

So when considering Office 365

The standard set of questions should be:

  • Do you have an Office 365 tenant?
  • What is the tenant name (i.e. <tenantname.onmicrosoft.com>)
  • Are you happy with this name to appear in the URL for (future) SharePoint Online? Has this been signed off by your comms / marketing team?

If you want to set up a new tenant for a client and want to know whether the name is free or not, use this awesome little Azure App: http://office365check.azurewebsites.net/

Document conversations does not equal hover panel post

DocConv

Back in June 2014 Microsoft/Yammer announced the arrival of a new feature call ‘Document Conversations’. Available at the time of writing in some tenants (full roll out is in progress) this feature adds a fly out panel to Document Libraries in Office365. The full details of the feature can be seen on the Office Blog here: http://blogs.office.com/2014/06/03/yammer-brings-conversations-to-your-onedrive-and-sharepoint-online-files/

Our Office365 tenant is setup with ‘First Release’ which provides upcoming updates about two weeks prior to their formal rollout. Over the last month we’ve seen the Document Conversations feature coming and going. Hopefully it will be fully completed at some point very soon. During this rollout I took the time to try out the feature and get a feel of how it works.

Document Conversations in action on OneDrive for Business

Browsing to my OneDrive for Business page nothing different appears on the display. As you can see below it still looks the same as when the ‘Site Folders’ rolled out earlier this year.

image

So to invoke the ‘Document conversation’ window you have to actually browse to the document. As you can see below a new right-hand slither has appeared with the Yammer logo and an indicator to click to expand.

image

Clicking the Document Conversations bar expands it into the right-hand pane, much like the Apps for Office do in Office 365 Pro. On first use or when you’ve not signed into Yammer you will be prompted to sign in. The screen grab is once sign in has been done. First thing to note here is it isn’t displaying any threads, that’s simply because I had newly created this document for the purpose of this article.

image

Next lets create a new ‘Yam’ from the ‘Document Conversation’ pane. At this time it allows the user to select a group to post the ‘Yam’ into, interestingly there is no way to setup a default for this. I think it would be awesome if Microsoft had provided a ‘default group’ setting on the hosting Document library settings, as i suspect the feed is using the Yammer Embed which has the ability to set a default group. That way users could configure their defaults and avoid everyone posting into the ‘all company’ group.

image

After posting the ‘Yam’ it can be seen in the ‘Document Conversation’ pane. Note how its being presented as an OpenGraph object and not a url.

DocConv

Below is an example of a reply to the conversation thread.

image

This is the same conversation thread within Yammer.

image

Posting from SharePoint to Yammer

Before the ‘Document Conversation’ feature was designed and built one of the first Yammer integrations with SharePoint was the ‘Post’ option which appeared on the document hover panels. The screenshot below shows the ‘Post’ option on the same file we just used for the ‘Document Conversation’ demo.

image

Clicking ‘Post’ launches a modal window with a url in the message body so you can type a ‘Yam’. As you can see from the screenshot this is a pretty basic UI.

image

The screenshot below is the ‘Post’ in the yammer group.

image

Comparing the two approaches

So we’ve seen how both approaches seem to work. The one thing that i found puzzling was in the Yammer group i’d seen two threads about the same document. One from the ‘Document Conversation’ pane and one from the ‘Post’ modal dialog. This didn’t make sense on first glance I would have expected both to reference the same item (url) as the OpenGraph object.

Document Conversation

The ‘Document conversation’ thread has the following JSON returned from the API.

image

The body of the ‘Yam’ contained a url of the file path with query string ?web=1 which when launched opens the document in the Office Online app.

image

The OpenGraph object is detailed below. Again not the url has the ?web=1 querystring.

image

Post from hover panel

The ‘Post’ thread has the following JSON returned from the API. We can see nothing special in the thread itself.

image

The content returned by the ‘Yam’ this time shows the WOPI (Office Online) url has been used.

image

The view of the attachments xml confirms the information.

image

So doing it again

Via ‘Post’ creates a brand new post. The ‘Post’ feature adds a brand new OpenGraph object and thus starts a new thread, rather than finding the existing thread and presenting it back to the user in the popup window.

image

Conclusion

So the two methods use different urls thus become two different OpenGraph objects.

It would be great if Microsoft could bring them into alignment so that there is one solution url so all conversations appear in the same thread.

OneDrive for Business site folders page

o4b

Recently Microsoft updated OneDrive for Business on Office 365 with some new features. Full details can be read in their blog: https://blog.onedrive.com/onedrive-for-business-updates-web-user-experience/

As you can see below a new left navigation item has appeared called ‘Site Folders’.

image

This takes you to a new screen which shows all the sites which you have followed as shown below.

image

Hovering over an item allows you to click into it.

image

Clicking in shows the libraries within the that site.

image

One final observation is that the page itself lives off the ‘Social’ list in the users ‘personal site’ (For the techies out there the MySite Personal site equivalent). So in theory it could be manipulated, although this is of course risky.

Thoughts on the UX and Features for this update

So looking at the implementation as it stands I think there are still some possible enhancements that could be made.

UI Design and considerations for your branding

As you can see from the screen grabs, the site logo is being brought into the UI for the page. So this page suffers the same issue as the ‘Sites’ page when the client branding implementation uses the same site logo for every site. This information becomes repetitive and adds little value. So if you are considering a global branding implementation maybe it would be worth considering a more statically defined ‘logo’ image and allowing the individual sites to use their own logo. This would help this page pop more visually. This global logo in the suite bar is also on Microsoft’s public roadmap for implementation.

Site naming

Site naming is brought even more to the fore for this page (It was already evident on the ‘sites’ page). Many sites are not being named with these features in mine, so when presented with a list like this and the ‘sites’ page the sites are actually hard to differentiate. So when thinking about a site naming scheme it will be important to think about this capability at the same time. How you can message this to end users, especially once the new ‘Group’ features come along and end users have the potential to be creating new site collections associated to mailbox and Yammer groups. Maybe a good method is to provision sites with names to give appropriate length urls then retro fit a more descriptive site title.

Information presented

So there is a very basic collection of information presented, Name and site logo and a followed or modified date depending which level of the hierarchy you are on. In my opinion this isn’t really as useful as it could be. It also causes some confusion with the dates where it switches from date followed to modified. It doesn’t make it clear what was modified, it also doesn’t seem to add value to the experience as you can not filter or sort by either date.

Office 365 new profile page

Microsoft recently announced improvements to the ‘Profile’ page in Office365

The image below shows what the new page looks like.

image

And when viewing someone else

image

Some observations from this update:

  • The page url has changed to ‘PersonImmersive.aspx’ which is interesting and my gut feel is this might start to help with the unification of Office365 ‘product’ stack into one platform. Think about how Yammer profiles might fit in the future, as we’ve already seen some hints that the Yammer UI will drop inside the Office365 suite bar (the blue strip at the top).
  • Documents in common is pretty awesome, more of that in another post.
  • You no longer get skills and org chart information listed. So again wild speculation time…. I would have a punt that Microsoft are beginning to recognise skills via the Social and Oslo search algorithms and will be pushing this as the way to create skills searches rather than traditional attribute driven profile searching. For me there is a balance between these approaches that needs to remain, most organisations still need formally recognised attributes as well as activity driven information about these people dimensions.
  • The profile fields in ‘edit’ have remained the same as always, in fact we have seen customisations to the native list being reverted to OOTB (ie descriptions going AWOL).
  • This change has altered the view on other ‘MySite’ host pages like OneDrive as the profile picture has been removed. To me this has made it even harder to directly navigate to your profile page unless you search.
  • The master page being used has a 16 major version.
  • For me the presence bar next to the photo is being lost in the visuals.

So that’s a quick brain dump of some random thoughts about this update.

Spotted new UI elements at SPC14

This short post gathers together a few things I spotted with the various demo’s which might give us a clue of some UI changes.

SuiteBar UI

Interesting to see what I assume is a version of the SuiteBar we can expect to see later this year.

image

Notice that Projects, Tasks and Oslo have appeared. Projects probably implies Project Online which currently hides in a context menu like in the picture of my tenant SuiteBar.

image

 

Sites page

Looks like the sites page might have gained some thumbnail images and a context menu fly out. Funny how this screen grab probably highlights nicely the issue most users will face. The site logo is either the standard SP version or will be set in the branding and thus be identical. Hopefully they will use the algorithms used inside Oslo to bring through something more engaging.

image

 

How Office Graph may change the OneDrive views

Below is a grab from the Oslo session which shows how the ‘Shared with me’ might benefit from the Office Graph enhancements.

image

Yammer SharePoint App Installation Error

YammerError

Yammer and Microsoft released a new SharePoint app available in the Office Store here: Yammer App details

This is a great first step towards better Yammer and SharePoint integration Smile

However on installing it on some sites I encountered an error:

image

If this was an on-prem installation I’m sure the ULS would be giving some huge clues as to what is up, but I was lucky enough to be using Office365 (I love the fact bugs are Microsoft’s problem to diagnose Smile). So the only way forward was to raise Service Request. So after some problem investigation with the Support guy we got to the answer.

The key reason this App fails to install is the supported locales from Microsoft. As you can see from the screenshot below, only US English is a supported locale.

image

Ok so nothing massively unusual there? Nope in SP2010 this is the only English available, but with SP2013 Microsoft finally worked out the UK uses ‘proper’ English with all it’s quirky spellings for things like ‘colour’. So with this in mind all of our tenant site collections are set to UK English as the locale, as you can see in the screenshot below.

image

So when you add the app you think everything would be fine…. oh how wrong you’d be… So the add new app pops the ‘trust’ dialog. My first comment here is that it also includes the language options, so not really only about ‘trust’ is it.

image

Second bad user experience here is that the languages selection is hidden by default. So being a typical user I didn’t read the information and clicked ‘trust it’. And that’s when the install error happens.

So what should you be doing?

image

So the killer ‘feature’ is that the ‘Trust it’ dialog is picking up the current sites default locale (in this case English UK) and installing the app with that locale. Now if you remember the Yammer App only supports English US locale, so you need to select this locale from the dropdown.

image

So now the app is installing with its supported English US locale into our English UK sites. So our users get the language they want in most of SharePoint and Yammer works in it’s supported language.

image

image

I think this is pretty bad that it defaults to install in a locale it doesn’t support and provides no feedback to the user. So this experience is littered with badly designed UX and errors which would be very easy to avoid, and thus wasting the time of both the user and MS Support. Sad smile Lets hope someone fixes this in some later releases.

Further fixes and information can be found here: http://blogs.msdn.com/b/ragnarh/archive/2013/07/02/yammer-app-for-sharepoint-amp-office-365-tips-amp-tricks.aspx

I hope this saves someone the hassle of raising a ticket for something so simple.

SPSNL 2013 Presentation

SPSNL

Saturday 29th June saw the 2013 SharePoint Saturday Holland. Another great event organised with so many quality speakers and companies in attendance. It was a privilege to be invited to speak Smile

I presented a session on Apps for Office 2013 and SharePoint 2013, the slides can be seen below. I hope everyone found the session useful Smile I certainly enjoyed presenting to such an interactive audience.

I think Apps for Office is one of the coolest new features of Office and SharePoint 2013 and my session gives a really quick overview of the Apps for Office solution space. Then the hook up between SharePoint and Office that is now possible through the demo solution.

Over the next few months I’ll be publishing a dedicated series for Apps for Office so stay tuned for more soon.

Thanks to everyone who helped organise the event.

SPC125 – Hybrid and Search in the Cloud – Brad Stevenson

SPCLogo

Brad Stevenson talks about creating a search experience which spans an On-Premises and Office365 SharePoint 2013 environment.

Search in the cloud

 

So what is the story about the cloud search capability?

Comparing SP2010 online to SP2013 online

 

Area

2010

2013

Crawl Freshness

1-2 hours <15 minutes

Query Latency

good better

Scale

was limited now much greater

Manageability

was limited more extensive

User Experience

ok big UX improvements

Extensibility

very little some new stuff

 

  • Crawl freshness is important for any search system as its important that a user trusts the results they are given. Part of this trust is that they are seeing the latest content within a timely window.
  • Query latency is already really quite snappy in SP2010 online. SP2013 moves to client side rendering approaches to improve this snappiness perception even further. This approach allows the server to share some of the rendering load with the client device improving performance for the end user.
  • Scale in SP2013 originates from the FAST technologies so brings those benefits to bear, making it a powerful and scalable platform solution.
  • Manageability within SP2013 allows more control over the schema, examples are the control over managed properties and result sources. A lot of the features which were part of the service application have now been brought down to the site collection and tenant administration levels.
  • User Experience is dramatically different with new capabilities such as hover panels, visual refinements etc. This helps a user to establish the relevance of a result without leaving the results page or downloading the documents.
  • Extensibility is improved without writing code with such elements such as the rendering templates replacing the complex XSL.

Search extensibility in the cloud

 

No code:

  • Managed properties
  • Result sources
  • Query rules
  • Result types
  • Display templates
  • Dictionaries (via the Term Store)

Code:

  • CSOM
  • REST

Packaging:

  • Import/Export search settings
  • SharePoint apps

You manage your ‘global search’ via the tenant admin interface. The only major piece of the service application settings you have no control over is the crawl scheduling. In a multi-tenant environment this really makes sense.

Journey to the cloud

 

Definition of the cloud?

 

  • Public cloud – Office 365, allows you to focus on just the software services.
  • Private cloud – Windows Azure, allows you to offload the OS and hardware to the cloud provider.
  • Traditional – All managed by the internal organisation

Moving to the cloud

 

What to move? (not just everything) and should it be everything including customisations and settings.

When to move it? How do you plan the move? Is it an all or nothing or staged co-existence.

How to move it? What tools are available?

The migration lifecycle

 

Early – 90% on-prem 10% cloud

Mid – 50% on-prem 50% cloud

Late – 10% on-prem 90% cloud

How hybrid search can help

 

User want to easily find content, they just want to find things they’re looking for and not have to think about understanding the systems structure. It is about getting their job done efficiently.

Users don’t care about migration. So don’t force users to track what’s being moved and when.

Realise that most users will never move EVERYTHING to the cloud.

Hybrid Search User Experience

 

Demo environment details:

  • On-Premises SP2013 crawling a mixture of SharePoint data and file shares
  • Office365 indexing all of its content
  • Firewall between

So the idea is that from within either environment the user can get results from either. They use query rules to ‘cross-pollinate’ results from the other environment as a block of results. Personally I’m not sure this is a great user experience. It gives a false impression to a user of which results are most important. So I remain to be convinced about using result blocks.

A neat thing to know is that the refinement panel operates over ALL returned results rather than just the local SharePoint items. Also the hover panels are dependant on the sources WOPI configuration.

Configuring Hybrid Search

 

Configuration steps:

  • Choose one-way or bi-directional
  • Deploy and configure pre-reqs
  • Configure search data settings
  • Configure search UI settings

If you are early on in your migration lifecycle a one-way where on-premises indexes Office365 might suit your needs. Or late on a one-way works for Office 365 to use on-premises. Mid-life is definitely bi-directional where the experience should be the same.

Environment Configuration

 

image

One-way or Bi-directional

 

Where will users go to search?

  • Just on-premises
  • Just Office365
  • Both

Hybrid pre-requisites

 

Non-SharePoint:

  • Reverse proxy and certificate authentication
  • Identity provider (ADFS or Shibboleth for Office365)
  • MSOL Tools
  • SSO with Office365
  • DirSync

SharePoint:

  • New SharePoint STS Token signing certificate
  • Configure a trust relationship between SharePoint on-premises and ACS
  • Configure secure store
  • Configure UPA

Configure Data Settings

 

Result source (equivalent to a federated location and scope in SP2010) pointing at:

  • URL of remote location
  • Secure Store (for client certificate)

Configure UI Settings

 

  • Query rule to show remote results in ‘Everything’ tab
  • Search vertical which ‘only’ displays results from remote location (Office365 or on-premises)

Search Centre On-Premises: Data Flow

 

image

Scenario One:

User logs into on-premises and issues a search query. It actually issues two queries. First is to the local on-premises index. The second is issued to Office365. The second query is issued through the CSOM endpoint within Office365. Identity mappings take place where the on-premises identity is mapped to the Office365 identity. Office365 then performs the query and issues the results response.

Search Centre in Office365: Data Flow

 

image

Scenario Two:

Basic flow is a reverse of on-premises except there is the introduction of the revers proxies at the perimiter to route the request back to the on-premises SharePoint. Identity is mapped from the Office365 user to the on-premises user.

This means that in both scenarios there is correct data security trimming.

Beyond the Basics

Design considerations

 

What did Microsoft consider when designing the Office365 service:

  • Crawl versus Query – Chosen to go the query root as the crawl infrastructure within Office365 was limiting. Also hundreds of thousands of tenants need to have a consistent performance maintained. Query helps to provide the best and most consistent user experience.
  • UI Presentation – Users felt it was really important to see all the results on the same page. They didn’t want to have to switch between different pages. (I’m not sure I agree with this UX being the most optimum, users are used to choosing the ‘type’ of data they want on Bing/Google eg. Images/Shopping etc)
  • Relevance and clicks – Search learns over time. Search watches which results are clicked for specific queries and adjusts over time.
  • Background compatibility – Should provide other MOSS and SP2010 on-premises hybrid. This was not possible due to some significant infrastructure and services which would have required significant investment in extending the previous SharePoint versions. One major element was the challenge of identity mapping.

Alternative Hybrid User Experience

 

The demonstration showed the example of a glossary. This is stored in a SharePoint list on-premises. It is very useful information, but is not something users query for all the time. From on-premises the demo pulls ‘people’ results from Office365 via a dedicated search vertical.

To get the on-premises ‘people’ page to use the Office365 profiles it is as simple as pointing the web part settings to use the remote result source. This means when the users click the people results it goes to the Office365 profile page. Question is what happens to the links to people in normal item results?

Hit highlighting works.

Question about multiple people stores. Answer was the suggested best practice is to host in just one location.

Result Click-Through: Options

 

image

For users on-premises accessing on-premises links are fine. Once the user is on the Office365 search results the results now have internal only urls. The click through doesn’t route through the reverse proxy anymore. So users must have that external access to the internal system.

One solution is to have a VPN or Direct Access or leveraging the reverse proxy for url re-writing.

Microsoft recommend using VPN or Direct Access as it is easier to maintain over time.

The WOPI previews are operating where-ever the content is being served from.