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:
1
2
3
4
5
6
var p = new Point2D { X = 1, Y = 2 };
var q = p with { X = 3 };
Point2D? r = q.Equals(p) ? p : null;
System.Console.WriteLine(r);
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
using
s 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.
Introducing .NET Multi-platform App UI
Summary: Short post on Xamarin.Forms evolved. MVVM or MVU. Go to https://github.com/dotnet/maui
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.
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. 🤦
Windows Forms Designer for .NET Core Released
Summary: Looks familiar 😅. This also has to be enabled in preview features.
Blazor WebAssembly 3.2.0 now available
Summary: Cross-platform silverlight… ah no moonlight 😉 MSIL via WASM!
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.
Run C# notebooks with Azure Cosmos DB
Summary: What I found interesting here were the data visualization examples. Looks neat.
Videos
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
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
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
Summary: C# 8 summarized and a preview of C# 9. See blog post comments above.
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.
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
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
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