Introduction
RA.Utilities provides a set of reusable, opinionated building blocks primarily aimed at solving common problems in web API development. The high-level purpose is to reduce boilerplate code, enforce consistency, promote a clean architecture (specifically Vertical Slice Architecture using the CQRS pattern), and improve the overall developer experience. The repository is structured into several solution folders, each mapping to a specific architectural layer:
- Api/: Contains projects related to the web layer, including API setup, custom middlewares, authentication/authorization helpers, and OpenAPI (Swagger) configuration.
- Application/: Holds the RA.Utilities.Feature project, which is the core of the application logic and implements the CQRS pattern.
- Core/: Contains foundational projects with minimal dependencies, such as shared exceptions and constants.
- Data/: Represents the data access layer, with projects for abstractions and a specific implementation using Entity Framework.
- Infrastructure/: Houses projects that interact with external systems, like standardizing calls to other APIs.
- Logging/: Isolates logging as a cross-cutting concern into its own projects.
- documentation/: Includes documentation as a first-class citizen within the solution.
The solution is broken down into several NuGet packages, each addressing a specific concern like API & Web, Application Logic, Core Building Blocks, Data Access, Integrations, and Logging. In essence, RA.Utilities acts as a "batteries-included" framework to help developers build modern .NET APIs by providing a foundation for a clean architecture, allowing them to focus more on business logic rather than infrastructure setup. The repository is public, licensed under the MIT license, and uses C#.
π Purpose & Benefits of RA.Utilities NuGet Packagesβ
RA.Utilities is a suite of NuGet packages designed to accelerate and standardize.NET web API development. Each package encapsulates best practices and reusable components that help developers build robust, maintainable, and scalable applications with minimal boilerplate.
π Key Benefits:β
- π§± Modular Architecture: Plug-and-play components for logging, authentication, error handling, and more.
- π¦ NuGet-Ready: Easily integrate into your projects via NuGet for fast setup and consistent behavior.
- π§ Clean Design Patterns: Built around CQRS and vertical slice architecture to promote separation of concerns and testability.
- π Developer Productivity: Reduce repetitive code and focus on business logic.
- π Built-in Documentation: Seamless OpenAPI integration for clear and interactive API docs.
Whether you're starting a new project or refactoring an existing one, RA.Utilities helps you build better APIsβfaster.
π Solution Structureβ
π¦ Packagesβ
This table provides a quick overview of all the packages available in the RA.Utilities ecosystem, along with their current versions and download statistics from NuGet.
ποΈ Introduction
Packages
ποΈ Core
3 items
ποΈ Api
4 items
ποΈ Authorization / Authentication
2 items
ποΈ Application
1 item
ποΈ Data
3 items
ποΈ RA.Utilities.Integrations
6 items
ποΈ Logging
2 items