Overview
La librería CodeDesignPlus.Net.Core proporciona un marco robusto y coherente de interfaces y clases base, junto con métodos de extensión, que están diseñados para estandarizar y simplificar las funcionalidades esenciales en una variedad de servicios y microservicios. A través de estas abstracciones, la librería permite a los desarrolladores implementar de manera consistente patrones de diseño fundamentales como agregados, eventos de dominio, entidades y Data Transfer Objects (DTOs).
Propósito y alcance
Section titled “Propósito y alcance”El objetivo principal de CodeDesignPlus.Net.Core
es ofrecer una base sólida y reutilizable para el desarrollo de microservicios y sistemas distribuidos en .NET. La librería busca promover el desacoplamiento, la mantenibilidad y la escalabilidad de las aplicaciones mediante la implementación consistente de patrones de diseño y abstracciones clave.
Principales características
Section titled “Principales características”- Interfaces y clases base para patrones de diseño comunes (Agregados, Entidades, DTOs, Eventos de Dominio).
- Métodos de extensión que facilitan la configuración e integración en aplicaciones .NET.
- Opciones de configuración para personalizar el comportamiento de la librería.
- Abstracciones para gestionar eventos de dominio de manera eficiente.
- Componentes básicos para la implementación de sistemas distribuidos.
Casos de uso típicos
Section titled “Casos de uso típicos”- Desarrollo de servicios y microservicios con patrones de diseño bien definidos.
- Implementación de sistemas escalables y mantenibles a largo plazo.
- Uso de agregados y DTOs para gestionar datos en arquitecturas complejas.
- Manejo de eventos de dominio para coordinar cambios de estado entre componentes.
Componentes Principales
Section titled “Componentes Principales”- Servicios: Gestiona la resolución y la propagación de eventos de dominio a través de la interfaz
IDomainEventResolver
. - Opciones: Permite configurar el comportamiento de la librería mediante las clases
CoreOptions
yContactOptions
. - Métodos de Extensión: Simplifica el registro de servicios y la configuración en el contenedor de dependencias.
- Abstracciones: Proporciona interfaces y clases base para patrones como
AggregateRoot
,Entity
,Dto
yDomainEvent
.
Directorysrc
DirectoryCodeDesignPlus.Net.Core
DirectoryExceptions
- CoreException.cs
DirectoryExtensions
- ServiceCollectionExtensions.cs
DirectoryServices
- DomainEventResolverService.cs
DirectoryCodeDesignPlus.Net.Core.Abstractions
- AggregateRoot.cs
- AggregateRootBase.cs
- DomainEvent.cs
- IAggregateRoot.cs
- IDomainEvent.cs
- IDomainEventResolver.cs
- IDto.cs
- IEntity.cs
- IErrorCodes.cs
- IStartup.cs
DirectoryAttributes
- EventKeyAttribute.cs
DirectoryModels
DirectoryCriteria
- Criteria.cs
- OrderTypes.cs
DirectoryPager
- Pager.cs
- Parameters.cs
DirectoryOptions
- ContactOptions.cs
- CoreOptions.cs
Primeros Pasos
Section titled “Primeros Pasos”En esta sección, aprenderás a instalar y configurar la librería CodeDesignPlus.Net.Core
en tu proyecto de .NET. Además, explorarás los servicios, métodos de extensión y abstracciones que proporciona la librería para implementar patrones de diseño comunes.
Requisitos previos
Section titled “Requisitos previos”- .NET 8 o superior.
- Conocimientos básicos de patrones de diseño (DDD, CQRS).
- Familiaridad con la inyección de dependencias en .NET.
- Comprensión de conceptos como agregados, entidades y eventos de dominio.
Instalación
Section titled “Instalación”Para instalar la librería CodeDesignPlus.Net.Core
, puedes utilizar el administrador de paquetes NuGet o la CLI de .NET. A continuación, se muestra un ejemplo de cómo instalar la librería utilizando la CLI de .NET:
dotnet add package CodeDesignPlus.Net.Core
Install-Package CodeDesignPlus.Net.Core
<PackageReference Include="CodeDesignPlus.Net.Core" Version="1.0.0" />
Ejemplo rápido
Section titled “Ejemplo rápido”// Ejemplo de uso de la librería en una aplicación .NETusing CodeDesignPlus.Net.Core.Abstractions;using CodeDesignPlus.Net.Core.Services;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Configuration;
public class Startup{ public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration) { Configuration = configuration; }
public void ConfigureServices(IServiceCollection services) { // Configuración de las opciones services.AddCore(Configuration);
// Ejemplo de uso de un servicio services.AddTransient<IDomainEventResolver, DomainEventResolverService>();
// ... otros servicios }
// ...}
Métodos de extensión
Section titled “Métodos de extensión”La librería CodeDesignPlus.Net.Core
proporciona métodos de extensión para facilitar la configuración e integración de los servicios en una aplicación .NET. Estos métodos simplifican el registro de servicios y permiten configurarlos con la configuración de la aplicación.
ServiceCollectionExtensions
Section titled “ServiceCollectionExtensions”La clase ServiceCollectionExtensions
contiene métodos de extensión para registrar los servicios de la librería en el contenedor de dependencias de .NET. Estos métodos permiten configurar las opciones de la librería y registrar los servicios necesarios para implementar patrones de diseño comunes.
Opciones de configuración
Section titled “Opciones de configuración”Las opciones de configuración permiten personalizar el comportamiento de la librería. Se pueden establecer valores predeterminados para la gestión de eventos de dominio, la conexión de base de datos u otras funcionalidades.
Servicios
Section titled “Servicios”La librería incluye servicios clave como DomainEventResolverService
, que se encarga de la gestión de eventos de dominio. Este servicio es fundamental para la implementación de una arquitectura basada en eventos.
Conclusiones
Section titled “Conclusiones”CodeDesignPlus.Net.Core
ofrece una base sólida y completa para el desarrollo de aplicaciones .NET robustas y escalables, facilitando la implementación de patrones de diseño comunes y brindando las abstracciones necesarias para construir arquitecturas complejas.