SlideShare a Scribd company logo
#vssatpn
Visual Studio Saturday 2019
.NET & C# Updates Fall 2019
Marco Parenzan
.NET & C# Updates Fall 2019
#vssatpn
The .NET and .NET Core Path
#vssatpn
What’s new in .NET Core 3.0
• C# 8.0
• .NET Standard 2.1
• Improved .NET Core Version APIs
• .NET Platform-Dependent Intrinsics
• Default executables
• Single-file executables
• Assembly linking
• Tiered compilation
• ReadyToRun images
• Build copies dependencies
• Local tools
• Major-version Roll Forward
• Windows desktop
• COM-callable components - Windows Desktop
• MSIX Deployment - Windows Desktop
• WinForms high DPI
• Ranges and indices
• Async streams
• IEEE Floating-point improvements
• Fast built-in JSON support
• Interop improvements
• HTTP/2 support
• TLS 1.3 & OpenSSL 1.1.1 on Linux
• Cryptography ciphers
• Cryptographic Key Import/Export
• SerialPort for Linux
• Docker and cgroup memory Limits
• Smaller Garbage Collection heap sizes
• Garbage Collection Large Page support
• GPIO Support for Raspberry Pi
• ARM64 Linux support
#vssatpn
.NET 5
INFRASTRUCTURE
.NET STANDARD
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
WPF
Windows Forms
UWP
ASP.NET Xamarin UnityAzure ARM32
ARM64
ML.NET
.NET for
Apache Spark
.NET – A unified platform
#vssatpn
.NET Schedule
• .NET Core 3.0 released today!
• .NET Core 3.1 = Long Term Support (LTS)
• .NET 5.0 release in November 2020
• Major releases every year, LTS for even numbered releases
• Predictable schedule, minor releases if needed
July 2019
.NET Core 3.0
RC
Sept 2019
.NET Core 3.0
Nov 2019
.NET Core 3.1
LTS
Nov 2020
.NET 5.0
Nov 2021
.NET 6.0
LTS
Nov 2022
.NET 7.0
Nov 2023
.NET 8.0
LTS
#vssatpn
.NET Core SDK Windows Installer
• The MSI installer for Windows has changed starting with .NET
Core 3.0. The SDK installers will now upgrade SDK feature-band
releases in place. Feature bands are defined in
the hundreds groups in the patch section of the version number.
For example, 3.0.101 and 3.0.201 are versions in two different
feature bands while 3.0.101 and 3.0.199 are in the same feature
band. And, when .NET Core SDK 3.0.101 is installed, .NET Core
SDK 3.0.100 will be removed from the machine if it exists. When
.NET Core SDK 3.0.200 is installed on the same machine, .NET
Core SDK 3.0.101 won't be removed.
#vssatpn
Single-file executable
Con questa opzione possiamo ottenere un solo exe/eseguibile
che contenga tutto il necessario affinché l'applicativo funzioni.
Questo file alla prima esecuzione scompatta tutte le dll e le
dipendenze in una cartella temporanea e lancia l'app.
<PropertyGroup>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<PublishSingleFile>true</PublishSingleFile>
</PropertyGroup>
#vssatpn
Single-file executable
• La prima esecuzione rallenta notevolmente il cold startup perciò lo
rende più ideale in ambiti desktop dove si vuole privilegiare la facilità
di distribuzione
• File statici, come la cartella wwwroot degli applicativi web, non
vengono inclusi e vanno distribuiti a parte.
#vssatpn
.NET Standard 2.1
• Span<T>
• Index and Range
• IAsyncEnumerable<T>
• Reflection emit and capability APIs
• Hardware Intrinsics API [post]
• DbProviderFactories
• No support in full .NET Framework
#vssatpn
HTTP/2
var client = new HttpClient()
{
BaseAddress = new Uri("https://localhost:5001"),
DefaultRequestVersion = new Version(2, 0)
};
// HTTP/2 abilitato sul client
using var response = await client.GetAsync("/");
var client2 = new HttpClient();
// HTTP/2 abilitato sulla SINGOLA richiesta
using var request = new HttpRequestMessage(HttpMethod.Get, "/")
{ Version = new Version(2, 0) }
using var response = await client2.SendAsync(request)
#vssatpn
JSON
• System.Text.Json
• Utf8JsonReader
• Utf8JsonWriter
• JsonDocument
• JsonSerializer
#vssatpn
Microsoft.Data.SqlClient package
• 2 distinct System.Data.SqlClient code basis for Framework and Core
• Side-by-side execution
• .NET Standard (also for .NET Framework)
.NET & C# Updates Fall 2019
#vssatpn
Jupyter Notebooks with C#
• Based on dotnet-try
• Based on C# interactive
• Using C# in notebooks
• Spark//Databricks//C# scenario
.NET & C# Updates Fall 2019
#vssatpn
C# language evolution
• C# 1.0 was a new managed language
• C# 2.0 introduced generics
• C# 3.0 enabled LINQ
• C# 4.0 was all about interoperability with dynamic non-strongly typed languages.
• C# 5.0 simplified asynchronous programming with the async and await keywords.
• C# 6.0 the language has been increasingly shaped by conversation with the community,
now to the point of taking language features as contributions from outside Microsoft
• C# 7.x will be no exception, with tuples and pattern matching as the biggest features,
transforming and streamlining the flow of data and control in code. Point releases
• C# 7.1, 7.2, 7.3 Safe Efficient Code, More Freedom, Less Code
• C# 8.x (“unicorn”) running in the function path
#vssatpn
C# 7 objectives
•Working with data
• Pattern Matching
• Tuples
• Deconstruction
• Discards
•Code Simplification
• Expression Bodied Properties, Constructor Finalizer
• Throw expression
• Out Variables
• Binary Literals and Digit separator
•Improved Performances
• Local Functions
• Return values and local variables by reference
#vssatpn
What’s new in C# 8
• Default interface methods
• Pattern matching enhancements:
• Switch expressions
• Property patterns
• Tuple patterns
• Positional patterns
• Using declarations
• Static local functions
• Indices and ranges
• Null-coalescing assignment
• stackalloc in nested expressions
#vssatpn
Two more C# 8 enhancement
• Better to see with EF3.0
.NET & C# Updates Fall 2019
#vssatpn
Two more C# 8 enhancement
•Nullable reference types
• I call it my billion-dollar mistake (Tony Hoare)
• It’s a breaking change for the semantics of C#
•Asynchronous streams
#vssatpn
Entity Framework Core
• C# 8 support
• like async streams and nullable reference types
• EF 6.3 ported to .NET Core
• Lots of breaking changes
• LINQ improvements
• Cosmos DB support
• Microsoft.Data.SqlClient
• Database views reverse engineering
• using Query types Entities without keys
• EF Core no longer part of ASP.NET Core shared framework
• Targets .NET Standard 2.1
#vssatpn
What’s new in EF Core 3.0
• Relational SQL
• Nullable reference types
• LINQ overhaul
• New architecture
• Constrained client evaluation
• Single SQL query per LINQ query
• Reverse engineering of views
• Microsoft.Data.SqlClient
• Cosmos DB provider
• Async streams
.NET & C# Updates Fall 2019
#vssatpn
The .NET Desktop Development evolution
#vssatpn
Windows Desktop
Windows Desktop
• Windows Forms
• WPF
• UWP
• Open-source
.NET & C# Updates Fall 2019
#vssatpn
IoT in .NET Core 3
• Raspberry PI
• Windows 10 IoT Core
#vssatpn
Visual Studio Saturday 2019
Grazie!

More Related Content

PPTX
What is new in .NET 4.5
PDF
Docker and Fluentd
PDF
Kalnai_Jirkal-vb-2016-malicious-osx-cocktail
PDF
Fluentd v1 and Roadmap
PPTX
Introduction to node.js
PDF
PharoDAYS 2015: Pharo Status - by Markus Denker
PDF
[Draft] Fast Prototyping with DPDK and eBPF in Containernet
PPTX
Return on Ignite 2019: Azure, .NET, A.I. & Data
What is new in .NET 4.5
Docker and Fluentd
Kalnai_Jirkal-vb-2016-malicious-osx-cocktail
Fluentd v1 and Roadmap
Introduction to node.js
PharoDAYS 2015: Pharo Status - by Markus Denker
[Draft] Fast Prototyping with DPDK and eBPF in Containernet
Return on Ignite 2019: Azure, .NET, A.I. & Data

What's hot (18)

PDF
Pharo Status Fosdem 2015
PDF
Fluentd Hacking Guide at RubyKaigi 2014
PDF
Fluentd v1 and future at techtalk
PDF
Writing Rust Command Line Applications
PPTX
A Deep Dive into Kafka Controller
PDF
faastRuby - Building a FaaS platform with Redis (RedisConf19)
PDF
DanNotes 2013: OpenNTF Domino API
PDF
Maccro Strikes Back
PDF
127 Ch 2: Stack overflows on Linux
PDF
Invitation to the dark side of Ruby
PDF
Pharo Status ESUG 2014
PDF
[231] the simplicity of cluster apps with circuit
PDF
Distributed Elixir
PPTX
Rust kafka-5-2019-unskip
PDF
Kafka Workshop
PPTX
Deep Dive into Apache Kafka
ODP
Hunt For Blue Leader
PDF
Ractor's speed is not light-speed
Pharo Status Fosdem 2015
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd v1 and future at techtalk
Writing Rust Command Line Applications
A Deep Dive into Kafka Controller
faastRuby - Building a FaaS platform with Redis (RedisConf19)
DanNotes 2013: OpenNTF Domino API
Maccro Strikes Back
127 Ch 2: Stack overflows on Linux
Invitation to the dark side of Ruby
Pharo Status ESUG 2014
[231] the simplicity of cluster apps with circuit
Distributed Elixir
Rust kafka-5-2019-unskip
Kafka Workshop
Deep Dive into Apache Kafka
Hunt For Blue Leader
Ractor's speed is not light-speed
Ad

Similar to .NET & C# Updates Fall 2019 (20)

PDF
What's New in ASP.NET Core 3
PPTX
.Net: Introduction, trends and future
PDF
Raffaele Rialdi
PPTX
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
PDF
C# 8 and .NET Core 3
PDF
Whats new in .NET for 2019
PPTX
Mini .net conf 2020
PDF
.NET Core 3.0 - What's new?
PPTX
C#: Past, Present and Future
PPTX
.NET Core Today and Tomorrow
PPTX
From .NET Core 3, all the rest will be legacy
PPTX
Whats new in .net for 2019
PPTX
NET core 2 e i fratelli
PPTX
What's New in .Net 4.5
PPTX
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
PPT
Introdot Netc Sharp En
PPTX
ASP.NET Core: The best of the new bits
PPTX
.Net Core Fall update
PPTX
Desarrollo multiplataforma con el framework .net
PDF
Pottnet MeetUp Essen - ASP.Net Core
What's New in ASP.NET Core 3
.Net: Introduction, trends and future
Raffaele Rialdi
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
C# 8 and .NET Core 3
Whats new in .NET for 2019
Mini .net conf 2020
.NET Core 3.0 - What's new?
C#: Past, Present and Future
.NET Core Today and Tomorrow
From .NET Core 3, all the rest will be legacy
Whats new in .net for 2019
NET core 2 e i fratelli
What's New in .Net 4.5
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
Introdot Netc Sharp En
ASP.NET Core: The best of the new bits
.Net Core Fall update
Desarrollo multiplataforma con el framework .net
Pottnet MeetUp Essen - ASP.Net Core
Ad

More from Marco Parenzan (20)

PPTX
Azure IoT Central per lo SCADA engineer
PPTX
Azure Hybrid @ Home
PPTX
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
PPTX
Azure Synapse Analytics for your IoT Solutions
PPTX
Power BI Streaming Data Flow e Azure IoT Central
PPTX
Power BI Streaming Data Flow e Azure IoT Central
PPTX
Power BI Streaming Data Flow e Azure IoT Central
PPTX
Developing Actors in Azure with .net
PPTX
Math with .NET for you and Azure
PPTX
Power BI data flow and Azure IoT Central
PPTX
.net for fun: write a Christmas videogame
PPTX
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
PPTX
Anomaly Detection with Azure and .NET
PPTX
Deploy Microsoft Azure Data Solutions
PPTX
Deep Dive Time Series Anomaly Detection in Azure with dotnet
PPTX
Azure IoT Central
PPTX
Anomaly Detection with Azure and .net
PPTX
Code Generation for Azure with .net
PPTX
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
PPTX
Time Series Anomaly Detection with Azure and .NETT
Azure IoT Central per lo SCADA engineer
Azure Hybrid @ Home
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Azure Synapse Analytics for your IoT Solutions
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
Developing Actors in Azure with .net
Math with .NET for you and Azure
Power BI data flow and Azure IoT Central
.net for fun: write a Christmas videogame
Building IoT infrastructure on edge with .net, Raspberry PI and ESP32 to conn...
Anomaly Detection with Azure and .NET
Deploy Microsoft Azure Data Solutions
Deep Dive Time Series Anomaly Detection in Azure with dotnet
Azure IoT Central
Anomaly Detection with Azure and .net
Code Generation for Azure with .net
Running Kafka and Spark on Raspberry PI with Azure and some .net magic
Time Series Anomaly Detection with Azure and .NETT

Recently uploaded (20)

PPTX
Spectroscopy.pptx food analysis technology
PPTX
Tartificialntelligence_presentation.pptx
PPTX
1. Introduction to Computer Programming.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Machine Learning_overview_presentation.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
TLE Review Electricity (Electricity).pptx
PDF
August Patch Tuesday
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Assigned Numbers - 2025 - Bluetooth® Document
Spectroscopy.pptx food analysis technology
Tartificialntelligence_presentation.pptx
1. Introduction to Computer Programming.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Machine Learning_overview_presentation.pptx
Encapsulation theory and applications.pdf
Empathic Computing: Creating Shared Understanding
TLE Review Electricity (Electricity).pptx
August Patch Tuesday
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Univ-Connecticut-ChatGPT-Presentaion.pdf
OMC Textile Division Presentation 2021.pptx
Heart disease approach using modified random forest and particle swarm optimi...
Machine learning based COVID-19 study performance prediction
Assigned Numbers - 2025 - Bluetooth® Document

.NET & C# Updates Fall 2019

  • 1. #vssatpn Visual Studio Saturday 2019 .NET & C# Updates Fall 2019 Marco Parenzan
  • 3. #vssatpn The .NET and .NET Core Path
  • 4. #vssatpn What’s new in .NET Core 3.0 • C# 8.0 • .NET Standard 2.1 • Improved .NET Core Version APIs • .NET Platform-Dependent Intrinsics • Default executables • Single-file executables • Assembly linking • Tiered compilation • ReadyToRun images • Build copies dependencies • Local tools • Major-version Roll Forward • Windows desktop • COM-callable components - Windows Desktop • MSIX Deployment - Windows Desktop • WinForms high DPI • Ranges and indices • Async streams • IEEE Floating-point improvements • Fast built-in JSON support • Interop improvements • HTTP/2 support • TLS 1.3 & OpenSSL 1.1.1 on Linux • Cryptography ciphers • Cryptographic Key Import/Export • SerialPort for Linux • Docker and cgroup memory Limits • Smaller Garbage Collection heap sizes • Garbage Collection Large Page support • GPIO Support for Raspberry Pi • ARM64 Linux support
  • 5. #vssatpn .NET 5 INFRASTRUCTURE .NET STANDARD DESKTOP WEB CLOUD MOBILE GAMING IoT AI WPF Windows Forms UWP ASP.NET Xamarin UnityAzure ARM32 ARM64 ML.NET .NET for Apache Spark .NET – A unified platform
  • 6. #vssatpn .NET Schedule • .NET Core 3.0 released today! • .NET Core 3.1 = Long Term Support (LTS) • .NET 5.0 release in November 2020 • Major releases every year, LTS for even numbered releases • Predictable schedule, minor releases if needed July 2019 .NET Core 3.0 RC Sept 2019 .NET Core 3.0 Nov 2019 .NET Core 3.1 LTS Nov 2020 .NET 5.0 Nov 2021 .NET 6.0 LTS Nov 2022 .NET 7.0 Nov 2023 .NET 8.0 LTS
  • 7. #vssatpn .NET Core SDK Windows Installer • The MSI installer for Windows has changed starting with .NET Core 3.0. The SDK installers will now upgrade SDK feature-band releases in place. Feature bands are defined in the hundreds groups in the patch section of the version number. For example, 3.0.101 and 3.0.201 are versions in two different feature bands while 3.0.101 and 3.0.199 are in the same feature band. And, when .NET Core SDK 3.0.101 is installed, .NET Core SDK 3.0.100 will be removed from the machine if it exists. When .NET Core SDK 3.0.200 is installed on the same machine, .NET Core SDK 3.0.101 won't be removed.
  • 8. #vssatpn Single-file executable Con questa opzione possiamo ottenere un solo exe/eseguibile che contenga tutto il necessario affinché l'applicativo funzioni. Questo file alla prima esecuzione scompatta tutte le dll e le dipendenze in una cartella temporanea e lancia l'app. <PropertyGroup> <RuntimeIdentifier>win10-x64</RuntimeIdentifier> <PublishSingleFile>true</PublishSingleFile> </PropertyGroup>
  • 9. #vssatpn Single-file executable • La prima esecuzione rallenta notevolmente il cold startup perciò lo rende più ideale in ambiti desktop dove si vuole privilegiare la facilità di distribuzione • File statici, come la cartella wwwroot degli applicativi web, non vengono inclusi e vanno distribuiti a parte.
  • 10. #vssatpn .NET Standard 2.1 • Span<T> • Index and Range • IAsyncEnumerable<T> • Reflection emit and capability APIs • Hardware Intrinsics API [post] • DbProviderFactories • No support in full .NET Framework
  • 11. #vssatpn HTTP/2 var client = new HttpClient() { BaseAddress = new Uri("https://localhost:5001"), DefaultRequestVersion = new Version(2, 0) }; // HTTP/2 abilitato sul client using var response = await client.GetAsync("/"); var client2 = new HttpClient(); // HTTP/2 abilitato sulla SINGOLA richiesta using var request = new HttpRequestMessage(HttpMethod.Get, "/") { Version = new Version(2, 0) } using var response = await client2.SendAsync(request)
  • 12. #vssatpn JSON • System.Text.Json • Utf8JsonReader • Utf8JsonWriter • JsonDocument • JsonSerializer
  • 13. #vssatpn Microsoft.Data.SqlClient package • 2 distinct System.Data.SqlClient code basis for Framework and Core • Side-by-side execution • .NET Standard (also for .NET Framework)
  • 15. #vssatpn Jupyter Notebooks with C# • Based on dotnet-try • Based on C# interactive • Using C# in notebooks • Spark//Databricks//C# scenario
  • 17. #vssatpn C# language evolution • C# 1.0 was a new managed language • C# 2.0 introduced generics • C# 3.0 enabled LINQ • C# 4.0 was all about interoperability with dynamic non-strongly typed languages. • C# 5.0 simplified asynchronous programming with the async and await keywords. • C# 6.0 the language has been increasingly shaped by conversation with the community, now to the point of taking language features as contributions from outside Microsoft • C# 7.x will be no exception, with tuples and pattern matching as the biggest features, transforming and streamlining the flow of data and control in code. Point releases • C# 7.1, 7.2, 7.3 Safe Efficient Code, More Freedom, Less Code • C# 8.x (“unicorn”) running in the function path
  • 18. #vssatpn C# 7 objectives •Working with data • Pattern Matching • Tuples • Deconstruction • Discards •Code Simplification • Expression Bodied Properties, Constructor Finalizer • Throw expression • Out Variables • Binary Literals and Digit separator •Improved Performances • Local Functions • Return values and local variables by reference
  • 19. #vssatpn What’s new in C# 8 • Default interface methods • Pattern matching enhancements: • Switch expressions • Property patterns • Tuple patterns • Positional patterns • Using declarations • Static local functions • Indices and ranges • Null-coalescing assignment • stackalloc in nested expressions
  • 20. #vssatpn Two more C# 8 enhancement • Better to see with EF3.0
  • 22. #vssatpn Two more C# 8 enhancement •Nullable reference types • I call it my billion-dollar mistake (Tony Hoare) • It’s a breaking change for the semantics of C# •Asynchronous streams
  • 23. #vssatpn Entity Framework Core • C# 8 support • like async streams and nullable reference types • EF 6.3 ported to .NET Core • Lots of breaking changes • LINQ improvements • Cosmos DB support • Microsoft.Data.SqlClient • Database views reverse engineering • using Query types Entities without keys • EF Core no longer part of ASP.NET Core shared framework • Targets .NET Standard 2.1
  • 24. #vssatpn What’s new in EF Core 3.0 • Relational SQL • Nullable reference types • LINQ overhaul • New architecture • Constrained client evaluation • Single SQL query per LINQ query • Reverse engineering of views • Microsoft.Data.SqlClient • Cosmos DB provider • Async streams
  • 26. #vssatpn The .NET Desktop Development evolution
  • 27. #vssatpn Windows Desktop Windows Desktop • Windows Forms • WPF • UWP • Open-source
  • 29. #vssatpn IoT in .NET Core 3 • Raspberry PI • Windows 10 IoT Core

Editor's Notes

  • #3: Streaming demos
  • #11: IAsyncEnumerable<T> - for async streams Reflection emit and capability APIs - for dynamic code generation, checks and generating code Hardware Intrinsics API using Intel SSE, SSE2, AVX2, ARM, ARM64 directly from managed code moving from C++ portion of runtime to C# better for JIT targeting optimized basic operations in BCL, such as string comparison DbProviderFactories - use ADO.NET provider without knowing its type at compile type
  • #15: Streaming demos
  • #17: Streaming demos
  • #22: Streaming demos
  • #26: Streaming demos
  • #28: Why Windows Desktop on Core? Performance Side by side execution Self-contained exe BCL improvements Open-source
  • #29: Streaming demos