Skip to content
GREENCORE · .NET 10 · ALPHA

Plataforma modular
Contratos que se combinan ​

Una plataforma modular para expresar resultados, causas, mensajes localizados y validaciones sin acoplarlos a una sola forma de uso.

Greencore ayuda a que una operación exprese su estado y conserve el contexto necesario para responder. Platform está formado por módulos pequeños que se pueden usar de manera independiente o combinar: Result<T> expresa éxito o fallo, Error organiza causas y razones, Message mantiene el texto separable del idioma, y la validación convierte reglas en diagnósticos consultables. Los módulos de secuencias y concurrencia coordinan operaciones que duran más de una llamada.

La biblioteca está organizada por capas. Platform no es un bloque indivisible: cada capacidad tiene contratos y módulos propios, con dependencias explícitas, para que una aplicación incorpore solo lo que necesita. Cuando se combinan, un validador puede producir diagnósticos con códigos estables y mensajes localizados; un Result puede transportar un Error con sus razones; y la capa de dominio puede adaptar esos diagnósticos a sus propias invariantes. Tu aplicación decide cómo presentar o registrar el resultado.

Comenzar con un ejemplo →

Conocer la visión arquitectónica →

Reglas y validación de plataforma: guía del código actual →

Casos de uso de validación con ejemplos completos →

Validación del dominio: invariantes, operaciones y persistencia →

Inicio rápido de validación: configurar, ejecutar y mostrar errores →

Empieza por el camino que necesitas ​

Si es tu primer contacto, sigue Instalación y primer resultado. Después puedes continuar por uno de estos recorridos:

Quieres…Comienza por…
Devolver un valor o un falloResultados
Conservar causas y contexto, con texto independiente del idiomaErrores, razones y mensajes y localización
Combinar resultados, diagnósticos y mensajes localizadosIntegración de plataforma
Validar una entrada o un formularioValidación modular de plataforma
Proteger invariantes del dominioValidación del dominio
Trabajar con secuencias o streamsColecciones y Streams
Coordinar operaciones concurrentesConcurrencia

Un resultado, dos caminos ​

csharp
using Greencore.Platform.Errors;
using Greencore.Platform.Results;

Result<int> resultado = Result<int>.Fail(
    Error.Create("No existe el pedido solicitado."));

if (resultado.TryGetValue(out var pedido))
    Console.WriteLine(pedido);
else
    Console.WriteLine(resultado.Error.Text);

El estado se consulta explícitamente. El valor se lee cuando existe y el error conserva sus causas y metadatos para decidir cómo responder.

Qué puedes construir ​

NecesidadCapacidadAprende
Expresar éxito o falloResultados con valor y sin valorResultados
Conservar causas y contextoErrores de proceso, dominio y razones tipadasErrores y razones
Mostrar mensajes por culturaPlantillas, recursos y parámetrosLocalización
Evaluar reglas y presentar incumplimientosDiagnósticos con códigos y mensajesValidación de plataforma
Trabajar con secuenciasEnumerables síncronos y asíncronosColecciones
Publicar datos en memoriaStreams con capacidad y políticas de consumoStreams
Coordinar operacionesExclusión mutua y cierre de operaciones activasConcurrencia

Cómo leer esta documentación ​

Las páginas de Platform explican los módulos y cómo combinarlos. Puedes adoptar resultados, errores, localización o validación por separado y conectarlos cuando el flujo lo requiera. Las páginas de dominio muestran cómo traducir esos contratos a entidades, invariantes y operaciones de negocio. Los ejemplos de aplicación conectan ambas capas; puedes saltarte las secciones que no formen parte de tu caso.

Alcance de esta documentación ​

Describe la versión 0.0.1-alpha.2, publicada en NuGet.org para Errors, Concurrency, Results y Validators. Las versiones alpha previstas van de 0.0.1-alpha.1 a 0.0.1-alpha.99; cada publicación usa un número nuevo. Consulta el estado de los módulos antes de integrar componentes experimentales.

Greencore pertenece a Nelson Ernesto De La Quintana Rivera. El uso personal es limitado y el uso comercial requiere autorización expresa por escrito. Consulta la licencia.

Uso personal limitado. Uso comercial sujeto a autorización escrita.