SlideShare a Scribd company logo
What's new in .NET
@rorypreddy
• Years of backwards compatibility for .NET is limiting
the teams with future development.
• .NET Framework is slowing down
• They will continue to update
• No changes to support policy
• Recommend new development on .NET Core
The Future of .NET Framework
Don’t Panic!
• You don’t have
to move!
New
development
• .NET Core is a
good choice
Existing code
• Costs and
benefits to
migrating
TheBottom Line
CORE 3.0
• Side-by-side and App-local Deployment
• Easily convert existing Desktop
applications to .Net Core 3
• Improvement to Project Files
• Continue to support Controls, NuGet
Packages, and Existing Assembly
References
Modernize Desktop Apps with .NET Core 3
Highly-compatible,
targeted improvements,
like last few releases
UWP
Windows-only
WEB
ASP.NET
Core
EF 6
EF Core
AI/ML
ML.NET
WPF
.NET Core 3.NET Framework 4.8
Existing
App
Highly
compatible
updates
Install .NET
Core updates
per your
needs
Windows-only Cross-platform
DATA
Windows
Forms
.NET STANDARD
Update .NET Framework Apps
Strategy: Divide and Conquor
What Goes Where
• Desktop Apps -> .NETCore 3
• Business Logic -> .NET Standard
• BackEndAPls -> .NETCore 3
• Front EndWeb Apps -> Well, this istougher...
Migrating a Typical .NET App Partially to the Cloud
On-Premises
WPF App
Windows .NET Framework
Web API Back End
Windows .NET Framework
SQL
Database
1
On-Premises
WPF App
Windows .NET Framework
Web API Back End
Windows .NET Core
SQL
Database
2
Cloud
On-Premises
WPF App
Windows .NET Framework
Web API Back End
Windows .NET Core
SQL
Database
3
Handling Shared Code When Targeting Multiple .NET Implementations
WPF App
.NET Framework
Web API Back End
.NET Framework
1
Business Logic
.NET Framework
WPF App
.NET Framework
Web API Back End
.NET Core
2
Business Logic
.NET Standard
Desktop
What to expect in porting desktop apps to
Core
• Update project files to target .NET Core 3
and recompile.
• Dependencies will not need to retarget and
recompile. There will be additional benefits if you
update dependencies.
Business Logic &
.NET Standard
What is .NET Standard?
.NET Standard is a specification
A set of APIs that all .NET platforms must
implement
$ dotnet new classlib -o My.Class.Library
.NET Standard is represented by
The NuGet package NetStandard.Library which contains
The reference assembly netstandard.dll
At build time
.NET Standard bridges references to existing .NET Framework and PCL
assemblies via type forwarding
At runtime
Each platform provides an implementation for netstandard.dll that type
forwards to its implementation
• .NET Core is an implementation of the .NET Standard
• .NET Standard updates are coordinated across all .NET implementers
• .NET Core can be updated independently
How does .NET Standard work?
Using platform-specific APIs
from .NET Standard
Windows Compatibility Pack
• Microsoft.Windows.Compatibility (NuGet package)
• Can be referenced from .NETCore as well as from .NETStandard
• Has ~21 k Api’s (Windows-only as well as cross-platform)
• Contents
ACLs
Code Pages
Code Dom
Configuration
Crypto
DirectoryServices
Drawing
EventLog
MEF v1
Odbc
Perf Counters
Permissions
Ports
Registry
Runtime Caching
WCF
Windows Services
Detecting usage of unsupported APIs
• Use API Analyzer!
• https://aka.ms/apianalyzer
• Warns about potential compatibility issues and calls to deprecated APIs.
Analyzer report
Analyzer report
C# 8.0
8.0 Changes
• Preview1
• Nullable reference types
• Asynchronous streams
• Indices and ranges
• Default interfaces
• Preview 2
• Pattern matching enhancements
• Using declarations
• Static local functions
• Disposable ref structs
NULLABLE REFERENCE TYPES
public string Run(string? p1, string p2)
{
return p1 + p2;
}
foreach await(var s in objects) {
}
using await…
ASYNCHRONOUS STREAMS & ITERATORS &
DISPOSE
Types
• Part of .NET Standard 2.1 and C# 8
• The new Index type
• The Range type
• Nullable reference types
• .Net Core 3.0, Xamarin, Unity, and Mono will implement the
2.1 version
• .Net Framework 4.8 will not!
• Types required to use these features will not be available
when C# 8. 0 is targeted to .Net Framework 4.8
Index and Range TYPES
Index Expressions
var lastCharacter = myString[myString.Length-1];
var lastCharacter = myString[^1];
Index nextIndex = ^(x + 1); var nextChar = myString[nextIndex]
Range Expressions
var s = myString.Substring[0..2];
var s = myString.Substring(1..^1);
DEFAULT INTERFACE IMPLEMENTATIONS
public interface IDefaultInterfaceMethod=
{
public void DefaultMethod() => Console.WriteLine("Merhaba")
}
public class AnyClass : IDefaultInterfaceMethod
{
}
Thanks
@rorypreddy
.NET core 3.0 daily builds
• https://github.com/dotnet/core/blob/master/daily-builds.md
.NET Core 3.0 PortabilityAnalyzer
• https://github.com/Microsoft/dotnet-apiport-ui

More Related Content

What's hot

Perforce Streams
Perforce StreamsPerforce Streams
Perforce StreamsPerforce
 
SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...
SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...
SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...
South Tyrol Free Software Conference
 
2013 t-dose - libre office easyhacks
2013   t-dose - libre office easyhacks2013   t-dose - libre office easyhacks
2013 t-dose - libre office easyhacks
Rob Snelders
 
ONAP on Vagrant
ONAP on VagrantONAP on Vagrant
ONAP on Vagrant
Victor Morales
 
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Arrow Consulting & Design
 
ASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bits
Ken Cenerelli
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
Rodolfo Finochietti
 
Functional Testing of RESTful Applications
Functional Testing of RESTful ApplicationsFunctional Testing of RESTful Applications
Functional Testing of RESTful Applications
Nenad Bozic
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Rodolfo Finochietti
 
Reactive Web Development with Spring Boot 2
Reactive Web Development with Spring Boot 2Reactive Web Development with Spring Boot 2
Reactive Web Development with Spring Boot 2
Mike Melusky
 
Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
Phil Leggetter
 
Continuous Integration with Mozmill
Continuous Integration with MozmillContinuous Integration with Mozmill
Continuous Integration with MozmillHenrik Skupin
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet
Rick van den Bosch
 
.Net Core
.Net Core.Net Core
.Net Core
Bertrand Le Roy
 
Enterprise Library 5
Enterprise Library 5Enterprise Library 5
Enterprise Library 5
Robert MacLean
 
.Net Core
.Net Core.Net Core
Using Perforce Streams to Optimize Development of Flash Memory Solutions
Using Perforce Streams to Optimize Development of Flash Memory SolutionsUsing Perforce Streams to Optimize Development of Flash Memory Solutions
Using Perforce Streams to Optimize Development of Flash Memory Solutions
Perforce
 
Net Framework overview
Net Framework overviewNet Framework overview
Net Framework overview
MohitKumar1985
 
Dev ops for rpa
Dev ops for rpaDev ops for rpa
Dev ops for rpa
Juveria Siddiqui
 
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 

What's hot (20)

Perforce Streams
Perforce StreamsPerforce Streams
Perforce Streams
 
SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...
SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...
SFScon18 - Kurt Ranalter - Leonhard Holzer - API level regression testing: a ...
 
2013 t-dose - libre office easyhacks
2013   t-dose - libre office easyhacks2013   t-dose - libre office easyhacks
2013 t-dose - libre office easyhacks
 
ONAP on Vagrant
ONAP on VagrantONAP on Vagrant
ONAP on Vagrant
 
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
 
ASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bits
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Functional Testing of RESTful Applications
Functional Testing of RESTful ApplicationsFunctional Testing of RESTful Applications
Functional Testing of RESTful Applications
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
Reactive Web Development with Spring Boot 2
Reactive Web Development with Spring Boot 2Reactive Web Development with Spring Boot 2
Reactive Web Development with Spring Boot 2
 
Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014Building front-end apps that Scale - FOSDEM 2014
Building front-end apps that Scale - FOSDEM 2014
 
Continuous Integration with Mozmill
Continuous Integration with MozmillContinuous Integration with Mozmill
Continuous Integration with Mozmill
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet
 
.Net Core
.Net Core.Net Core
.Net Core
 
Enterprise Library 5
Enterprise Library 5Enterprise Library 5
Enterprise Library 5
 
.Net Core
.Net Core.Net Core
.Net Core
 
Using Perforce Streams to Optimize Development of Flash Memory Solutions
Using Perforce Streams to Optimize Development of Flash Memory SolutionsUsing Perforce Streams to Optimize Development of Flash Memory Solutions
Using Perforce Streams to Optimize Development of Flash Memory Solutions
 
Net Framework overview
Net Framework overviewNet Framework overview
Net Framework overview
 
Dev ops for rpa
Dev ops for rpaDev ops for rpa
Dev ops for rpa
 
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET MeetUp Amsterdam 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
 

Similar to Whats new in .net for 2019

Whats new in .NET for 2019
Whats new in .NET for 2019Whats new in .NET for 2019
Whats new in .NET for 2019
Rory Preddy
 
.Net Standard 2.0
.Net Standard 2.0.Net Standard 2.0
.Net Standard 2.0
Swaminathan Vetri
 
Unboxing ASP.NET Core
Unboxing ASP.NET CoreUnboxing ASP.NET Core
Unboxing ASP.NET Core
Kevin Leung
 
.NET Core, ASP.NET Core Course, Session 1
.NET Core, ASP.NET Core Course, Session 1.NET Core, ASP.NET Core Course, Session 1
.NET Core, ASP.NET Core Course, Session 1
aminmesbahi
 
ASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimagined
Alex Thissen
 
.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович
Sigma Software
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
CodeFest
 
.Net final year project in jalandhar
.Net final year project in jalandhar.Net final year project in jalandhar
.Net final year project in jalandhar
deepikakaler1
 
.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?
Christian Nagel
 
C# code sharing across the platforms
C# code sharing across the platformsC# code sharing across the platforms
C# code sharing across the platforms
Andrei Marukovich
 
Desarrollo multiplataforma con el framework .net
Desarrollo multiplataforma con el framework .netDesarrollo multiplataforma con el framework .net
Desarrollo multiplataforma con el framework .net
Dan Ardelean
 
Modern .NET Ecosystem
Modern .NET EcosystemModern .NET Ecosystem
Modern .NET Ecosystem
Andrei Marukovich
 
DOT Net overview
DOT Net overviewDOT Net overview
DOT Net overview
chandrasekhardesireddi
 
.Net framework
.Net framework.Net framework
.Net framework
sanya6900
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and future
Bishnu Rawal
 
Introduction to dot net
Introduction to dot netIntroduction to dot net
Introduction to dot net
QIANG XU
 
.NET framework vs .net core 3.1 commons & differences
 .NET framework vs .net core 3.1  commons & differences .NET framework vs .net core 3.1  commons & differences
.NET framework vs .net core 3.1 commons & differences
Alina Vilk
 
.NET & C# Updates Fall 2019
.NET & C# Updates Fall 2019.NET & C# Updates Fall 2019
.NET & C# Updates Fall 2019
Marco Parenzan
 
Dive into .Net Core framework
Dive into .Net Core framework Dive into .Net Core framework
Dive into .Net Core framework
ElifTech
 

Similar to Whats new in .net for 2019 (20)

Whats new in .NET for 2019
Whats new in .NET for 2019Whats new in .NET for 2019
Whats new in .NET for 2019
 
.Net Standard 2.0
.Net Standard 2.0.Net Standard 2.0
.Net Standard 2.0
 
Unboxing ASP.NET Core
Unboxing ASP.NET CoreUnboxing ASP.NET Core
Unboxing ASP.NET Core
 
.NET Core, ASP.NET Core Course, Session 1
.NET Core, ASP.NET Core Course, Session 1.NET Core, ASP.NET Core Course, Session 1
.NET Core, ASP.NET Core Course, Session 1
 
ASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimagined
 
.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
.Net final year project in jalandhar
.Net final year project in jalandhar.Net final year project in jalandhar
.Net final year project in jalandhar
 
.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?.NET Core 3.0 - What's new?
.NET Core 3.0 - What's new?
 
C# code sharing across the platforms
C# code sharing across the platformsC# code sharing across the platforms
C# code sharing across the platforms
 
Desarrollo multiplataforma con el framework .net
Desarrollo multiplataforma con el framework .netDesarrollo multiplataforma con el framework .net
Desarrollo multiplataforma con el framework .net
 
Modern .NET Ecosystem
Modern .NET EcosystemModern .NET Ecosystem
Modern .NET Ecosystem
 
DOT Net overview
DOT Net overviewDOT Net overview
DOT Net overview
 
.Net framework
.Net framework.Net framework
.Net framework
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and future
 
Net overview
Net overviewNet overview
Net overview
 
Introduction to dot net
Introduction to dot netIntroduction to dot net
Introduction to dot net
 
.NET framework vs .net core 3.1 commons & differences
 .NET framework vs .net core 3.1  commons & differences .NET framework vs .net core 3.1  commons & differences
.NET framework vs .net core 3.1 commons & differences
 
.NET & C# Updates Fall 2019
.NET & C# Updates Fall 2019.NET & C# Updates Fall 2019
.NET & C# Updates Fall 2019
 
Dive into .Net Core framework
Dive into .Net Core framework Dive into .Net Core framework
Dive into .Net Core framework
 

More from Rory Preddy

Programming for accessibility
Programming for accessibilityProgramming for accessibility
Programming for accessibility
Rory Preddy
 
Getting started with Firebase
Getting started with FirebaseGetting started with Firebase
Getting started with Firebase
Rory Preddy
 
Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12
Rory Preddy
 
AWS for Java Developers workshop
AWS for Java Developers workshopAWS for Java Developers workshop
AWS for Java Developers workshop
Rory Preddy
 
Java modules
Java modulesJava modules
Java modules
Rory Preddy
 
Java 2018 certifications
Java 2018 certificationsJava 2018 certifications
Java 2018 certifications
Rory Preddy
 
AWS Transcribe and Comprehend
AWS Transcribe and ComprehendAWS Transcribe and Comprehend
AWS Transcribe and Comprehend
Rory Preddy
 
BDD with Mockito
BDD with MockitoBDD with Mockito
BDD with Mockito
Rory Preddy
 
Up and Running with Kubernetes
Up and Running with KubernetesUp and Running with Kubernetes
Up and Running with Kubernetes
Rory Preddy
 
Dockercompose
DockercomposeDockercompose
Dockercompose
Rory Preddy
 
Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5
Rory Preddy
 
AWS and Serverless with Alexa
AWS and Serverless with AlexaAWS and Serverless with Alexa
AWS and Serverless with Alexa
Rory Preddy
 
Nashorn
NashornNashorn
Nashorn
Rory Preddy
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java Developer
Rory Preddy
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
Rory Preddy
 
Polyglot
PolyglotPolyglot
Polyglot
Rory Preddy
 
BDD - Keep love alive
BDD - Keep love aliveBDD - Keep love alive
BDD - Keep love alive
Rory Preddy
 
Kotlin
KotlinKotlin
Kotlin
Rory Preddy
 

More from Rory Preddy (18)

Programming for accessibility
Programming for accessibilityProgramming for accessibility
Programming for accessibility
 
Getting started with Firebase
Getting started with FirebaseGetting started with Firebase
Getting started with Firebase
 
Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12
 
AWS for Java Developers workshop
AWS for Java Developers workshopAWS for Java Developers workshop
AWS for Java Developers workshop
 
Java modules
Java modulesJava modules
Java modules
 
Java 2018 certifications
Java 2018 certificationsJava 2018 certifications
Java 2018 certifications
 
AWS Transcribe and Comprehend
AWS Transcribe and ComprehendAWS Transcribe and Comprehend
AWS Transcribe and Comprehend
 
BDD with Mockito
BDD with MockitoBDD with Mockito
BDD with Mockito
 
Up and Running with Kubernetes
Up and Running with KubernetesUp and Running with Kubernetes
Up and Running with Kubernetes
 
Dockercompose
DockercomposeDockercompose
Dockercompose
 
Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5
 
AWS and Serverless with Alexa
AWS and Serverless with AlexaAWS and Serverless with Alexa
AWS and Serverless with Alexa
 
Nashorn
NashornNashorn
Nashorn
 
AWS for the Java Developer
AWS for the Java DeveloperAWS for the Java Developer
AWS for the Java Developer
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
 
Polyglot
PolyglotPolyglot
Polyglot
 
BDD - Keep love alive
BDD - Keep love aliveBDD - Keep love alive
BDD - Keep love alive
 
Kotlin
KotlinKotlin
Kotlin
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 

Whats new in .net for 2019

  • 1. What's new in .NET @rorypreddy
  • 2.
  • 3. • Years of backwards compatibility for .NET is limiting the teams with future development. • .NET Framework is slowing down • They will continue to update • No changes to support policy • Recommend new development on .NET Core The Future of .NET Framework
  • 4. Don’t Panic! • You don’t have to move! New development • .NET Core is a good choice Existing code • Costs and benefits to migrating TheBottom Line
  • 5. CORE 3.0 • Side-by-side and App-local Deployment • Easily convert existing Desktop applications to .Net Core 3 • Improvement to Project Files • Continue to support Controls, NuGet Packages, and Existing Assembly References
  • 6. Modernize Desktop Apps with .NET Core 3 Highly-compatible, targeted improvements, like last few releases UWP Windows-only WEB ASP.NET Core EF 6 EF Core AI/ML ML.NET WPF .NET Core 3.NET Framework 4.8 Existing App Highly compatible updates Install .NET Core updates per your needs Windows-only Cross-platform DATA Windows Forms .NET STANDARD Update .NET Framework Apps
  • 8. What Goes Where • Desktop Apps -> .NETCore 3 • Business Logic -> .NET Standard • BackEndAPls -> .NETCore 3 • Front EndWeb Apps -> Well, this istougher...
  • 9. Migrating a Typical .NET App Partially to the Cloud On-Premises WPF App Windows .NET Framework Web API Back End Windows .NET Framework SQL Database 1 On-Premises WPF App Windows .NET Framework Web API Back End Windows .NET Core SQL Database 2 Cloud On-Premises WPF App Windows .NET Framework Web API Back End Windows .NET Core SQL Database 3
  • 10. Handling Shared Code When Targeting Multiple .NET Implementations WPF App .NET Framework Web API Back End .NET Framework 1 Business Logic .NET Framework WPF App .NET Framework Web API Back End .NET Core 2 Business Logic .NET Standard
  • 12. What to expect in porting desktop apps to Core • Update project files to target .NET Core 3 and recompile. • Dependencies will not need to retarget and recompile. There will be additional benefits if you update dependencies.
  • 14. What is .NET Standard? .NET Standard is a specification A set of APIs that all .NET platforms must implement $ dotnet new classlib -o My.Class.Library
  • 15. .NET Standard is represented by The NuGet package NetStandard.Library which contains The reference assembly netstandard.dll At build time .NET Standard bridges references to existing .NET Framework and PCL assemblies via type forwarding At runtime Each platform provides an implementation for netstandard.dll that type forwards to its implementation • .NET Core is an implementation of the .NET Standard • .NET Standard updates are coordinated across all .NET implementers • .NET Core can be updated independently How does .NET Standard work?
  • 17. Windows Compatibility Pack • Microsoft.Windows.Compatibility (NuGet package) • Can be referenced from .NETCore as well as from .NETStandard • Has ~21 k Api’s (Windows-only as well as cross-platform) • Contents ACLs Code Pages Code Dom Configuration Crypto DirectoryServices Drawing EventLog MEF v1 Odbc Perf Counters Permissions Ports Registry Runtime Caching WCF Windows Services
  • 18. Detecting usage of unsupported APIs • Use API Analyzer! • https://aka.ms/apianalyzer • Warns about potential compatibility issues and calls to deprecated APIs.
  • 22. 8.0 Changes • Preview1 • Nullable reference types • Asynchronous streams • Indices and ranges • Default interfaces • Preview 2 • Pattern matching enhancements • Using declarations • Static local functions • Disposable ref structs
  • 23. NULLABLE REFERENCE TYPES public string Run(string? p1, string p2) { return p1 + p2; }
  • 24. foreach await(var s in objects) { } using await… ASYNCHRONOUS STREAMS & ITERATORS & DISPOSE
  • 25. Types • Part of .NET Standard 2.1 and C# 8 • The new Index type • The Range type • Nullable reference types • .Net Core 3.0, Xamarin, Unity, and Mono will implement the 2.1 version • .Net Framework 4.8 will not! • Types required to use these features will not be available when C# 8. 0 is targeted to .Net Framework 4.8
  • 26. Index and Range TYPES Index Expressions var lastCharacter = myString[myString.Length-1]; var lastCharacter = myString[^1]; Index nextIndex = ^(x + 1); var nextChar = myString[nextIndex] Range Expressions var s = myString.Substring[0..2]; var s = myString.Substring(1..^1);
  • 27. DEFAULT INTERFACE IMPLEMENTATIONS public interface IDefaultInterfaceMethod= { public void DefaultMethod() => Console.WriteLine("Merhaba") } public class AnyClass : IDefaultInterfaceMethod { }
  • 28. Thanks @rorypreddy .NET core 3.0 daily builds • https://github.com/dotnet/core/blob/master/daily-builds.md .NET Core 3.0 PortabilityAnalyzer • https://github.com/Microsoft/dotnet-apiport-ui