30 May 2022

30 May 2022

Microsoft Build 2022 Conference 🔗

The Book of News contains a list of all the announcements in a nice interactive format with links to the MS docs, but it's pretty boring. It starts by mentioning this history, which is a nice segue to a video of Scott Hanselman getting nostalgic in the Microsoft archive.

But I'm going back to the schedule to look for the talks. It's rather hard to navigate and find interesting presentations. Most of it seems to be very high-level and introductory. Here's a few that caught my attention:

Build native apps for any device with .NET and Visual Studio 🔗

  • all about how wonderful .Net MAUI is for creating cross-platform apps
  • MAUI is GA for .Net 6, but the dev tools are still in preview
  • demo building a podcast app
  • can develop Android apps in WSL (currently only on Windows 11 in US)
  • XAML live preview is also nice
  • as far as I can see it's just a continuation of Xamarin
  • Blazor hybrid apps are another layer on top of MAUI - Blazor in a WebView with access to native capabilities
  • can run on phone by sharing a QR code and port tunneling
  • new VS features:
    • temporary breakpoints (one-time only)
    • AI auto-complete
    • better visualization of enumerables in debug
  • Azure Container Apps - abstract away the Kubernetes layer
  • GitHub push protection - prevent pushing secrets to GitHub
  • GitHub Actions summary - show summary of Actions run, eg test summary

Native client apps with Blazor Hybrid 🔗

  • didn't watch it yet, but I suppose it goes into more detail on the subject mentioned above

Azure PaaS and Cloud Native Development 🔗

  • Azure Dev CLI - run single command locally to deploy GitHub repo to cloud
  • DAPR - microservices with best practices, eg retries, discovery, observability
  • APIM Management in front of Power Platform to enable low code development
  • I didn't watch past the intro

What's Next in C# 11 🔗

  • new version of .Net and C# every year in November
  • properties on generic types, eg T.AdditiveIdentity on new system interface INumber<T>
  • static abstract properties/methods on interfaces - like a factory
  • pattern matching on lists, ie switch on a list
var result = AddAll(new [] { 1, 2, .3, 4, 5 });
T AddAll<T>(T[] values) where T : INumber<T> => values switch
{
  [] => T.AdditivieIdentity,
  [var t] => t,
  [var t1, var t2] => t1 + t2,
  [var t1, ..var middle, var t2] => t1 + AddAll(middle) + t2,
  // NB this is overcomplicated to show the possibilities - could just be the first plus
  // [var t, ..var rest] => t + AddAll(rest),
};
  • required members to avoid "constructor madness"
  • raw string literals - start string with triple-quote to avoid needing to escape quotes inside the string
    • or more than triple to allow triple inside the string
    • also allow multi-line - and it removes leading whitespace
    • also allow double-dollar to allow curly bracets and string interpolation
  • this is also summarized in the docs

Ask the Experts: Microsoft Graph 🔗

  • specific questions about the Graph API
  • the host is quite knowledgable and expands the question and answer with general, useful information
  • there are 12000 APIs on Graph! That helps explain why not all of them are updated regularly
  • curiously, at around the 18 minute mark, the expert said to continue using AD Graph because it'll be supported for a long time 😕

Deploy modern containerized apps and cloud native databases at scale 🔗

  • I didn't get round to watching this

Build your own resume website and stand out to recruiters 🔗

  • or this