1

In Visual Studio 2015, I've created a new ASP.NET MVC 5 Web API project. When I looked at the project.json that was created I saw this bit of configuration:

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

Since I needed to use EF6 and following advice in the answer to a question, I've removed the reference to "dnxcore50".

However, the answer to another question mentions an altogether different framework: "aspnet50".

What is the difference between "dnx451" and "aspent50"?

Community
  • 1
  • 1
urig
  • 16,016
  • 26
  • 115
  • 184
  • Do you really want to use MVC5 and EF6 and not MVC6 and EF7 from ASP.NET 5 RC1-update1? dnxcore50 is open source version of DotNet see [here](https://github.com/dotnet/corefx/) which will be intensively developed now and which exist for multiple operation systems. It would be good if your application can be compiled for both frameworks. Isn't so? – Oleg Dec 21 '15 at 13:34
  • @Oleg Tx. The benefit of running my project on non-Windows OSs is smaller, for me, than the cost of using bleeding edge technologies. EF7 (and MVC6) are far from release and have far fewer helpful resources online at this time. As they mature, I will most likely migrate. – urig Dec 21 '15 at 14:44
  • `dnxcore50` is important not only for other operation systems. It's just another implementation of DotNet (many parts are the same of cause) which will be intensively developed now. It contains factored API which can provide better performance and less memory requirements, but it don't have some features like AppDomains (which you probably not use). Look at [the answer](http://stackoverflow.com/a/34331499/315935) where I described some reason about the usage of both frameworks. – Oleg Dec 21 '15 at 14:56

1 Answers1

2

The new ASP.NET 5 is very new and still very changing. Even the naming changed.

There was an announcement that changed the name aspnet50 and aspnetcore50 to dnx451/dnx452/dnxcore50 back in April.

Then at the end of October, dnxcore50 became dotnet5.4 and dnx451 became net451.

So yeah... those should be the final rename and we shouldn't see any new monikers as they are called.

About removing dnxcore50

When you need to do that, it's basically because a library that you are using might not support dnxcore50 yet so compilation fails. dnxcore (or dotnet5.4) will works cross-platform while net451 will only work on Windows.

Maxime Rouiller
  • 13,614
  • 9
  • 57
  • 107