Reputation: 17382
I want to start learning ASP.NET MVC - but just after reading first article I have a question: is ASP.NET MVC and ASP.NET Core MVC totally different and using different code functionalities, OR these two the same now?
I know that .NET Core is a new release from Microsoft, so is it running separate or directly merged to ASP.NET MVC. I am thinking if core is different than we have four types of different applications to develop like ASP.NET, ASP.NET Core, ASP.NET MVC, ASP.NET Core MVC.
If I am learning "MVC", does it mean I am learning ASP.NET Core MVC? Does ASP.NET Core MVC have different tutorials, code, projects etc?
Upvotes: 2
Views: 4216
Reputation: 239220
Simply, Microsoft's naming sucks. There's technically two frameworks: ASP.NET and ASP.NET Core, which build upon .NET Framework and .NET Core, respectively.
When Microsoft first attempted to create a "modern" web application platform that adhered to the MVC pattern, it called this new platform "ASP.NET MVC" to distinguish it from previous ASP.NET apps (mostly Web Forms). Then, just to confuse things even more, they later added "ASP.NET Web Api", which was really not a different thing, but just an extension of ASP.NET MVC. The last version of ASP.NET MVC was 5 and the last version ASP.NET Web Api was 2.
Then, Microsoft started working on ASP.NET "vNext", which was really just a code name for a new version of ASP.NET MVC. Initially, the plan was for it to be a new version of MVC, so it also began being referred to as "ASP.NET MVC 6". However, MVC 6 is not a thing and never really existed.
Eventually, it became clear that the direction Microsoft wanted to go with "vNext" was going to require a fundamental shift at the framework level, and work began on .NET Core and ASP.NET Core. Technically, the framework is "ASP.NET Core", period. It's not "ASP.NET Core MVC". The "MVC", "Web Api", and "Razor Pages" terms are simply designations of a particular style of ASP.NET Core app. There is no fundamental difference between them, and any ASP.NET Core app can include MVC-style controllers and views, API controllers returning JSON/XML and/or Razor Pages, or any combination thereof.
Long and short, calling it ASP.NET Core is enough. If you're doing something specific, like working with a Razor Page, then you should specify that you're using Razor Pages. Likewise for an API controller, etc., but it's still just ASP.NET Core.
Upvotes: 19