Category Archives: Office

Office Add-in Manifest Updates – Deployment timing and potential URL issues

cameron-dwyer-office-developer-365-logoOne 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).

cameron-dwyer-office-addin-manifest-redirect-01-manifest

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

For this we would change the SourceLocation DefaultValue from “https://www.contoso.com/search_app/Default.aspx
to “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.

cameron-dwyer-office-addin-manifest-redirect-02-redirect-web-config

Primer for Modern Office Development – start your journey here

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:

  1. The development technology for extending Office needs to run everywhere that Office does. The one run-time technology that is consistent across all of these devices is the web browser. This meant the shift to web technologies and developing web application (HTML5, JavaScript, CSS). Sure each web browser has it’s own idiosyncrasies but the web development world had been working on ways around this for many years and we now have mature frameworks for building web based applications.
  2. 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:

  1. Extending the user experience within the Office applications (i.e. an add-in)
  2. 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

https://docs.microsoft.com/en-us/office/dev/add-ins/

and for accessing user data via the Microsoft Graph

https://developer.microsoft.com/en-us/graph/docs/concepts/overview

 

Further reading

Office Dev Center

https://developer.microsoft.com/en-us/office

History of Microsoft Office

https://en.wikipedia.org/wiki/History_of_Microsoft_Office

History of Visual Studio Tools for Office

https://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Office

History of Office Online

https://en.wikipedia.org/wiki/Office_Online

 

 

Microsoft Insider Dev Tour – Sydney 2018

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.

Microsoft Graph Explorer

Adaptive Cards Visualizer

Insider Dev Tour Labs

Github repo of demos from the Create Productive Apps with Office 365 session

Github repo of demos from the Microsoft Graph session

insider-dev-tour-sydney-cameron-dwyer-mvp-graph-api-office-365-microsoft

 

SharePoint Conference NA – The photos and my takeaways

SharePoint returning to Vegas, would it work like the days of old? There is certainly something special about the SharePoint community and this conference had that tight knit community feel to it.

Vegas amazes me at the amount of people it seems to just be able to soak up without really skipping a beat, making it the perfect place for hosting a conference. There’s no transport required to venues and endless dining and entertainment options.

We had a really busy time on the OnePlace Solutions booth, a big thank you to everyone who stopped by to see what our latest products are capable of and keeping us busy. We had more quality conversations than we were expecting, and it’s great to hear peoples passion for SharePoint and Office 365 coming through in those conversations.

While there was a lot being announced at the conference, I was happiest to see metadata in SharePoint finally getting some love. I had thought that SharePoint had lost it’s way a little on the metadata front in recent years. Especially in the shift to modern UI for document libraries and lists. I believe it is the metadata that made SharePoint so valuable for building solutions on top of. So I was super excited to see the modern document library webpart receive a big overhaul in it’s support of metadata.

Lists also got a refresh and I think the ability to generate a list (and columns of the right type) by directly importing a spreadsheet is genius. I think is a fairly common work pattern for users to start playing with tabular data in Excel and at some point it becomes valuable to share – providing such a simple way of moving from Excel to SharePoint should drive adoption of SharePoint lists as the central shared location for this data and then provide a wealth options on what can be done with that data once it’s in SharePoint.

I was technically impressed (and surprised) by the augmented reality of SharePoint Spaces and the work that had been done to bring this to the masses. I think it appeals more to the content management space than the document management, file management, collaboration and business workflow process areas I typically work in.

Below is a quick video of my reaction after the keynote.

 

 

Family tech support – How to get Office for free?

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.

 

Want to know which of your leads/customers are using Office 365? Try the MX Lookup Excel Add-in

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?

01-excel-addin-mx-lookup-cameron-dwyer.png02-excel-addin-mx-lookup-cameron-dwyer.png03-excel-addin-mx-lookup-cameron-dwyer.png

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.

 

 

5 reasons why email is still king for business communication

messaging-collaboration-platforms-cameron-dwyer.png

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:

https://blogs.technet.microsoft.com/cloudyhappypeople/2017/09/28/now-it-makes-sense-microsofts-collaboration-story-in-a-single-slide/

https://www.avepoint.com/blog/strategy-blog/microsoft-teams-office-365-groups-sharepoint-yammer/

https://www.avepoint.com/blog/technical-blog/office-365-groups-vs-teams/

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

outlook-rules-stay-organised-cameron-dwyer.pngIts 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.
  • Rules – Users can create and apply complex rules to assist with organising emails

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

social-media-mess-cameron-dwyer.pngYou 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

scoail-notifications-overwhelming-cameron-dwyer.pngMost 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

locked-in-cameron-dwyer.pngThis 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.

I recently spoke with Jeremy Thake in an interview that discussed the place of email in the Microsoft ecosystem that discusses these topics and more.

Microsoft MVP Award 2018-2019 Office Development

Cameron Dwyer MVP Office Development Award

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 🙂

MVP LogoThis 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.

 

 

Newcastle Coders Group talk on Transitioning to Modern Office Add-in Development November 2017

imageI had a great time on my first visit to the Newcastle Coders Group this week. It was nice to meet some passionate developers and hear what people are up to outside of my usual Microsoft sphere.

Thanks for having me talk about modern Office add-in development. Here’s the slide deck from the evenings talk.

https://camerondwyer.files.wordpress.com/2017/11/transition-to-modern-office-addin-development-ncg-talk-nov-2017.pptx

coders-user-group-newcastle-cameron-dwyer-office-add-in-dev

Sydney SharePoint User Group – The Transition to Modern Office Add-in Development

sharepoint-user-group-community-sydney-cameron-dwyerI had the pleasure this week of speaking at the Sydney SharePoint User Group on the topic of transitioning to the modern Office Add-in development model.

We discussed:

  • The existing COM/VSTO Office Add-in development model
  • The reasons and drivers for needing a new development model
  • What the modern Office Add-in development is and how it works
  • Benefits of the modern model
  • What this transition means for Office developers
  • A look at the typical modern add-in technology stack and discussing some of the options
  • The wider Office Developer Vision (Extending Office through add-ins + accessing Office 365 data via Graph)

Thanks to those who attended and as promised here’s a link to the slide deck from the nights presentation.

Transitioning to Modern Office Add-in Development (slide deck)

sharepoint-user-group-sydney-cameron-dwyer-office-add-in-dev

%d bloggers like this: