Quantcast
Channel: Cameron Dwyer – Cameron Dwyer | Office 365, SharePoint, Outlook, OnePlace Solutions
Viewing all 114 articles
Browse latest View live

How to edit Markdown files in VSCode with live preview of changes

$
0
0

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.

vscode-markdown-preview-01-open-preview-cameron-dwyer.png

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

vscode-markdown-preview-02-markdown-in-visual-studio-code-cameron-dwyer.png

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

vscode-markdown-preview-03-split-editor-markdown-in-visual-studio-code-cameron-dwyer.png

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

vscode-markdown-preview-04-live-preview-editing-markdown-in-vscode-cameron-dwyer.png


Microsoft Graph API, Throttling & SharePoint Lists/Libraries – HTTP 429 Error Code

$
0
0

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:

Microsoft Graph throttling guidance

Updated guidance around SharePoint web service identification and throttling

Avoid getting throttled or blocked in SharePoint Online

(Azure) Throttling pattern

Most of the above advice is summarised in this section I took from one of those official documents on handling throttling with the Graph API (Feb 2018)

Best practices to handle throttling

The following are best practices for handling throttling:

  • Reduce the number of operations per request.
  • Reduce the frequency of calls.
  • Avoid immediate retries, because all requests accrue against your usage limits.

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.

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

  2. Retry the request.

  3. 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:

https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?filter=Fields/Title eq 'testitem'

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)

MS-Graph-API-Throttling-00-Large-SharePoit-Library-Threshold-Cameron-Dwyer.png

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).

MS-Graph-API-Throttling-00a-Get-SharePoint-Item-By-Field-Value-Cameron-Dwyer.png

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.

MS-Graph-API-Throttling-05-Large-SharePoint-Library-Exceed-Threshold-Cameron-Dwyer.png

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”

MS-Graph-API-Throttling-06-Activity-Limit-Reached-Cameron-Dwyer.png

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.

 

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

$
0
0

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.

 

 

Family tech support – How to get Office for free?

$
0
0

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.

 

Microsoft Teams Call Analytics Portal in Office 365

$
0
0

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.

cameron-dwyer-ms-team-admin-centre-00-call-analytics-portal.jpg

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!

cameron-dwyer-ms-team-admin-centre-01-call-history.jpg

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.

cameron-dwyer-ms-team-admin-centre-02-meeting-details-and-participants.jpg

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

cameron-dwyer-ms-team-admin-centre-03-calls-statistics-device.jpg

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!

cameron-dwyer-ms-team-admin-centre-03-calls-statistics-connectivity.jpg

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.

cameron-dwyer-ms-team-admin-centre-03-calls-statistics.jpg

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

cameron-dwyer-ms-team-admin-centre-04-advanced-calls-statistics.jpg

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:

http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2018/05/01/getting-started-with-the-new-microsoft-teams-amp-skype-for-business-admin-center.aspx

How to fix mouse cursor disappearing on Remote Desktop

$
0
0

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.

remote-desktop-cursor-disappear-not-visibile-input-cameron-dwyer

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

remote-desktop-mouse-cursor-disappear-not-visibile-input-02-themes-mouse-cursor-cameron-dwyer

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

remote-desktop-mouse-cursor-disappear-not-visibile-input-02-Windows-black-scheme-cameron-dwyer

Say hello to your cursor when editing text again!

SharePoint Conference North America – The Sessions that Interest Me

$
0
0

cameron-dwyer-sharepoint-conference-north-america-mvp-march-2018I’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.

cameron-dwyer-sharepoint-conference-north-america

6 Tips to Perfecting Your SharePoint Game With Structured Content Management

By Mike Miller

https://sharepointna.com/#!/session/6%20Tips%20to%20Perfecting%20Your%20SharePoint%20Game%20With%20Structured%20Content%20Management

Why I’m interested in what Mike has to say:

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

By Rob Wormald

https://sharepointna.com/#!/session/Angular%20Elements

Why I’m interested in what Rob has to say:

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

By Vesa Juvonen

https://sharepointna.com/#!/session/Customizing%20end-to-end%20modern%20experiences%20in%20SharePoint%20Online

Why I’m interested in Vesa’s talk:

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.

 

Develop and deploy Outlook Actionable Messages for optimal user productivity

Julie Turner

Why I’m interested in Julie’s session:

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

Scot Hillier

https://sharepointna.com/#!/session/Extending%20Microsoft%20Teams

Why I’m interested in Scot’s session:

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

Bob German

https://sharepointna.com/#!/session/Mastering%20Azure%20Functions

Why I’m interested in Bob’s talk:

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

Bill Baer & Hani Loza

https://sharepointna.com/#!/session/SharePoint%20Server%202019:%20A%20First%20Look

Why I’m interested in this session:

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.

 

Zero to Hero with Microsoft Graph – real-world lessons from 1B+ api calls

Chris Johnson

https://sharepointna.com/#!/session/Zero%20to%20Hero%20with%20Microsoft%20Graph%20-%20real-world%20lessons%20from%201B+%20api%20calls

Why I’m interested in this session:

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.

SharePoint Conference NA – The photos and my takeaways

$
0
0

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.

 

 


View My Office 365 Apps (add-ins) and remove consent

$
0
0

If you would like to see what add-ins and other apps you have consented to (and what permissions you have granted) you can visit this magic URL

https://myapps.microsoft.com

You should see a list of all add-in and apps from where you have the option to ‘Remove’ or ‘Get Info’.

remove-consent-office-365-addin-app.jpg

 

Selecting ‘Get Info’ lists all the permissions granted:

consent-permissions-office-365-addin-app.jpg

Microsoft Insider Dev Tour – Sydney 2018

$
0
0

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

 

Primer for Modern Office Development – start your journey here

$
0
0

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

 

 

How to Inspect Dynamic HTML Elements (that keep disappearing!) in Chrome

$
0
0

I still find styling HTML elements difficult at times, trying to figure out where the styling is being inherited from and exactly which elements I need to apply styles to. The Developer Tools in Chrome go a long way to assisting with this. For this tip I’ll assume you are familiar with Chrome Developer Tools for inspecting HTML elements and CSS styles.

What I wanted to focus on was those frustrating elements that only exist on the page (in the Document Object Model) while a certain element has the “focus”. This often happens with navigation menu options or dropdown controls, where you have the menu options or dropdown options visible on the screen but as soon as you click something in Developer Tools (to go exploring), the menu options or dropdown options disappear and don’t exist on the page anymore! This is usually because an event such as the blur event is fired when you click outside the element and this removes the elements from the page that you are trying to inspect.

This tip might not work in all scenarios but it has gotten me out of trouble on a few occasions.

Here’s an example scenario. On the left side of the screenshots you can see the OnePlaceMail (Outlook Add-in) displayed in Chrome, on the right hand side is Developer Tools inspector window. I’m using a 3rd party control for my “Content Type” dropdown (it’s the Kendo UI for Angular library)

When collapsed it’s easy to inspect the kendo-dropdownlist element (that holds the selected value of ‘Document’. At this stage the menu options that will appear when I click on the dropdown don’t even exist in the DOM.

css-dynamic-inspection-chrome-cameron-dwyer-01-kendo-dropdown

When I do click to expand the dropdown, the image below shows that a new kendo-popup element appears in the DOM (and it contains sub-elements to represent each of the options). But the problem is if we now try to use the Developer Tools and expand that kendo-popup element to see those sub-elements then the dropdown collapses (because I’ve click off it) and the kendo-popup element is removed from the DOM and we’re left with nothing to inspect!

css-dynamic-inspection-chrome-cameron-dwyer-03-kendo-dropdown-expanded

So to work around this in the Developer Tools inspector, right click on the element that is driving the elements to appear/disappear (kendo-dropdownlist) and select Break on | subtree modifications.

css-dynamic-inspection-chrome-cameron-dwyer-06-break-on-subtree-modifications

Now go to the web page and click on the dropdown to show the dropdown options. They are shown (elements added to the DOM) but the Developer Tools inspector now goes into a paused state. The web page is effectively frozen.

css-dynamic-inspection-chrome-cameron-dwyer-07-break-on-subtree-modifications-paused

While in this paused state, you can now return to the elements tab and we can expand and explore that pesky kendo-popup element that was dynamically created. This time however the dropdown won’t collapse itself as we click around in the inspector.

css-dynamic-inspection-chrome-cameron-dwyer-08-break-on-subtree-modifications-paused-stays-expanded

I hope you find this tip useful

 

Wonder what a Microsoft 1:1 hackathon looks like? OnePlace Solutions Teams/Graph Engagement Experience

$
0
0

microsoft-teams-logo.jpg

I was fortunate enough to be involved in a 1:1 hack engagement with Microsoft recently where OnePlace Solutions hosted some eager Microsoft engineers for a week long engagement. The intention was to see how we could harness some of Microsoft’s new Teams extensibility options and the Graph API, and for Microsoft to identify limitations or areas for improvement.

The format of the event:

  • brainstorming possible ideas ahead of the event itself
  • discussion and selection of a few possible ideas
  • splitting up into teams and scoping what were would try to achieve within the scope of the hack
  • working in a compressed scrum process (daily stand-ups, task refinement and retros)
  • present to a wider audience on the last day of the hack to show what had been achieved and the business benefit

It was amazing to see how quickly the Microsoft engineers were absorbed into our development team, brought up to speed with our existing code-base, and starting to deliver functionality.

The real takeaway and reason for writing this article it just to let everyone know what an awesome opportunity these engagements are from Microsoft, a bit of what you can expect and that I highly recommend getting involved if the opportunity arises.

What did I see as the biggest benefits to our business of doing this hack with Microsoft?

The tips, tricks and work pattern knowledge sharing that occurred only comes when you truly try to work together on a project and aren’t just academically sharing knowledge. We all work in different ways and by running the hack almost as a true project (in a condensed form) there is a lot more than just the coding that is being discussed. VSTS, scoping, work item tracking, design white-boarding sessions, daily stand ups, retros, git source control, review of pull requests. All this is outside of the actual coding and using the technology being hacked on, but it is also a critical piece of developing in an efficient, scalable and measurable way.

Accelerated and focused learning on new technologies. The speed of getting across where a technology like Teams extensibility is up to, what’s possible when applying to problems we are trying to solve, and that hard first mile of understanding the frameworks, dependencies, and tooling to get the first hello world skeleton running.

Outside of the technology it’s a great opportunity to meet and build relationships with people who share a similar passion and spend a lot of their time working to solve similar problems. At OnePlace Solutions we are a passionate bunch of technologists that enjoy working in a social and supportive environment – from what I’ve experienced the hack is a perfect match for the way we work, with Microsoft bringing the same mindset, energy and support to the hack. We spent as much time laughing and discussing topics outside of technology as we did on it. At the end of the day we are social creatures and I found the hack was a perfect environment that bought people together with a desire to want to work together on a common goal, to challenge and push each other to do more in a fun and supportive way, and have a good laugh at the same time. Having access to global Microsoft resources to get definitive answers quickly, removed the amount of wasted time and frustration which allowed productivity, enthusiasm and energy levels to remain high.

We dedicate an amount of time each sprint to R&D, which usually involves educating ourselves in what is possible with new technologies and APIs and often going as far as prototyping code to see what’s possible and where the limitations are. It’s hard to imagine a better return on investment than spending this R&D time with Microsoft in the format of a 1:1 hack.

So a huge thank you to the Microsoft engineers, we had a great time and my advice to anyone thinking of getting involved with these engagements is that they can have great value to your team.

Digital Workplace Conference – Melbourne 2018

$
0
0

cameron-dwyer-conference-speaker-digital-workplace-melbourneAs the Digital Workplace Conference comes to a close for another year I’d like to reflect on what a great event this is for the Office 365 and SharePoint community in Australia and thank the people behind the organisation of the conference, in particular Debbie Ireland and Mark Rhodes.

This year I was fortunate enough to be included in the lineup of amazing speakers, many who had travelled internationally to be here for the event.

My session was on the topic of Office Add-in development and I’d like to thank everyone that attended the session and the passionate people who came to talk to me after the session as well. My slide deck is available here:

DWC 2018 – Getting Started with Office Addins

I have in the past pondered if conferences are still relevant in the modern era of video training, social media and plethora of information available on the internet. Two days immersed in this conference gives me no doubt that conferences are still a highly valuable medium for education, awareness, training and more importantly direct and open access to experts. It hard to imagine another environment that brings together so many experts that are happy to discuss and understand your scenarios, pains, challenges and success stories and talk through options, past experience and thoughts on the topics.

Personally I was able to meet some awesome people that I follow and have been “virtually” taking advice from for years.

I also had the opportunity to talk to a lot of attendees and love to hear the many varied stories of how organisations are using the technology and where they are looking to go in future.

Here’s some of my photos from the event.

 

 

 

Viewing all 114 articles
Browse latest View live