Production Ready EF Core CRUD in Layer Architecture

Md. Saddam Hossain - Mar 7 - - Dev Community

饾悅饾惃饾惂饾悷饾悽饾悵饾悶饾惂饾惌饾惀饾惒 饾悂饾惍饾悽饾惀饾悵 饾悘饾惈饾惃饾悵饾惍饾悳饾惌饾悽饾惃饾惂-饾悜饾悶饾悮饾悵饾惒 饾悅饾悜饾悢饾悆 饾惏饾悽饾惌饾悺 饾悇饾悈 饾悅饾惃饾惈饾悶 饾悽饾惂 饾悕-饾悑饾悮饾惒饾悶饾惈 饾悁饾惈饾悳饾悺饾悽饾惌饾悶饾悳饾惌饾惍饾惈饾悶

Image description

I believe the project is suitable for beginners to advanced levels who want to develop an ASP.NET Core Web API project with N-Layer architecture.

Controllers are very thin, resulting in a neat and clean appearance. API versioning with CORS is implemented. Balancing Cross-Cutting Concerns in the project has been achieved. The Global Error Handling middleware has been implemented nicely. Logging Source Generator for High-Performance Logging and Structured Logging in ASP.NET Core With Serilog has been implemented. In the API layer, caching has been introduced. You can use Ardalis Guard Clauses or ErrorOr, but in these projects, I implement custom guard clauses that are fully customizable. Dependency injection is utilized throughout. Health checks are integrated so we can check the health condition of the project. The project also includes an audit trail. Here, we have EF Core code-first migration.

We have robust Architecture tests for the full N-Layer architecture and unit tests. Unit tests cover 100% test coverage, including the controller and service layers. You can learn how to write architecture and unit tests effectively by examining the project. I have written over 80 unit tests, which may seem extensive, but it's because of the approach I take, which makes learning and understanding easy.

With the introduction of MsBuild, we now have the capability to manage all property settings and more within a single file, which can be placed in the root directory of our solution alongside our solution file. This file (Directory.Build.props) will automatically apply to all projects defined in the solution.

Dependency management is a fundamental aspect of NuGet. While managing dependencies for a single project may be straightforward, it becomes increasingly challenging as multi-project solutions grow in size and complexity. In scenarios where common dependencies are shared across numerous projects, leveraging NuGet's centralized package management features allows for streamlined management from a single location. I achieve this through a centralized NuGet package system using Directory.Packages.props.

Here is the link to see more details about the project: https://saddamhossain.net/essentials-collection

. . . . .
Terabox Video Player