Digest - Microsoft Build 2020

Digest of the free virtual event at https://mybuild.microsoft.com/home held May 19-21, 2020.

Announcements and Blog Posts

A few great announcements and blog posts can be found below. Looking forward to .NET 5 (net5.0) and C# 9 due November 2020. 👍

Welcome to C# 9.0

Summary: Must read! A preview of C# 9.0 features e.g. a full working C# program could look like below:

var p = new Point2D { X = 1, Y = 2 };
var q = p with { X = 3 };
Point2D? r = q.Equals(p) ? p : null;

public data struct Point2D(nint X, nint Y);

Maybe! This doesn’t compile using the build 2020 demo compiler on the awesome sharplab.io see example. Main code comes between any usings and type/method declarations. Everything is early and syntax and naming can still change. I do hope value type records will be supported. Although, value tuples - e.g. (int X, int Y) - are great for local scope things, they aren’t great across code/boundaries. Here a proper named type is better. Value type records would be great for that. Below a list of potential C# 9 features:

  • nint/nuint the final nail in the coffin for DotNetCross.NativeInts
  • Init-only properties
  • Init accessors and readonly fields
  • Records
  • With-expressions
  • Value-based equality
  • Data members
  • Positional records
  • Top-level programs
  • Improved pattern matching

Current proposals considered for C# 9 can be found at csharplang/milestone/15.

Announcing .NET 5 Preview 4 and our journey to one .NET

Summary: Great (long) post with lots of info including details of roadmap for .NET 5 and beyond. Below the roadmap from the old post Introducing .NET 5. Schedule is pretty much the same, but .NET 6 will probably be the first “unified” version of .NET.

Dotnet Roadmap

Introducing .NET Multi-platform App UI

Summary: Short post on Xamarin.Forms evolved. MVVM or MVU. Go to https://github.com/dotnet/maui


One project

Visual Studio 2019 v16.6 & v16.7 Preview 1

Summary: Finally the new revamped git tooling! This alone is worth the update. This can be enabled in Visual Studio by:

  • Press CTRL + Q
  • Search for preview features and open Environment -> Preview features
  • Then check the New Git user experience as shown below.

New Git user experience

Now this is a big improvement from the old Team Explorer with less navigation. Unfortunately, keyboard navigation support is very poor. Below you can see how I am desperately trying to tab my way to the commit message field… an exercise in futility. 🤦‍

New Git user experience keyboard navigation 🤦‍

Windows Forms Designer for .NET Core Released

Summary: Looks familiar 😅. This also has to be enabled in preview features.

WinForms designer

Blazor WebAssembly 3.2.0 now available

Summary: Cross-platform silverlight… ah no moonlight 😉 MSIL via WASM!

Blazor WebAssembly Hello World

Introducing YARP Preview 1

Summary: Yarp, Another Reverse Proxy. Kestrel-based so should be fast.

Using Visual Studio Codespaces with .NET Core

Summary: Nothing new to most developers in the trend of “mainframification” of developer tools and IDEs. VS Code is basically “just” a browser with local machine access and a gazillion amazing extensions. Codespaces is roughly speaking developer tools and code running remotely. This post shares how this works with .NET Core and current limitations e.g. no apps with UI support.

The ability to quickly get an amazing developer experience inside a browser for any project anywhere (e.g. GitHub or Azure DevOps) is pretty great. Especially, for large open source projects that might require an intricate and time-consuming setup of dependencies (looking at you CNTK 😉). We will have to see if that promise will be fulfilled. It is also, of course, another potential recurring revenue stream for big tech companies.

F# 5 and F# tools update

Summary: A quick update on F# 5 news incl. compiler performance improvements. Always great to see. 👍

Improvements to XAML tooling in Visual Studio 2019 version 16.7 Preview 1

Summary: New features including:

  • A new XAML data binding failure troubleshooting experience – now you can see when bindings have failed and review the details in a new dedicated tool window
  • A built-in inline color visualizer in the XAML Code editor
  • Two preview features that are still in early development including a new XAML Designer feature called Suggested Actions and our new and improved designer preview for WPF .NET Framework developers

The binding failure troubleshooting looks like a great addition for debugging brittle binding issues.

XAML binding failure troubleshooting

Run C# notebooks with Azure Cosmos DB

Summary: What I found interesting here were the data visualization examples. Looks neat.


I have selected a few videos I found interesting below. I would definitely recommend The Journey to One .NET and C# Today & Tomorrow for all things .NET/C# ❤.

Microsoft Build 2020: CEO Satya Nadella’s opening remarks

Microsoft Build 2020: CEO Satya Nadella's opening remarks

Summary: Always interesting and provides a general overview. There is also a youtube playlist with the “key segments” from Build 2020. The 48 hour live stream seems to have been removed, though. One interesting segment is the The Computing Revolution.

The Journey to One .NET

The Journey to One .NET

Summary: The “Lesser” Scotts talk about many .NET related things. Blazor, ML.NET, .NET 5 and 6, tye. In place single file publish looks to solve the main issues around this right now, I hope 😀

C# Today & Tomorrow

C# Today & Tomorrow

Summary: C# 8 summarized and a preview of C# 9. See blog post comments above.

Visual Studio .NET Productivity on PC and Mac

Visual Studio .NET Productivity on PC and Mac

Summary: As always productivity tips almost always have the biggest impact on your everyday work, if you like me spent most of your time in Visual Studio 😁, so definitely recommended. Often there is something you did not know before and sometimes not even related to VS… e.g. Windows key + . brings up the Windows emoji keyboard. Did not know that.

Windows Emoji Keyboard

Lots of good tips, although I often feel that some of the refactorings result in worse code than before or at the very least need to be cleaned up after. So as long as you treat these as a help towards the end goal of clean and readable code and not the end itself that’s good.

Visual Studio Code has a nice pdf file with short cuts at https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf

Visual Studio needs a similar one page up-to-date one. 😉 Note there is a list for VS but it’s not as “nice” at https://docs.microsoft.com/en-us/visualstudio/ide/default-keyboard-shortcuts-for-frequently-used-commands-in-visual-studio?view=vs-2019

The modern Visual Studio experience

The modern Visual Studio experience

Summary: Mads Kristensen, VS extensions author #1, from his garage 😎 (and colleagues). Shows off the new top level Git menu and the new git tooling, which is covered a bit above too.

PS: If you haven’t installed his Markdown extension for Visual Studio you should. It has easy paste of images, for example. Quick to do screen shots while documenting something in markdown.

Cloud Native Apps with .NET and AKS

Cloud Native Apps with .NET and AKS

Summary: tye demo of orchestrating a Blazing Pizza web site with lots of docker containers. Looks interesting. Still in an early experimental stage, though.

Download Videos for Offline Viewing

A great site in general for downloading and getting an overview of channel9 videos is https://dayngo.com/channel9 Not all videos from build 2020 are there, but most can be found at: https://dayngo.com/channel9/events/4c9262b67d02462caa94abad0181140c/2020

Download Videos Dayngo