Migration from ASP.NET MVC to ASP.NET Core

Miroslav Popovic
Miroslav PopovicTechnical Lead at Seavus
Advanced
Technology Days
5. i 6. prosinca 2018., Plaza Event Centar
Powered by
ADVANCED
TECHNOLOGY
DAYS
Migration
from ASP.NET MVC
to ASP.NET Core
Miroslav Popović
https://miroslavpopovic.com
@miroslavpopovic
Medijski sponzori
Sponzori konferencije
Prijatelj konferencije
Introduction
A bit of history
• .NET Framework 1.0
• ASP.NET 1.0
• ASP.NET 2.0
• ASP.NET MVC
• ASP.NET WebAPI
• ASP.NET Core & .NET Core
Why migrate?
• Old platform, no longer improved
• Performance is not that great
• System.Web dependency
• Windows only
• Using it with containers is harder
• Running multiple side-by-side installations is harder
• Configuration is harder
• Doesn’t play well with modern web
Why not stay?
ASP.NET Core benefits
• Multiplatform
• Open source for real
• Performance
• New configuration system
• Easy to use with Docker
• Side by side with another app on different .NET Core
• Joined MVC and WebAPI
• Excellent for REST APIs
• Plays great with modern web tools
Shiny new toy
.NET Standard
Migration from
ASP.NET MVC
Migration process
• Latest version of .NET Framework (at least 4.6.2)
• Analyze your solution with .NET Portability Analyzer
• Migrate non-ASP.NET projects to .NET Standard
• Create new ASP.NET Core 2.1 project
• Migrate startup code and initialization
• Migrate static files, configure bundles
• Migrate views and actions
Project organization
Project files
SDK-style projects
Middleware pipeline
Startup
Razor changes
Tag helpers and client libs
Web Components
• Dynamic navigation menus
• Tag cloud (where it queries the database)
• Login panel
• Shopping cart
• Recently published articles
• Sidebar content on a typical blog
WebAPI
• Same controllers as for MVC
• Configuration in Startup
• [ApiController]
• ActionResult<T>
• Swagger / Open API specification
• HTTPS by default
• API conventions
• API analyzers
Potential problems
.NET Core & .NET Standard
• .NET Portability Analyzer
• Not all APIs are migrated to Core
• Registry access
• WCF servers
• AppDomain
• Remoting
Database access
• Depends on DB library used
• Direct ADO.NET access
• Micro ORMs
• NHibernate
• Entity Framework
Entity Framework Core
• Different than EF6.x
• Migrations
• Still not feature-ready
• Plans to have EF6 working on .NET Core 3.0
ASP.NET Identity
• Database changes
• View changes
• Scaffolding
Closing words
When not to migrate?
• ASP.NET Web Forms
• ASP.NET MVC Web Forms
• Missing APIs
• Old dependencies
• …
• Rewriting parts of solution
ASP.NET Core future present
• ASP.NET Core 2.2
• .NET Core 3.0
• ASP.NET Core 3.0
• …
Are you convinced?
• Performance, performance
• Features
‐ some free, some with additional work
• Open-source
• Modern web framework
• Dockerizable
• Future
• …
Guides and tools
• Migration docs
‐ https://docs.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/?view=aspnetcore-2.1
• Should, When, and How Can I Migrate to .NET Core – Mitchel Sellers
‐ https://mitchelsellers.com/blogs/2018/07/19/should-when-and-how-can-i-migrate-to-net-core
• .NET Portability Analyzer
‐ https://docs.microsoft.com/en-us/dotnet/standard/analyzers/portability-analyzer
‐ https://github.com/Microsoft/dotnet-apiport
• Migrate project files tool
‐ https://github.com/hvanbakel/CsprojToVs2017
Medijski sponzori
Sponzori konferencije
Prijatelj konferencije
Hvala.
1 of 31

Recommended

Tarabica 2019 - Migration from ASP.NET MVC to ASP.NET Core by
Tarabica 2019 - Migration from ASP.NET MVC to ASP.NET CoreTarabica 2019 - Migration from ASP.NET MVC to ASP.NET Core
Tarabica 2019 - Migration from ASP.NET MVC to ASP.NET CoreMiroslav Popovic
169 views36 slides
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014 by
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014Enea Gabriel
1K views32 slides
Real World Rails Deployment by
Real World Rails DeploymentReal World Rails Deployment
Real World Rails DeploymentAlan Hecht
2K views21 slides
Introduction to ASP.NET 5 by
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5mbaric
2.4K views22 slides
Hire laravel-php-developers- Hire Laravel Programmers by
Hire laravel-php-developers- Hire Laravel ProgrammersHire laravel-php-developers- Hire Laravel Programmers
Hire laravel-php-developers- Hire Laravel ProgrammersSummation IT
373 views9 slides
Building rest services using aspnetwebapi by
Building rest services using aspnetwebapiBuilding rest services using aspnetwebapi
Building rest services using aspnetwebapiBrij Mishra
5.6K views23 slides

More Related Content

What's hot

The Need For Speed - NxtGen Cambridge by
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen CambridgePhil Pursglove
413 views19 slides
Evolution / History of ASP.NET by
Evolution / History of ASP.NETEvolution / History of ASP.NET
Evolution / History of ASP.NETAnoop Kumar Sharma
1.8K views8 slides
ReactPHP + Symfony by
ReactPHP + SymfonyReactPHP + Symfony
ReactPHP + SymfonyDavid Bergunder
880 views11 slides
UWP apps development - Part 2 by
UWP apps development - Part 2UWP apps development - Part 2
UWP apps development - Part 2Jiri Danihelka
30 views19 slides
Alfresco WebScript Connector for Apache ManifoldCF by
Alfresco WebScript Connector for Apache ManifoldCFAlfresco WebScript Connector for Apache ManifoldCF
Alfresco WebScript Connector for Apache ManifoldCFPiergiorgio Lucidi
3.7K views30 slides
Moving ASP.NET MVC to ASP.NET Core by
Moving ASP.NET MVC to ASP.NET Core Moving ASP.NET MVC to ASP.NET Core
Moving ASP.NET MVC to ASP.NET Core John Patrick Oliveros
812 views21 slides

What's hot(20)

The Need For Speed - NxtGen Cambridge by Phil Pursglove
The Need For Speed - NxtGen CambridgeThe Need For Speed - NxtGen Cambridge
The Need For Speed - NxtGen Cambridge
Phil Pursglove413 views
Alfresco WebScript Connector for Apache ManifoldCF by Piergiorgio Lucidi
Alfresco WebScript Connector for Apache ManifoldCFAlfresco WebScript Connector for Apache ManifoldCF
Alfresco WebScript Connector for Apache ManifoldCF
Piergiorgio Lucidi3.7K views
They why behind php frameworks by Kirk Madera
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
Kirk Madera254 views
Practical Application of API-First in microservices development by Chavdar Baikov
Practical Application of API-First in microservices developmentPractical Application of API-First in microservices development
Practical Application of API-First in microservices development
Chavdar Baikov90 views
Yasgui: not just another sparql gui by laurensrietveld
Yasgui: not just another sparql guiYasgui: not just another sparql gui
Yasgui: not just another sparql gui
laurensrietveld1.2K views
Building solutions with the SharePoint Framework - introduction by Waldek Mastykarz
Building solutions with the SharePoint Framework - introductionBuilding solutions with the SharePoint Framework - introduction
Building solutions with the SharePoint Framework - introduction
Waldek Mastykarz1K views
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer... by Waldek Mastykarz
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Waldek Mastykarz1.4K views
Introduction to ASP.NET MVC 1.0 by Shiju Varghese
Introduction to ASP.NET MVC 1.0Introduction to ASP.NET MVC 1.0
Introduction to ASP.NET MVC 1.0
Shiju Varghese1.6K views
Entity Framework Core 1.0 by Senthil Kumar
Entity Framework Core 1.0Entity Framework Core 1.0
Entity Framework Core 1.0
Senthil Kumar1.5K views
Process Orchestration with Flowable and Spring Boot by Chavdar Baikov
Process Orchestration with Flowable and Spring BootProcess Orchestration with Flowable and Spring Boot
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov744 views
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016 by Waldek Mastykarz
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Waldek Mastykarz1K views

Similar to Migration from ASP.NET MVC to ASP.NET Core

ASP.NET 5 Overview by
ASP.NET 5 OverviewASP.NET 5 Overview
ASP.NET 5 OverviewShahed Chowdhuri
7.5K views48 slides
Developing Cross-Platform Web Apps with ASP.NET Core1.0 by
Developing Cross-Platform Web Apps with ASP.NET Core1.0Developing Cross-Platform Web Apps with ASP.NET Core1.0
Developing Cross-Platform Web Apps with ASP.NET Core1.0EastBanc Tachnologies
222 views34 slides
ASP.NET 5 by
ASP.NET 5ASP.NET 5
ASP.NET 5David Voyles
376 views19 slides
ASP.NET 5 Overview - Post Build 2015 by
ASP.NET 5 Overview - Post Build 2015ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015Shahed Chowdhuri
2.4K views50 slides
ASP.NET 5 Overview: Post RTM by
ASP.NET 5 Overview: Post RTMASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMShahed Chowdhuri
5.7K views50 slides
ASP.NET 5 Overview for Apex Systems by
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsShahed Chowdhuri
2.4K views50 slides

Similar to Migration from ASP.NET MVC to ASP.NET Core(20)

ASP.NET 5 Overview - Post Build 2015 by Shahed Chowdhuri
ASP.NET 5 Overview - Post Build 2015ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015
Shahed Chowdhuri2.4K views
ASP.NET 5 Overview for Apex Systems by Shahed Chowdhuri
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex Systems
Shahed Chowdhuri2.4K views
Introducing ASP.NET vNext - A tour of the new ASP.NET platform by Jeffrey T. Fritz
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. Fritz3.2K views
Fast Track introduction to ASP.NET MVC by Ankit Kashyap
Fast Track introduction to ASP.NET MVCFast Track introduction to ASP.NET MVC
Fast Track introduction to ASP.NET MVC
Ankit Kashyap937 views
MVC 6 - the new unified Web programming model by Alex Thissen
MVC 6 - the new unified Web programming modelMVC 6 - the new unified Web programming model
MVC 6 - the new unified Web programming model
Alex Thissen403 views
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014 by FalafelSoftware
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
FalafelSoftware1.1K views
Entity Framework 7: What's New? by Ricardo Peres
Entity Framework 7: What's New?Entity Framework 7: What's New?
Entity Framework 7: What's New?
Ricardo Peres1.2K views
Migrating .NET Application to .NET Core by Baris Ceviz
Migrating .NET Application to .NET CoreMigrating .NET Application to .NET Core
Migrating .NET Application to .NET Core
Baris Ceviz1.4K views
Les nouveautés ASP.NET 5 avec Visual Studio 2015 by MSDEVMTL
Les nouveautés ASP.NET 5 avec Visual Studio 2015Les nouveautés ASP.NET 5 avec Visual Studio 2015
Les nouveautés ASP.NET 5 avec Visual Studio 2015
MSDEVMTL561 views
Develop a Quick and Dirty Web interface to your database: for the DBA and oth... by Gabriel Villa
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Gabriel Villa1.8K views
Urbanesia - Development History by Batista Harahap
Urbanesia - Development HistoryUrbanesia - Development History
Urbanesia - Development History
Batista Harahap1.5K views

Recently uploaded

Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...TomHalpin9
6 views29 slides
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionMárton Kodok
6 views55 slides
Software evolution understanding: Automatic extraction of software identifier... by
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...Ra'Fat Al-Msie'deen
9 views33 slides
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptxanimuscrm
15 views19 slides
SUGCON ANZ Presentation V2.1 Final.pptx by
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptxJack Spektor
23 views34 slides
tecnologia18.docx by
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 views5 slides

Recently uploaded(20)

Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok6 views
Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm15 views
SUGCON ANZ Presentation V2.1 Final.pptx by Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor23 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs by Deltares
DSD-INT 2023 The Danube Hazardous Substances Model - KovacsDSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
Deltares10 views
AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8712 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492122 views
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h... by Deltares
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
Deltares9 views
Advanced API Mocking Techniques by Dimpy Adhikary
Advanced API Mocking TechniquesAdvanced API Mocking Techniques
Advanced API Mocking Techniques
Dimpy Adhikary19 views
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... by Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller41 views
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... by Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares14 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views

Migration from ASP.NET MVC to ASP.NET Core

Editor's Notes

  1. Image downloaded from: https://www.flickr.com/photos/markgregory/15693006019
  2. Image downloaded from: https://www.flickr.com/photos/andyhay/8196333166
  3. Image downloaded from: https://www.flickr.com/photos/bobsfever/6304220286
  4. Image downloaded from: https://www.flickr.com/photos/bobsfever/6304220286