What can I do in . NET Framework and . NET Core not? And vice versa

Asked

Viewed 1,493 times

17

I grew my eye on . NET Core (ASP.NET Core), I started with C#, but I left it by going sideways "open-source", now with this opportunity I decided to "return".

I intend to use . NET Core (ASP.NET Core) in a personal project and in the future establish it as a development option.

In research I saw that it is often said that there are "restrictions" between the two sides, and this is crucial to decide whether it is the ideal for a project:

  • What can I do with . NET Framework (ASP.NET 1.0) than in . NET Core (ASP.NET Core) does not? Vice versa.

  • There’s a big gap between the two?

  • It is worth investing in it at the moment?

2 answers

17


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.

  • @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...]

  • [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 projects Core, 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!

  • 1

    @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.

  • 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.

  • 1

    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".

Show 1 more comment

7

To have the answer and understanding of this question, first you need to look at the image below that exemplifies well the current status of the platform . NET:

.NET Framework 4.6 e .NET Core 1.0

There are two Frameworks. Being the .NET Framework 4.6 the most mature, by having years of development and production. This, nicknamed by "Full Framework", is only available for Windows applications. That is, applications that run on Windows Server, depend on IIS and the components that are installed there as well and make dependency on this universe. For Full Framework we can only work with ASP.NET 4.6. And so, use the full resources of ASP.NET 4.6.

The second framework, called .NET Core, which is currently in version 1.1, is available for Windows, Linux and OSX environments. That is, it is what we call cross-Platform or cross-platform. For now the applications developed with the .NET Core compared to Full Framework are more limited in resource. However, already in version 1.1 of .NET Core we have a certain stability and several interesting functionalities that brings us independence of server, environment and development platform.

Important: Applications . NET Core can run in environments with .NET Core or with the .NET Framework 4.6 installed. However, the opposite is not possible.

Another detail: You can develop an application in ASP.NET Core 1.1 and use. NET Standard libraries. However, by doing this, your application ceases to be cross-Platform.

What can I do with the . Net Framework (ASP.NET 1.0) that in the . Net Core (ASP.NET Core) no? Vice versa.

There’s a big gap between the two?

The . NET Core has been rewritten. For those who were accustomed to Visual Studio doing everything, they may not enjoy all of . NET Core’s superpressure. I think that independence in the manipulation of the development environment is one of the biggest differences. Programmatically, there are no major difficulties.

It is worth investing in it at the moment?

Yes. Quite a lot!

  • 1

    Thanks for the answer. Give the creation of this question, I’ve been researching and investing in . Net Core and Asp.net Core, I’ve even watched some videos of you. I was looking for something multiplatform, I had already studied C# with the full framework, then ended up falling well. I’ve been using Ubuntu with visual code, I may be missing a lot in not using visual studio, but it’s mainly to have something more "simple" and direct as Core is.

  • 1

    I hadn’t seen your answer here, legal Kono.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.