Should I Use ASP.NET Core or MVC 5?

6cyMkrEcnI received a question this morning in my email that I thought I would answer here so that everyone can have the benefit of my answer:

“I’m planning to build a new web application in a software as a service (SaaS) model.  Which option is better: ASP.NET MVC 5 or ASP.NET Core?”

This is an interesting question given the current releases and timetable for future releases.  It also begs the question: What do you mean by ‘better’?

Both frameworks will still be supported in at least 4 years.  Both frameworks have an MVC approach to coding and both use a very similar Razor templating language.

If you are looking 15 years out, I cannot forecast that far into the future.

If you are looking for raw performance, ASP.NET Core would be my choice.

If you are looking for something that is tested and has been running major websites for almost a decade, MVC 5 would be my choice.

If you want to be on the leading edge of technology using nightly builds and you’re comfortable with updating and upgrading your code, then ASP.NET Core would be my choice.

If you want the flexibility of developing and running your application on multiple operating systems, then ASP.NET Core would be my choice

If you want a framework with thousands of packages and an active ecosystem that has curated its packages for the past 5 years, the MVC 5 would be my choice

If you want to be able to deploy your application to containers, you can actually choose either – as the new Windows container model promises to support the full .NET framework that MVC 5 is built on

If you want to share components with other applications across a variety of form factors and operating systems including your web server, Mac, iOS, Android, XBox, Windows Phone, Windows Desktop, and the Unity framework, then you should develop with .NET Platform Standard in mind and you can choose either framework.

There is no one right answer for this question.  Its the old architect’s answer of “it depends” because there are a lot of factors in choosing either platform.  I recommend you make a checklist of the feature you want in your application framework and use the one that closest meets your needs.  I’ve used both frameworks to build applications in the past month, and I’m happy with both.