.Net Core Clean Architecture definitions and illustration
Clear architecure get a high level idea about this architecture where it put the business or domain in the center of the application. While in traditional application (monolithic application) the data access layer has the main focus, In the clean architecure, the business is the king.
What is the software architecture
In one of my mega projects, some day we have been asked to change the layer of data access of the current application, unfortunately, the application was totally monolithic application and the application was built without layers at all, REFACTOR is the decision, to do a refactor, we start to think in N-Layers architecture, so what is the Layer?

Monolithic Application
Sample for a monolithic application: all in one applicationLayer represents a logical separation or part of an application. Why we decided to separate the application? The layers mean break the complexity, a separation of concern principle. Instead of everything in one place (layer), things are separated, i.e. handling the application business (business) layer is separated from storage data (data access later). Layered architecture also gives you some benefits as organizing the code, reuse different parts of your code, don’t repeat yourself (DRY) principle. Layered architecture gives you the ability to restrict some roles on your project for ex, which layer should communicate with which layer.


Traditional layered architectureClean architecture, by using clean architecture while historically called Hexagonal Architecture then sometimes named Ports-and-Adapters, this architecture apply the principle of DDD (Domain-Driven design), from the name you can get a high level idea about this architecture where it put the business or domain in the center of the application, i.e. everything is built around the business. From my point of view, it is very good point in this architecture as it focuses on the business no other things. In the historical architectures, business logical depend on data access and this can lead to many issues. From the story I mentioned above, if the old application that I need to refactor built with point into consideration business in the center point, we could easy change the data access layer to any other database store but because this was not the case, we restructured the applications until we reached to the clean architecture.
Clearn Architecure

Clean architectureTo build a simple clean architecture, download the architecture template from: https://marketplace.visualstudio.com/items?itemName=GregTrevellick.CleanArchitecture Install the template then use this template to build your clean architecture.

Sample for a monolithic application: all in one applicationIn ItLank.CleanArchitecture.Infrastructure project, go to file StartupSetup.cs, change the options.UseSqlite(connectionString)); to options.UseSqlServer(connectionString)); Then in ItLank.CleanArchitecture.Web in Startup.cs change the string connectionString = Configuration.GetConnectionString(“SqliteConnection”); to string connectionString = Configuration.GetConnectionString(“DefaultConnection”); and in appsettings.json change the connection to change DefaultConnection and use your connection string. Create a database and pass its name to your connection string. Set the web application as startup and run, you will find ToDoItems table created.
You can find the project source code at github
We can help you to build such as software tools/snipts, you contact us from here