Skip to content

Samples for quick product building using: Relational database (SQL Server, PostgreSql, MySql); NoSql database (MongoDb, Redis); Message Broker (RabbitMQ); Pipeline (Pipe and Filters pattern); Documentation (Swagger); Mapping (AutoMapper); Logging (NLog); Validation and specifications, unit of work, repository, among others.

License

Notifications You must be signed in to change notification settings

kallebelins/mvp24hours-dotnet-samples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Samples Mvp24Hours - NET8 (v8.2.101)

Samples for quick product building using: Relational database (SQL Server, PostgreSql, MySql); NoSql database (MongoDb); Key-value database (Redis); Message Broker (RabbitMQ); Pipeline (Pipe and Filters pattern); Documentation (Swagger); Mapping (AutoMapper); Logging (NLog); Patterns for data validation (FluentValidation and Data Annotations), notification (Notification pattern) and specifications (Specification pattern), unit of work, repository, among others. In each project there is a file with the description of the resources and implemented references. Read the "Readme.md" file in the "...WebAPI" folder.

Study, share and contribute:

Visit: https://mvp24hours.dev/

Projects - NLayers

Minimal API

Project used to develop lean APIs.

Relational database (MySql, PostgreSql, SqlServer)

CRUD - EF - Minimal API Lean API that allows you to search with pagination, get an item, create, change and delete in a relational database (MySql, PostgreSql, SqlServer).

NoSql Database - MongoDb

CRUD - MongoDb - Minimal API Lean API that allows you to search with pagination, get an item, create, change and delete in a MongoDb database.

Pipeline

Pipeline - Minimal API Lean API for pipeline with simple operations.

Simple

N-tier project used to develop APIs where the business needs to apply simple rules.

Health Checks

Simple WebStatus Allows you to monitor the health of applications and tools (SqlServer, PostgreSql, MySql, RabbitMQ, MongoDB, Redis, ...).

Relational Database (MySql, PostgreSql, SqlServer)

CRUD - EF - Simple Allows you to search with pagination, get an item, create, change and delete. Operations are performed by transiting a database entity. If you intend to develop a product that will be consumed publicly (outside of a private network), use CRUD - EF - Complex.

CRUD - EF - Dapper - Simple Allows you to search with pagination and get an item (with navigation) using Dapper. The operations to create, change and delete are performed with EF and traffic a database entity. If you intend to develop a product that will be consumed publicly (outside of a private network), use CRUD - EF - Dapper - Complex.

CRUD - EF - Entity Log - Simple Allows you to search with pagination, get an item, create, change and delete. Operations are performed by transiting a database entity. The architecture coordinates created/by, modified/by, and removed/by log fields. It is worth mentioning that all queries will contain the removed filter, taking into account the SoftDelete reference. If you intend to develop a product that will be consumed publicly (outside of a private network), use CRUD - EF - Entity Log - Complex.

Database NoSql - MongoDb

CRUD - MongoDb - Simple Allows you to search with pagination, get an item, create, change and delete. Operations are performed by transiting a database entity. It is worth mentioning that we must create strategies for recording data since there is no relationship. If you intend to develop a product that will be consumed publicly (outside of a private network), use CRUD - MongoDb - Complex.

Database NoSql - Redis

CRUD - Redis - Simple Allows you to get an item, create and delete. Operations are performed by referencing a key to that key-value database. We often use this solution for cache management, as Redis is an in-memory database with incredible performance.

Message Broker - RabbitMQ

CRUD - EF - RabbitMQ - Simple Allows you to search with pagination, get an item, create, change and delete. Operations are performed asynchronously from a queue managed by RabbitMQ. We use HostedService to consume RabbitMQ messages from the web project, that is, the messages will be processed while the API is running.

Pipeline

Pipeline - Simple Pipeline pattern with simple operations.

Complex

N-tier project used to develop APIs where the business needs to apply complex rules, higher level of security, less data traffic, validation of sensitive data and separation of responsibilities or consumption by other technologies and projects.

Relational Database (MySql, PostgreSql, SqlServer)

CRUD - EF - Complex Allows you to search with pagination, get an item, create, change and delete.

CRUD - EF - Dapper - Complex Allows you to search with pagination and get an item (with navigation) using Dapper. The operations to create, change and delete are performed with EF.

CRUD - EF - Only Entity - Complex Allows you to search with pagination, get an item, create, change and delete. We do not create object for traffic and mapping. We use the database entity itself.

CRUD - EF - Entity Log - Complex Allows you to search with pagination, get an item, create, change and delete.

Database NoSql - MongoDb

CRUD - MongoDb - Complex Allows you to search with pagination, get an item, create, change and delete.

Pipeline

Pipeline - Builder - Complex Pipeline pattern with operations registered through constructors. Excellent strategy for use cases.

Pipeline - Complex Pipeline pattern with simple layered operations.

Pipeline - Ports and Adapters - Complex Pipeline pattern with operations recorded via constructors. We associate this strategy with the very loosely coupled Ports and Adapters architecture model.

Pipeline - EF (MySql, PostgreSql, SqlServer) - Complex We generally use it for service integration. The pipeline concept is excellent for tracking all the steps (operations/filters) performed in an integration (adapter/mediator/register/filter). In this solution we obtain the data in an integration and register it in a database with EF.

Donations

Please consider donating if you think this library is useful to you or that my work is valuable. Glad if you can help me buy a cup of coffee. ❤️

Community

Users, interested parties, students, enthusiasts, developers, programmers connect on LinkedIn to closely follow our growth!

Sponsors

Be a sponsor by choosing this project to accelerate your products.

About

Samples for quick product building using: Relational database (SQL Server, PostgreSql, MySql); NoSql database (MongoDb, Redis); Message Broker (RabbitMQ); Pipeline (Pipe and Filters pattern); Documentation (Swagger); Mapping (AutoMapper); Logging (NLog); Validation and specifications, unit of work, repository, among others.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages