Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

C#

Pratham Patel
Pratham Patel
565 Points

Could someone explain to me all the different versions of ASP.NET

I have heard of ASP.NET CORE and ASP.NET MVC Whats the difference between all of those

2 Answers

Allan Clark
Allan Clark
10,810 Points

In the beginning there was .NET which is the framework the Microsoft technologies run on. It provides APIs to accomplish basic programming tasks, the console object is an example of something provided by .NET. It will work the same for any .NET compatible language.

ASP.NET is a subset of the full .NET framework that is specifically for web development. This is often mistakenly the name used for WebForms, which is a web framework that came before the amazing-ness which is ASP.NET MVC.

ASP.NET MVC is a web development framework, it is essentially a suite of technologies that all fit together and is the successor of WebForms. WebForms was made as a transition from desktop development to web development, as such it abstracts away alot of what goes on that is web specific. This sounds good but WebForms has not aged well, .NET MVC is just better equipped to leverage modern web technologies.

.NET is the base, ASP.NET is a subset, and MVC is built on top of ASP.NET.

Then came .NET Core. This is a complete ground up rewrite of the .NET framework (that completely got rid of WebForms). Its primary focus was to make .NET cross platform, as well as resolving tech debt that came with the many years of growing the framework. Now there are 2 .NET's where previously there was only 1, .NET Standard (the original) and .NET Core (the new one).

.NET Core has its own implementation of MVC. It is all very confusing with all the names and jargon, but it makes more sense the more you work with it. Here is a stack overflow answer that has alot of good resources about the subject and of course ask for more clarification if my rambling isn't clear enough :)

https://stackoverflow.com/questions/3103360/net-vs-asp-net-vs-clr-vs-asp

Allan Clark
Allan Clark
10,810 Points

Sorry I’m not exactly sure what you mean by this question. .Net is the closest you will get to machine level without going down to machine code.

Allan Clark
Allan Clark
10,810 Points

Oh I see what you are saying.

No there is no relation there. That I believe is supposed to be short for network.

https://en.m.wikipedia.org/wiki/.net

Pratham Patel
Pratham Patel
565 Points

Thanks a lot man. Which one would you suggest learning first?

Allan Clark
Allan Clark
10,810 Points

I would suggest learning .NET Standard first. IMO .NET core has only started becoming β€˜production ready’ within the last release or two.

Most jobs won’t be looking for .NET core yet. And once you know .NET Standard, transitioning to .NET core is a breeze. Most of the differences are minor syntax changes. Though there are some added functionality that eleminates the need for certain nuget packages. For example .NET core has built in dependency injection which eliminates the need for Ninject.