Digest - .NET Conf 2020

Digest of the free virtual event at https://www.dotnetconf.net/ held November 10-12, 2020. See previous digest from Microsoft BUILD 2020 covering .NET 5 too at Digest - Microsoft BUILD 2020.

Announcements and Blog Posts

A few great announcements and blog posts can be found below. Let’s start with some code copied and edited a bit from the first blog post. Top-level program example 👍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Device.Gpio;
using System.Threading;
using static System.Console;

var pin = 18;
var lightTime = 1000;
var dimTime = 200;

WriteLine($"Let's blink an LED!");
using GpioController controller = new ();
controller.OpenPin(pin, PinMode.Output);
WriteLine($"GPIO pin enabled for use: {pin}");

// turn LED on and off
while (true)
{
    WriteLine($"Light for {lightTime}ms");
    controller.Write(pin, PinValue.High);
    Thread.Sleep(lightTime);

    WriteLine($"Dim for {dimTime}ms");
    controller.Write(pin, PinValue.Low);
    Thread.Sleep(dimTime);
}

Announcing .NET 5.0

Summary: Very long and detailed post about everything .NET 5. Highlights from the post copied below:

There are many important improvements in .NET 5.0:


C# 9.0 on the record

Summary: Syntax for record (previously data class) has changed quite a bit since May, this post details the final changes and additions for C# 9.0. Records are ideal for immutable message types in pub/sub, CQRS systems reducing boilerplate quite a lot.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;

Action<string> log = Console.WriteLine;

Person[] persons = { 
    new ("Anders", "Hejlsberg"), 
    new ("Mads", "Torgersen") 
};
var (f, l) = persons[0];
var otherPerson = persons[^1] with { LastName = f };

log(otherPerson.ToString());

public record Person(string FirstName, string LastName);

This will print:

1
Person { FirstName = Mads, LastName = Mikkelsen }

Announcing F# 5

Summary: From F# 4.1 to F# 5, the chief focus for F# has been bringing up great support for .NET Core (now .NET 5).


Getting Started With NuGet 5.8

Summary: Finally! We have support for installing prerelease packages from the command line!

1
dotnet add package –prerelease

List of important improvements in NuGet 5.8:


What’s new in .NET Productivity

Summary: Covers some of the latest .NET productivity features available in Visual Studio 2019. Including tooling improvements, code fixes and refactorings.


Announcing ASP.NET Core in .NET 5

Summary: ASP.NET Core in .NET 5 is loaded with lots of great new features and improvements. Here’s a sampling:


Announcing the Release of EF Core 5.0

Summary: a full featured cross-platform version of Entity Framework that delivers the most requested features like Many-to-Many and Table-Per-Type.


Visual Studio 2019 v16.8 and v16.9 Preview 1 Release Today

Summary: There are many features landing in this version of Visual Studio 2019 v16.8 and v16.9 Preview 1. Check out our new Git Integration Features, .NET productivity enhancements, C++20 Library Options, and XAML Data Binding.


Recapping Xamarin Highlights from .NET Conf 2020

Summary: XAML Hot Reload “2.0” and Xamarin.Forms 5. (also see Xamarin.Forms 5 Preview: Advanced UI Controls for Beautiful Apps)

Videos

I have selected a few videos I found interesting below incl. full playlist of all videos from the conference. With summaries some of which are just copies of the official summary.


.NET Conf 2020 Playlist

.NET Conf 2020 Playlist

Summary: 79 videos excl. the two full day streams.


Keynote - Welcome to .NET 5

Keynote - Welcome to .NET 5

Summary: Scott Hunter announces the availability of .NET 5 and a look at the features incl. C# 9.0, see below. Additionally, Scott Hunter, Scott Hanselman and Scott Guthrie reminisce around how ASP.NET got started. 👍 A great overview of the content being discussed in the other videos.


What’s New in C#?

What’s New in C#?

Summary: a tour of the new features in C# 9.0: Top-level programs remove clutter. Init-only properties and records improve support for immutable and value-based programming. New patterns take pattern matching to the next level.


.NET 5 Runtime Deep Dive with Rich Lander and the Architects

.NET 5 Runtime Deep Dive with Rich Lander and the Architects

Summary: Rich Lander, Stephen Toub and Jan Kotas discuss the .NET 5 runtime. Konrad Konkosa (@onradkonkosa) did a beautiful mind-map over this shown below. See https://twitter.com/konradkokosa/status/1326635315616952321/


A talk for trailblazers: Blazor in .NET 5

A talk for trailblazers: Blazor in .NET 5

Summary: Wondering what’s in store for Blazor in .NET 5? Wonder no more! This talk features the latest and greatest features to arrive in Blazor as part of .NET 5. From improved APIs for working with the browser to CSS isolation to a variety of performance improvements, you’ll leave this presentation with rundown of everything you’ll be able to do in the latest version of Blazor.


Porting Projects to .NET 5

Porting Projects to .NET 5

Summary: Want to move to .NET 5? In this session you’ll see how to approach porting projects from .NET Framework, .NET Core, and .NET Standard to .NET 5 and the tools you can use to get there.


Modern Web Development with Blazor & .NET 5

Modern Web Development with Blazor & .NET 5

Summary: Blazor isn’t just for new apps! Blazor in .NET 5 is integrated seamlessly with ASP.NET Core to enable modern full stack web development with .NET. In this session we’ll show you how you can use Blazor and ASP.NET Core together to add rich client-side interactivity to both new and existing apps. You’ll learn how to use Blazor components from your existing MVC views and Razor Pages, handle server-side prerendering, setup authentication & authorization, improve load time performance, and then deploy your app into production.


Xamarin.Forms 5: Beautiful and Fast Apps with Less Code

Xamarin.Forms 5: Beautiful and Fast Apps with Less Code

Summary: Xamarin.Forms 5 is jam-packed with new features to make it easier than ever to develop fast, beautiful, cross-platform apps. Come see what new features are in Xamarin.Forms 5, and learn more about how our Xamarin Community Toolkit is getting more features than ever into your hands! Take care of your plants!


Developing and Deploying Microservices with ‘Tye’

Developing and Deploying Microservices with 'Tye'

Summary: Learn about new tooling the .NET team is working on to help you build, debug and deploy microservices faster.


Get to know the .NET 5.0 SDK

Get to know the .NET 5.0 SDK

Summary: .NET 5 is the next version of .NET Core. The .NET SDK incudes the language compilers for C#, Visual Basic and F#. It also includes NuGet to manage packages, MSBuild to build and publish projects, and miscellaneous things like the templating engine. The .NET CLI and the community .NET tools enhance your command line experience and integrate with Visual Studio. Get a big picture of the .NET SDK and see what’s new in 5.0.


What’s new for desktop developers building WPF, UWP & WinForms

What's new for desktop developers building WPF, UWP & WinForms

Summary: New XAML data binding diagnostic!!! ♥


High-performance Services with gRPC: What’s new in .NET 5

High-performance Services with gRPC: What's new in .NET 5

Summary: James Newton-King (of famed Newtonsoft JSON.NET) discusses gRPC a high-performance RPC framework used by developers around the world to build fast apps. In this talk you will learn about what’s new in gRPC for .NET 5, like performance improvements, gRPC-Web, Blazor WebAssembly support, Hosting on Http.sys and IIS, and OpenTelemetry.


Developer Fun with Scott Hanselman

Developer Fun with Scott Hanselman

Summary: Watch Scott Hanselman update one of his many web-sites from .NET Core 3.1 to 5.0. Fun and golden nuggets.


What’s New in Visual Studio 2019 and beyond

What’s New in Visual Studio 2019 and beyond

Summary: Learn what’s new in latest Visual Studio 2019 as well as features the team is currently working on - including some that we’ve never shown to the public before.


C# Source Generators - Write Code that Writes Code

C# Source Generators - Write Code that Writes Code

Summary: With C# 9 there is finally an officially supported mechanism for generating source code into your .NET projects as part of the compiler pipeline. Lets run through how they work, some of the pros and cons, and play around with ideas to get your mind racing with the possibilities.

An alternative to T4 where you have access to the compiler context of a project.


Maximising Algorithm Performance in .NET: Levenshtein Distance

Maximising Algorithm Performance in .NET: Levenshtein Distance

Summary: Great talk with performance tricks you may not know on an algorithm you may never have heard of before, be prepared to learn about my journey from different array structures to pointers, SIMD to threading, as we take the journey to maximum performance together.

Download Videos for Offline Viewing

Most from .NET Conf 2020 can be found below for direct download:

https://dayngo.com/channel9/events/f83f208569964f108bfdac68005187b9/2020

I use this personally to download all the videos to my Raspberry Pi for offline viewing. 🍀

2020.11.21