These days, as a modern web application, customers will be having high expectations of rich and intuitive UI design, with security and flexibility as the minimum requirements. These requirements can be achieved by the traditional .NET Framework. But, why is ASP.NET Core recommended for modern web applications?
Here is the answer, because the following are the characteristics of ASP.NET Core,
Optimized for Cloud
These days every organization expects their applications to be hosted on the cloud because of the many features available on hand. Microsoft designed this ASP.NET Core Framework in such a way to optimize more with the cloud. It means when compared to traditional .NET Frameworks, ASP.NET Core will take less memory and have high throughput. With this, their is a scope to run multiple ASP.NETCore applications on the same server instead of having additional resources and leads to reduce the cost when we are going with a payment model.
Cross-Platform Support
This is the highlighting feature as applications built on .NET Core Framework can host and run on any platform, like we can deploy and run these applications on Linux, Mac and Windows environment without any changes.
Modular and Scalable
We can decide what needs to be included and what shouldn't in our application. This flexibility/modularity can be achieved by adding and removing middlewares, whereas in the traditional .NET Framework we cannot remove the components or references which we are not using as these are more dependent on each other.
Loosely Coupled
Internally, the framework itself is implemented as loosely coupled components using dependency injection and by default .NET Core has in-built dependency injection and also it has the feature to extend it using any other third party DI tools like Unity.
Testability
As .NET Core has inbuilt Dependency Injection, it is very easy to write the test cases at all layer or component levels by injecting respective objects using many fake testing frameworks where it will create objects and inject to our component class on demand.
Simple Development
As with traditional .NET Framework, we don't have any other options other than Visual Studio IDE for development. But using .NET Core, we have many lightweight IDEs like Visual Studio Code which gives you more control for development, debugging, and integration with source controls and deployment.
Support Command Line (CLI)
We can create, develop and deploy any .NET Core applications using command line without having any IDE.
Apart from these, we have many other features like creating an in-memory testing server such that we can test any server interactions, inbuilt logging component etc.
I highly recommend ASP.NET Core and .NET Core for your new applications and also if possible you should convert all your existing traditional applications to .NET core.