SlideShare a Scribd company logo
What you need to know about .NET Core 3.0 and beyond
.NET Core release overview
Top Features in .NET Core 3.0
When and how to update
What’s coming next
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
.NET
Your platform for building anything
June 2016
.NET Core 1.0
March 2017
.NET Core 1.1
Aug 2017
.NET Core 2.0
May 2018
.NET Core 2.1
Dec 2018
.NET Core 2.2
Sep 2019
.NET Core 3.0
Nov 2019
.NET Core 3.1
dot.net/get-core3
What’s New In C# 8
Safe
Nullable and non-nullable
reference types help you write
safer code
Declare your intent more clearly
Modern
Async streams for modern
workloads like cloud & IoT
communication
Easily work with cloud scale
datasets using indexes and
ranges
Productive
Write less code using patterns
Protect data with readonly
members
Improved using statements for
resource management
Readonly members
Default interface
methods
Pattern matching
(Switch expressions,
Property & Tuple
patterns)
Positional patterns Using declarations
Static local
functions
Disposable ref
structs
Nullable reference
types
Asynchronous
streams
Indices and ranges
Null-coalescing
assignment
Unmanaged
constructed types
Stackalloc in nested
expressions
Enhancement of
interpolated
verbatim strings
https://aka.ms/new-csharp
https://aka.ms/new-csharp
Windows
Desktop Apps
AI/MLFull-stack web
development
& Microservices
Big Data IoT
Windows desktop apps
Deployment Flexibility
Side-by-side deployment, self-
contained EXEs
Install machine global or app local
framework
Windows 10
Access modern Windows 10
APIs from WPF and WinForms
Use native Windows 10
controls via XAML islands
Open Source
WPF and WinForms projects
also open source on GitHub
Take advantage of
performance, runtime and API
improvements happening in
.NET Core
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
Microservices
Microservices: for faster app development
• Independent deployments
• Improved scale and resource
utilization per service
• Smaller, focused teams
Monolithic
APP APP APP
Microservices
Large, all-inclusive app Small, independent services
Manage Kubernetes
with ease
Build on an
enterprise-grade,
secure foundation
Run anything,
anywhere
Accelerate
containerized
development
Azure Kubernetes Service (AKS)
Ship faster, operate easily, and scale confidently with managed Kubernetes on Azure
gRPC
High performance contract-
based RPC services with .NET
Works across many languages
and platforms
Worker Service
Starting point for long running
back processes like Windows
Server or Linux daemon
Producing or consuming
messages from a message
queue
Web API’s + Identity
Add security and authentication
to Web API’s
gRPC is…
• Popular open source RPC framework
• Largest RPC mindshare
• Cloud Native Computing Foundation project
• gRPC stands for gRPC Remote Procedure Calls
• Built with modern technologies
• HTTP/2
• Protocol Buffers
• Designed for modern apps
• High performance
• Platform independent
+ =
Protobuf (aka Protocol Buffers)
• IDL (interface definition language)
Describe once and generate interfaces for
any language
• Service model
Service method and structure of the
request and the response
• Wire format
Binary format for network transmission
syntax = "proto3";
message SubscribeRequest {
string topic = 1;
}
message Event {
int32 id = 1;
string details = 2;
}
service Topics {
rpc Subscribe(SubscribeRequest)
returns (stream Event);
}
5052 4920 2a20 4854 5450 2f32
0d0a 534d 0d0a 0d0a 0000 0004
0000 0000 0401 0000 0000 0000
Remote Procedure Calls vs HTTP APIs
• Contract first (proto file) • Content first (URLs, HTTP method, JSON)
• Contract is designed for humans
• Hides remoting complexity
• Content is designed for humans
• Emphasises HTTP
HTTP APIsRemote Procedure Calls
Performance
Developer productivity
Widest audience
Ease of getting started
Key features - Performance
• Low network usage
• HTTP/2 binary framing and header compression
• Protobuf message serialization
0
100
200
300
400
500
600
700
800
1 2 10 20
Size(bytes)
Serialized items
JSON vs Protobuf Size Comparison
JSON
Protobuf
syntax = "proto3";
package sample;
message Test {
string query = 1;
int32 page_number = 2;
int32 result_per_page = 3;
repeated Ticker tickers = 4;
}
message Ticker {
string name = 1;
float value = 2;
}
{
"query": "myQuery",
"page_number": 42,
"result_per_page": 100,
"tickers": [
{
"name": "rPs",
"value": 9.768923
},
{
"name": "WEo",
"value": 6.067048
}
]
}
https://nilsmagnus.github.io/post/proto-json-sizes/
5052 4920 2a20 4854 5450 2f32
0d0a 534d 0d0a 0d0a 0000 0004
0000 0000 0401 0000 0000 0000
Key features - Performance
• HTTP/2 multiplexing
• Multiple calls via a TCP connection
• Avoid head-of-line blocking*
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<ItemGroup>
<Protobuf Include="Topics.proto" GrpcServices="Server" />
<PackageReference Include="Google.Protobuf" Version="1.23.0" />
<PackageReference Include="Grpc.AspNetCore.Server" Version="2.23.2" />
<PackageReference Include="Grpc.Tools" Version="1.23.0" PrivateAssets="All" />
</ItemGroup>
</Project>
Key features - Code generation
• All gRPC libraries have first-class code generation support
syntax = "proto3";
message SubscribeRequest {
string topic = 1;
}
message Event {
string details = 1;
}
service Topics {
rpc Subscribe(SubscribeRequest)
returns (stream Event);
}
public abstract partial class TopicsBase
{
public virtual Task Subscribe(
SubscribeRequest request,
IServerStreamWriter<Event> responseStream,
ServerCallContext context)
{
throw new RpcException(new Status(StatusCode.Unimplemented, ""));
}
}
public partial class TopicsClient : ClientBase<TopicsClient>
{
public TopicsClient(ChannelBase channel) : base(channel)
{
}
public virtual AsyncServerStreamingCall<Event> Subscribe(
SubscribeRequest request,
CallOptions options)
{
return CallInvoker.AsyncServerStreamingCall(__Subscribe, options, request);
}
}
Key features - Multiple languages
Key features - Streaming
• gRPC uses HTTP/2 to enable streaming
Disadvantages – Limited browser support
• Browsers have great HTTP/2 support 
• Browser JavaScript APIs haven’t caught up 
• gRPC-web provides limited support for calling gRPC services
Disadvantages - Not human readable
• HTTP/2 and Protobuf are binary
protocols
• Additional tools required to
debug calls
BloomRPC
API / SPA Auth
What you need to know about .NET Core 3.0 and beyond
Web apps with Blazor
https://...
JS
C#
.NET
How Blazor WebAssembly works
https://...
DOM
Razor Components
.NET
WebAssembly
Blazor on client or server
https://...
DOM
Razor Components
.NET
WebAssembly
https...
DOM
.NET Core
SignalR
Blazor WebAssembly Blazor Server
Razor Components
.NET
.NET Core 3.0May 2020
Blazor on client or server
Blazor WebAssembly Blazor Server
.NET Core 3.0May 2020
Build your own pizza store UI with Blazor
https://aka.ms/blazorworkshop
https://www.telerik.com/blazor-ui
“Telerik UI for Blazor components have been built from the ground-up
to ensure you experience shorter development cycles, quick iterations
and cut time to market”
“DevExpress UI for Blazor ships with 12 UI components (including a
Data Grid, Pivot Grid, Charts and Scheduler) so you can design rich user
experiences for both Blazor server-side and Blazor client-side
platforms.”
https://www.devexpress.com/blazor
“The Syncfusion ASP.NET Core Blazor Components library is the only
suite that you will ever need to build an application, containing over 60
high-performance, lightweight, modular, and responsive UI controls in a
single package.”
https://www.syncfusion.com/blazor-components
https://aka.ms/awesomeblazor
https://gitter.im/aspnet/blazor
• Blazor: https://blazor.net
• Docs: https://blazor.net/docs
• .NET Core 3.0: https://dot.net/get-core3
• Visual Studio: https://visualstudio.com/
• Workshop: https://aka.ms/blazorworkshop
• Community: https://aka.ms/awesomeblazor
Try Blazor today!
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
Machine Learning
Built for .NET
developers
Create custom ML models using C#
or F# without having to leave the
.NET ecosystem
Custom ML made
easy with AutoML
Visual Studio Model Builder
and CLI make it super easy to
build custom ML Models
Extended with
TensorFlow & more
Leverage other popular ML
frameworks (TensorFlow,
ONNX, and more)
dot.net/ml
Product recommendation
Recommend products based on purchase history
using a matrix factorization algorithm.
Sentiment analysis
Analyze the sentiment of customer reviews
using a binary classification algorithm.
Price prediction
Predict taxi fares based on distance traveled
etc. using a regression algorithm.
Customer segmentation
Identify groups of customers with similar
profiles using a clustering algorithm.
Spam detection
Flag text messages as spam using a binary
classification algorithm.
Image classification
Classify images (e.g. broccoli vs pizza) using
a TensorFlow deep learning algorithm.
Sales forecasting
Forecast future sales for products using a
regression algorithm.
GitHub labeler
Suggest the GitHub label for new issues
using a multi-class classification algorithm.
Fraud detection
Detect fraudulent credit card transactions
using a binary classification algorithm.
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
.NET for Apache Spark
Available on Azure Databricks and Azure HDInsight
dot.net/spark
Spark SQL + DataFrames Streaming & Interactive Speed & ProductivityMachine Learning
Total execution time (seconds) for all 22 queries in the TPC-H benchmark (lower is better).
Data sourced from an internal run of the TPC-H benchmark, using warm execution on Ubuntu 16.04.
.NET for Apache Spark is designed for high
performance and performs better than python on
the TPC-H benchmark tpc.org/tpch.
The TPC-H benchmark consists of a suite of
business-oriented queries.
Learn more: dot.net/spark
406 433
375
.NET PYTHON SCALA
Supports Raspberry Pi
and other devices
You can now run .NET Core apps in
small places, including ASP.NET
Read sensor data
& write to displays
New APIs for GPIO pins that
enable using millions of IoT
peripherals
Works with
containers
Deploy apps directly onto
devices or with containers
.NET 5
2014
Many
.NETs
.NET FRAMEWORK .NET CORE XAMARIN / MONO
2014 2016
Many
.NETs
.NET
Standard
.NET FRAMEWORK .NET CORE XAMARIN / MONO
XAMARIN / MONO.NET FRAMEWORK .NET
2014 Next2016
Many
.NETs
.NET
Standard
.NET
.NET CORE
.NET STANDARD
https://devblogs.microsoft.com/dotnet/introducing-net-5/
What you need to know about .NET Core 3.0 and beyond
• Web Forms, WCF Server and Windows Workflow remain
on .NET Framework 4.8 only. There are no plans to port
these.
• Recommendations
• ASP.NET Blazor for ASP.NET Web Forms (we will provide a migration guide)
• gRPC for WCF Server and Remoting (we will provide a migration guide)
• Open Source Core Workflow for Windows Workflow (WF):
https://github.com/UiPath/corewf
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
.NET 5
INFRASTRUCTURE
.NET STANDARD
.NET – A unified platform
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
WPF
Windows Forms
UWP
ASP.NET Xamarin UnityAzure ARM32
ARM64
ML.NET
.NET for
Apache Spark
• .NET Core 3.0 released
• .NET Core 3.1 = Long Term Support (LTS)
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
• .NET 5.0 release in November 2020
• Major releases every year, LTS for even numbered releases
• Predictable schedule, minor releases if needed
https://live.dot.net
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
.NET
Download .NET Core 3.0 Today!
visualstudio.com/downloads
dot.net/get-core3
https://aka.ms/dotnext-2019-dotnetcore-3
Ad

More Related Content

What's hot (20)

Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
 Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
AboutYouGmbH
 
Coap based application for android phones
Coap based application for android phonesCoap based application for android phones
Coap based application for android phones
Md Syed Ahamad
 
Kube 101
Kube 101Kube 101
Kube 101
Syed Imam
 
Microservices summit talk 1/31
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31
Varun Talwar
 
Introduction to gRPC
Introduction to gRPCIntroduction to gRPC
Introduction to gRPC
Chandresh Pancholi
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
Varun Talwar
 
gRPC - RPC rebirth?
gRPC - RPC rebirth?gRPC - RPC rebirth?
gRPC - RPC rebirth?
Luís Barbosa
 
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
Codemotion
 
Hands on with CoAP and Californium
Hands on with CoAP and CaliforniumHands on with CoAP and Californium
Hands on with CoAP and Californium
Julien Vermillard
 
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, GoogleBringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Ambassador Labs
 
A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13
Thibault Charbonnier
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
RX-M Enterprises LLC
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
Mark West
 
Performance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and CassandraPerformance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and Cassandra
Dave Bechberger
 
Ldap2010
Ldap2010Ldap2010
Ldap2010
CYJ
 
How Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IOHow Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IO
StreamNative
 
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Natan Silnitsky
 
Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®
confluent
 
Building microservices with grpc
Building microservices with grpcBuilding microservices with grpc
Building microservices with grpc
Sathiyaseelan Muthu kumar
 
Coap based application for android phones-end
Coap based application for android phones-endCoap based application for android phones-end
Coap based application for android phones-end
Md Syed Ahamad
 
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
 Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
AboutYouGmbH
 
Coap based application for android phones
Coap based application for android phonesCoap based application for android phones
Coap based application for android phones
Md Syed Ahamad
 
Microservices summit talk 1/31
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31
Varun Talwar
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
Varun Talwar
 
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
HTTP2 in action - Piet Van Dongen - Codemotion Amsterdam 2017
Codemotion
 
Hands on with CoAP and Californium
Hands on with CoAP and CaliforniumHands on with CoAP and Californium
Hands on with CoAP and Californium
Julien Vermillard
 
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, GoogleBringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, Google
Ambassador Labs
 
A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13
Thibault Charbonnier
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
RX-M Enterprises LLC
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
Mark West
 
Performance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and CassandraPerformance is not an Option - gRPC and Cassandra
Performance is not an Option - gRPC and Cassandra
Dave Bechberger
 
Ldap2010
Ldap2010Ldap2010
Ldap2010
CYJ
 
How Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IOHow Splunk Is Using Pulsar IO
How Splunk Is Using Pulsar IO
StreamNative
 
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Natan Silnitsky
 
Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®
confluent
 
Coap based application for android phones-end
Coap based application for android phones-endCoap based application for android phones-end
Coap based application for android phones-end
Md Syed Ahamad
 

Similar to What you need to know about .NET Core 3.0 and beyond (20)

.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and Tomorrow
Jon Galloway
 
gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019
James Newton-King
 
CocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIsCocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIs
Tim Burks
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
Ali Taki
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
Malam Team
 
.net Framework
.net Framework.net Framework
.net Framework
Rishu Mehra
 
Net framework
Net frameworkNet framework
Net framework
sumit1503
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
Sri Prasanna
 
What I learned about APIs in my first year at Google
What I learned about APIs in my first year at GoogleWhat I learned about APIs in my first year at Google
What I learned about APIs in my first year at Google
Tim Burks
 
Net framework
Net frameworkNet framework
Net framework
jhsri
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
hushu
 
Sergey Stoyan 2016
Sergey Stoyan 2016Sergey Stoyan 2016
Sergey Stoyan 2016
Sergey Stoyan
 
Sergey Stoyan 2016
Sergey Stoyan 2016Sergey Stoyan 2016
Sergey Stoyan 2016
Sergey Stoyan
 
TechTalk: Connext DDS 5.2.
TechTalk: Connext DDS 5.2.TechTalk: Connext DDS 5.2.
TechTalk: Connext DDS 5.2.
Real-Time Innovations (RTI)
 
C# advanced topics and future - C#5
C# advanced topics and future - C#5C# advanced topics and future - C#5
C# advanced topics and future - C#5
Peter Gfader
 
World Wide Web(WWW)
World Wide Web(WWW)World Wide Web(WWW)
World Wide Web(WWW)
Pratik Tambekar
 
Visual studio.net
Visual studio.netVisual studio.net
Visual studio.net
Carlos Posada
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio Code
Karsten Thoms
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NET
salonityagi
 
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays
 
.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and Tomorrow
Jon Galloway
 
gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019gRPC on .NET Core - NDC Sydney 2019
gRPC on .NET Core - NDC Sydney 2019
James Newton-King
 
CocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIsCocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIs
Tim Burks
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
Ali Taki
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
Malam Team
 
Net framework
Net frameworkNet framework
Net framework
sumit1503
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
Sri Prasanna
 
What I learned about APIs in my first year at Google
What I learned about APIs in my first year at GoogleWhat I learned about APIs in my first year at Google
What I learned about APIs in my first year at Google
Tim Burks
 
Net framework
Net frameworkNet framework
Net framework
jhsri
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
hushu
 
C# advanced topics and future - C#5
C# advanced topics and future - C#5C# advanced topics and future - C#5
C# advanced topics and future - C#5
Peter Gfader
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio Code
Karsten Thoms
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NET
salonityagi
 
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays
 
Ad

More from Jon Galloway (10)

Techorama 2019 - ASP.NET Core One Hour Makeover
Techorama 2019 - ASP.NET Core One Hour MakeoverTechorama 2019 - ASP.NET Core One Hour Makeover
Techorama 2019 - ASP.NET Core One Hour Makeover
Jon Galloway
 
Whats New in ASP.NET Core
Whats New in ASP.NET CoreWhats New in ASP.NET Core
Whats New in ASP.NET Core
Jon Galloway
 
.NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a...
.NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a....NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a...
.NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a...
Jon Galloway
 
Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...
Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...
Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...
Jon Galloway
 
What's New in ASP.NET Core 2.0
What's New in ASP.NET Core 2.0What's New in ASP.NET Core 2.0
What's New in ASP.NET Core 2.0
Jon Galloway
 
[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...
[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...
[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...
Jon Galloway
 
learning to love html and css
learning to love html and csslearning to love html and css
learning to love html and css
Jon Galloway
 
Pragmatic JavaScript (DevConnections 2011)
Pragmatic JavaScript (DevConnections 2011)Pragmatic JavaScript (DevConnections 2011)
Pragmatic JavaScript (DevConnections 2011)
Jon Galloway
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
Jon Galloway
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5
Jon Galloway
 
Techorama 2019 - ASP.NET Core One Hour Makeover
Techorama 2019 - ASP.NET Core One Hour MakeoverTechorama 2019 - ASP.NET Core One Hour Makeover
Techorama 2019 - ASP.NET Core One Hour Makeover
Jon Galloway
 
Whats New in ASP.NET Core
Whats New in ASP.NET CoreWhats New in ASP.NET Core
Whats New in ASP.NET Core
Jon Galloway
 
.NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a...
.NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a....NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a...
.NET Core Previews - New Features in .NET Core and ASP.NET Core 2.1, Blazor a...
Jon Galloway
 
Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...
Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...
Keynote: Hijacking Boring Sounding Things Like Foundations and Maturity Model...
Jon Galloway
 
What's New in ASP.NET Core 2.0
What's New in ASP.NET Core 2.0What's New in ASP.NET Core 2.0
What's New in ASP.NET Core 2.0
Jon Galloway
 
[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...
[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...
[NDC Oslo 2017] Open Source Software Foundations: Not Totally Boring, Actuall...
Jon Galloway
 
learning to love html and css
learning to love html and csslearning to love html and css
learning to love html and css
Jon Galloway
 
Pragmatic JavaScript (DevConnections 2011)
Pragmatic JavaScript (DevConnections 2011)Pragmatic JavaScript (DevConnections 2011)
Pragmatic JavaScript (DevConnections 2011)
Jon Galloway
 
SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4SoCal Code Camp 2011 - ASP.NET MVC 4
SoCal Code Camp 2011 - ASP.NET MVC 4
Jon Galloway
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5
Jon Galloway
 
Ad

Recently uploaded (20)

How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 

What you need to know about .NET Core 3.0 and beyond

  • 2. .NET Core release overview Top Features in .NET Core 3.0 When and how to update What’s coming next
  • 3. DESKTOP WEB CLOUD MOBILE GAMING IoT AI .NET Your platform for building anything
  • 4. June 2016 .NET Core 1.0 March 2017 .NET Core 1.1 Aug 2017 .NET Core 2.0 May 2018 .NET Core 2.1 Dec 2018 .NET Core 2.2 Sep 2019 .NET Core 3.0 Nov 2019 .NET Core 3.1
  • 7. Safe Nullable and non-nullable reference types help you write safer code Declare your intent more clearly Modern Async streams for modern workloads like cloud & IoT communication Easily work with cloud scale datasets using indexes and ranges Productive Write less code using patterns Protect data with readonly members Improved using statements for resource management
  • 8. Readonly members Default interface methods Pattern matching (Switch expressions, Property & Tuple patterns) Positional patterns Using declarations Static local functions Disposable ref structs Nullable reference types Asynchronous streams Indices and ranges Null-coalescing assignment Unmanaged constructed types Stackalloc in nested expressions Enhancement of interpolated verbatim strings https://aka.ms/new-csharp
  • 12. Deployment Flexibility Side-by-side deployment, self- contained EXEs Install machine global or app local framework Windows 10 Access modern Windows 10 APIs from WPF and WinForms Use native Windows 10 controls via XAML islands Open Source WPF and WinForms projects also open source on GitHub Take advantage of performance, runtime and API improvements happening in .NET Core
  • 16. Microservices: for faster app development • Independent deployments • Improved scale and resource utilization per service • Smaller, focused teams Monolithic APP APP APP Microservices Large, all-inclusive app Small, independent services
  • 17. Manage Kubernetes with ease Build on an enterprise-grade, secure foundation Run anything, anywhere Accelerate containerized development Azure Kubernetes Service (AKS) Ship faster, operate easily, and scale confidently with managed Kubernetes on Azure
  • 18. gRPC High performance contract- based RPC services with .NET Works across many languages and platforms Worker Service Starting point for long running back processes like Windows Server or Linux daemon Producing or consuming messages from a message queue Web API’s + Identity Add security and authentication to Web API’s
  • 19. gRPC is… • Popular open source RPC framework • Largest RPC mindshare • Cloud Native Computing Foundation project • gRPC stands for gRPC Remote Procedure Calls • Built with modern technologies • HTTP/2 • Protocol Buffers • Designed for modern apps • High performance • Platform independent + =
  • 20. Protobuf (aka Protocol Buffers) • IDL (interface definition language) Describe once and generate interfaces for any language • Service model Service method and structure of the request and the response • Wire format Binary format for network transmission syntax = "proto3"; message SubscribeRequest { string topic = 1; } message Event { int32 id = 1; string details = 2; } service Topics { rpc Subscribe(SubscribeRequest) returns (stream Event); } 5052 4920 2a20 4854 5450 2f32 0d0a 534d 0d0a 0d0a 0000 0004 0000 0000 0401 0000 0000 0000
  • 21. Remote Procedure Calls vs HTTP APIs • Contract first (proto file) • Content first (URLs, HTTP method, JSON) • Contract is designed for humans • Hides remoting complexity • Content is designed for humans • Emphasises HTTP HTTP APIsRemote Procedure Calls Performance Developer productivity Widest audience Ease of getting started
  • 22. Key features - Performance • Low network usage • HTTP/2 binary framing and header compression • Protobuf message serialization 0 100 200 300 400 500 600 700 800 1 2 10 20 Size(bytes) Serialized items JSON vs Protobuf Size Comparison JSON Protobuf syntax = "proto3"; package sample; message Test { string query = 1; int32 page_number = 2; int32 result_per_page = 3; repeated Ticker tickers = 4; } message Ticker { string name = 1; float value = 2; } { "query": "myQuery", "page_number": 42, "result_per_page": 100, "tickers": [ { "name": "rPs", "value": 9.768923 }, { "name": "WEo", "value": 6.067048 } ] } https://nilsmagnus.github.io/post/proto-json-sizes/ 5052 4920 2a20 4854 5450 2f32 0d0a 534d 0d0a 0d0a 0000 0004 0000 0000 0401 0000 0000 0000
  • 23. Key features - Performance • HTTP/2 multiplexing • Multiple calls via a TCP connection • Avoid head-of-line blocking*
  • 24. <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp3.0</TargetFramework> <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel> </PropertyGroup> <ItemGroup> <Protobuf Include="Topics.proto" GrpcServices="Server" /> <PackageReference Include="Google.Protobuf" Version="1.23.0" /> <PackageReference Include="Grpc.AspNetCore.Server" Version="2.23.2" /> <PackageReference Include="Grpc.Tools" Version="1.23.0" PrivateAssets="All" /> </ItemGroup> </Project> Key features - Code generation • All gRPC libraries have first-class code generation support syntax = "proto3"; message SubscribeRequest { string topic = 1; } message Event { string details = 1; } service Topics { rpc Subscribe(SubscribeRequest) returns (stream Event); } public abstract partial class TopicsBase { public virtual Task Subscribe( SubscribeRequest request, IServerStreamWriter<Event> responseStream, ServerCallContext context) { throw new RpcException(new Status(StatusCode.Unimplemented, "")); } } public partial class TopicsClient : ClientBase<TopicsClient> { public TopicsClient(ChannelBase channel) : base(channel) { } public virtual AsyncServerStreamingCall<Event> Subscribe( SubscribeRequest request, CallOptions options) { return CallInvoker.AsyncServerStreamingCall(__Subscribe, options, request); } }
  • 25. Key features - Multiple languages
  • 26. Key features - Streaming • gRPC uses HTTP/2 to enable streaming
  • 27. Disadvantages – Limited browser support • Browsers have great HTTP/2 support  • Browser JavaScript APIs haven’t caught up  • gRPC-web provides limited support for calling gRPC services
  • 28. Disadvantages - Not human readable • HTTP/2 and Protobuf are binary protocols • Additional tools required to debug calls BloomRPC
  • 29. API / SPA Auth
  • 31. Web apps with Blazor
  • 33. C#
  • 34. .NET
  • 35. How Blazor WebAssembly works https://... DOM Razor Components .NET WebAssembly
  • 36. Blazor on client or server https://... DOM Razor Components .NET WebAssembly https... DOM .NET Core SignalR Blazor WebAssembly Blazor Server Razor Components .NET .NET Core 3.0May 2020
  • 37. Blazor on client or server Blazor WebAssembly Blazor Server .NET Core 3.0May 2020
  • 38. Build your own pizza store UI with Blazor https://aka.ms/blazorworkshop
  • 39. https://www.telerik.com/blazor-ui “Telerik UI for Blazor components have been built from the ground-up to ensure you experience shorter development cycles, quick iterations and cut time to market” “DevExpress UI for Blazor ships with 12 UI components (including a Data Grid, Pivot Grid, Charts and Scheduler) so you can design rich user experiences for both Blazor server-side and Blazor client-side platforms.” https://www.devexpress.com/blazor “The Syncfusion ASP.NET Core Blazor Components library is the only suite that you will ever need to build an application, containing over 60 high-performance, lightweight, modular, and responsive UI controls in a single package.” https://www.syncfusion.com/blazor-components
  • 41. • Blazor: https://blazor.net • Docs: https://blazor.net/docs • .NET Core 3.0: https://dot.net/get-core3 • Visual Studio: https://visualstudio.com/ • Workshop: https://aka.ms/blazorworkshop • Community: https://aka.ms/awesomeblazor Try Blazor today!
  • 45. Built for .NET developers Create custom ML models using C# or F# without having to leave the .NET ecosystem Custom ML made easy with AutoML Visual Studio Model Builder and CLI make it super easy to build custom ML Models Extended with TensorFlow & more Leverage other popular ML frameworks (TensorFlow, ONNX, and more)
  • 46. dot.net/ml Product recommendation Recommend products based on purchase history using a matrix factorization algorithm. Sentiment analysis Analyze the sentiment of customer reviews using a binary classification algorithm. Price prediction Predict taxi fares based on distance traveled etc. using a regression algorithm. Customer segmentation Identify groups of customers with similar profiles using a clustering algorithm. Spam detection Flag text messages as spam using a binary classification algorithm. Image classification Classify images (e.g. broccoli vs pizza) using a TensorFlow deep learning algorithm. Sales forecasting Forecast future sales for products using a regression algorithm. GitHub labeler Suggest the GitHub label for new issues using a multi-class classification algorithm. Fraud detection Detect fraudulent credit card transactions using a binary classification algorithm.
  • 49. .NET for Apache Spark Available on Azure Databricks and Azure HDInsight dot.net/spark Spark SQL + DataFrames Streaming & Interactive Speed & ProductivityMachine Learning
  • 50. Total execution time (seconds) for all 22 queries in the TPC-H benchmark (lower is better). Data sourced from an internal run of the TPC-H benchmark, using warm execution on Ubuntu 16.04. .NET for Apache Spark is designed for high performance and performs better than python on the TPC-H benchmark tpc.org/tpch. The TPC-H benchmark consists of a suite of business-oriented queries. Learn more: dot.net/spark 406 433 375 .NET PYTHON SCALA
  • 51. Supports Raspberry Pi and other devices You can now run .NET Core apps in small places, including ASP.NET Read sensor data & write to displays New APIs for GPIO pins that enable using millions of IoT peripherals Works with containers Deploy apps directly onto devices or with containers
  • 53. 2014 Many .NETs .NET FRAMEWORK .NET CORE XAMARIN / MONO
  • 55. XAMARIN / MONO.NET FRAMEWORK .NET 2014 Next2016 Many .NETs .NET Standard .NET .NET CORE .NET STANDARD
  • 58. • Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these. • Recommendations • ASP.NET Blazor for ASP.NET Web Forms (we will provide a migration guide) • gRPC for WCF Server and Remoting (we will provide a migration guide) • Open Source Core Workflow for Windows Workflow (WF): https://github.com/UiPath/corewf
  • 61. .NET 5 INFRASTRUCTURE .NET STANDARD .NET – A unified platform DESKTOP WEB CLOUD MOBILE GAMING IoT AI WPF Windows Forms UWP ASP.NET Xamarin UnityAzure ARM32 ARM64 ML.NET .NET for Apache Spark
  • 62. • .NET Core 3.0 released • .NET Core 3.1 = Long Term Support (LTS) 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 • .NET 5.0 release in November 2020 • Major releases every year, LTS for even numbered releases • Predictable schedule, minor releases if needed
  • 64. DESKTOP WEB CLOUD MOBILE GAMING IoT AI .NET Download .NET Core 3.0 Today! visualstudio.com/downloads dot.net/get-core3

Editor's Notes

  • #20: -There are alternative RPC frameworks, e.g. Thrift -Developer community is unifying behind gRPC -gRPC is run by CNCF. Microsoft contributing to CNCF -Does not stand for Google RPC -gRPC is not new, open sourced in 2015 -Union of two technologies, HTTP2 and Protocol Buffers -Designed for modern apps, particularly microservices
  • #21: Protocol Buffers serves three purposes: -Language independent definition of Protobuf messages. Written in proto file that can be shared between apps -Definition of services for use on server and client -Binary format of messages. Small and fast, but not human readable
  • #22: gRPC is an opination contract-first RPC framework HTTP APIs focus on the shape and content of HTTP (contract optional) proto files are designed for humans to write and read. Content is binary HTTP APIs are the opposite: content is human readable. Optional schema is rather verbose gRPC methods are designed to hide complexity of remoting Call them like you would a method, no creating HTTP messages or JSON content
  • #23: A key benefit of gRPC vs REST is small size of requests -HTTP/2 is binary compared to text based HTTP1 -HTTP/2 supports header compression. Commonly occurring headers, e.g. content-type, are compressed to a few bits per request -Protobuf is significantly smaller than JSON JSON is a self describing format – characters are included to differentiate objects/arrays/strings/numbers Protobuf requires the proto file to make sense of content Simple comparison between JSON and Protobuf Protobuf is 30% the size of JSON Difference reduces to 50% with gzip
  • #24: HTTP/2 multiplexing makes more efficient use of TCP connections Multiplexing improves on HTTP1.1 pipelining -Pipelining requires the order of requests and responses match -A large image or slow API call may prevent faster requests from completing HTTP/3 should improve this situation even more.
  • #25: Code generation is at the core of gRPC Code generation is driving by Protocol Buffer IDL Example -Simple server streaming call -csproj references proto file in ProtoBuf item -Grpc.Tools has targets to generate .NET types at design time -Server is a base type that requires implementation -Client is strongly typed, created with channel that specifies the server location Proto files can be shared between servers, and languages.
  • #26: gRPC is supported in every language -Common set of interop tests -gRPC on .NET Core is continuously tested against other implementations
  • #27: HTTP/2 has excellent streaming support gRPC uses HTTP/2 streaming to enable message streaming Unary. Like REST. Single request, single reply Server streaming is initiated with a request, returns a stream of responses. Example, subscribing to updates. Client streaming is the opposite: stream requests, finish with response. Example: uploading data Bi directional stream is streaming in both direction. Example: chat room gRPC streaming is a really easy way to create realtime services.
  • #28: Wow, gRPC is great, lets throw REST and JSON away There are some drawbacks to gRPC -Modern browsers have great support for browsing HTTP/2 websites -But browser JavaScript APIs for making HTTP requests haven’t caught up -JavaScript’s XMLHttpRequest and fetch do not provide low level access to HTTP/2 frames -Not possible to build a gRPC client in the browser Workaround today is gRPC-web -Built by the gRPC team -Provides limited support for calling some gRPC services over HTTP1 -A server proxy then translates between gRPC-web calls and normal HTTP/2 gRPC -Does not support bi-directional streaming
  • #29: HTTP/2 and Protobuf are small and fast -But they’re not human readable -Binary, and properly reading a gRPC message requires the proto file Additional tools are required to debug gRPC calls -Here I am reading a gRPC TCP packet in Wireshark. It has some support for gRPC -It can recognize a gRPC packet from content-type headers -It can see that this is a response for a the SayHello method -gRPC message is still mostly binary There are workarounds. Most gRPC services use protobuf, but JSON can be used during development
  • #52: Clarify that we support ARM32/ARM64 (that’s for the Pi and friends) but also x64 for devices that need more horse power. This matches the IoT edge offering We offer a new API, in this package: https://www.nuget.org/packages/System.Device.Gpio. Supports GPIO, PWM, SPI and I2C.
  • #54: 2014 – .NET Framework, .NET Core, Xamarin / Mono Three different frameworks, hard to share code across them
  • #55: 2016 – Introduce .NET Standard - can write libraries that run on all the .NET’s. While all .NET’s must implement the same API’s, their implementations are different. The Runtimes are different.
  • #56: 2019 – Introduce .NET 5 – Windows, Mac, Linux, Android, IOS all run .NET Core’s runtime Same BCL used on all platforms, same runtime used on all platforms Native code compilation on all platforms, by merging .NET Native and Mono AOT JIT and AOT Runtime .NET 5 is the next major version of the .NET Platform that brings technologies from .NET Framework, .NET Core and & Mono runtimes and frameworks together into one .NET platform. .NET 5 will have one Base Class Library (BCL) that will contain APIs for building any type of application. All .NET workloads are supported with application frameworks including cross-platform web development with ASP.NET, iOS and Android mobile development with Xamarin, Windows Desktop, and cross-platform IoT.  .NET 5 will have both Just-in-Time (JIT) and Ahead-of-Time (AOT) compilation models for the multiple compute and device scenarios it must support. JIT has better performance for server and desktop workloads as well as development environments. AOT has better startup, a small footprint, and is required for mobile and IoT devices.  .NET 5 will also have one unified toolchain supported by new SDK project types, will have a flexible deployment model (Side-by-Side and self-contained EXEs) and continue .NET Core's superior performance for server & cloud workloads.
  • #57: .NET 5 is the evolution of .NET Core, adding the best capabilities of Mono to provide support for small device footprints. .NET Core used the best parts of the .NET Framework as we built its initial release. .NET 5 takes the best of all of the learnings we have across our multiple implementations and brings them together into a single unified platform.
  • #60: As we add more and more workloads to .NET Core, and continue to innovate and focus on modern platform capabilities, we are at a point where we will be providing only critical updates to .NET Framework. This means that applications running on .NET Framework will continue to run the same as they always have. However, this also means that any new development should be with .NET Core moving forward.
  • #62: .NET is an entire software development platform that takes care of a lot of the heavy lifting for you when you want to build an application. Applications frameworks help you build the specific types of apps or workloads and enable you to literally build any app for any platform with any operating system. Each .NET workload shares a common infrastructure and base libraries ad .NET Standard. This means not only are your .NET skills portable, but your actual code is portable no matter what you’re building. This makes it easy to share libraries across the breadth of applications people build. Additionally, there are a broad set of development tools that makes it really productive to write, debug, build and manage code bases. See: www.dot.net