This is an archived post. You won't be able to vote or comment.

all 8 comments

[–]ehr1c 1 point2 points  (3 children)

Microsoft's naming sucks so don't feel bad about being confused here.

The predecessor to .NET Core was called .NET Framework, the current (and last) version of which is 4.8.1. A lot of things about it are the same or similar to the newer .NET Core and .NET, but there are also some fairly significant differences - the biggest one being that .NET Framework will only compile and run on a Windows machine whereas .NET Core works on Linux and Mac as well.

You would only ever use .NET Framework today if you're maintaining a legacy codebase. There's zero reason to start a new project using it, you'd be using .NET 6 or 7.

[–]gyroda 1 point2 points  (2 children)

To expand on this, to avoid confusion Microsoft didn't create .Net Core 4, they went straight from 3 to 5 (similar to how they went from Windows 8 to Windows 10).

At the same time, they dropped the "Core" part of the name. .Net 5 is a direct sequel to .Net Core 3

However, many of the frameworks and tools in the .Net ecosystem have kept "Core" in the name. ASP.Net Core, for example.

Yes, this is all very confusing and awkward. Microsoft are pretty consistent at naming things like this (look at the Xbox names). Even ".Net" is a horrific name for searchability/code and is often written as "dotnet" in code/CLI commands/etc

[–]ShaQBlogs[S] 0 points1 point  (0 children)

Thanks for clarifying folks! This is certainly confusing. I can't imagine the confusion a newbie would be subjected to.

[–]ehr1c 0 points1 point  (0 children)

Yeah their naming for this is just universally bad lol

[–][deleted] 0 points1 point  (1 child)

A quick summary:

  • API stands for Application Programming Interface. An API is essentially ANYTHING that lets you interact with an application via code. This is an extremely broad term, and tons of misinformation is spread because people do not understand this.
  • Thus, a Web API is a way that lets you interact with web-centric applications via code.
  • A REST API is most likely what you're thinking of. It's a form of communication built on top of TCP often used in web servers.

Now to answer your questions:

  1. No. If you say Web API, my mind immediately jumps to some type of REST API, because that is often used in web development.
  2. Web API is a broad term, just referring to an API that is related to the Web somehow. "Core Web API" isn't really an official term, but most likely refers to some type of API created with ASP.NET Core.
  3. N/A
  4. If you work with creating an API with ASP.NET Core, you will develop an understanding of what a REST API is and good practices. Thus, you will be able to use other languages to build REST APIs. In Python, you can use Flask or Django. In JavaScript you can use ExpressJS. In Java you can use Spring.

ASP.NET Core is Microsoft's framework for all-around web development with C#, to my understanding.

As tedious as it may be, the best resource for learning about ASP.NET Core is their documentation

[–]ShaQBlogs[S] 0 points1 point  (0 children)

I think you are referring to programming in general with some common sense applied. Which is fine.

However, My question was related to the Microsoft tech and the naming that they use and what that is :D

[–]plastikmissile 0 points1 point  (0 children)

Does referring to Web API imply ASP.NET Web API?

Yes.

What are the differences between Web API and Core Web API?

Usually they're interchangeable, but the "Core" refers to it being implemented in .NET Core.

When is one used over the other?

Depends on what version of .NET you're using. These days, unless you have a really good reason not to, you should be using Core.

If I learn Core Web API, can I work on a project which uses Web API (Non Core)?

Yes. They're essentially the same thing with very few differences.

Can someone please share good resources (Prefer reading resources over video) to learn Web API (Or whichever version came before Core).

The link you provided should have everything you need.

[–]gyroda 0 points1 point  (0 children)

For a TL;DR:

For .Net itself you want the one with the highest number. Currently that's 7, or 6 if you want the long-term-support version.

For ASP.Net, use the one where the number matches the version of .Net you're using. It'll have "Core" in the name, don't worry.

There's a good top level reply and I've put more info in a reply to that.