.Net ( normal) is Windows only, there's mono which is based on .Net itselve and supports Mac. .Net Core is a extensions on the origin of Mono. Making .Net available on every platform. But Microsoft underestimated the effort it would take. So they are going the .Net Core way for better cross platform support (i'm not saying Mono is bad, fyi!)
.Net core is a fork of .Net framework, with support for all platforms ( Windows, Linux and Mac). It tries to support as many things as possible, the hard part is graphics. Which causes problems for WPF and Image processing.
Asp.Net MVC 4 - 5 - ... is based on .Net frameworks.
Asp.Net 5 is a refactoring of asp.net MVC which supports .Net core and .Net. Which causes difficulty for cross platform support ( some dll's are in a different location using the .Net Core). Also, .Net Core doesn't support SignalR and image processing ( as mentioned in https://github.com/imazen/Graphics-vNext )
They are now renaming .Net Core to v. 1.0 because there will be some differences between .Net core and .Net and it's more logical, because .Net and .Net core is not the same. But they are looking into it to minimize the differences.
Just to be sure, SignalR and Image Processing and graphics problem are going to be solved. Just not yet.
Asp.Net Core runs on both .Net framework and .Net core.
.Net Core will be used for cross platform development, while .Net framework will be used for Windows Only development ( probably WPF, because it isn't released as opensource yet)
Nothing is legacy, Windows has always supported older versions of the .Net framework. I can even run .Net 1.0 on Windows Server 2008... That means a lot.
The difficulty for .Net developers is, that .Net core will be using a lot of opensource tools, that they don't have any experience with.
You can stick to your old pattern if you want, but i'd advice to learn the new tools, that other frameworks are using ( grunt, gulp, ...) . You would come in contact with them outside of the .Net framework :-)
The new componentized nature of .NET Core (and the other *Core projects here) is really the big deal here, even without the added benefit that it is Open Source and cross-platform. The benefit for developers to switch to .NET Core (or to support both for the time being) is that you are a lot less reliant on/restricted by the version of Windows your users or servers are running. With .NET Core now things like even the System namespaces are now available as semver-versioned NuGet packages that you can upgrade as a developer, rather than wait for your users to upgrade their Windows version (or install a massive .NET Framework upgrade), or your corporate server to upgrade its Windows Server or .NET Framework. This is especially great for ASP.Net developers as it makes it easier to run servers and easier for your applications to run on whatever servers you have available. It's useful to application developers because .NET Core very much is the .NET supported by the Windows 10 "Universal Windows App" platform, and things like .NET Native are made possible thanks to the componentization efforts of .NET Core.
What I don't understand is that why all these stupid people have become programmers and developers (Obviously they are not any good at what they do) when they don't even understand these simple naming changes. Urrgggggggg.....
When I think of VB, and how being easy and discoverable produced enormous amount of crap in software world, I almost support this idea.
1. VB written in the 90s (VB6 and before), which has mostly do to with VB having been around for so long. To be fair, if you look at code written in the 90s in any mainstream language through today's best practice lens, everything will look shit. Today's VB is a superb language that can be very elegant, and actually quite modern too, relying less on special characters and more on an expressive, english syntax.
2. VB written by non programmers (essentially VBA). You can argue that non programmers shouldn't be allowed to code, but from a business user point of view, there is much to say about the lack of productivity of IT departments in large organisations. Enabling users to automate many of their tasks has a massive productivity impact. A user can automate the production of a report in a couple of hours, instead of having to discuss specs, prioritisations, budgets, tests, etc for months with the IT dept. I think it's absurd to hold the quality of the code produced against the language.
https://twelveyearslate.wordpress.com/2014/06/05/professiona...
Apart from the initial fights with dependencies, which I've now all fixed, it's been very enjoyable - there have been a few glitches but they've been kind of fun to work around.
Here, the .NET core libraries/frameworks are a different direction. They're not core, but they're not to be seen as 'optional'. They're to be seen as 'alternative' to .NET full. Not a great alternative today, as many features are lacking and they're really rushing things towards a pretty stupidly set deadline (when you're adding features to a RC2, you're not doing it right), but perhaps someday.