This question makes little sense now because the . NET Framework died, only left . NET Core, which happens to be called .NET. Mainly the completion of this answer no longer matters more.
There’s a page indicating what is the new proposal of . NET Platform Standard. This is perhaps the most important thing. If you want something portable among the various implementations that conform to this, you have to stick to this. Anything you use that is not on this list, there are no guarantees that will work in other implementations.
Comparing with ASP.NET 1.0 is not prudent.
The two main advantages of the . NET Core is running on several platforms (not only operating systems, really is a more open technology) and does not need anything previously installed, including allowing a modular installation of the dependencies (for me the main one). From this arise several other small advantages. In addition to having new functionalities, more modern, and better thought out.
It would be difficult to make a complete list of what does not exist in . NET Core because this list is very extensive if it is in every detail and it is shortening every day.
Nor will I mention the differences to develop it. This is a way.
Almost everything they took was for a good reason.
Far from saying that the . NET Core will have everything the . NET Framework (the old one we always use). Explicitly this will not occur. But much that does not exist today should have at some point.
What you can say is that the lot connected to Windows will not have. As Core was made to be portable, these things were left out. But some didn’t even make sense in Windows anymore.
So you don’t have Windows Forms and WPF. But you do have UWP, which obviously can’t be used outside of Windows. This is no longer true, although these 3 still only work on Windows. And there are third party options for GUI.
System.Drawing
is not yet available. This is no longer true.
Many things that only make sense in Windows, like Enterprise.Services. Anything that relies on P/Invoke is out, but some may have replacements, probably more modern. COM also has limitations.
Traditional ASP.NET (Webforms) is not supported. But even old MVC cannot work because it depends on the traditional (this has changed a bit). I don’t know if there’s any effort to change that, but I doubt it. ASP.NET Core is similar to ASP.NET MVC, but not identical and compatible. O Blazor has similar model but is better
The integration with HTTP servers is quite different and still has limitations. Although now have a basis to be better.
Just like the old Entity Framework doesn’t work either. The new one is better, but it takes a while to be complete (without the legacy of the old one). This is no longer true in Windows.
WCF has a lot of limitations. It has better solutions than him now.
Reflection has some limitation too, but nothing important.
Binary serialization is not available by default, but has better options.
There is no field of application (Appdomain). Thank goodness.
The security of the application is well simplified (this does not mean that it is unsafe). There is no (CAS). It’s no longer as important as it was.
It doesn’t make sense to have click Once. It no longer makes sense to use this, and has MSIX or much better third-party solutions and has the executable standalone that ends up being more interesting.
They took a lot of what was considered obsolete. There’s a official list of obsolescence.
There are several other things, this list is not complete, but now it is a much smaller list and nothing important.
Anyway, think of . NET Core as a new technology. There are cases to continue using the framework traditional. It is generally not worth converting old applications to . NET Core unless you have a good reason. But in most cases it is interesting to use . NET Core. It is game Changing for the . NET.
Answering which is best for each project your is not our function. It fits more specific questions about resources you will need.
A lot of people think it’s worth investing in it, in fact I’ve never seen a new technology get adoption as fast as this, but you should form your own opinion. Surely there are people who think otherwise.
Just starting to do to know. Remember that everything is different. You still don’t know how to use it. You will have initial difficulties. He has a different philosophy and is a little more crude. I think you’re thinking right. Take it one step at a time.
The . NET Framework will continue to be supported and will have some evolution, but the focus is on . NET Core.
Fantastico @bigown, I thought next to what you said, now it’s concrete and will be what I will follow. Facing as a new technology (concept/philosophy) that it is, risking and learning to develop about the differences and novelties. Thank you.
– G. M4rc14L
@Martial, I am currently researching and implementing some new projects for this technology and the main difficulty I find is not even the platform itself, but yes Libraries third party as database drivers (in my case
Firebird .Net Provider
), and in my case the ORM itself (NHibernate
). I use Asp.Net Core for the advantages and facilities in using npm and Bower, the new design model (more organized in my opinion) and simplicity in the Dependency Injection mechanism, among other minor reasons. [continues...]– Fernando Leal
[continuing...] For this I ended up changing the target/framework from my project to
.NET Framework
instead of.NET Core
, and despite using the whole new approach of projectsCore
, can use the Libraries with the cost of not having the advantage of multiplatform of the.Net Core
. My expectation is in the future to have the necessary resources to.Net Core
, return the target/framework from my application to.Net Core
again!– Fernando Leal
@Fernando of course you will not have the port of all libraries overnight, if you use any technology that is not yet available to him you have to wait to do something serious. But you can learn what has different. There are several better things. Some of the disadvantages are transient. Others are purposeful.
– Maniero
I understand your position/attitude @Fernando and agree, but in my situation I can opt for any technology stack, mainly for being a personal project and facing the . Net Core as a new technology as the bigown spoke. And conceptually speaking, this being what it was looking for, a new technology, a . Net open and in a way that pleases me more. I will go learning and adapting as you run.
– G. M4rc14L
Correct @Marcial, my comment really was intended to warn about this kind of problem with library third party, but if you can use these dependencies as available, the
.Net Core
It will only be added to it, because all the technology has been reworked and improved, much of what was legacy of past versions and that ended up limiting the advancement of the technology has been rethought. In my view this is being a major breakthrough in technology . Net, "is a step back to take 2 steps forward".– Fernando Leal