These days, as a modern web application, customers having high expectations of rich and intuitive UI design, secure and flexibility as the minimum requirement. These requirements can be achieved by the traditional .NET framework. But, why ASP.NET  Core is recommended for modern web applications?

Here the answer,  because following are the characteristics of .NET Core and ASP.NET Core

Optimized for Cloud 
These days every organization are expecting their applications should host on the cloud because of many features available on hand. As Microsoft, on keeping in mind they designed this ASP.NET Core framework in such a way to optimised more with the cloud. It means when compared to traditional .NET framework ASP.NET Core will take less memory and having high throughput. With this, there is a scope to run multiple ASP.NET Core applications on the same server instead of having additional resources and leads to reduce the cost when we are going with a payment model as you use to pay.

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 achieve by adding and removing middlewares. where as in 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 framework itself implemented as loosely coupled components using dependency injection and by default it .NET Core having in-built dependency injection and also it having the feature to extend it using any other third party DI tools like Unity.

As .NET Core having in-built Dependency Injection, it is very easy to write the test cases at all layer or component level by injecting respective objects using many fake testing frameworks where it will create objects and injects 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 light weight IDEs like Visual Studio Code which gives you more control for development, debug, integrate 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, in built logging component etc..,.


I highly recommend ASP.NET Core and .NET Core for your new applications and also if possible convert all your existing traditional applications to .NET core.

Recently, we got released with .NET Core 2.0 with .NET Standards 2.0 stabled versions. Will provide more information about these on my next article.