ITMakers.InfraestructureBase
1.3.5
dotnet add package ITMakers.InfraestructureBase --version 1.3.5
NuGet\Install-Package ITMakers.InfraestructureBase -Version 1.3.5
<PackageReference Include="ITMakers.InfraestructureBase" Version="1.3.5" />
<PackageVersion Include="ITMakers.InfraestructureBase" Version="1.3.5" />
<PackageReference Include="ITMakers.InfraestructureBase" />
paket add ITMakers.InfraestructureBase --version 1.3.5
#r "nuget: ITMakers.InfraestructureBase, 1.3.5"
#:package ITMakers.InfraestructureBase@1.3.5
#addin nuget:?package=ITMakers.InfraestructureBase&version=1.3.5
#tool nuget:?package=ITMakers.InfraestructureBase&version=1.3.5
ITMakers.Infraestructure.Base
ITMakers.Infraestructure.Base is a shared infrastructure library used across IT Makers solutions to centralize common .NET runtime concerns. It targets net9.0 and packages reusable building blocks for startup configuration, persistence conventions, transport adapters, observability, middleware, and shared support types.
This repository contains one solution and one class library project:
- solution:
ITMakers.Infraestructure.Base.sln - package project:
ITMakers.Infraestructure.Base.csproj
Package
Published package:
- NuGet: ITMakers.InfraestructureBase
Install from the .NET CLI:
dotnet add package ITMakers.InfraestructureBase
What the Library Provides
The package currently groups several infrastructure capabilities that consuming services can use selectively:
- dependency injection and startup extensions
- EF Core base entities and entity configurations
- HTTP adapters for internal platform services
- Redis caching helpers
- RabbitMQ event bus support
- OpenTelemetry and health-check extensions
- ASP.NET Core exception middleware
- shared DTOs, constants, helpers, localization resources, and result wrappers
This is a shared infrastructure toolkit, not a full application framework. Some capabilities are generic, while others encode assumptions specific to current IT Makers ecosystems such as Rueda.
Main Integration Surface
The most relevant public entrypoints for consuming services are:
AddInfraestructureServicesUseRedisCacheAddRuedaInfrastructureHealthChecks<TDbContext>AddRuedaOpenTelemetryUseExceptionHandlerUseGuidAsDefaultKey
The package also exposes reusable contracts and shared abstractions such as:
- user/context services:
IUserService,ICurrentUserRuedaService - external adapters:
IUserIdentityService,ILibraryFileService,IOpenAiService - infrastructure services:
ICacheService,IEventBus - persistence primitives:
BaseEntity,BaseEntityCore,BaseEntityConfiguration<TBase>,BaseEntityCoreConfiguration<TBase>
Quick Integration Notes
At a high level, consuming services typically use this package from startup and DI registration code.
services.AddInfraestructureServices();
services.UseRedisCache(configuration);
services.AddRuedaInfrastructureHealthChecks<MyDbContext>(configuration);
services.AddRuedaOpenTelemetry(configuration);
app.UseExceptionHandler();
Important integration notes:
AddInfraestructureServices()does not register every public service exposed by the package.- Some services may still require manual registration in the host application.
- HTTP-based adapters expect named
HttpClientregistrations such as"Identity"and"Library". - OData consumers can use
UseGuidAsDefaultKey()when they wantGuidto act as the default key convention.
Minimal usage in a project
A host application will usually install the NuGet package and then register the needed services from Program.cs.
using ITMakers.Infraestructure.Base;
using ITMakers.Infraestructure.Base.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHttpContextAccessor();
builder.Services.AddInfraestructureServices();
builder.Services.AddRuedaOpenTelemetry(builder.Configuration);
builder.Services.AddRuedaInfrastructureHealthChecks<MyDbContext>(builder.Configuration);
var app = builder.Build();
app.UseExceptionHandler();
app.Run();
Depending on the features you use, you may also need:
- named
HttpClientregistrations such as"Identity"and"Library" - Redis configuration and
UseRedisCache(configuration) - MediatR and handler registrations for
IEventBususage - PostgreSQL-compatible EF Core configuration if you rely on the shared base entity configurations
Consumer Prerequisites
Host applications are expected to provide part of the runtime environment used by this library.
Required platform pieces
IHttpContextAccessorfor user/context-driven services- named
HttpClientregistrations for downstream services where applicable - MediatR and handler registrations if the RabbitMQ event bus is used
- ASP.NET Core hosting abstractions for environment-aware services
Configuration expectations
The package currently depends on configuration conventions for areas such as:
- timezone handling
- OpenTelemetry exporters and service metadata
- Redis connectivity
- RabbitMQ health-check connectivity
- Keycloak health-check URLs
Configuration is not fully normalized across all helpers, so consumers should align with the specific extension or service they are using.
Persistence assumptions
The shared EF Core base configurations assume PostgreSQL conventions, including:
uuid_generate_v4()uuidandtimestamptz- soft delete through the
Conditioncolumn - optimistic concurrency via PostgreSQL
xmininBaseEntityCoreConfiguration
Development and Validation
Preferred local validation:
dotnet build ITMakers.Infraestructure.Base.sln
Current repository facts:
- there is one solution and one class library project
- no local test project is currently present
- restore/build depends on NuGet access
In restricted environments, restore/build may fail if https://api.nuget.org/v3/index.json is not reachable.
Documentation
For deeper technical detail, use:
- ARCHITECTURE.md: architecture reference, subsystem behavior, and compatibility-sensitive assumptions
- AGENTS.md: repo-specific workflow, validation guidance, and agent guardrails
Use this README.md as the repository entrypoint, ARCHITECTURE.md for technical depth, and AGENTS.md for execution policy.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- AspNetCore.HealthChecks.Rabbitmq (>= 9.0.0)
- AspNetCore.HealthChecks.Redis (>= 9.0.0)
- AspNetCore.HealthChecks.Uris (>= 9.0.0)
- AWSSDK.Core (>= 4.0.6)
- FluentValidation (>= 11.12.0)
- MediatR (>= 12.5.0)
- Microsoft.AspNetCore.OData (>= 9.4.1)
- Microsoft.EntityFrameworkCore (>= 9.0.10)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 9.0.10)
- Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore (>= 9.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.3)
- Newtonsoft.Json (>= 13.0.4)
- NodaTime (>= 3.3.2)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 9.0.4)
- Npgsql.OpenTelemetry (>= 9.0.4)
- OpenAI (>= 2.10.0)
- OpenTelemetry (>= 1.15.3)
- OpenTelemetry.Exporter.Console (>= 1.15.3)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.15.3)
- OpenTelemetry.Extensions.Hosting (>= 1.15.3)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.15.2)
- OpenTelemetry.Instrumentation.Http (>= 1.15.1)
- OpenTelemetry.Instrumentation.Runtime (>= 1.15.1)
- Polly (>= 8.6.6)
- RabbitMQ.Client (>= 7.2.1)
- Serilog (>= 4.3.1)
- Serilog.Sinks.AwsCloudWatch (>= 4.4.42)
- Swashbuckle.AspNetCore.SwaggerGen (>= 9.0.6)
- System.Linq.Dynamic.Core (>= 1.7.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.5 | 108 | 5/2/2026 |
| 1.3.4 | 149 | 4/13/2026 |
| 1.3.3 | 302 | 1/31/2026 |
| 1.3.2 | 137 | 1/31/2026 |
| 1.3.1 | 164 | 1/30/2026 |
| 1.3.0 | 136 | 1/30/2026 |
| 1.2.9 | 194 | 1/8/2026 |
| 1.2.8 | 144 | 1/8/2026 |
| 1.2.7 | 149 | 1/8/2026 |
| 1.2.6 | 540 | 12/10/2025 |
| 1.2.5 | 497 | 12/9/2025 |
| 1.2.4 | 251 | 11/27/2025 |
| 1.2.3 | 228 | 11/23/2025 |
| 1.2.2 | 468 | 11/20/2025 |
| 1.2.1 | 354 | 11/12/2025 |
| 1.2.0 | 359 | 11/11/2025 |
| 1.1.54 | 638 | 4/15/2025 |
| 1.1.53 | 276 | 4/10/2025 |
| 1.1.52 | 260 | 4/10/2025 |
| 1.1.51 | 354 | 3/6/2025 |