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.
Visit: https://mvp24hours.dev/
Project used to develop lean APIs.
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).
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 - Minimal API Lean API for pipeline with simple operations.
N-tier project used to develop APIs where the business needs to apply simple rules.
Simple WebStatus Allows you to monitor the health of applications and tools (SqlServer, PostgreSql, MySql, RabbitMQ, MongoDB, Redis, ...).
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.
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.
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.
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 - Simple Pipeline pattern with simple operations.
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.
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.
CRUD - MongoDb - Complex Allows you to search with pagination, get an item, create, change and delete.
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.
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. ❤️
Users, interested parties, students, enthusiasts, developers, programmers connect on LinkedIn to closely follow our growth!
Be a sponsor by choosing this project to accelerate your products.