SlideShare a Scribd company logo
C# 8 & .NET Core 3.0
– What's New?
christian@christiannagel.com
@christiannagel
https://csharp.christiannagel.com
Topics
The
Language
The
Desktop
The
Blazor
Christian Nagel
• Training
• Coaching
• Consulting
• Development
• Microsoft MVP
• @christiannagel
• www.cninnovation.com
• csharp.christiannagel.com
C# 8
The Language
Asynchronous Streams
Asynchronous Streams
New Interfaces
IAsyncDisposable
IAsyncEnumerable
IAsyncEnumerator
Statements extended
yield return/break
await foreach
Indexes and Ranges
Indexes and Ranges
• ^ Hat Operator
• .. Range Operator
• Index and Range Types
• Use C# 8 Ranges to access arrays, strings…
• .NET Core 3.0 is faster
• JSonDocument, Utf8JsonReader, UTF8JsonWriter
• …
Nullable
Reference
Types
Nullable
Reference
Types
• Reference Types are not nullable anymore
• Get rid of NullReferenceException
• Breaking change
• Opt-in (project, code regions)
Nullability
Annotation Guidance
• .NET Core annotation in progress
• Do annotate all new APIs
• Consider changing the contracts if there's a
different de facto use
• Do continue to validate arguments
• Do not remove existing argument validation
• Avoid making changes while annotating
unless it's a bug fix
• some?.Method()
• https://github.com/dotnet/corefx/blob/ma
ster/Documentation/api-
guidelines/nullability.md
Switch Expression & More Pattern
Matching
More Features
• property pattern
• recursive pattern
• switch expressions
• using declaration
• default interface methods
DesktopDoes WPF have a
future?
Desktop App
Development
Universal Windows Platform
(UWP)
Windows Presentation
Foundation (WPF)
UWP Features
• Sandboxed Evironment
• Compiled Binding
• Controls (Inking, WebView, Maps…)
• Windows Runtime APIs
Updates
• Windows UI Library independent from Windows Versions
• XAML Islands (use UWP Controls with WPF)
• Use Windows Runtime with WPF
• .NET Core WPF with .NET Core
XAML Islands
UWP Controls for WPF & Windows Forms
Wrappers for Ink, Map, Media
Create your own!
Windows Community Tookit
WPF & .NET
Core
New Project File
All C# 8 & .NET Core Features
Use the Windows Runtime
Side-by-side Runtime
Self-contained Exes
Interop
Use the Portability
Analyzer
Windows
Compatibility Pack
COM Interop
coming
WPF only runs on
Windows!
Blazor
ASP.NET Core 3 Features
• Generic host in Templates
• Service configuration simplified
• Endpoint Routing
• SignalR Client-to-Server Streaming
• JSON Serialization
• Worker Service Template
• gRPC Template
Blazor
• Components for the Web
• Based on Syntax of Razor Pages
• Client-Side Components make use of
WebAssembly
• Server-Side Components communicate via SignalR
• Server-Side Components released with .NET Core 3
• Client-Side Components released with a later .NET
Core 3 version
Release Plans
Release .NET Core 3.0
Sep. 2019
.NET Core 3.1 (LTS)
Nov. 2019
.NET 5.0
Sep. 2020
.NET 6.0 (LTS)
Sep. 2021
.NET 7.0
Sep. 2022
.NET 8.0 (LTS)
Sep. 2023
Summary
• C# 8 – The Language & .NET Core
• Desktop - WPF & .NET Core
• Blazor & ASP.NET Core
Questions?
Actions
• Use C# 8
• Annotate your applications & libraries
• Use .NET Core 3
• Prepare for ASP.NET Core 3
• Be open for new application models
• Use the portability analyzer for WPF
• WPF & .NET Core
• https://github.com/christiannagel
• https://csharp.christiannagel.com
• https://docs.microsoft.com
• https://github.com/windows-toolkit/
• https://github.com/dotnet/
Thank you!
Images Copyright – Dreamstime.com
• Learning foreign languages
• © Gpointstudio
• Flowing water stream
• © Auris
• 3D cubes
• © Styleuneed
• Null
• © ProfitImage
• Car climate control switch 3
• © Nui7711
• Modern Desktop
• © Geraldo Pena
• Blazer
• © Wafebreakmedia Ltd
• Speaker answering questions
• © Vadymvdrobot
• Bucharest night scene
• © Foton64

More Related Content

PDF
Async streams
PDF
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
PDF
.NET Core 3.0 - What's new?
PDF
Azure App Configuration with .NET applications
PDF
C# 9 - What's the cool stuff? - BASTA! Spring 2021
PDF
Entity Framework Core 1.x/2.x Advanced
PDF
C# 8 in Libraries and Applications
PDF
Net coreandsimplcommerce
Async streams
.NET Core Foundations - Dependency Injection, Logging & Configuration - BASTA...
.NET Core 3.0 - What's new?
Azure App Configuration with .NET applications
C# 9 - What's the cool stuff? - BASTA! Spring 2021
Entity Framework Core 1.x/2.x Advanced
C# 8 in Libraries and Applications
Net coreandsimplcommerce

What's hot (20)

PPTX
Porting ASP.NET applications to Windows Azure
PPTX
Migration from ASP.NET MVC to ASP.NET Core
PDF
RubyConf Taiwan 2016 - Large scale Rails applications
PPTX
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
PPTX
Angular4 kickstart
PPTX
ASP.NET MVC 4
PPTX
Entity Framework 7: What's New?
PPTX
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
PPTX
Developing Cross-Platform Web Apps with ASP.NET Core1.0
PDF
Orchestrator for QlikView: add-on product description
PPTX
Building solutions with the SharePoint Framework - introduction
PDF
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
PPTX
Introduction presentation
PPTX
TypeScript and Angular2 (Love at first sight)
PPTX
Mvc razor and working with data
PDF
RubyConf China 2015 - Rails off assets pipeline
PPTX
Creating Custom HTML Helpers in ASP.NET MVC
PPTX
A (XPages) developers guide to Cloudant
PPTX
Building solutions with the SharePoint Framework - deep-dive
Porting ASP.NET applications to Windows Azure
Migration from ASP.NET MVC to ASP.NET Core
RubyConf Taiwan 2016 - Large scale Rails applications
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Angular4 kickstart
ASP.NET MVC 4
Entity Framework 7: What's New?
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
Developing Cross-Platform Web Apps with ASP.NET Core1.0
Orchestrator for QlikView: add-on product description
Building solutions with the SharePoint Framework - introduction
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
Introduction presentation
TypeScript and Angular2 (Love at first sight)
Mvc razor and working with data
RubyConf China 2015 - Rails off assets pipeline
Creating Custom HTML Helpers in ASP.NET MVC
A (XPages) developers guide to Cloudant
Building solutions with the SharePoint Framework - deep-dive
Ad

Similar to C# 8 and .NET Core 3 (20)

PPTX
From .NET Core 3, all the rest will be legacy
PPTX
Net developer days presentation
PPTX
.NET & C# Updates Fall 2019
PPTX
.NET Core Today and Tomorrow
PPTX
C#: Past, Present and Future
PPTX
Mini .net conf 2020
PPTX
.Net Core 3.0. What’s inside? Павло Голубович
PPTX
Whats new in .net for 2019
PPT
Net framework
PDF
What's New in ASP.NET Core 3
PPTX
Unboxing ASP.NET Core
PPTX
Asp.net and .Net Framework ppt presentation
PDF
About .NET 8 and a first glimpse into .NET9
PPTX
PDF
.net Core 3.0 ve C# 8.0
PPTX
.Net: Introduction, trends and future
PPTX
ASP.NET Core: The best of the new bits
PPTX
What you need to know about .NET Core 3.0 and beyond
PPTX
CS4443 - Modern Programming Language - I Lecture (1)
PDF
Writing High Peformance C# 7 Code
From .NET Core 3, all the rest will be legacy
Net developer days presentation
.NET & C# Updates Fall 2019
.NET Core Today and Tomorrow
C#: Past, Present and Future
Mini .net conf 2020
.Net Core 3.0. What’s inside? Павло Голубович
Whats new in .net for 2019
Net framework
What's New in ASP.NET Core 3
Unboxing ASP.NET Core
Asp.net and .Net Framework ppt presentation
About .NET 8 and a first glimpse into .NET9
.net Core 3.0 ve C# 8.0
.Net: Introduction, trends and future
ASP.NET Core: The best of the new bits
What you need to know about .NET Core 3.0 and beyond
CS4443 - Modern Programming Language - I Lecture (1)
Writing High Peformance C# 7 Code
Ad

More from Christian Nagel (16)

PDF
C# 9 and 10 - What's cool?
PDF
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
PDF
Gemeinsame View-Models mit XAML Technologien
PDF
Adaptive Cards - User Interfaces with JSON
PDF
Reference Semantik mit C# und .NET Core - BASTA 2019
PDF
C# What's next? (7.x and 8.0)
PDF
C# 7.x What's new and what's coming with C# 8
PDF
Blazor - The New Silverlight?
PDF
Desktop Bridge with WPF - One way to build modern apps with WPF
PDF
Reference Semantics with C# and .NET Core
PDF
C# - What's next
PDF
Business Apps with the Universal Windows Platform
PDF
Blazor - The New Silverlight?
PDF
Was is Docker? Or: Docker for Software Developers
PDF
Moderne Business Apps mit XAML - oder mit WPF für die Zukunft geplant
PDF
C# - What's Next?
C# 9 and 10 - What's cool?
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
Gemeinsame View-Models mit XAML Technologien
Adaptive Cards - User Interfaces with JSON
Reference Semantik mit C# und .NET Core - BASTA 2019
C# What's next? (7.x and 8.0)
C# 7.x What's new and what's coming with C# 8
Blazor - The New Silverlight?
Desktop Bridge with WPF - One way to build modern apps with WPF
Reference Semantics with C# and .NET Core
C# - What's next
Business Apps with the Universal Windows Platform
Blazor - The New Silverlight?
Was is Docker? Or: Docker for Software Developers
Moderne Business Apps mit XAML - oder mit WPF für die Zukunft geplant
C# - What's Next?

Recently uploaded (20)

PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Understanding Forklifts - TECH EHS Solution
PDF
top salesforce developer skills in 2025.pdf
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administration Chapter 2
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
history of c programming in notes for students .pptx
PDF
medical staffing services at VALiNTRY
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
L1 - Introduction to python Backend.pptx
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
System and Network Administraation Chapter 3
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Design an Analysis of Algorithms I-SECS-1021-03
Understanding Forklifts - TECH EHS Solution
top salesforce developer skills in 2025.pdf
Online Work Permit System for Fast Permit Processing
Internet Downloader Manager (IDM) Crack 6.42 Build 41
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Wondershare Filmora 15 Crack With Activation Key [2025
history of c programming in notes for students .pptx
medical staffing services at VALiNTRY
How to Migrate SBCGlobal Email to Yahoo Easily
L1 - Introduction to python Backend.pptx
ManageIQ - Sprint 268 Review - Slide Deck
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
2025 Textile ERP Trends: SAP, Odoo & Oracle
System and Network Administraation Chapter 3

C# 8 and .NET Core 3

  • 1. C# 8 & .NET Core 3.0 – What's New? christian@christiannagel.com @christiannagel https://csharp.christiannagel.com
  • 3. Christian Nagel • Training • Coaching • Consulting • Development • Microsoft MVP • @christiannagel • www.cninnovation.com • csharp.christiannagel.com
  • 8. Indexes and Ranges • ^ Hat Operator • .. Range Operator • Index and Range Types • Use C# 8 Ranges to access arrays, strings… • .NET Core 3.0 is faster • JSonDocument, Utf8JsonReader, UTF8JsonWriter • …
  • 10. Nullable Reference Types • Reference Types are not nullable anymore • Get rid of NullReferenceException • Breaking change • Opt-in (project, code regions)
  • 11. Nullability Annotation Guidance • .NET Core annotation in progress • Do annotate all new APIs • Consider changing the contracts if there's a different de facto use • Do continue to validate arguments • Do not remove existing argument validation • Avoid making changes while annotating unless it's a bug fix • some?.Method() • https://github.com/dotnet/corefx/blob/ma ster/Documentation/api- guidelines/nullability.md
  • 12. Switch Expression & More Pattern Matching
  • 13. More Features • property pattern • recursive pattern • switch expressions • using declaration • default interface methods
  • 14. DesktopDoes WPF have a future?
  • 15. Desktop App Development Universal Windows Platform (UWP) Windows Presentation Foundation (WPF)
  • 16. UWP Features • Sandboxed Evironment • Compiled Binding • Controls (Inking, WebView, Maps…) • Windows Runtime APIs
  • 17. Updates • Windows UI Library independent from Windows Versions • XAML Islands (use UWP Controls with WPF) • Use Windows Runtime with WPF • .NET Core WPF with .NET Core
  • 18. XAML Islands UWP Controls for WPF & Windows Forms Wrappers for Ink, Map, Media Create your own! Windows Community Tookit
  • 19. WPF & .NET Core New Project File All C# 8 & .NET Core Features Use the Windows Runtime Side-by-side Runtime Self-contained Exes
  • 20. Interop Use the Portability Analyzer Windows Compatibility Pack COM Interop coming WPF only runs on Windows!
  • 22. ASP.NET Core 3 Features • Generic host in Templates • Service configuration simplified • Endpoint Routing • SignalR Client-to-Server Streaming • JSON Serialization • Worker Service Template • gRPC Template
  • 23. Blazor • Components for the Web • Based on Syntax of Razor Pages • Client-Side Components make use of WebAssembly • Server-Side Components communicate via SignalR • Server-Side Components released with .NET Core 3 • Client-Side Components released with a later .NET Core 3 version
  • 24. Release Plans Release .NET Core 3.0 Sep. 2019 .NET Core 3.1 (LTS) Nov. 2019 .NET 5.0 Sep. 2020 .NET 6.0 (LTS) Sep. 2021 .NET 7.0 Sep. 2022 .NET 8.0 (LTS) Sep. 2023
  • 25. Summary • C# 8 – The Language & .NET Core • Desktop - WPF & .NET Core • Blazor & ASP.NET Core
  • 27. Actions • Use C# 8 • Annotate your applications & libraries • Use .NET Core 3 • Prepare for ASP.NET Core 3 • Be open for new application models • Use the portability analyzer for WPF • WPF & .NET Core • https://github.com/christiannagel • https://csharp.christiannagel.com • https://docs.microsoft.com • https://github.com/windows-toolkit/ • https://github.com/dotnet/
  • 29. Images Copyright – Dreamstime.com • Learning foreign languages • © Gpointstudio • Flowing water stream • © Auris • 3D cubes • © Styleuneed • Null • © ProfitImage • Car climate control switch 3 • © Nui7711 • Modern Desktop • © Geraldo Pena • Blazer • © Wafebreakmedia Ltd • Speaker answering questions • © Vadymvdrobot • Bucharest night scene • © Foton64