Microsoft Build 2022 Debrief — Day 2

Ryan Rowston
Taptu
Published in
7 min readMay 26, 2022

Every year since going virtual I have been attending Microsoft Build, Microsoft’s annual developers' conference. They use this as a platform to announce and talk about new technologies that they have been working on and releasing into the wild for the developer community to get their grubby mitts on.

Day 1 was very eventful, full of new announcements and interesting technologies. In case you missed it I have set down my notes for day 1 in a previous article.

I have now had a few naps between writing and the scattered sessions of the evening and am back for day 2. Without further preamble, let’s dive into some of the takeaways from Day 2 of Microsoft Build.

Responsible AI

Having discussed HAL-Lite in the keynotes of day 1 it surely has to be deliberate that they introduce ‘Responsible AI’ in the keynotes of day 2. Either way, this re-established my mirth on the topic. Unfortunately, this is not actually about enforcing Azimov’s laws of robotics, but rather more about monitoring and countering discrimination in AI/ML algorithms.

Again, AI is not really my field (maybe one day), it just has some interesting discussions. As best as I can tell this boils down to dashboards in Azure that integrate with their AI/ML service offerings. This seems to operate comparably to app insights, but instead of performance metrics, it scans your algorithm for biases such as race or geography. This could help developers avoid the common and quite public trap of producing ML algorithms that end up only working remotely properly with individuals of a certain skin tone. I didn’t dive any deeper into this, so I can’t tell you any more about how this works or if this is effective. It is just interesting to note that it exists.

Microsoft Identity Platform

There is a new update to the Microsoft Identity Platform due for release soon (they said summer from the northern hemisphere). The most interesting feature that they demonstrated was using a function app as a piece of middleware in the login flow (this was said to also be possible using azure logic apps). This would be able to set additional custom fields in the access token that is ultimately returned from a sign-in.

The primary use case that was discussed was for the app to be able to confirm the identity, then use this middleware to access a database and return the permission level for an application. This potentially makes a lot of sense as it means that you can set something like this up so that a sign-in request would return both Authentication and Authorisation information. A business application could then use authorisation without having to constantly refer to a permissions database.

Office 365 Retention Policy Triggers

There have been a bunch of features added to retention policies and governance for O365.

Having never set up governance flags in an environment myself, the distinction between the way these used to operate and now operate was lost on me and I couldn’t effectively distinguish new from old.

The retention changes I could follow though. There are new endpoints in Microsoft Graph API for retention labels and events. Additionally, there are events triggered when data retention policies expire on an item. You can use these events to trigger a workflow in Power Automate or set up a webhook to have custom code triggered on this type of event.

.NET, MAUI, Blazor, Visual Studio

Let’s end on a high note. This was my favourite session (well pair of sessions) from the entire conference. It was on the core developer announcements that are closest to where I have been working. This was an hour-long talk with announcements for .NET, MAUI, Blazor, and Visual Studio.

This was followed by a live Q&A that was extended from its planned half an hour as there was so much discussion with a panel of experts on this (this is in addition to a very active text-based Q&A during the main talk itself).

I have continued to lump these into a single section as there are a lot of connections between these announcements. Needless to say, I have a few things to talk about here.

Multi Application User Interface (MAUI)

.NET MAUI (Multi Application User Interface) is now General Availability. This is the new cross-platform UI framework running on top of .NET to allow an application to be made once and then deployed to different platforms and devices (Android, IOS, Windows, Etc.). They showed a good-looking app built using MAUI and, at least in my opinion, this framework continues to show promise. It has been around in preview for a little while now, so this is hardly our first look at things using MAUI.

Podcast application running on .NET MAUI
.NET Podcasts app was used to demonstrate the power of MAUI

It is a successor to Xamarin and still uses a lot of XAML code to define the structure of the app. I’m not sure how I’ll enjoy working with XAML but would be keen to try it out.

I’ve never personally developed in a framework like this before, but I have heard some stories and opinions from others who have tried predecessors to MAUI. What I have heard is that, historically, these types of platforms did decently at getting something running and looking pretty good; so long as you were always willing to only colour between the lines.

This meant that it was good at getting simple applications out, but once you have a vision that didn’t happen to fit well within the platform it would stumble with the last 10–20 percent as these types of systems require a fairly prescriptive and limiting XML (well XAML in MAUIs case) based structure. These would require either some tricky workarounds or compromises to get it across the line.

Fortunately, they also suggested a possible answer for this in this talk…

Blazor

The reason that they combined the Blazor talk and the MAUI one is that you can now inject Blazor code into a MAUI system. This will give developers more flexibility with how they code MAUI apps and opens potential solutions to situations that MAUI happens to not handle well. This also gives more options with how you write a MAUI app and could reduce the amount of XAML that you have to write by using more Blazor components.

Visual Studio 20222

On the tooling side, there were several new announcements as well. The tooling for developing MAUI in Visual Studio is currently only available in the preview version. This means that you need to install and use the preview version of Visual Studio to have access to the full development tooling for working on these apps. It is expected to be included in the next update of VS2022 for the windows version of Visual Studio, and the release after that for the Mac build of Visual Studio.

There were also some new preview features announced for Visual Studio that are kind of exciting.

It has integration with Windows Subsystem for Android (WSA) to use that for debugging. It could use an IOS developer license to do live update debugging of a MAUI application on an iPhone.

They introduced temporary breakpoints which only trigger once and then are automatically removed. This is more exciting to me than it should be. It has been frustrating spending time sifting through code removing all the temporary breakpoints that I added while trying to test or debug an issue. Even more annoying is when you are in the flow and then stumble into a breakpoint set for some long-ago bug and lose your place with what you were working on.

Finally, there was Visual Studio port tunneling. This feature is only in private preview, but it allows you to expose a development server beyond the current divide to allow for more easily testing code between different devices, or even between developers.

I can see this making it much easier for specialised backend and frontend developers to work together more collaboratively, and even be able to work on the two halves of a full-stack feature collaboratively. The frontend developer could just point their front end at the currently live API that is being worked on and has the most up to date features.

.NET

Finally, they announced the dates for .NET Conf later this year. It is scheduled for November 8 to November 10 (At least in US time zones).

Get Excited! Or take a nap. Either is good.

Closing Thoughts

This has been an intense Build with an absolute barrage of announcements and content. So much that it was hard to keep up with at times. It sure kept the US time zone sections of the conference (where all the announcements and most interesting sessions were all jammed) very interesting.

The targeting of this conference also feels more technically focused than last year, and I think that this is for the better (at least for me). It seems to me that there were more intermediate and advanced sessions, and even a few of the keynotes were rated at intermediate or advanced.

On the whole it has been a good conference with a lot to be excited about, and I am officially exhausted. I hope that the some of these summaries were useful to someone and encourage you to join me next year.

So long, and good night.

--

--