Apariencia
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.
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 fallo | Resultados |
| Conservar causas y contexto, con texto independiente del idioma | Errores, razones y mensajes y localización |
| Combinar resultados, diagnósticos y mensajes localizados | Integración de plataforma |
| Validar una entrada o un formulario | Validación modular de plataforma |
| Proteger invariantes del dominio | Validación del dominio |
| Trabajar con secuencias o streams | Colecciones y Streams |
| Coordinar operaciones concurrentes | Concurrencia |
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
| Necesidad | Capacidad | Aprende |
|---|---|---|
| Expresar éxito o fallo | Resultados con valor y sin valor | Resultados |
| Conservar causas y contexto | Errores de proceso, dominio y razones tipadas | Errores y razones |
| Mostrar mensajes por cultura | Plantillas, recursos y parámetros | Localización |
| Evaluar reglas y presentar incumplimientos | Diagnósticos con códigos y mensajes | Validación de plataforma |
| Trabajar con secuencias | Enumerables síncronos y asíncronos | Colecciones |
| Publicar datos en memoria | Streams con capacidad y políticas de consumo | Streams |
| Coordinar operaciones | Exclusión mutua y cierre de operaciones activas | Concurrencia |
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.