Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

C#

Leonard Isaksson
Leonard Isaksson
4,598 Points

Should I learn ASP.NET MVC or ASP.NET CORE?

Hello

I can't decide if I should learn asp.net mvc or asp.net core and is asp.net mvc considered outdated due to new release of asp.net core

2 Answers

Steven Parker
Steven Parker
216,000 Points

What you learn about ASP.NET MVC should apply to .NET Core MVC.

You may be thinking of .NET Framework as the more-established alternative to .NET Core. Neither is outdated, and there are reasons you might choose one over the other.

Some reasons you might choose .NET Core:

  • You have cross-platform needs.
  • You are targeting microservices.
  • You are using Docker containers.
  • You need high performance and scalable systems.
  • You need side by side of .NET versions by application.

And some reasons you might choose .NET Framework:

  • Your application currently uses .NET Framework (the official recommendation is to extend instead of migrate)
  • You need to use third-party .NET libraries or NuGet packages not available for .NET Core.
  • You need to use .NET technologies that are not available for .NET Core.
  • You need to use a platform that doesn’t support .NET Core.
James Churchill
STAFF
James Churchill
Treehouse Teacher

Leonard,

I agree with everything that Steven notes above... and I'll add some of my own thoughts :)

Because of its relative "newness", ASP.NET Core is receiving a lot of attention these days. And that's great, because ASP.NET Core is a great technology and something that was sorely needed. That being said, if you're looking for a junior level developer position, learning ASP.NET MVC isn't a waste of time.

The previous versions of ASP.NET MVC were quite popular amongst Microsoft developers. Because of that there is a tremendous amount of "legacy" code that uses ASP.NET MVC. Some of those projects will be migrated to ASP.NET Core, but some will never be migrated.

Developers who have experience with ASP.NET MVC will be in demand for quite some time still because those legacy apps will need to be maintained. And for those apps that will be migrated to ASP.NET Core, someone with experience with both technologies will need to be part of or oversee those efforts.

Even though ASP.NET Core is a complete rewrite of ASP.NET, there is still a fair amount of overlap with ASP.NET MVC. For instance, controllers and views between the two technologies are very similar. Routing, model binding, validation, filters, and more are also very similar or unchanged.

That's not to suggest that there aren't any differences; there are. ASP.NET Core's middleware request pipeline and Tag Helpers are obvious examples of new features that can have a dramatic impact on how you develop ASP.NET apps. But if you're an expert ASP.NET MVC developer, you'll learn (and appreciate) these new features quickly. In fact, if you're like me, you'll probably even have fun discovering what's new.

I hope this helps.

Thanks, James