Category Archives: Office
Microsoft Teams is the hub for teamwork in Office 365. The vision Microsoft has with Teams, of bringing existing products and services together into a central hub and minimising context switching, is a vision I share in and have been fostering for over a decade. Before Teams came along I’d spent over a decade of my career working primarily within Outlook and integrating/surfacing other applications and services within Outlook to provide that hub. Outlook was (and still is in most organisations) the first application opened in the morning and the last to be closed at the end of the day. To me it has been blindingly obvious that we can help make users more efficient and productive by bringing the data and information they work with into core applications that they live inside of already, and prevent them having a plethora of applications open on the desktop and constantly switching between them. Outlook was that hub application for me.
Enter Microsoft Teams, a client built from the ground up to bring existing services, applications and product features into a central hub in the context of teams of people working together on a common goal or purpose. Finally Microsoft was no longer thinking in individual products isolated from each other and starting to realise the benefit of combining the power of all of those products for a focused purpose. In essence that is what we have all been doing for many many years, we select a mix of products that allow us to get our job done and where possible we try to integrate them because products that are integrated just make our lives easier!
It’s easy to see why Microsoft Teams has been getting some seriously good traction since it’s introduction and is set to overtake Slack.
I’m sure this uptick in usage was also helped by the fact that Microsoft Teams in now a free offering.
As with any product, it won’t magically fix your business problems simply by being installed and present on users machines. To make any product successful you will need a plan and to execute on it. To this end Microsoft has released an excellent resource in the Microsoft Teams Adoption Guide. This flipbook packs a lot of valuable information into a very polished and concise package. I highly recommend it as your starting point to a successful implementation of Microsoft Teams.
What I particularly like about Microsoft Teams is that it already has a rich extensibility story with developers being able to bring existing line of business application into the Teams client and allowing Teams to be the hub not only of Microsoft products and services but also non-Microsoft products and your own custom applications.
Thanks for everyone that came along to the Sydney SharePoint User Group this month. It was great to be able to deliver so much exciting SharePoint news following all the announcement made at Microsoft Ignite. Given Microsoft Ignite now covers far more than just SharePoint it takes a while to distil the SharePoint specific announcements from over 700 sessions that were presented over 5 days at Microsoft’s biggest conference of the year.
I’ve kept the presentation to just the User/IT Pro announcements (sorry developers I couldn’t fit all the news into a 1 hr presentation!)
Feel free to take this presentation and use it for your own user groups or internal within organisations.
As the dust settles on Microsoft Ignite for another year I’m left going back over my notes and recalling discussions I had for all those key announcements, advice and snippets of gold that will have a real impact for Office developers.
If you are looking for a high level list of announcements made at the conference, the Ignite Book of News is a good place to start although it doesn’t cover many of the announcements that were made in the Office Developer area – this book covers a lot of the Azure announcements, which most Office developers will have a mild interest in (we have to host our code somewhere!)
Here’s some of my favourite announcements:
- Call Microsoft Graph and Web APIs and deploy Extensions across your SharePoint sites
- Deploy your web parts and application pages to Microsoft Teams
- Connect across components with dynamic data capabilities
- Deliver complete applications with application pages
- Harness more of SharePoint with new Microsoft Graph APIs
- Managed access to Microsoft Graph (data connect to bulk export to Azure subscription)
- Notifications API
- Dynamics is now in Microsoft Graph
- New PowerApps templates
- Security API
- Microsoft Teams, Messages, Calendars, Files, and Folders
- In preview but suitable for production use
- Capable of reaching both v1 and v2 services
I thought this years conference was very well run and the volume of people moving about the conference centre wasn’t overwhelming. I had a lot of fun meeting new people and reconnecting with old friends. It’s great to have such knowledgeable Microsoft staff accessible on the expo hall floor (both from a Marketing and Engineering side) to discuss particular scenarios, technologies, ad bounce ideas off.
One of the critical components of an Office Add-in is the add-in manifest. This is the xml file that describes how your add-in should be activated when an end user installs and uses it with Office documents and applications. This manifest contains references to URLs where your web application resides and also to other resources for your add-in such as images to show on ribbon buttons and task panes.
Your manifest.xml file is uploaded to a central location where it is made available to users of your add-in (this may be a public location such as AppSource or the Office Store).
When users acquire your add-in a copy of the manifest.xml file is cached onto the host device and is only periodically resynced if the manifest.xml file is subsequently updated in AppSource/Office Store. I have seen this take weeks on some combinations of host products/devices.
You need to be careful if you are modifying your application and the changes involve modifications to the URLs in the manfiest.xml file. Imagine your add-in has been deployed and is in use by many users. The manifest.xml file might look similar to the fragment below (notice the SourceLocation URL on line 13).
That SourceLocation URL (line 13) is the main page of the add-in that gets loaded into the Task Pane when the add-in is launched. Lets imagine you change the structure of this add-in so that the starting page of the app is now https://www.contoso.com/apps/search/index.html
How do you go about deploying the updated manifest file that points to this new URL?
If you update the manifest.xml file with the new URL you then have to go through the AppSource/Office Store submission process to get the new manifest approved. You are far from 100% in control of the approval process so you don’t know when the new manifest will get approved and thus when the new URL will come into effect. So do you need to keep your application running at both the old and the new URL at least until the new manifest is approved? It gets a little worse than that though, it seems the deployment of a manifest change can take weeks to reach “saturation” whereby it had propagated down to all client host product caches and the old manifest is no longer being used. I can’t exactly tell you how long this process takes and if it ever fully reaches “saturation” as I’m still seeing some users hitting my service on a URL in a manifest that was superseded almost 3 months ago!
Rather than keeping your old and new application running side by side, the approach I have taken that works quite nicely is to put in place temporary redirects from any URLs that were present in the old manifest and have changed in the new manifest. I suggest creating these as temporary redirects as you will be able to monitor your traffic over time and know when you have reached saturation and you stop getting users coming in on URLs from old manifests. If you use permanent redirects, this may get cached by the client and next time the client will have done the redirect itself and you will no longer be able to track if the new manifest has been deployed or it’s an old manifest being redirected via a client side cached redirect.
How do you go about implementing temporary redirects? Well this depends on what you’ve developed your website using and how you are hosting it. In my case I am hosting the app as a Web App in Azure, redirects can be configured in the web.config file that is located in the root folder of the Web App.
Below is an example web.config file that would achieve that temporary redirection.
Lets start with a little bit of history, the year was 2008, Windows PCs and Microsoft Office had been entrenched throughout organizations around the globe. We saved all our files on a network drive (if we were smart), or SharePoint if we were really smart and had a dedicated engineer that could keep up with patching it. Sales of Apple Mac had been increasing since the turn of the century and Microsoft had built a version of Office specifically for the Mac and had it running there since 1998. The development story for Microsoft Office had almost exclusively been a Windows only experience, it was quite a rich experience with Visual Studio Extensions for Office allowing Office add-ins to be written in managed code. But I see 2008 as a pivotal year, the landscape of IT usage was about to change in a very disruptive way… Apple had just launched the first version of the iPhone.
In the decade since this moment we have seen a shift towards an always connected, productive on any device world. Microsoft Office was changing dramatically to keep pace with the demands of this changing world. Office was already on the Mac, but fast forward to today (2018) and we have:
- Office for Windows – the original and still a powerhouse with all the bells and whistles
- Office for Mac – a very mature product suite that doesn’t lag far behind the Windows offering
- Office Online – any device with a web browser can not only read but also have a rich editing experience
- Office for iOS – native applications for iPhone and iPad
- Office for Android – native applications for Android devices
As you can see in those 10 years a lot had changed, and we don’t even know where our files are physically stored anymore, they are just up there, somewhere, in the Office 365 cloud.
That lead to 2 radical shifts for Office development:
- We have an opportunity we never had before – users data stored in the Office 365 cloud (with a shiny new API to get to it – the Microsoft Graph API)
So when we talk about Office Development we talk about 2 distinct types of development:
- Extending the user experience within the Office applications (i.e. an add-in)
- A standalone application that accesses user data stored in the Office 365 cloud.
Where to from here?
The best starting place within the Microsoft documentation for developing Office add-ins is
and for accessing user data via the Microsoft Graph
Office Dev Center
History of Microsoft Office
History of Visual Studio Tools for Office
History of Office Online
The Insider Dev Tour is such a great event for Microsoft developers, you get the key announcements and latest news that came out of the Build Conference, delivered locally in a more intimate and interactive environment. Best of all it’s a free event put on by Microsoft.
I was very grateful for the opportunity to present two sessions at the Insider Dev Tour in Sydney last week.
- Create Productive Apps with Office 365
- Drive User Engagement Across all your Devices with Microsoft Graph
If you attended I hope you enjoyed the experience as much as I did. The following are links to the resources mentioned during the presentations.
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).
So what do you get when you sign up for a consumer Microsoft Live free account?
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:
- Word Online (plus native Word on iPhone/iPad and Android) – Read and pretty impressive edit capabilities
- Excel Online (plus native Word on iPhone/iPad and Android) – Read and pretty impressive edit capabilities
- PowerPoint Online (plus native Word on iPhone/iPad and Android) – Read and pretty impressive edit capabilities
- OneNote (Full Windows application plus native Word on iPhone/iPad and Android) – Read and pretty impressive edit capabilities
- 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.
Read more about Office Online.
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.