TechsBCN.Platform.Domain 0.0.36

dotnet add package TechsBCN.Platform.Domain --version 0.0.36
                    
NuGet\Install-Package TechsBCN.Platform.Domain -Version 0.0.36
                    
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="TechsBCN.Platform.Domain" Version="0.0.36" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TechsBCN.Platform.Domain" Version="0.0.36" />
                    
Directory.Packages.props
<PackageReference Include="TechsBCN.Platform.Domain" />
                    
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 TechsBCN.Platform.Domain --version 0.0.36
                    
#r "nuget: TechsBCN.Platform.Domain, 0.0.36"
                    
#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 TechsBCN.Platform.Domain@0.0.36
                    
#: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=TechsBCN.Platform.Domain&version=0.0.36
                    
Install as a Cake Addin
#tool nuget:?package=TechsBCN.Platform.Domain&version=0.0.36
                    
Install as a Cake Tool

TechsBCN.Platform.Domain

TechsBCN.Platform.Domain contiene la base para las entidades de dominio. El principal objetivo es que todas las entidades puedan extender del mismo objeto (BaseEntity) y, por tanto hacer métodos genéricos con type arguments que se refieran a las entidades.

Estructura

Domain/
└── Entities/
    ├── BaseEntity.cs
    ├── User.cs
    ├── Token.cs
    └── Task.cs

Entidades (Entities/)

Platform define dos tipos de entidades de dominio:

  • Por un lado un tipo base cuya función es que las entidades concretas del proyecto extiendan de ella y así poder hacer uso del resto de métodos genéricos de la librería.
  • El resto de entidades son entidades cómunes que se suele repitir su uso a lo largo de diversos proyectos (cómo puede ser un Usuario para autenticación o una Tarea para encolar trabajos de forma secuencial o paralela). Estas entidades están pensadas para ser instanciadas directamente en el proyecto y solo extender de ellas cuando se requiera implementar nuevos campos explicitamente por alguna consideración de negocio.

BaseEntity

Base de todas las entidades del dominio. Tiene la propiedad Id que utilizará la base de datos como clave primaria, normalmente de forma auto-generada.

public abstract class BaseEntity
{
    public long Id { get; set; }
}

User

Entidad de usuario base. El objetivo de este objeto es proporcionar una entidad para aquellos proyectos que requieran implementar autenticación a través de usuario y contraseña. Se puede instanciar directamente en el proyecto o definir una entidad User propia que extienda de esta clase.

public class User : BaseEntity
{
    public string Name { get; set; } = default!;
    public string Email { get; set; } = default!;
    public string Password { get; set; } = string.Empty;
}

Password se inicializa vacía para poder crear un usuario sin contraseña; ese usuario no puede autenticarse hasta que se le asignen credenciales con UpdateCredentials.

Token

Token de autenticación asociado a un usuario. El objetivo de este objeto es proporcionar esta entidad para aquellos proyectos que requieran implementar autenticación a través de algún tipo de token (véase por ejemplo: Bearer Token o JWT Token).

public class Token<TTokenType> : BaseEntity
{
    public long? UserId { get; set; }
    public virtual User? User { get; set; }
    public string Guid { get; set; } = default!;
    public required TTokenType Type { get; set; }
    public string Content { get; set; } = default!;
    public DateTime CreatedOn { get; set; }
}

Task

Representa el estado de ejecución de una tarea en background. Su función es proporcionar una entidad para aquellos proyectos que requieran encolamientos de tarea, como pueden ser aquellos que hagan uso de RabbitMQ.

public class Task<TTaskType> : BaseEntity where TTaskType : Enum
{
    public Guid Reference { get; set; }
    public required TTaskType Type { get; set; }
    public string? Details { get; set; }
    public DateTime CreatedOn { get; set; }
    public DateTime? StartedOn { get; set; }
    public DateTime? CompletedOn { get; set; }
    public string? Errors { get; set; }
}

Reglas básicas

  • Todas las entidades del proyecto deben extender TechsBCN.Platform.Domain.Entities.BaseEntity.
  • La entidad User del proyecto puede ser una instancia de la de Platform o una clase propia que extienda TechsBCN.Platform.Domain.Entities.User.
  • Task se usa directamente desde Platform — no se duplica en el proyecto.
  • Token se usan directamente desde Platform — no se duplican en el proyecto.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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.
  • net10.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on TechsBCN.Platform.Domain:

Package Downloads
TechsBCN.Platform.Application

Platform base project for Application to be used in TechsBCN standard projects

TechsBCN.Platform.Infrastructure

Platform base project for Infrastructure to be used in TechsBCN standard projects

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.36 108 9/11/2026
0.0.35 203 8/25/2026
0.0.34 113 8/25/2026
0.0.33 125 8/25/2026
0.0.32 187 7/31/2026
0.0.31 522 7/10/2026
0.0.30 335 6/30/2026
0.0.29 156 6/18/2026
0.0.27 146 6/12/2026
0.0.26 148 6/12/2026
0.0.25 147 6/4/2026
0.0.24 141 6/1/2026
0.0.23 132 6/1/2026
0.0.22 225 5/27/2026