I’ll be attending the SharePoint Conference North America conference, being held in Las Vegas next week. OnePlace Solutions are a proud sponsor and if you are attending I’ll be spending most of my time at the OnePlace Solutions booth in the expo hall so please come and say hi. I was looking through the sessions today and a few caught my eye. I’ve definitely got a leaning towards developer sessions and these are the ones I’ll be trying to get to.

While self organising and friction free organising of people into groups to work on cross divisional projects has become the hot trend of the last few years I believe the mainstay of core business solutions built on SharePoint benefit from a properly planned and designed information architecture. Take a company that is centred around running projects, if each project was to self organise and manage the SharePoint content differently it makes reporting and visibility across projects very difficult. If this function is core to your business those projects soon add up and before long you have 100’s or even 1000’s of projects that are all structured and run a little bit differently meaning not only is it hard to get visibility and reporting across projects but also for users who have to know the differences between projects and can’t just switch between projects and work with them in the same way. I see this leading to user adoption issues, frustration and decline in productivity.

Angular Elements

I develop commercial applications (Office Add-ins) using Angular so I have particular interest in the introduction of Angular Elements. My understanding of Angular Elements is that you will be able to develop a component of functionality (UI + Code) that can be packaged up and reused in any JavaScript project regardless of the framework you are using (or no framework at all). This has great promise since you get the benefit of developing using a strong JavaScript framework like angular, but that component is then portable for any JavaScript developer to use without having a dependency on angular. Pretty cool but I’ll have my ears open to how far off this technology is from being supported in mainstream browsers and if there are shims or polyfills that can make it a reality in the short term.

Customizing end-to-end modern experiences in SharePoint Online

Vesa and the PnP community he leads really is the spearhead of the latest SharePoint developer news. Vesa is also a great speaker who tells the honest story and relates well to the developer and the real world scenarios that they are often trying to solve.

Actionable messages are a great new extension point to Outlook that can really bring user productivity benefit. With the announcement of support for the Adaptive Cards standard at Build recently this could be a great session to get across the opportunities this brings to the developer.

Extending Microsoft Teams

It’s almost impossible to keep up with the rate of change with Microsoft Teams at the moment. There were lots of announcements at Build including the SharePoint Framework webparts able to be surfaced in a tab in Teams. This session should have plenty of new material and Scot has been a leader in the SharePoint community for a long time.

Mastering Azure Functions

I find myself using Azure Functions more and more for automation and non critical tasks. I’m thinking it might be time to hear from an expert about where Azure Functions are up to and whether using them for prime time commercial product and services is a reality.

Microsoft Cloud Show

Andrew Connell & Chris Johnson

Why I’m interested:

I’m a regular listener of the Microsoft Cloud Show podcast – it’s my go to place for the latest news in the SharePoint and Office 365 world. These guys don’t take it too seriously and have a good laugh along the way. Both have a long history with SharePoint and and share their opinions and thoughts openly rather than just regurgitating the news as it’s published.

SharePoint Server 2019: A First Look

While Office 365 and SharePoint online make sense for a lot of businesses, so does SharePoint on-premises and in a hybrid setup. I’m not expecting any huge surprises like wow here’s some new features that we haven’t seen in SharePoint online. What I’m interested in what’s missing when comparing SharePoint Server 2019 to SharePoint Online and what hybrid scenarios/ services/ connectors are being supported to stretch SharePoint 2019 into the cloud.

Chris has been on the cutting edge of a lot of the new developer extensibility points and APIs in the work he does at Hyperfish. It is one thing listening to a Microsoft employee discuss a new developer toolset, or API, it’s another to listen to someone who is using the things commercially and needs to provide a rock solid offering on top of it. It’s a similar path to what we have been through at OnePlace Solutions and I’m interested to hear of his experiences and the learning he has taken away from it.

I wrote a blog post a while back about the disappearing mouse cursor in Visual Studio on virtual machines that I’d connect to using remote desktop. It seems the problem is more widespread and affects most input or editing controls across many applications in the remote desktop session. For example the mouse cursor disappears in Notepad, Word, Excel and other applications.

Thankfully the fix is a pretty simple one. Simply edit the current Windows theme and change the mouse cursor.

In the Mouse properties window, change the Scheme to Windows Black (system scheme)

Like this:

I was having a look at the new Teams & Skype for Business Admin Center that is currently rolling out to Office 365 tenants. If available for your tenant it will be accessible at https://admin.teams.microsoft.com/

I was particularly impressed with the depth of information available in the call analytics portal.

From here you can drill down to users and see chat, call and meeting history along with a lot of information around call quality. In the image below you can see I’ve made 5 calls across MS Teams and Skype for Business. Little did I know it was tracking call quality, duration, and number of recipients!

It gets even more interesting when you drill into one of the meetings. You can see all of the participants, how they joined, and what each of their call qualities was like.

But wait there’s a LOT more. If I click on one of the participants I can view…

Details of the audio input and output device used

The system they were running on and what the connectivity was like. Looks like I was on WiFi for this call with a WiFi strength of 90!

And then we have a page of network statistics that scrolls for a while (this is only the first page of stats). This gives a good idea of the audio and video quality the user was experiencing.

Just in case you really wanted to geek out the advanced tab gives you a wall of techie goodness.

Ultimately I’m not sure I’d spend much time in here, but I was simply blown away by the depth of information that is captured and accessible. I’m sure if you were responsible for identifying and resolving communications issues, having this type of information at your finger tips would be very helpful.

For an overview of the new Microsoft Teams & Skype for Business Admin Center Cory Roth has written a getting started post:

Like this:

If you read my blog you are probably working with IT everyday and are familiar with the fact that all your family members (and extended family) use you as the family IT help desk – if only you could charge them your hourly rate…

A frequent family help desk call is the one you get after they have purchased a new laptop or PC. They need help to set it up and get the basic applications installed – one of which is Office.

You can point them towards buying an Office subscription, but these days it’s also worth considering what a Microsoft Live account provides for free. How much are they really going to use the “power” features of Office? I know they want Office installed because they need to feel assured that when they want to start writing a novel or need to fire up Excel for working out their finances and budget that it’s going to be there for them – but in reality it’s probably just the basic features that they require; and guess what, a free Microsoft Live account gives you online versions of Word, Excel and PowerPoint that are actually very good. So much so that I find them faster than their desktop counterparts and in the commercial world find myself using Office Online more and more to read and make changes to Office files (Word, Excel, PowerPoint & OneNote).

The sign-up page lists quite a few things but I don’t think it does a great job of telling you what you actually get, lets take a look at them:

Account – This is the identity of your user account pretty simple.

Outlook – You get an Outlook.com email address and you can use Outlook in a web browser, and native Outlook apps available on iPhone and Android (for free) which are really good. What you don’t get is a license to use the Desktop version of Outlook on Windows. The built in Windows mail app can be used to connect to your Outlook.com account however. It’s not as powerful and feature rich as the Outlook Desktop client but it’s also faster and baked into Windows 10.

Office Online – This to me is really the unsung hero of a consumer Microsoft account. What this means is that you get:

Office Lens – If you haven’t used this app on iPhone or Android it’s going to blow your mind (just a little). It turns your phone into a handheld scanner. Take a photo and it automatically straightens up the page and makes the scan look good (with document, business card and whiteboard modes).

Skype – This refers to the consumer version of Skype that you may already have used for free, well since Microsoft acquired in quite a few years ago now your Microsoft Live account has an associated Skype identity.

OneDrive – This is personal cloud storage (think DropBox). You can save files to the cloud and they are backed up and available anywhere you log in (Windows PC, Mac, tablet, web browser, iPhone, Android etc). On the free plan you get 5GB of cloud storage for free.

Windows – to get the most out of Windows 10 you really need to have a Microsoft account at the time of setting Windows up. Your free Microsoft Live account provides this Windows identity, this is who you will sign into you new laptop or PC with.

XBox Live, Bing, Store, MSN – I don’t think these are anything to rave about they are really just providing you with an identity to these services.

So we’ve covered off the services that Microsoft advertises you get with a Microsoft Live account, but once you have set it up these are the application that you actually get access to (this is accessing your account via a web browser).

In addition to what’s advertised you also get:

Calendar – Yes this is pretty much what you’d expect it to be. It’s baked into Windows 10 and the Cortana personal assistant can make use of it too

People – This is your central contact management area for your Microsoft Live account

Photos – these are stored in OneDrive but you get specific handling of photos with thumbnails, albums and some AI classification as well.

Tasks – These are basically a ToDo list but with pretty slick apps for iPhone and Android as well. This has come partly from Microsoft’s acquisition of Wunderlist which was one of the most popular mobile ToDo applications.

Sway – this is for creating rich and engaging online presentations

Flow – very useful for automating tasks and connecting systems together (even outside the Microsoft ecosystem). Example: every time you receive and email with a certain subject or from a certain sender you want to copy the attachment to a folder in OneDrive – Flow can do that for you. Flow is similar to IFTTT (If This Then That)

The real draw cards here for your family and friends though is Office online (Word, Excel, PowerPoint). The editing capabilities of the online version of these apps is now to the point that it would be sufficient for most use cases. Have a look at the ribbons options on the screenshots below, are they missing anything you’d need for day to day use?

You’re getting a lot out of the box now with your free Microsoft Live account. It’s by far the smartest move when setting up a new laptop or PC so that your Microsoft Live account is used when you are logging in and you are going to get all of these great apps for free and may even replace the need for buying a Office subscription or installing a desktop version of the Office application. Now that has to cut down your future IT help desk overhead!

It’s a fast moving space and hard to keep up with even when you are working in the space, so cut your family and friends some slack, it may take a little education but they can achieve what they used to with a minimal install and without having to part with any hard earned cash.

Like this:

Have you got a list of leads, potential customers, or existing database of people and want to identify or target those that are using Office 365? I can think of one or two scenarios where this would be handy!

Microsoft have a free modern Excel Add-in called “MX Lookup” (available in the Office Store) that takes a list of email addresses and will perform a lookup for each email address and will tell you if the backend mail system is Office 365 or not. Pretty handy right?

I’ve been using this add-in in demos and have recently noticed that it now identifies Outlook.com accounts as being Office 365 (where it originally identified these separately) so be aware that you may get a mix of Office 365 and Outlook.com users.

When developing against the Microsoft Graph you may find yourself experiencing HTTP 429 Error Codes now that resource throttling is being implemented in different areas of the Graph.

I came up against a strange and somewhat misleading one this week which is worth being aware of if you are using the Graph to access SharePoint lists and libraries using the /sites/ area of the Graph.

I had a service running which started reporting HTTP 429 error codes. I read through all the latest published documentation to try a figure out how the throttling has been implemented and what the limitations are to see what part of the code could be triggering the throttling. As you’ll find the documentation is very non-committal and mostly serves to justify why there are no specific limits and rather algorithms that dynamically determine the throttling based on a large number of dynamic criteria. All of this sounds really fancy and advanced but is not very helpful when trying to identify what could be causing the throttling issue, or what limit your code is hitting.

Here’s the Microsoft documentation links which are well worth the read:

When you implement error handling, use the HTTP error code 429 to detect throttling. The failed response includes the Retry-After field in the response header. Backing off requests using the Retry-After delay is the fastest way to recover from throttling because Microsoft Graph continues to log resource usage while a client is being throttled.

Wait the number of seconds specified in the Retry-After field.

Retry the request.

If the request fails again with a 429 error code, you are still being throttled. Continue to use the recommended Retry-After delay and retry the request until it succeeds

This advise all makes sense so that if your code is making a lot of calls (think migrating SharePoint items or doing bulk updates) that the Graph may tell you to slow down. When I was investigating my scenario however, it just didn’t make sense that the code was generating enough traffic to worry the Graph (Office 365 service). The telemetry was telling me the code had made around 2,500 Graph calls spread over a period of 24 hours and this was also spread across more than 100 users from a number of different Office 365 tenants.

Diving deeper into the telemetry a pattern quickly emerged, the 429 errors were being returned in response to a Graph call to get a list item based on a column value. Something along these lines:

This call didn’t fail all the time, if fact it only seemed to get the 429 error in less than 10% of the cases.

Having spend many hours over the past few years ‘working with’ SharePoint thresholds and query limitations on large lists and libraries, my mind started to move towards thinking that maybe the 429 error was a bit misleading and was actually failing due to the Graph API hitting SharePoint threshold limitations.

Off to prove my theory, I’ve got a library with just under 5000 items (which is the SharePoint list threshold)

Using the Graph API Explorer I can make a call that queries this SharePoint library for a specific item matching on the Title column value being equal to “upload.log” (a file which I know exists in the SharePoint library).

As expected the item is found and a Success code 200 is returned along with the JSON payload in the response body shown above. Time to prove the theory, what if I now add 2 more files to the same document library and repeat the process?

After uploading 2 more files, the library settings now indicate that we have exceeded the list view threshold.

Now executing the same query in the Graph API explorer gives us the 429 error code. Inspecting the response body we can see the additional error code of “activityLimitReached” and message of “The application or user has been throttled”

Why was this error misleading? Neither the error code or message specifically indicate the issue being related to SharePoint thresholds. The documentation and best practice articles (linked to at the start of this article) regarding this 429 response are written on the premise that the volume and frequency of calls is responsible for the error and hence the guidance to handle the error should be to incrementally back-off and keep trying until you get success. This guidance is totally misguided in the case of hitting the underlying SharePoint threshold limitation as the call will always fail and has nothing to do with the volume or frequency of calls you are making. It will fail if it’s the only call you make all day and no matter how many times you retry, it will always fail.

Visual Studio Code (VSCode) is a great tool for editing Markdown files. It’s not immediately obvious that VSCode comes out of the box with the capability to preview Markdown files and even provide a side by side live preview view so you can see the result as you are modifying the file.

In VSCode opening the file will provide the standard file editing experience (as shown on the right hand side of the image below). Without having to remember VSCode keyboard shortcuts, you can simply right click the markdown file and select Open Preview.

This will result in the preview of the markdown file being opened in a new tab.

We can go one step further using the Split Editor button in VSCode to get both the editing experience and preview side by side.

You now have a live preview, any changes made in the editor (left side) are immediately reflected in the preview (right side)

Like this:

The last few years have seen an explosion in the number of tools available for us to communicate not only at a consumer level, but also in the context of our workplace both internally within companies and externally between companies.

I primarily work with Microsoft technologies, but even within that small sphere the options are plentiful:

Email

Yammer

Microsoft Teams

Skype for Business

Skype

Office 365 Groups

LinkedIn

Outside of the Microsoft world it’s not uncommon to encounter these popular options as well:

Facebook

Slack

Google Hangouts

Twitter

I’m actually a fan and regular user of many of these other than email. I use Microsoft Teams internally quite heavily, along with Yammer for cross company communication and Twitter for more widespread public broadcast and consumption. I’m also not unknown for shooting off a quick message on Skype or sharing something or reaching out to someone on LinkedIn.

I think each of these messaging platforms has a particular area in which it shines but other areas that let it down (which is why many of us use multiple platforms). Much has been said about what platform to use for the different types of communication and what you are trying to achieve:

I’m still of the opinion that while email is by far the oldest of the communication/messaging platforms it is still the backbone of business communication and this is for some key reasons that I don’t see changing in a hurry (mainly due to commercial interests!)

1 – People want to feel in control

Its natural for people to want to be in control, to be in their comfort zone. If we take a mature rich email client such as Outlook, the user has many ways in which they can organise, arrange and maintain their communication that makes sense to them and allows them to feel in control. Since the email that resides in the users mailbox is not shared, the user has ownership (and hence a sense of control) over the email and is free to manage it without affecting others. Outlook has the following features that allow a user to gain control and stay on top of email communications:

Folders – Users can create a folder structure that makes sense to them for organising email. They are not locked in to only viewing messages in the order and “buckets” it’s presented to them in, which isn’t the case for many other platforms where it’s usually a case of one shared view that has to fit everyone.

Categories – Users are free to create and assign categories to emails to assist with later retrieval or to mark that they need to do something in response to the email

Followup actions with reminders – Emails can be flagged for followup at a specific date/time because often communication is requested something of us or requires a reply or some action in return.

In contrast, most other message system provide rigid ways of viewing messages and unless requests are dealt with in a short time frame, they are easily and quickly lost in the noise. The users have very limited options for organising the messages in a way that suits them.

2 – People want to protect themselves and their data

With email, the sending party and the receiving party both have a copy of the email that they can govern according to their information management policies. This becomes particularly important when that email contains information that needs to be treated as a record, or if important information is stored as an attachment.

The attachments on an email can be both an advantage to email and it’s Achilles heal. Too often people send around a document (that is a work in progress) and you end up with no version control and people working on multiple different copies of it. A much better scenario is to have the file stored in a central system (e.g. SharePoint or OneDrive) and share out a link to the file so everyone can work on the same file. Once the file is completed though, and especially if it is an important document or deliverable to an external company – that document is of high importance as a record to both parties. By sending the file via email both parties have their own copy to retain for their records. Imagine if you were issued with a project scope document which you agree to (which is stored in the sending companies Document Management system) – you view and read the document via a link into their system. Now it comes time to deliver the project and they fall short on delivering to the agreed scope. You go back to look at that project scope document only to find you no longer have access! Not a situation many businesses would allow themselves to get into. So while external sharing works during the collaboration process, I don’t think it would satisfy the document management or records management requirements of both sides involved.

3 – People want to get the job done, not think about which tool to use

You can rely on anyone you want to communicate with having an email address. The same can’t be said for any of the other platforms. Unless you communicate with someone regularly, you probably have no idea what messaging platforms they use, and it’s a large burden to put on someone to force them to create an account and join up to a messaging platform or social network just so you can communicate with them.

Knowing that not everyone is going to be on the same messaging platform implicitly means that this is not going to scale and you are either going to have to use multiple messaging platforms or fall back to a common platform that everyone has at times – which is email.

4 – People want simplicity and their time back

Most people I speak to would love to have more time in their day. They struggle to process all the information that is thrown in their direction and to stay on top of what they need to action and respond to. Take myself, I get messages and information coming at me from email, Yammer, LinkedIn, Teams, Facebook, Twitter (and I’m sure their are others). If I had all the time in the world I would proactively go to my email client, Yammer app, LinkedIn app, Teams app, Facebook app and Twitter app to check those unread notifications and unread messages in feeds. This works if you’ve got time to “do the rounds” constantly and respond immediately, but that’s rarely the reality. What I find happens with most people (myself included) is that for each of the messaging platforms I go into the settings and I get it to notify me of any direct messages by sending me an email, and maybe get it to send a summary email every day/week of the top things I’ve missed (if the platform supports this). Now I just have to monitor my email inbox and I’m not going to miss anything important (like a direct message to me) and I have a rich toolkit to set followup flags, categories and reminders. If I’ve got time then I might go to the individual apps and use their beautiful interfaces to stay on top of things, but the majority of the time I’m content that anything important will come to me in my inbox.

5 – People don’t want to be locked in

This I feel is probably the biggest issue underpinning the success of the current wave of messaging platforms. They are backed by companies that want to lock you in to using their service. This makes sense, at the end of the day they are running a business! This means it is in their best interest to behave in the following way:

Once you have your data stored with them, make it hard for you to take it and leave

Closed to members only – they want you to get the people you are communicating with to “join” their platform thus trying to steal users from their competitors and win more market share

Don’t integrate with other messaging platforms – how great would it be if a Facebook user could send a message to a Twitter user or Teams user? One standard for messaging between platforms? Great I don’t have to join a heap of different providers and setup all these accounts, sounds wonderful; But what do these companies stand to make out of that? It’s not going to increase their active user count.

To the contrary, no company “owns” email. A lot of companies provide email services, but the email protocol is well known and these system will all happily talk to each other and we enjoy an email environment where we can send a message to someone else without having to consider the email provider they are using. It is usually possible to export email and take it with you should you want to change email providers or systems. This type of export or change of provider just doesn’t make sense in most modern messaging platforms.

For these reasons, if I were forced to only keep one messaging platform and had to throw away the others, email is the one that would stay.

Excited, proud, honoured, humbled, grateful, stupidly happy…. all emotions that hit me simultaneously as I opened the email that gave me the news that I had been presented the Microsoft Most Valuable Professional (MVP) Award for my work in Office Development.

I’ve been incredibly fortunate to work with some really awesome people both in the community and at Microsoft through my time at OnePlace Solutions. I love sharing knowledge and hearing what others go on to do with that knowledge. While I started this blog very nervously many years ago, it has been a very rewarding effort through which I’ve received a lot of feedback and gratitude. I’m honoured that so many people subscribe, read my blog and see value in it. A big thank you to all those that have given me support, feedback, advice or simply read one of my articles 🙂

This award is given to exceptional technical community leaders who share their remarkable passion, real-world knowledge, and technical expertise with others through demonstration of exemplary commitment.