.NET 5 & C# 9

A look at what’s new

HELLO!

#DDD20 I am Stuart Lang You can find me at https://stu.dev

Agenda

› .NET 5 › What is it › Support › What’s new

C# 9 › Top-level programs › Patterns › Records › Source Generators

What's .NET 5

What's .NET 5

Release Plan

https://blog.inedo.com/demystifying-net-lts

Consider Ecosystem Support

Porting to .NET 5

try-convert: https://github.com/dotnet/try-convert

.NET Conf 2020

.NET Conf 2020 https://www.youtube.com/playlist?list=PLdo4fOcmZ0oVWop1HEOml2OdqbDs6IlcI

.NET 5 Features

› C# 9 › Performance ⚡ Link - https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/ › Single file apps › App trimming › System.Text.Json new features › F# 5 › And more

C# 9

Top-level programs

  • demo *

Patterns

Patterns - Switch Expressions

Patterns - Switch Expressions

Patterns - Switch Expressions

Patterns - Switch Expressions

Patterns - Examples

Patterns - Examples

Patterns - Examples

Records

  • demo *

Source Generators

Source Generators

Program Code Source Generator Generated Output

Source Generators - Roslyn

Source code Syntax Tree Semantic Model Emit IL

Source Generators

  • demo *

THANKS!

Any questions? You can find me at: @stuartblang · stu.dev