Category Archives: Office 365

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.

 

 

Advertisements

Photos from the European SharePoint Conference 2017 (Dublin)

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

I’m talking modern Office add-in development at this months Sydney SharePoint User Group

cameron-dwyer-circleThe Transition to Modern Office Add-in Development

Microsoft SharePoint is developed by the same team responsible for the Microsoft Office desktop applications. There has always been a strong connection between these products. Up until recently, developers who wanted to integrate Word, Excel, PowerPoint with SharePoint would use the COM add-in model. But now Microsoft has a new Modern Office Add-in development model.

In this month’s session, Cameron Dwyer – CTO at OnePlace Solutions – will discuss the high level architecture of this modern add-in model, the new technologies and choices involved, transitioning developer skillsets, advantages / disadvantages of the modern model. We will mix in a bit of Azure, Angular, TypeScript, Office 365 APIs, Office UI Fabric, Authentication, and maybe some Applications Insights and DevOps.

OnePlace Solutions is a local success story. Based in Sydney, they have developed products using Microsoft Office COM add-ins.  They are one of the first companies globally to have launched add-ins based on the new model for the desktop, iPhone and Android platforms.

For more details on attending this free event in Sydney on 17 October

https://www.meetup.com/en-AU/Sydney-SharePoint-User-Group/events/242349531/

Microsoft Ignite 2017 Highlights for the Office & SharePoint Developer

What a massive week in Orlando for Office developers. So many sessions, so much new information, it really was a case of drinking from the fire hose!

Thankfully most sessions were recorded and are progressively being made available along with the relevant slide decks on https://myignite.microsoft.com/videos

If you only have time to watch one session my pick for the SharePoint/Office Developer would be Accelerate your digital transformation with SharePoint and OneDrive presented by Jeff Teper, Dan Holme, Omar Shahine, Naomi Moneypenny. This session was just non-stop announcements on what’s new in SharePoint, Office and OneDrive. Some of the announcements:

  • Office 2019 is coming (Office clients, SharePoint, Exchange, Skype for Business servers – all servers to be available on-prem) – preview due mid 2018
  • A SharePoint specific conference (backed by Microsoft) is coming back in 2018 – and yes it’s going to be in Las Vegas
  • SharePoint hub sites to group related sites together, share branding and navigation and provide rollup of some information
  • SharePoint site provisioning model to allow for scripted customizations during the provisioning process
  • SharePoint Company Theming and an online tool to help (https://aka.ms/spthemebuilder)
  • SharePoint File Preview webpart (supports over 270 file formats)
  • SharePoint Migration tool to move SharePoint content from on-prem to the the cloud (Office 365)
  • Improved external link sharing
  • OneDrive – deeper integration into Windows 10
  • Improved large list support
  • New version of the SharePoint mobile app

Going one level deeper into the Office/SharePoint developer world, here’s some of the news that came out regarding:

Microsoft Graph (Build smarter apps with Office using the Microsoft Graph (Yina Arenas))

  • Generally Available
    • SharePoint Lists
    • File Versions
    • People API
    • App-only support for OneDrive
    • Access to Outlook shared calendars, contacts and mail folders
  • In Preview
    • Graph Extensions for Azure Functions
    • Outlook Categories
    • Outlook Rules
    • Outlook Email Headers
    • Outlook Rooms

Office Add-ins (What’s new and what’s coming for Outlook add-ins (Wey Love, Harshit Kumur))

  • Generally Available
    • Outlook Add-ins for Android
    • Single sign-on API (Web clients)
    • Auto-open task pane
  • Preview
    • Single sign-on API for Outlook
    • Centralized Deployment for Outlook Add-ins
    • Adaptive card support in Outlook (OWA)

SharePoint Framework and Patterns and Practices

  • SharePoint Framework became available on-prem with SharePoint Server Feature pack 2 (this was released a couple of weeks before Ignite)
  • SharePoint Framework Extensions – custom snippets on every page (aka delegate controls) context buttons/actions, customized field rendering
  • Reusable controls and Office Fabric Core

One of the more complex areas of doing modern Office development is authentication and authorization (especially when connection back into Office 365 services). This story is becoming a lot simpler if you can go exclusively through the Graph API. Vittorio Bertocci did a very entertaining session (Office development: Authentication demystified) that really shows you an on-rails experience for how to accomplish this from many different technologies and context. It is well worth a watch and has the potential to save you a lot of time and head scratching. This area of Office development has changed drastically over the last couple of years and there is a lot of conflicting information on the web and much of it is out of date.

 

cameron-dwyer-msignite-2017-yina-arenas-graph

Yina Arenas

 

cameron-dwyer-msignite-2017-vittorio-bertocci-azure-active-directory-auth

Vittorio Bertocci

 

cameron-dwyer-msignite-2017-wey-love-outlook-extensibility

Wey Love

How to see chat message time in Microsoft Teams app on iPhone

I use the Microsoft Teams desktop client a lot sitting at my desk day-to-day and it’s great to have it on my phone. It wasn’t until this week being in Orlando for Microsoft Ignite that I noticed the Teams app on the iPhone doesn’t show the time a message was sent. I hadn’t noticed this before but maybe that’s because I would see the messages coming through in real-time. Now I’m in another country and connectivity is whenever I can grab some Wi-Fi, the lack of time against the messages makes it very confusing. Hence messages such “I’ll meet you at xyz in 30 minutes” means absolutely nothing! Have I already missed the meet up?!

microsoft-teams-message-time-iphone-cameron-dwyer

Then I stumbled upon the fact that if you swipe from the right edge of the screen to the left (and hold it) the message times magically drag in against each message. Maybe this is obvious to some but to me a very hidden and cryptic UX.

microsoft-teams-message-time-chat2-iphone-cameron-dwyer

Microsoft Ignite 2017 in Orlando – My top picks and tips

Microsoft’s premier technology conference Microsoft Ignite 2017 is quickly approaching and it’s set to be the largest Ignite conference yet (rumoured to be around 24,000 attendees).

OnePlace Solutions – Products that rock this world

I’m excited to be attending again with some of the awesome OnePlace Solutions team. OnePlace Solutions is again a sponsor and exhibitor at the conference so please come by and pay us a visit on the expo floor (booth 1724). We will be running live demos of our desktop product suite (a major release went out for this last week so you will be seeing brand new software) including OnePlaceMail, OnePlaceDocs, and OnePlaceLive.

In addition I’m super proud of the work we did earlier this year to launch OnePlaceMail for iPhone/iPad, and just last week we were a launch partner when Microsoft announced add-in availability for Outlook on Android.

opm-outlook-android-addin-officdev-512-475-cameron-dwyer

Fun & Giveaways – that are out of this world

Who doesn’t like building LEGO and winning prizes? Come and play our Lego game for your chance to win the LEGO® NASA Apollo Saturn V

microsoft-ignite-orlando-saturn-rocket-lego-cameron-dwyer

 

What’s at the Conference for Office Developers?

oneplace-solutions-logoHeaps, and heaps, and heaps. Trying to build a schedule in MyIgnite website is overwhelming with the shear number of sessions available BUT IT IS ALSO A MUST – don’t try to figure it out on the day, it will take a couple of hours to really look through the options and choose the right sessions for yourself. The conference centre is huge, so if you end up in the wrong session you could have a 30 minute walk to get to another session, not a situation you want to find yourself in. Here’s my picks for Office developers:

 

Microsoft Office 365 platform overview

Tristan Davis, Rob Howard

Learn about the latest that Office 365 has to offer developers and power users, from Microsoft Teams extensibility and the Microsoft Graph to Office add-ins and Office UI Fabric. We cover the full range of solution-building tools, from Microsoft PowerApps and Microsoft Flow to Visual Studio and Visual Studio Code. Get a demo-packed overview of the platform, and a guide to Office sessions you should see through the rest of the conference.

https://myignite.microsoft.com/sessions/55142?source=sessions

 

Make your app a native part of Office with Office Add-ins

Humberto Lezama

Microsoft Office Add-ins allow you to make your solution a native part of Office on every platform across desktop, web, and mobile applications. Learn how to build an Office Add-in, the new features we’ve recently launched and our future roadmap. This session covers how to enable native Office experiences using standard web developers tools, how your Add-in can run anywhere, and all the great distribution channels for publishing your app.

https://myignite.microsoft.com/sessions/54720?source=sessions

 

Building the modern SharePoint experience: Best practices from Microsoft for developing with SPFx

Chakkaradeep Chinnakonda Chandran, Waldek Mastykarz

With the SharePoint Framework, you can incorporate modern developer techniques to create fast, responsive components. Building on lessons from developing out-of-the-box components, in this session, we go under the hood to explore details of modern SharePoint client-side development tools to not only manage your developer environment but also give you an edge in building optimized and performant web parts and extensions. We also show how you can streamline deployment with SharePoint CDN facilities to strike the optimal mix of flexibility and performance for your projects.

https://myignite.microsoft.com/sessions/53866?source=sessions

 

Migrate your apps from legacy APIs to Microsoft Graph

Dan Kershaw, Jeff Sakowicz

Microsoft Graph is the single REST API endpoint for accessing your data in the Microsoft Cloud including from Azure Active Directory, Office 365, Intune, and more. In this session, learn about how Microsoft Graph can now enable you to create apps that were simply not possible before. Find out what is new with Microsoft Graph in addressing previous parity gaps with legacy endpoints, learn about the scenarios that you can build using Graph, and see how you can quickly migrate to using Graph.

https://myignite.microsoft.com/sessions/55419?source=sessions

 

Office development: Authentication demystified

Vittorio Bertocci

Tokens and Scopes and Protocols, Oh My! Come to this session to discover how easy it is to use the MSAL SDK to connect your applications and Office Add-ins to the Microsoft Graph, without any need to become a protocol expert. No matter what platform or dev stack you are targeting, you’ll be surprised by how little code it takes to authenticate users and take advantage of Microsoft’s rich cloud API. We cover a lot of great MSAL-focused tech, including MSAL.NET for UWP, Desktop and Xamarin, MSAL.NET for Agave plug-ins and MSAL JS. We also touch on MSAL for iOS and Android. It goes without saying – but we’ll say it anyway – that we also talk about Microsoft Graph!

https://myignite.microsoft.com/sessions/55110?source=sessions

 

Stay Updated and Hear the News as it Breaks

Follow @MS_Ignite on Twitter and use/follow the hashtag #MSIgnite to share your thoughts

Follow the 10 MVP “Community Reports”

Keep your eyes and ears open – news will be breaking all around you!

 

Enjoy Yourself and Have Fun

Take the opportunity to enjoy Universal for a private party (that doesn’t happen every day!)

See if any of the events from the Ultimate Events Party List take your fancy

Tweet your step count. I think I’m a chance of cracking 20,000 steps a day

 

I’ll be tweeting (@CameronDwyer) throughout the conference.

Hope to see you there.

 

microsoft-ignite-orlando-lego-astronauts-cameron-dwyer

How to Avoid Chrome Security Issues Developing Office Add-in Hosted on localhost

When developing add-ins for Office you are often serving the add-in from a local web server on a URL using the host name “localhost”. Office add-ins also require the web server to use SSL to serve the resources for the add-in. The Chrome security implementation will fire off a security error under most common development scenarios. This is when the domain of the SSL certificate does not match “localhost”.

You will see this problem manifest itself by causing your add-in to not start and show an error stating:

“Add-in Error  Something went wrong and we couldn’t start this add-in. Please try again later or contact your system administrator”

cameron-dwyer-chrome-debug-localhost-00b-add-in-error-couldnt-start

If you have the Developer Tools window open in Chrome you will see error messages getting output with the text:

“net::ERR_INSECURE_RESPONSE”

cameron-dwyer-chrome-debug-localhost-00a-net-err-insecure-response

There is a relatively easy workaround to this problem that you can implement on your development machine to allow Chrome to bypass this certificate check on URLs served from “localhost”.

Type the following into the Chrome browser URL bar:

chrome://flags/#allow-insecure-localhost

Enable the option:

“Allow invalid certificates for resources loaded from localhost. Mac, Windows, Linux, Chrome OS, Android

Allows requests to localhost over HTTPS even when an invalid certificate is presented.”

cameron-dwyer-chrome-debug-localhost-01-allow-insecure-localhost

After making this change you will need to restart Chrome.

cameron-dwyer-chrome-debug-localhost-02-relaunch-now

How to compare the MAPI property differences between Outlook emails

I was recently working on extracting mail from Outlook to an .msg file and later importing the .msg file back into Outlook. I was concerned that some of the non-obvious properties (there are a lot of non-visible MAPI properties stored on an email) would not be persisted or may change value in the process of the export/import. I thought this was going to be a daunting and time consuming process comparing the value of around 100 MAPI properties and playing spot the difference. Luckily the first thing I tried was the awesome OutlookSpy tool which I’ve found simply brilliant for assisting with Outlook development over the years. What I didn’t realise was that OutlookSpy has a build-in compare feature that will compare the MAPI properties of 2 mail items and highlight:

  • Properties missing/extra on the 2 objects being compared
  • Properties with different values on the on the 2 objects being compared
  • Properties with the same values on the on the 2 objects being compared

 

Steps compare the properties on 2 email messages using OutlookSpy

 

Select one of the emails to compare and select OutlookSpy | IMessage

cameron-dwyer-outlookspy-compare-01-IMessage

 

The IMessage window will appear showing all the MAPI properties on the item. From here select the Compare tab.

cameron-dwyer-outlookspy-compare-02-IMessageWindow

 

In order to compare this email against another email, the compare tab gives you a green area where you can drag and drop the PR_ENTRYID property from a different email message. So to do this leave the IMEssage window open on the compare tab.

cameron-dwyer-outlookspy-compare-03-CompareTab

 

Go and select the email you want to compare to in Outlook and select the OutlookSpy | IMessage button for this new email. You will be presented with the IMessage window and shown the MAPI properties for the new email. Locate the PR_ENTRYID MAPI property in the table (hint: click the column header to sort the table). Now drag and drop the PR_ENTRYID row from the table into the green drag/drop zone on the original IMessage window that you left open.

cameron-dwyer-outlookspy-compare-04-dragdrop-pr-entryid

 

Now the magic happens! The compare tab does a comparison of the 2 items and allows you to switch between properties with the same values, properties with different values, and missing or extra properties.

cameron-dwyer-outlookspy-compare-05-properties-same-on-both-email

 

cameron-dwyer-outlookspy-compare-06-properties-different-on-email

%d bloggers like this: