Sometimes I feel so pleased and proud to be aligned to Microsoft technologies.

Microsoft have just released a Holiday 2018 advert. It doesn’t say anything about technology, or products, or features, or even the cloud. Instead, it talks about Owen (aged 9½), and a special controller for Xbox which has changed how he games.

This controller (the Xbox Adaptive Controller) is unlikely to be the peripheral that makes Microsoft their next billion dollars, but it’s going to change people’s lives.

Just to be clear: I’m not a gamer, I don’t own a Xbox and so I’m unlikely to be purchasing this anytime soon. But, the fact that Microsoft would spend the time and resources to bring this to market, just so they could make people’s lives better, nicely highlights the direction Microsoft has been heading in over the past few years.

It takes big companies like Microsoft to put in the effort to level the playing field and do work for the common good, not just for profit. We’ve seen Microsoft embrace their corporate responsibility in this area and this isn’t the only example of such a commitment to diversity and inclusion. But, it’s a pretty amazing one, and even though I have nothing to do with Xbox, I’m pleased and proud to be aligned to Microsoft technologies, because I think they are leading in the area of corporately “doing the right thing”.

There are 4 videos in the playlist – the other 3 cover why Microsoft made the Adaptive controller, as well as a behind the scenes video and an unboxing.

]]>https://blog.thoughtstuff.co.uk/2018/11/weekly-update-17-november-5-reasons-you-should-be-building-apps-on-teams-calls-meeting-api-renamed-zdnet/feed/030885The Calls & Meetings API is now the Microsoft Graph Communications API, SDK package names updatedhttps://blog.thoughtstuff.co.uk/2018/11/the-calls-meetings-api-is-now-the-microsoft-graph-communications-api-sdk-package-names-updated/
https://blog.thoughtstuff.co.uk/2018/11/the-calls-meetings-api-is-now-the-microsoft-graph-communications-api-sdk-package-names-updated/#respondSat, 17 Nov 2018 10:12:38 +0000http://blog.thoughtstuff.co.uk/?p=30755As the newest API and SDK pair for performing programmatic actions on Microsoft Teams calls makes its way from Public Preview to Generally Available, there are some changes happening to bring it more into line with the other Graph APIs.

Firstly, it has a new name. I much prefer this one, it’s more succinct and abstract, and means that when new features are added that aren’t specific to calls or meetings, it won’t look strange.

There are some other changes as well. These might well be breaking changes to existing applications, or if they aren’t, there will still be things you should do.

NuGet Package names have changed

That’s right – the way you get the SDK has changed. These are the new package names you should use:

The previous versions have been marked with the [Obselete] decorator, meaning that if you continue to use them, they will work…but you’ll receive a warning: Compiler Warning (level 2) CS0618.

Namespace names have changed

There have also been some changes to Namespaces. For instance, the IStatefulClient is now ICommunicationsClient. This will likely involve some rework to your code:

Original namespace

New namespace

Microsoft.Graph.CoreSDK

Microsoft.Graph.Communications.Core

Microsoft.Graph.Core

Microsoft.Graph.Communications.Common

Microsoft.Graph.StatefulClient

Microsoft.Graph.Communications.Client

Microsoft.Graph.Calls

Microsoft.Graph.Communications.Calls

Microsoft.Graph.Calls.Media

Microsoft.Graph.Communications.Calls.Media

IStatefulClient

ICommunicationsClient

StatefulClientBuilder

CommunicationsClientBuilder

(Some) Attributes and Method Names have changed

Again, likely to break your code on an update. These changes are mostly cosmetic and bring the naming standards in line with the rest of Graph:

Deprecated items

Replacement

AudioRoutingGroup.Owner

no longer used

Call.Error

Call.ResultInfo

Call.Transfer(TransferTarget,…)

Call.Transfer(TransferTarget)

CommsOperation.ErrorInfo

CommsOperation.ResultInfo

MeetingParticipantInfo.SipProxyAddress

no longer used

OnlineMeeting.CanceledTime

OnlineMeeting.CanceledDateTime

OnlineMeeting.CreationTime

OnlineMeeting.CreationDateTime

OnlineMeeting.EndTime

OnlineMeeting.EndDateTime

OnlineMeeting.ExpirationTime

OnlineMeeting.ExpirationDateTime

OnlineMeeting.MeetingInfo

OnlineMeeting.Participants.Organizer

OnlineMeeting.StartTime

OnlineMeeting.StartDateTime

Participant.SubscribeVideoAsync

Call.GetLocalMediaSession().VideoSocket.Subscribe

Where to get this new SDK from?

The right place to download this SDK and all its sub-parts is NuGet. If you’re not familiar with it, NuGet is a nice easy way to load in external references to your code. There’s no MSI to install and you can control everything from within Visual Studio.

Check to see if you have the Package Manager Console tab visible. If not, enable it by going to Tools > NuGet Package Manager > Package Manager Console.

At a really high level, NuGet is made up of many different packages, each of which encapsulates a specific piece of functionality. What makes it clever is that each package also contains a manifest file describing any dependencies, which are other NuGet packages, as well as minimal versions etc. The Package Manager will then automatically download and install all dependent packages before the one you asked for, meaning you don’t need to know and manage all the dependencies. It’s not always that seamless, but it’s a lot better than dealing with DLLs.

You add a package by running the Install-Package command, followed by the name of the package. How do you know the name of the package? The names of all the packages that make up the Graph Communications API are listed at the top of this blog post. So, to install the Communications Client, you would type: Install-Package Microsoft.Graph.Communications.Client

What’s going on here? Well, the second piece of advice is probably not to trust an install command from a random blog page. The problem is that because the Communications API is still in Public Preview, the developers have marked the latest version of the NuGet package as a pre-release version. This means that the Package Manager will act as if it’s not there…unless you specifically tell it that you’re OK with installing a pre-release version. It’s designed to allow developers to push out alpha and beta versions without everyone automatically being upgraded to them and experiencing a load of problems.

If you go to the NuGet page for this package, you’ll see the banner about it being pre-release, as well as being given another command you can run, specifying a particular version. This will install the pre-release version:

So, what happens when you run: Install-Package Microsoft.Graph.Communications.Client -Version 1.0.0-prerelease.494

If you look through the log (which is quite easy to read) you’ll see that a number of other packages have been added. These are required by the Communications Client API. We didn’t know that, but we didn’t have to – the Package Manage just added them anyway. If you now check your references list, you’ll see the Communications.Client DLL, along with a Communications.Common DLL and a Communications.Core DLL. There are also some other required DLLs (Logging, Json etc).

]]>https://blog.thoughtstuff.co.uk/2018/11/the-calls-meetings-api-is-now-the-microsoft-graph-communications-api-sdk-package-names-updated/feed/0307555 reasons you should be building apps on Microsoft Teamshttps://blog.thoughtstuff.co.uk/2018/11/5-reasons-you-should-be-building-apps-on-microsoft-teams/
https://blog.thoughtstuff.co.uk/2018/11/5-reasons-you-should-be-building-apps-on-microsoft-teams/#respondMon, 12 Nov 2018 08:00:44 +0000http://blog.thoughtstuff.co.uk/?p=30695Microsoft has produced a poster highlighting five reasons developers should be considering Microsoft Teams for app development. If you read this blog then you’ll know I’ve been advocating Teams as a development platform, but I think that it’s time to amplify that message and try and reach app developers currently building for other platforms, so this poster comes at a really good time.

Let’s go through each one.

Teams enables effortless discovery for your app

Every app store will tell you that they make it easy for users to find your app. What makes Microsoft Teams different here, I think, is that Teams is fast becoming the defacto place for users to get stuff done at work. Microsoft are making it the centre of the Office 365 world, and so even users that aren’t tech-savvy and wouldn’t naturally go looking for an app are much more likely to find it. Teams also does a good job of advertising the idea of apps to users – with a single-click icon always visible in Teams on the main navigation bar.

Organisations can choose the audience for your app

This is an important one for organisations that have their own in-house development teams or want to roll a specific app out to their users. Of course, you can do this today on managed desktops using things like Group Policy or standard builds, and there are already mechanisms to roll apps to mobile devices. Being able to create an application and then only make it available in an organisations private app store, not generally available, will be seen as critical to many people.

Conversations come free!

For me, what’s good about building on Teams is more than just getting free conversations. Organisations don’t want solutions that come with their own capabilities for communications because that means more compliance and security headaches. Because Teams apps can use the built-in communication features of Teams, all the existing compliance and data governance tools which are available in Teams will “just work” here.

Rich app platform that keeps getting richer

Teams is on a roll right now, that’s been going since they first launched a few years ago. It’s a modern platform and Microsoft have shown that they’re able to be much more agile and responsive with rolling out new features than in the past. This isn’t an ecosystem that will get a new version every 2 years. Teams updates on a cadence that involves multiple new updates every month. It’s an exciting place to be a developer as new capabilities are being unlocked all the time. The Teams team are also very open about what they’re doing, with a published roadmap and active UserVoice.

Built once, available everywhere

This is a biggie. As a developer, supporting multiple platforms and different versions is a complete pain. There’s no exciting upside like there is with developing new features, just an every-expanding cartesian product of potential bugs and issues. Because Teams acts a bit like an abstraction layer, when you build on Teams then your application can be available on the many different variants of Teams, on desktop and mobile, Windows and Mac, iOS and Android. Anything that saves me time and means I don’t have to do boring platform-specific alignment work is a thumbs up in my book!

The development platform for Microsoft Teams has always been fairly strong ever since Teams went GA, but recently it’s got even better. With each iteration where new features and capabilities are added, developers have more opportunities to create apps that increase productivity and make users happier. That’s got to be a good thing.

]]>https://blog.thoughtstuff.co.uk/2018/11/weekly-update-11-november-2018-bot-framework-4-1-bot-service-tls-g-suite-to-office-365-migration/feed/030725Microsoft is working on a native migration from Google G Suite to Office 365https://blog.thoughtstuff.co.uk/2018/11/microsoft-is-working-on-a-native-migration-from-google-g-suite-to-office-365/
https://blog.thoughtstuff.co.uk/2018/11/microsoft-is-working-on-a-native-migration-from-google-g-suite-to-office-365/#respondSat, 10 Nov 2018 10:06:14 +0000http://blog.thoughtstuff.co.uk/?p=30645I like to keep an eye on the Microsoft 365 Roadmap to see what’s coming. In the last few days, this new item was added: Google G Suite to Office 365 migration.

Admins can already migrate IMAP mailboxes from G Suite using migration endpoints, but this doesn’t move contacts or calendar items. (users can move their own, but there’s no automated process). There are already third-party solutions out there for customers that want to migrate, but this looks like it will be an all-Microsoft offering. Crucially, Microsoft say that there will be “no resting points” in a “highly secure solution” – this will be good for businesses worried about data loss or leakage.

Email, Calendar items and Contacts are specifically highlighted as items that can be migrated. There will also be support for migrating mailboxes in batches rather than all at once, which will be good for larger organisations that need to manage how users move, or need to provide user training and guidance along the way.

Google already has a migration tool to move from Office 365, so it’s good to see Microsoft providing a similar service.

The feature is still in development, with an estimated release date of Q2 2019.

]]>https://blog.thoughtstuff.co.uk/2018/11/microsoft-is-working-on-a-native-migration-from-google-g-suite-to-office-365/feed/030645Weekly Update 03 November 2018: A Day in the life of a Teams user, Farewell Win10S App, Call Park for Teams, Surface Videohttps://blog.thoughtstuff.co.uk/2018/11/weekly-update-03-november-2018-a-day-in-the-life-of-a-teams-user-farewell-win10s-app-call-park-for-teams-surface-video/
https://blog.thoughtstuff.co.uk/2018/11/weekly-update-03-november-2018-a-day-in-the-life-of-a-teams-user-farewell-win10s-app-call-park-for-teams-surface-video/#respondSat, 03 Nov 2018 10:54:57 +0000http://blog.thoughtstuff.co.uk/?p=30615This week:

]]>https://blog.thoughtstuff.co.uk/2018/11/weekly-update-03-november-2018-a-day-in-the-life-of-a-teams-user-farewell-win10s-app-call-park-for-teams-surface-video/feed/030615Call Park is coming to Microsoft Teams, estimated this yearhttps://blog.thoughtstuff.co.uk/2018/11/call-park-is-coming-to-microsoft-teams-estimated-this-year/
https://blog.thoughtstuff.co.uk/2018/11/call-park-is-coming-to-microsoft-teams-estimated-this-year/#respondSat, 03 Nov 2018 10:18:36 +0000http://blog.thoughtstuff.co.uk/?p=30575A new item just showed up on the Microsoft 365 Roadmap. Call park, the ability to put one call on hold and then pick it up later or transfer it whilst also being able to answer another.

The description for this feature is: Call Park enables users to put a call on hold and then retrieve the call from the same phone or another phone. The parked call can also be transferred to a department or general area where there is a common area phone. While a call is on hold the original answering phone can stay free for other calls.

It’s currently showing as “In Development” with an estimated release date of Q4 2018 – so a little under 2 months as I write this.

This will be useful for lots of business scenarios with a general incoming line where calls are answered and then routed. The description mentions as well that parked calls can be transferred to a “department” with a common area phone.

]]>https://blog.thoughtstuff.co.uk/2018/11/call-park-is-coming-to-microsoft-teams-estimated-this-year/feed/030575Video: Unfiltered “not really a review” Review thoughts on the Surface Pro LTE and Surface Gohttps://blog.thoughtstuff.co.uk/2018/11/video-unfiltered-not-really-a-review-review-thoughts-on-the-surface-pro-lte-and-surface-go/
https://blog.thoughtstuff.co.uk/2018/11/video-unfiltered-not-really-a-review-review-thoughts-on-the-surface-pro-lte-and-surface-go/#respondFri, 02 Nov 2018 16:18:44 +0000http://blog.thoughtstuff.co.uk/?p=30555Recently, I had the chance to get hands-on with two new devices in the Microsoft Surface family: the Surface Pro LTE and the Surface Go.

This is not anything as grand as a review, but I recently spent a day at a conference with the Go, followed by several hours working far away from WiFi in the country with the Pro LTE.

This video is 9 minutes of my unfiltered and unedited thoughts, punctuated by meeting a bull halfway down the hill.

If you’re considering either of these devices, then maybe this will help you:

]]>https://blog.thoughtstuff.co.uk/2018/11/video-unfiltered-not-really-a-review-review-thoughts-on-the-surface-pro-lte-and-surface-go/feed/030555A Day in the life of a Teams user – Microsoft releases preview info-graphics aimed at specific verticalshttps://blog.thoughtstuff.co.uk/2018/11/a-day-in-the-life-of-a-teams-user-microsoft-releases-preview-info-graphics-aimed-at-specific-verticals/
https://blog.thoughtstuff.co.uk/2018/11/a-day-in-the-life-of-a-teams-user-microsoft-releases-preview-info-graphics-aimed-at-specific-verticals/#respondFri, 02 Nov 2018 11:15:17 +0000http://blog.thoughtstuff.co.uk/?p=30526In a recent Microsoft Tech Community blog post, Microsoft made available some great new PDFs. Each one is specific to an industry vertical or job role and describes how Teams can be used through the course of a normal working day. For instance, here’s the version for an IT Project Manager:

There are similar versions for:

Compliance

Construction

Finance

Human Resources

IT Project Manager (the one above)

Marketing

Retail Associate

Retail

Sales

Service Engineer

If you’re unsure about how you could use Teams in your job, then these quick start guides could really help. Similarly, they are good to distribute to users to educate them on how Teams can help streamline their day and make them more productive.

You can download the full collection of PDFs from the Tech Community site. Note that these are still in Preview, so they might improve over time, and new ones might also be added.