SlideShare a Scribd company logo
.NET Core
How to migrate and write new code for .NET Core
Bertrand Le Roy
▪ Senior Program Manager on .NET Core
▪ One of the founders of Orchard
▪ http://weblogs.asp.net/bleroy
▪ https://blogs.msdn.microsoft.com/dotnet/tag/week-in-net/
▪ https://www.youtube.com/channel/UCvtT19MZW8dq5Wwfu6B0oxw
Objectives
▪ What’s .NET Core and when to use it (or not)
▪ How to create a new library, ASP.NET, or console application
▪ How to port existing code
Innovation Any platformOpenness
.NET Core
ASP.NET 5
.NET Core ≠ .NET Framework
.NET Framework 4.6
▪ .NET implementation for any scenario on Windows with comprehensive library
support
.NET Core
▪ Modular and smaller implementation of .NET
▪ Cross-platform
▪ App-level isolation
▪ Built in the open
▪ Optimized for specific workloads
▪ Built for the next ten years of software development
Next gen JIT (RyuJIT)
SIMD
Runtime
Components Compilers
Languages innovation
.NET Compiler Platform
.NET Core 5 Libraries
.NET Framework 4.6 Libraries
NuGet packages
.NET Framework 4.6 .NET Core
What’s common, and what’s not?
What’s not supported?
▪ WPF
▪ Winforms
▪ WebForms
▪ Binary serialization…
▪ Anything Windows-specific: registry, ACLs, perf counters, etc.
Significant change: Reflection
foo.GetType() → foo.GetType().GetTypeInfo()
API Portability resources
▪ Portability analyzer VS extension
▪ https://github.com/Microsoft/dotnet-apiport/releases
▪ http://dotnetstatus.azurewebsites.net/
▪ https://packagesearch.azurewebsites.net/
▪ http://forums.dotnetfoundation.org/
▪ https://gitter.im/dotnet/corefx
▪ https://dotnet.github.io/porting *
Managing expectations
▪ This is very much a new platform with a known flavor
▪ There is a cost to migration
▪ There are things to learn
▪ Not all projects can or should migrate
Should I migrate my project?
Cannot:
▪ WPF, WinForms, unless UWP
▪ ASP.NET WebForms
Should (absolutely):
▪ General purpose libraries
Should (maybe):
▪ ASP.NET MVC
▪ Micro-services
▪ Console apps
▪ Rewrite
▪ Talent expertise on Linux
DEMO
Porting FluentPath
Dependencies
▪ Most fundamental libraries first: test frameworks, tooling, data access, JSON,
logging, IoC, etc.
▪ Go to the source, ask the author
▪ Offer to help, or fork
▪ Switch to another Core-compatible library
▪ DIY
Testing
▪ xUnit was first, now NUnit, MsTest
▪ Secondary test libraries (mocking, functional testing, etc.) in progress
Debugging
▪ On Windows: Visual Studio
▪ Everywhere: VS Code
Tooling
Your choice of tool, on your choice platform
▪ Visual Studio on Windows
▪ Visual Studio Code on Mac, Linux, or Windows
▪ vi or emacs with OmniSharp
▪ etc.
.NET CLI replaces DNX, DNVM, DNU
▪ dotnet new
▪ dotnet restore
▪ dotnet run
▪ dotnet build
▪ dotnet build –native
▪ dotnet dosomethingcool
DEMO
Creating a new application
Q&A
Ad

More Related Content

What's hot (20)

Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
Amir Barylko
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
Dzmitry Naskou
 
.Net Core
.Net Core.Net Core
.Net Core
Software Infrastructure
 
Spring framework core
Spring framework coreSpring framework core
Spring framework core
Taemon Piya-Lumyong
 
Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
Shravan A
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
Jeevesh Pandey
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
Alex Movila
 
Net core
Net coreNet core
Net core
Damir Dobric
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
Arvind Devaraj
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Serhat Can
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Edureka!
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
Santosh Kumar Kar
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
zeeshanhanif
 
Spring ppt
Spring pptSpring ppt
Spring ppt
Mumbai Academisc
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
Sandeep Chawla
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET Core
Marco Parenzan
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
Jadson Santos
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
Purbarun Chakrabarti
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
Dzmitry Naskou
 
Asp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity FrameworkAsp.Net Core MVC with Entity Framework
Asp.Net Core MVC with Entity Framework
Shravan A
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
Jeevesh Pandey
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
Alex Movila
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Serhat Can
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Edureka!
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET Core
Marco Parenzan
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
Jadson Santos
 

Viewers also liked (20)

ASP.NET Core 1.0 Overview
ASP.NET Core 1.0 OverviewASP.NET Core 1.0 Overview
ASP.NET Core 1.0 Overview
Shahed Chowdhuri
 
Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0
joescars
 
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
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri
 
ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2
Shahed Chowdhuri
 
ASP.NET Core 1.0 Overview: Pre-RC2
ASP.NET Core 1.0 Overview: Pre-RC2ASP.NET Core 1.0 Overview: Pre-RC2
ASP.NET Core 1.0 Overview: Pre-RC2
Shahed Chowdhuri
 
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
 
.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
 
Getting Started .NET Core
Getting Started .NET CoreGetting Started .NET Core
Getting Started .NET Core
Yuta Matsumura
 
Apresentação do Projeto de Bloco Arquitetura .NET
Apresentação do Projeto de Bloco Arquitetura .NETApresentação do Projeto de Bloco Arquitetura .NET
Apresentação do Projeto de Bloco Arquitetura .NET
Pedro Modrach
 
Unitat 1. El nostre planeta. 1rESO
Unitat 1. El nostre planeta. 1rESOUnitat 1. El nostre planeta. 1rESO
Unitat 1. El nostre planeta. 1rESO
csantan2
 
.Net standard 2.0
.Net standard 2.0.Net standard 2.0
.Net standard 2.0
Scott Golightly
 
.Net Core
.Net Core.Net Core
.Net Core
Bohdan Pashkovskyi
 
Microsoft dot net framework
Microsoft dot net frameworkMicrosoft dot net framework
Microsoft dot net framework
Ashish Verma
 
ASP.NET Core
ASP.NET CoreASP.NET Core
ASP.NET Core
Maurice De Beijer [MVP]
 
Learning .NET Attributes
Learning .NET AttributesLearning .NET Attributes
Learning .NET Attributes
Pooja Gaikwad
 
.NET Core
.NET Core.NET Core
.NET Core
Mariano Sánchez
 
Windows a dobozban, avagy IoT fejlesztés C#-ban
Windows a dobozban, avagy IoT fejlesztés C#-banWindows a dobozban, avagy IoT fejlesztés C#-ban
Windows a dobozban, avagy IoT fejlesztés C#-ban
György Balássy
 
IIS 7.5 webszerver újdonságok
IIS 7.5 webszerver újdonságokIIS 7.5 webszerver újdonságok
IIS 7.5 webszerver újdonságok
György Balássy
 
Enterprise Developer Meetup bevezető (2015.01.28.)
Enterprise Developer Meetup bevezető (2015.01.28.)Enterprise Developer Meetup bevezető (2015.01.28.)
Enterprise Developer Meetup bevezető (2015.01.28.)
György Balássy
 
Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0Getting Started with ASP.net Core 1.0
Getting Started with ASP.net Core 1.0
joescars
 
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
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri
 
ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2
Shahed Chowdhuri
 
ASP.NET Core 1.0 Overview: Pre-RC2
ASP.NET Core 1.0 Overview: Pre-RC2ASP.NET Core 1.0 Overview: Pre-RC2
ASP.NET Core 1.0 Overview: Pre-RC2
Shahed Chowdhuri
 
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
 
.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
 
Getting Started .NET Core
Getting Started .NET CoreGetting Started .NET Core
Getting Started .NET Core
Yuta Matsumura
 
Apresentação do Projeto de Bloco Arquitetura .NET
Apresentação do Projeto de Bloco Arquitetura .NETApresentação do Projeto de Bloco Arquitetura .NET
Apresentação do Projeto de Bloco Arquitetura .NET
Pedro Modrach
 
Unitat 1. El nostre planeta. 1rESO
Unitat 1. El nostre planeta. 1rESOUnitat 1. El nostre planeta. 1rESO
Unitat 1. El nostre planeta. 1rESO
csantan2
 
Microsoft dot net framework
Microsoft dot net frameworkMicrosoft dot net framework
Microsoft dot net framework
Ashish Verma
 
Learning .NET Attributes
Learning .NET AttributesLearning .NET Attributes
Learning .NET Attributes
Pooja Gaikwad
 
Windows a dobozban, avagy IoT fejlesztés C#-ban
Windows a dobozban, avagy IoT fejlesztés C#-banWindows a dobozban, avagy IoT fejlesztés C#-ban
Windows a dobozban, avagy IoT fejlesztés C#-ban
György Balássy
 
IIS 7.5 webszerver újdonságok
IIS 7.5 webszerver újdonságokIIS 7.5 webszerver újdonságok
IIS 7.5 webszerver újdonságok
György Balássy
 
Enterprise Developer Meetup bevezető (2015.01.28.)
Enterprise Developer Meetup bevezető (2015.01.28.)Enterprise Developer Meetup bevezető (2015.01.28.)
Enterprise Developer Meetup bevezető (2015.01.28.)
György Balássy
 
Ad

Similar to .Net Core (20)

Dotnet on linux
Dotnet on linuxDotnet on linux
Dotnet on linux
Ebram Tharwat
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
Jeongkyu Shin
 
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 - The Current Spectrum
.NET -  The Current Spectrum.NET -  The Current Spectrum
.NET - The Current Spectrum
Rasik Bihari Tiwari
 
Porting Projects to .NET 5
Porting Projects to .NET 5Porting Projects to .NET 5
Porting Projects to .NET 5
Immo Landwerth
 
Business Apps with the Universal Windows Platform
Business Apps with the Universal Windows PlatformBusiness Apps with the Universal Windows Platform
Business Apps with the Universal Windows Platform
Christian Nagel
 
Getting Started with ASP.NET vNext
Getting Started with ASP.NET vNextGetting Started with ASP.NET vNext
Getting Started with ASP.NET vNext
Lohith Goudagere Nagaraj
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
FalafelSoftware
 
Visual studio 2015 and .net core 5 – get ready to rumble
Visual studio 2015 and .net core 5  – get ready to rumbleVisual studio 2015 and .net core 5  – get ready to rumble
Visual studio 2015 and .net core 5 – get ready to rumble
Tadeusz Balcer
 
.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
Amin Mesbahi
 
Buildingwebapplicationswith.net
Buildingwebapplicationswith.netBuildingwebapplicationswith.net
Buildingwebapplicationswith.net
Kolagani Veera
 
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
 
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin
 
Deploy a Website in Azure using ARM Templates
Deploy a Website in Azure using ARM TemplatesDeploy a Website in Azure using ARM Templates
Deploy a Website in Azure using ARM Templates
Pratik Khasnabis
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Jeffrey T. Fritz
 
AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...
AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...
AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...
Amazon Web Services Korea
 
PaaS options for .NET
PaaS options for .NETPaaS options for .NET
PaaS options for .NET
Slawomir Dorzak
 
Infrastructure as code with Terraform
Infrastructure as code with TerraformInfrastructure as code with Terraform
Infrastructure as code with Terraform
Sam Bashton
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
sunil kumar
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
Jeongkyu Shin
 
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
 
Porting Projects to .NET 5
Porting Projects to .NET 5Porting Projects to .NET 5
Porting Projects to .NET 5
Immo Landwerth
 
Business Apps with the Universal Windows Platform
Business Apps with the Universal Windows PlatformBusiness Apps with the Universal Windows Platform
Business Apps with the Universal Windows Platform
Christian Nagel
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
FalafelSoftware
 
Visual studio 2015 and .net core 5 – get ready to rumble
Visual studio 2015 and .net core 5  – get ready to rumbleVisual studio 2015 and .net core 5  – get ready to rumble
Visual studio 2015 and .net core 5 – get ready to rumble
Tadeusz Balcer
 
.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
Amin Mesbahi
 
Buildingwebapplicationswith.net
Buildingwebapplicationswith.netBuildingwebapplicationswith.net
Buildingwebapplicationswith.net
Kolagani Veera
 
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
 
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin
 
Deploy a Website in Azure using ARM Templates
Deploy a Website in Azure using ARM TemplatesDeploy a Website in Azure using ARM Templates
Deploy a Website in Azure using ARM Templates
Pratik Khasnabis
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Jeffrey T. Fritz
 
AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...
AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...
AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...
Amazon Web Services Korea
 
Infrastructure as code with Terraform
Infrastructure as code with TerraformInfrastructure as code with Terraform
Infrastructure as code with Terraform
Sam Bashton
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
sunil kumar
 
Ad

More from Bertrand Le Roy (8)

Next .NET and C#
Next .NET and C#Next .NET and C#
Next .NET and C#
Bertrand Le Roy
 
Orchard 2... and why you should care
Orchard 2... and why you should careOrchard 2... and why you should care
Orchard 2... and why you should care
Bertrand Le Roy
 
C# Today and Tomorrow
C# Today and TomorrowC# Today and Tomorrow
C# Today and Tomorrow
Bertrand Le Roy
 
.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#
Bertrand Le Roy
 
Orchard Harvest Keynote 2015 - the CMS of the future
Orchard Harvest Keynote 2015 - the CMS of the futureOrchard Harvest Keynote 2015 - the CMS of the future
Orchard Harvest Keynote 2015 - the CMS of the future
Bertrand Le Roy
 
Best kept Orchard recipes - Orchard Harvest Amsterdam 2013
Best kept Orchard recipes - Orchard Harvest Amsterdam 2013Best kept Orchard recipes - Orchard Harvest Amsterdam 2013
Best kept Orchard recipes - Orchard Harvest Amsterdam 2013
Bertrand Le Roy
 
Commerce - Orchard Harvest Amsterdam 2013
Commerce - Orchard Harvest Amsterdam 2013Commerce - Orchard Harvest Amsterdam 2013
Commerce - Orchard Harvest Amsterdam 2013
Bertrand Le Roy
 
Orchard Harvest Amsterdam 2013 Keynote
Orchard Harvest Amsterdam 2013 KeynoteOrchard Harvest Amsterdam 2013 Keynote
Orchard Harvest Amsterdam 2013 Keynote
Bertrand Le Roy
 
Orchard 2... and why you should care
Orchard 2... and why you should careOrchard 2... and why you should care
Orchard 2... and why you should care
Bertrand Le Roy
 
.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#
Bertrand Le Roy
 
Orchard Harvest Keynote 2015 - the CMS of the future
Orchard Harvest Keynote 2015 - the CMS of the futureOrchard Harvest Keynote 2015 - the CMS of the future
Orchard Harvest Keynote 2015 - the CMS of the future
Bertrand Le Roy
 
Best kept Orchard recipes - Orchard Harvest Amsterdam 2013
Best kept Orchard recipes - Orchard Harvest Amsterdam 2013Best kept Orchard recipes - Orchard Harvest Amsterdam 2013
Best kept Orchard recipes - Orchard Harvest Amsterdam 2013
Bertrand Le Roy
 
Commerce - Orchard Harvest Amsterdam 2013
Commerce - Orchard Harvest Amsterdam 2013Commerce - Orchard Harvest Amsterdam 2013
Commerce - Orchard Harvest Amsterdam 2013
Bertrand Le Roy
 
Orchard Harvest Amsterdam 2013 Keynote
Orchard Harvest Amsterdam 2013 KeynoteOrchard Harvest Amsterdam 2013 Keynote
Orchard Harvest Amsterdam 2013 Keynote
Bertrand Le Roy
 

Recently uploaded (20)

Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.
anuragmk56
 
fluke dealers in bangalore..............
fluke dealers in bangalore..............fluke dealers in bangalore..............
fluke dealers in bangalore..............
Haresh Vaswani
 
ELectronics Boards & Product Testing_Shiju.pdf
ELectronics Boards & Product Testing_Shiju.pdfELectronics Boards & Product Testing_Shiju.pdf
ELectronics Boards & Product Testing_Shiju.pdf
Shiju Jacob
 
Degree_of_Automation.pdf for Instrumentation and industrial specialist
Degree_of_Automation.pdf for  Instrumentation  and industrial specialistDegree_of_Automation.pdf for  Instrumentation  and industrial specialist
Degree_of_Automation.pdf for Instrumentation and industrial specialist
shreyabhosale19
 
Metal alkyne complexes.pptx in chemistry
Metal alkyne complexes.pptx in chemistryMetal alkyne complexes.pptx in chemistry
Metal alkyne complexes.pptx in chemistry
mee23nu
 
AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)
Vəhid Gəruslu
 
theory-slides-for react for beginners.pptx
theory-slides-for react for beginners.pptxtheory-slides-for react for beginners.pptx
theory-slides-for react for beginners.pptx
sanchezvanessa7896
 
Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...
Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...
Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...
Journal of Soft Computing in Civil Engineering
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
π0.5: a Vision-Language-Action Model with Open-World Generalization
π0.5: a Vision-Language-Action Model with Open-World Generalizationπ0.5: a Vision-Language-Action Model with Open-World Generalization
π0.5: a Vision-Language-Action Model with Open-World Generalization
NABLAS株式会社
 
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
inmishra17121973
 
introduction to machine learining for beginers
introduction to machine learining for beginersintroduction to machine learining for beginers
introduction to machine learining for beginers
JoydebSheet
 
new ppt artificial intelligence historyyy
new ppt artificial intelligence historyyynew ppt artificial intelligence historyyy
new ppt artificial intelligence historyyy
PianoPianist
 
The Gaussian Process Modeling Module in UQLab
The Gaussian Process Modeling Module in UQLabThe Gaussian Process Modeling Module in UQLab
The Gaussian Process Modeling Module in UQLab
Journal of Soft Computing in Civil Engineering
 
Level 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical SafetyLevel 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical Safety
JoseAlbertoCariasDel
 
Compiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptxCompiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptx
RushaliDeshmukh2
 
Data Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptxData Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptx
RushaliDeshmukh2
 
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G..."Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...
Infopitaara
 
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design ThinkingDT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DhruvChotaliya2
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.Fort night presentation new0903 pdf.pdf.
Fort night presentation new0903 pdf.pdf.
anuragmk56
 
fluke dealers in bangalore..............
fluke dealers in bangalore..............fluke dealers in bangalore..............
fluke dealers in bangalore..............
Haresh Vaswani
 
ELectronics Boards & Product Testing_Shiju.pdf
ELectronics Boards & Product Testing_Shiju.pdfELectronics Boards & Product Testing_Shiju.pdf
ELectronics Boards & Product Testing_Shiju.pdf
Shiju Jacob
 
Degree_of_Automation.pdf for Instrumentation and industrial specialist
Degree_of_Automation.pdf for  Instrumentation  and industrial specialistDegree_of_Automation.pdf for  Instrumentation  and industrial specialist
Degree_of_Automation.pdf for Instrumentation and industrial specialist
shreyabhosale19
 
Metal alkyne complexes.pptx in chemistry
Metal alkyne complexes.pptx in chemistryMetal alkyne complexes.pptx in chemistry
Metal alkyne complexes.pptx in chemistry
mee23nu
 
AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)
Vəhid Gəruslu
 
theory-slides-for react for beginners.pptx
theory-slides-for react for beginners.pptxtheory-slides-for react for beginners.pptx
theory-slides-for react for beginners.pptx
sanchezvanessa7896
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
π0.5: a Vision-Language-Action Model with Open-World Generalization
π0.5: a Vision-Language-Action Model with Open-World Generalizationπ0.5: a Vision-Language-Action Model with Open-World Generalization
π0.5: a Vision-Language-Action Model with Open-World Generalization
NABLAS株式会社
 
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
211421893-M-Tech-CIVIL-Structural-Engineering-pdf.pdf
inmishra17121973
 
introduction to machine learining for beginers
introduction to machine learining for beginersintroduction to machine learining for beginers
introduction to machine learining for beginers
JoydebSheet
 
new ppt artificial intelligence historyyy
new ppt artificial intelligence historyyynew ppt artificial intelligence historyyy
new ppt artificial intelligence historyyy
PianoPianist
 
Level 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical SafetyLevel 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical Safety
JoseAlbertoCariasDel
 
Compiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptxCompiler Design Unit1 PPT Phases of Compiler.pptx
Compiler Design Unit1 PPT Phases of Compiler.pptx
RushaliDeshmukh2
 
Data Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptxData Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptx
RushaliDeshmukh2
 
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G..."Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...
Infopitaara
 
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design ThinkingDT REPORT by Tech titan GROUP to introduce the subject design Thinking
DT REPORT by Tech titan GROUP to introduce the subject design Thinking
DhruvChotaliya2
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 

.Net Core

  • 1. .NET Core How to migrate and write new code for .NET Core
  • 2. Bertrand Le Roy ▪ Senior Program Manager on .NET Core ▪ One of the founders of Orchard ▪ http://weblogs.asp.net/bleroy ▪ https://blogs.msdn.microsoft.com/dotnet/tag/week-in-net/ ▪ https://www.youtube.com/channel/UCvtT19MZW8dq5Wwfu6B0oxw
  • 3. Objectives ▪ What’s .NET Core and when to use it (or not) ▪ How to create a new library, ASP.NET, or console application ▪ How to port existing code
  • 5. .NET Core ≠ .NET Framework
  • 6. .NET Framework 4.6 ▪ .NET implementation for any scenario on Windows with comprehensive library support
  • 7. .NET Core ▪ Modular and smaller implementation of .NET ▪ Cross-platform ▪ App-level isolation ▪ Built in the open ▪ Optimized for specific workloads ▪ Built for the next ten years of software development
  • 8. Next gen JIT (RyuJIT) SIMD Runtime Components Compilers Languages innovation .NET Compiler Platform .NET Core 5 Libraries .NET Framework 4.6 Libraries NuGet packages .NET Framework 4.6 .NET Core What’s common, and what’s not?
  • 9. What’s not supported? ▪ WPF ▪ Winforms ▪ WebForms ▪ Binary serialization… ▪ Anything Windows-specific: registry, ACLs, perf counters, etc.
  • 10. Significant change: Reflection foo.GetType() → foo.GetType().GetTypeInfo()
  • 11. API Portability resources ▪ Portability analyzer VS extension ▪ https://github.com/Microsoft/dotnet-apiport/releases ▪ http://dotnetstatus.azurewebsites.net/ ▪ https://packagesearch.azurewebsites.net/ ▪ http://forums.dotnetfoundation.org/ ▪ https://gitter.im/dotnet/corefx ▪ https://dotnet.github.io/porting *
  • 12. Managing expectations ▪ This is very much a new platform with a known flavor ▪ There is a cost to migration ▪ There are things to learn ▪ Not all projects can or should migrate
  • 13. Should I migrate my project? Cannot: ▪ WPF, WinForms, unless UWP ▪ ASP.NET WebForms Should (absolutely): ▪ General purpose libraries Should (maybe): ▪ ASP.NET MVC ▪ Micro-services ▪ Console apps ▪ Rewrite ▪ Talent expertise on Linux
  • 15. Dependencies ▪ Most fundamental libraries first: test frameworks, tooling, data access, JSON, logging, IoC, etc. ▪ Go to the source, ask the author ▪ Offer to help, or fork ▪ Switch to another Core-compatible library ▪ DIY
  • 16. Testing ▪ xUnit was first, now NUnit, MsTest ▪ Secondary test libraries (mocking, functional testing, etc.) in progress
  • 17. Debugging ▪ On Windows: Visual Studio ▪ Everywhere: VS Code
  • 18. Tooling Your choice of tool, on your choice platform ▪ Visual Studio on Windows ▪ Visual Studio Code on Mac, Linux, or Windows ▪ vi or emacs with OmniSharp ▪ etc.
  • 19. .NET CLI replaces DNX, DNVM, DNU ▪ dotnet new ▪ dotnet restore ▪ dotnet run ▪ dotnet build ▪ dotnet build –native ▪ dotnet dosomethingcool
  • 20. DEMO Creating a new application
  • 21. Q&A

Editor's Notes

  • #5: Innovation: Innovate and deliver much faster Prompt audience about their favorite pas innovation from .NET. Quote Roslyn, Linq, async/await, generic implementation. Openness enriches the platform and the community On any device and platform
  • #6: Core is different from .NET Framework, and Core is also not .NET Fx 5.
  • #8: Open: not just the source: design documents, code reviews, experiments, roadmaps Open contributions with quality standards, in particular in terms of security.
  • #10: Windows-specific: at least for now, as platform-specific libraries will appear.
  • #15: WPF, WinForms, even if the application isn’t going cross-platform, stay on .Net Fx. A migration to UWP is possible, but that means a rewrite of the UI in addition to the Core migration. ASP.NET WebForms applications should remain on .NET Fx. On the other hand, MVC applications, micro-services, console apps, and anything that can benefit in being deployed cross-platform, especially using containers, is an excellent choice. General purpose libraries should definitely be ported and support both Core and Fx.
  • #16: Open VS, go to Tools / Extensions and updates, show the portability analyzer is there. Open FluentPath solution, right-click Fluent.IO, analyze/analyze portability -> 100% Do the same on Fluent.IO.Windows -> 91.67%, and a detailed list of failures. Those APIs are simply not supported because Windows-specific. Do the same with the NonPortableLibrary solution -> 97.22%. Show how the IsAbstract recommended change is to go through GetTypeInfo(). Show the html file on disk. From the NonPortableLibrary root folder, do …\apiport.exe listOutputFormats; …\apiport.exe analyze –f .\bin\Debug –r Excel –o report.xlsx. Show the Excel report with its two tabs. Go to http://dotnetstatus.azurewebsites.net, look for IsAbstract, show the Type and TypeInfo entries. (That’s an anomaly due to the fact that TypeInfo on .NET Framework derives from Type. Most of the TypeInfo thus show up as defined by the base.) Go to https://packagesearch.azurewebsites.net, look for IsAbstract, show the result for System.Reflection.TypeInfo, show package name and version number.
  • #17: Open the Nuget Package Explorer.+3. Click "Open a package from online feed". (screenshot)+4. Search for the name of a package in the search field and hit enter. (screenshot of result)+5. Expand the "lib" folder and look for a target subfolder that is compatible with .NET Core. (screenshot)++ TODO: Something with `dnxcore50`, `dotnet`, `netstandardlib`, ... is what you're looking for.+ + If there isn't a target subfolder compatible with .NET Core, the dependency will not run on .NET Core.
  • #20: Mention JetBrains Project Rider
  • #21: Dotnet build, in the case of an app, generates runnable assets by copying an executable host.
  • #22: Create new portable library from VS by following the script http://aka.ms/port2core Create new command-line app from CLI: show https://github.com/dotnet/cli/blob/master/Documentation/intro-to-cli.md