1

I can find similar questions, but those answer is not clear or no answer (all answered now) that make me confuse .

Similar questions 1

Similar questions 2

Now Visual Studio has 3 Web Project template :

ASP.NET Web Application (.NET Framework)   <-- old
ASP.NET Core Web Application (.NET Core) <-- new
ASP.NET Core Web Application (.NET Framework)  <-- new

I know the different between .NET Core and .NET Framework.

.Net Core - can cross platform(Windows, OS X, Linux)

.NET Framework - Windows Only

Then, the problem:

If we can use .Net Core in cross platform include Windows, Why there still need ASP.NET Core Web Application(.NET Framework)(new) ?

If only work on Windows , Why don't just use ASP.NET Web Application (.NET Framework)(old)? which much mature and more support.

What is the purpose/usage of ASP.NET Core Web Application (.NET Framework)(new)??

1
  • Good question. Curious to know the answer :) Commented Jul 5, 2016 at 4:21

1 Answer 1

3

.NET Core does not have all the APIs available in .NET Framework. As a result when running on Windows you may want to target full .NET Framework instead of .NET Core in your Asp.NET Core application.

Asp.NET 4.x is still supported and it's perfectly fine to create new applications using Asp.NET 4.x. However, the vast majority of innovation goes to Asp.NET Core. Asp.NET Core is also open source so you can actually see the code you are running, debug the code you are running and even contribute back your fixes or new features. Finally, Asp.NET Core is also much more lightweight (everything is a NuGet package and you only include what you need, not coupled to IIS - runs out-of-proces when using IIS) and much faster than ASP.NET.

Sign up to request clarification or add additional context in comments.

5 Comments

Is that means ASP.NET Core Web Application (.NET Framework) have all the APIs available same as ASP.NET Web Application (.NET Framework)? but ASP.NET Core Web Application (.NET Core) does not have all the APIs available??
This question is a bit ambiguous. On one hand all the APIs from .NET Framework will be available. On the other hand it does not mean you can use all of them - to be more specific - if you try to use many Asp.NET APIs (e.g. HttpContext) in your Asp.NET Core app it won't work - Asp.NET Core has its own counterparts that are wired differently. If you, however, try to use non-Web specific full .NET APIs (e.g. System.Drawing) you can do that in your Asp.NET Core app targeting full .NET.
Thanks Pawel. much clear now. but I am still confuse with the Web project template not ASP.NET Core and ASP.NET. ASP.NET Core have (.NET Framework ), but ASP.NET Core does not have all the APIs available in .NET Framework. The original ASP.NET should be much mature and more APIs can be used as you mention. then, Why there need ASP.NET Core Web Application (.NET Framework)? Is it because Core is the future/trend, open source ,debug easier ,faster??
Yes. An additional problem with Asp.NET being mature is that it is virtually impossible to introduce new bigger things, fix issues or make it leaner without (a risk of) breaking compatibility. Some people want the benefits of Asp.NET Core but require APIs that are not there or have a dependency that is not ported to .NET Core. The bridge (i.e. Asp.NET Core targeting full framework) makes it possible to run Asp.NET Core despite these requirements/dependencies.
Thanks a lot Pawel

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.