DEV Community

Discussion on: Episode 001 - The Reference Project - ASP.NET Core: From 0 to overkill

Collapse
 
sergio profile image
deleteme deleteme

I haven't used ASP.Net since ASP.Net MVC 1 came out I know I can RTFM but maybe you can answer some quick questions for me.

  1. What important things do I lose by using Core vs regular .net?
  2. What's the performance story like in recent ASP.Net MVC releases? Much faster than rails? Par with Go? Slower than Go? About the same as Elixir?
Collapse
 
joaofbantunes profile image
João Antunes • Edited

Sure, no problem.

Regarding question 1:

I don't feel you lose anything, if anything, it's the other way around, but there are somethings to take into account.

As .NET Core is not shipped with Windows like the .NET Framework, they can iterate on it faster. That's more inline with other technologies that release new versions more regularly, but has the same issue as others in that regard - support lasts for less time than the full framework which is supported as long as the Windows version is (i.e. a long long time!). If I'm not mistaken .NET Core is supported for 3 years on LTS versions, and some months for the others.

When .NET Core 1.0 was released, there were a lot of missing APIs that existed in .NET Framework, but with the release of 2.0 (and .NET Standard 2.0, which is like a contract that states what APIs a compatible .NET runtime must provide) they were mostly put up to par, except for Windows specific things - for this scenario they added the Windows Compatibility Pack.

And of course, being cross platform makes it better than ever, as if you prefer to run it on Linux servers, you can (and use Docker and those things that we couldn't with the .NET Framework).

And as a side note, we can (or at least could when on version 1.0) run ASP.NET Core on .NET Framework. It's probably not the ideal, but could be a good migration path for those who need it, not needing to completely jump the base framework plus web framework). Also a plus if one has dependencies on older libraries.

Regarding question 2:

Performance has improved a lot. Not only are they more focused on it than before, but being open source, people with specific needs just went ahead and improved things that were critical for them.

For real numbers you can check out the TechEmpower benchmarks which compares a lot of web frameworks. In some test scenarios ASP.NET Core is up on the top, in others not so much, but the effort to make it better is clearly there.

In the latest releases they created some new APIs to facilitate development of lower level stuff (like Span and Memory used in networking code) and even added C# features, also for lower level stuff (readonly structs).

Hope this was helpful 👍