Notes from Build 2020

2020, May 24    

With the COVID-19 pandemic underway globally, a number of things are different this year. Like many other freelancers, I am currently out of work as
many companies quite rightfully try to cut costs and weather the storm.

While not ideal, this has actually been a bit of blessing in disguise. It’s given me time to stop and reflect on the current state of the tech industry,
and given me the time to learn and catch up on various technical developments so that I might be able to hit the ground running when the economy jump start occurs.

Because of the pandemic, Microsoft also moved their annual Build conference to an online capacity, and it was clear from the start that they clearly thought it through and
managed to bring the feeling of an in-person conference to the online audience. On the plus side it was free for all attendees and there was no awful food, but on the negative side I didn’t get
my semi-annual trip to the states for “work”.

On to the announcements then, and this year these were the things that caught my eye

  • Project Reunion - bringing the elements of win dev together
  • .NET 5.0
  • WinUI 3
  • MAUI - Xamarin.Forms evolved
  • Windows Terminal v1
  • Blazor WebAssembly (or WASM which I love)
  • WinGet - a new package manager for Windows
  • Visual Studio 2019 v16.6

And here are some of my raw notes I made during some of the sessions I attended, and as this is a digital conference there is some digital swag including
wallpapers and watch faces which can be found here

.NET 5 and the Journey to One .NET

.NET doing well
Blazor WebAssembly - C# direct in browser & can run on desktop
Can do Shift Alt + D for debugger in browser - same debugging in VS - full stack dev experience

Windows Forms Designer
.NET Core support
Ml.net & Model Builder - run locally or on Azure. Adds completed projects to solution

One vision - .NET Framework - .NET Core - Mono/Xamarin combined to one SDK/ BCL / Toolchain
.NET 6 LTS
modular design
clean docker file
single exe, very small

Project Tye - run multiple projects all together
tye run - process orchestration
good if project has multiple microservices
1 layer above docker but not trying to be Kubernetes

Top Level Programs - remove “main” so you can ship a 2 line app - not sure I’m keen on that

MAUI

.NET is open source, cross platform to build anything. Learn once and apply skills everywhere
Mono -> Xamarin
Share code across iOS and android
Xamarin.Forms for ui, xamarin.essentials for platform specific stuff like Bluetooth/geofencing

Reflector app to mirror physical device on screen
No need for a mac to get started
hot reload and restart

Visual=”Material”

Dual Screen support - helpers in preview nuget package
Xamarin/app/xamarintv

Xamarin Forms 5
Shell 2.0
Shell routes
Gradient Brush
Shapes & Paths
TabView
AppBar
Nov 2020 after preview releases

Multi App UI - MAUI
Ships with .NEt 6.0 in 2021

WinUI 3 + Project Reunion

1 framework, state-of-the-art for windows developers on desktop.
1992 - MFC on Windows 3.1
2002 - WinForms .NET
2006 - WPF .NET
2012 - UWP XAML C++ & .NET
Desktop (win32) Apps and UWP Apps

Windows UI Library
WinUI3 = UWP XAML + WinUI2 + Visual Layer

WinUI3 will work on all platforms
Older platforms still alive and kicking

Project Reunion - 1 platform to work across all platforms - no more “desktop” and “uwp” apps.

Winui3 Preview 1 released at build - desktop Win32 support
will go open source autumn 2020

Marketplace - Win UI 3 Project Templates - adds the preview nuget packages
Xaml Window
SwapChainPanel, WebView 2
Not production ready - needs VS 16.7 Preview 1
Desktop only - no Xbox / hololens etc