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
<PackageReference Include="TechsBCN.Platform.Domain" Version="0.0.36" />
<PackageVersion Include="TechsBCN.Platform.Domain" Version="0.0.36" />
<PackageReference Include="TechsBCN.Platform.Domain" />
paket add TechsBCN.Platform.Domain --version 0.0.36
#r "nuget: TechsBCN.Platform.Domain, 0.0.36"
#:package TechsBCN.Platform.Domain@0.0.36
#addin nuget:?package=TechsBCN.Platform.Domain&version=0.0.36
#tool nuget:?package=TechsBCN.Platform.Domain&version=0.0.36
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
Userdel proyecto puede ser una instancia de la de Platform o una clase propia que extiendaTechsBCN.Platform.Domain.Entities.User. Taskse usa directamente desde Platform — no se duplica en el proyecto.Tokense usan directamente desde Platform — no se duplican en el proyecto.
| Product | Versions 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. |
-
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 |