ITMakers.InfraestructureBase 1.3.5

dotnet add package ITMakers.InfraestructureBase --version 1.3.5
                    
NuGet\Install-Package ITMakers.InfraestructureBase -Version 1.3.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ITMakers.InfraestructureBase" Version="1.3.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ITMakers.InfraestructureBase" Version="1.3.5" />
                    
Directory.Packages.props
<PackageReference Include="ITMakers.InfraestructureBase" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ITMakers.InfraestructureBase --version 1.3.5
                    
#r "nuget: ITMakers.InfraestructureBase, 1.3.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ITMakers.InfraestructureBase@1.3.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ITMakers.InfraestructureBase&version=1.3.5
                    
Install as a Cake Addin
#tool nuget:?package=ITMakers.InfraestructureBase&version=1.3.5
                    
Install as a Cake Tool

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:

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:

  • AddInfraestructureServices
  • UseRedisCache
  • AddRuedaInfrastructureHealthChecks<TDbContext>
  • AddRuedaOpenTelemetry
  • UseExceptionHandler
  • UseGuidAsDefaultKey

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 HttpClient registrations such as "Identity" and "Library".
  • OData consumers can use UseGuidAsDefaultKey() when they want Guid to 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 HttpClient registrations such as "Identity" and "Library"
  • Redis configuration and UseRedisCache(configuration)
  • MediatR and handler registrations for IEventBus usage
  • 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

  • IHttpContextAccessor for user/context-driven services
  • named HttpClient registrations 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()
  • uuid and timestamptz
  • soft delete through the Condition column
  • optimistic concurrency via PostgreSQL xmin in BaseEntityCoreConfiguration

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed