SlideShare a Scribd company logo
Tarabica 2019 - Migration from ASP.NET MVC to ASP.NET Core
tweet #tarabica19
Migration from ASP.NET MVC to ASP.NET Core
Belgrade
May 25th, 2019
Miroslav Popović
Technical Lead, Seavus Group
https://miroslavpopovic.com
@miroslavpopovic
Sponzori Generalni sponzor
Srebrni sponzori
Tehnički sponzori
tweet #tarabica19
Bronzani sponzor
Partner konferencije
tweet #tarabica19
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
tweet #tarabica19
Why migrate?
• Old platform, no longer improved
• .NET Framework 4.8 is the last version
• 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
tweet #tarabica19
Why not stay?
tweet #tarabica19
ASP.NET Core benefits
• Multiplatform
• Open source for real
• Performance
• New configuration system
• Easy to use with Docker
tweet #tarabica19
ASP.NET Core benefits (cont.)
• Side by side with another app on different .NET Core
• Joined MVC and WebAPI
• Excellent for REST APIs
• Plays great with modern web tools
• Part of the .NET future
tweet #tarabica19
ASP.NET Core benefits (cont.)
tweet #tarabica19
.NET Standard
tweet #tarabica19
tweet #tarabica19
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+ (or 3.0) project
• Migrate startup code and initialization
• Migrate static files, configure bundles
• Migrate views and actions
tweet #tarabica19
Project organization
tweet #tarabica19
Project files
tweet #tarabica19
Middleware pipeline
tweet #tarabica19
Startup
tweet #tarabica19
Razor changes
tweet #tarabica19
Tag helpers and client libs
tweet #tarabica19
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
tweet #tarabica19
Web API
• Same controllers as for MVC
• Configuration in Startup
• [ApiController]
• ActionResult<T>
• Swagger / Open API specification
• HTTPS by default
• API conventions
• API analyzers
tweet #tarabica19
tweet #tarabica19
Potential problems
.NET Core & .NET Standard
• Not all APIs are migrated to Core
• .NET Portability Analyzer
• Registry access
• WCF servers
• AppDomain
• Remoting
tweet #tarabica19
Database access
• Depends on DB library used
• Direct ADO.NET access
• Micro ORMs
• NHibernate
• Entity Framework
tweet #tarabica19
Entity Framework Core
• Different than EF6.x
• Migrations
• Still not feature-ready
• Entity Framework 6.3 migrated to .NET Core 3.0
tweet #tarabica19
ASP.NET Identity
• Database changes
• View changes
• Scaffolding
tweet #tarabica19
tweet #tarabica19
Closing words
When not to migrate?
• ASP.NET Web Forms
• ASP.NET MVC Web Forms
• Missing APIs
• Old dependencies
• …
• Rewriting parts of solution
tweet #tarabica19
ASP.NET Core future
• .NET Core 3.0 - September 2019.
• Performance++
• Server-side Blazor
• Endpoint routing improvements
• SPA template improvements
• …
• Client-side Blazor
tweet #tarabica19
Current performance
tweet #tarabica19
ASP.NET Core: Saturating 10GbE at 7+ million request/s - https://bit.ly/2Gns2Dq
Future performance
tweet #tarabica19
https://aka.ms/aspnet/benchmarks
6 minutes, 64 connections, 120.000.000 requests
.NET 5!
tweet #tarabica19
Are you convinced?
• Performance, performance
• Features
• some free, some with additional work
• Open-source
• Modern web framework
• Dockerizable
• Future
• …
tweet #tarabica19
Guides and tools
• Migration docs
• https://docs.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/?view=aspnetcore-2.2
• 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
tweet #tarabica19
Thank you! Questions?
https://miroslavpopovic.com
@miroslavpopovic
Sponzori Generalni sponzor
Srebrni sponzori
Tehnički sponzori
tweet #tarabica19
Bronzani sponzor
Partner konferencije

More Related Content

What's hot (20)

PPTX
Practical Application of API-First in microservices development
Chavdar Baikov
 
PDF
Yasgui: not just another sparql gui
laurensrietveld
 
PPTX
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
PPTX
Product Camp Silicon Valley 2018 - PM Technical Skills
Sandeep Adwankar
 
PPTX
ASP.NET Core: The best of the new bits
Ken Cenerelli
 
PDF
Alfresco WebScript Connector for Apache ManifoldCF
Piergiorgio Lucidi
 
PDF
Asp.Net 3 5 Part 1
asim78
 
PDF
Laravel and CodeIgniter: pros & cons
ElenorWisozk
 
PPTX
Evolution / History of ASP.NET
Anoop Kumar Sharma
 
PPTX
ReactPHP + Symfony
David Bergunder
 
PDF
Merging two big Symfony based applications - SymfonyCon 2017
Ivo Lukac
 
PDF
The Need For Speed - NxtGen Cambridge
Phil Pursglove
 
PPTX
Introduction to SharePoint Framework
Małgorzata Borzęcka
 
PDF
LF_APIStrat17_The Great API Redesign
LF_APIStrat
 
PPTX
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Waldek Mastykarz
 
PPTX
Mule soft meetup warsaw november 13th, 2019
Patryk Bandurski
 
PDF
Building Enterprise Apps with Sencha & DeftJS
ryancanulla
 
PPTX
Create Salesforce online IDE in 30 minutes
Jitendra Zaa
 
ODP
Projects In Laravel : Learn Laravel Building 10 Projects
Sam Dias
 
PDF
WordPress 4.4 and Beyond
Scott Taylor
 
Practical Application of API-First in microservices development
Chavdar Baikov
 
Yasgui: not just another sparql gui
laurensrietveld
 
Process Orchestration with Flowable and Spring Boot
Chavdar Baikov
 
Product Camp Silicon Valley 2018 - PM Technical Skills
Sandeep Adwankar
 
ASP.NET Core: The best of the new bits
Ken Cenerelli
 
Alfresco WebScript Connector for Apache ManifoldCF
Piergiorgio Lucidi
 
Asp.Net 3 5 Part 1
asim78
 
Laravel and CodeIgniter: pros & cons
ElenorWisozk
 
Evolution / History of ASP.NET
Anoop Kumar Sharma
 
ReactPHP + Symfony
David Bergunder
 
Merging two big Symfony based applications - SymfonyCon 2017
Ivo Lukac
 
The Need For Speed - NxtGen Cambridge
Phil Pursglove
 
Introduction to SharePoint Framework
Małgorzata Borzęcka
 
LF_APIStrat17_The Great API Redesign
LF_APIStrat
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Waldek Mastykarz
 
Mule soft meetup warsaw november 13th, 2019
Patryk Bandurski
 
Building Enterprise Apps with Sencha & DeftJS
ryancanulla
 
Create Salesforce online IDE in 30 minutes
Jitendra Zaa
 
Projects In Laravel : Learn Laravel Building 10 Projects
Sam Dias
 
WordPress 4.4 and Beyond
Scott Taylor
 

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

PDF
Asp. net core 3.0 build modern web and cloud applications (top 13 features +...
Katy Slemon
 
PPTX
Explore asp.net core 3.0 features
iFour Technolab Pvt. Ltd.
 
PDF
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Arrow Consulting & Design
 
PDF
Asp.net core tutorial
HarikaReddy115
 
PDF
Murach: An introduction to web programming with ASP.NET Core MVC
MahmoudOHassouna
 
PPTX
MVC patten relate using in. net core latest varsion
sachingothi25
 
PDF
Pro ASP.NET Core 6: Develop Cloud-Ready Web Applications Using MVC, Blazor, a...
madhowewes
 
PPTX
From .NET Core 3, all the rest will be legacy
Rick van den Bosch
 
PPTX
Introduction Asp.Net Core, MVC, Docker (Linux), Postman and Swagger
Agusto Sipahutar
 
PPTX
Quick Interview Preparation Dot Net Core
Karmanjay Verma
 
PPTX
SoCal Code Camp 2011 - ASP.NET MVC 4
Jon Galloway
 
PDF
Learning Aspnet Core Mvc Programming Mugilan T S Ragupathi
nybiadegeye
 
PDF
Introduction to ASP.NET MVC
Sirwan Afifi
 
PPTX
Unboxing ASP.NET Core
Kevin Leung
 
PDF
Advantages of Choosing ASP.NET Core
Nichetech Solutions
 
PPT
.NET Core Apps: Design & Development
GlobalLogic Ukraine
 
PPTX
ASP.Net Core Deep Dive into MVC
Pritam Baldota
 
PPTX
MVC - Introduction
Sudhakar Sharma
 
PPTX
ASP.NET Core 1.0 Overview: Post-RC2
Shahed Chowdhuri
 
PDF
Why Enterprises are Using ASP.NET Core?
Marie Weaver
 
Asp. net core 3.0 build modern web and cloud applications (top 13 features +...
Katy Slemon
 
Explore asp.net core 3.0 features
iFour Technolab Pvt. Ltd.
 
Getting Started with ASP.NET Core 1.0 (formerly ASP.NET 5)
Arrow Consulting & Design
 
Asp.net core tutorial
HarikaReddy115
 
Murach: An introduction to web programming with ASP.NET Core MVC
MahmoudOHassouna
 
MVC patten relate using in. net core latest varsion
sachingothi25
 
Pro ASP.NET Core 6: Develop Cloud-Ready Web Applications Using MVC, Blazor, a...
madhowewes
 
From .NET Core 3, all the rest will be legacy
Rick van den Bosch
 
Introduction Asp.Net Core, MVC, Docker (Linux), Postman and Swagger
Agusto Sipahutar
 
Quick Interview Preparation Dot Net Core
Karmanjay Verma
 
SoCal Code Camp 2011 - ASP.NET MVC 4
Jon Galloway
 
Learning Aspnet Core Mvc Programming Mugilan T S Ragupathi
nybiadegeye
 
Introduction to ASP.NET MVC
Sirwan Afifi
 
Unboxing ASP.NET Core
Kevin Leung
 
Advantages of Choosing ASP.NET Core
Nichetech Solutions
 
.NET Core Apps: Design & Development
GlobalLogic Ukraine
 
ASP.Net Core Deep Dive into MVC
Pritam Baldota
 
MVC - Introduction
Sudhakar Sharma
 
ASP.NET Core 1.0 Overview: Post-RC2
Shahed Chowdhuri
 
Why Enterprises are Using ASP.NET Core?
Marie Weaver
 
Ad

Recently uploaded (20)

PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
PPTX
3uTools Full Crack Free Version Download [Latest] 2025
muhammadgurbazkhan
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
PPTX
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PPTX
Engineering the Java Web Application (MVC)
abhishekoza1981
 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
3uTools Full Crack Free Version Download [Latest] 2025
muhammadgurbazkhan
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
MiniTool Power Data Recovery Full Crack Latest 2025
muhammadgurbazkhan
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Engineering the Java Web Application (MVC)
abhishekoza1981
 
Ad

Tarabica 2019 - Migration from ASP.NET MVC to ASP.NET Core

Editor's Notes

  • #6: Image downloaded from: https://www.flickr.com/photos/markgregory/15693006019
  • #8: Image downloaded from: https://www.flickr.com/photos/andyhay/8196333166