Apariencia
Plan de consistencia: cambios y aceptación
Índice · Revisión de usabilidad
1. Una política de aceptación
Añadir DomainValidationRule.FromFactory para convertir el resultado de una fábrica en una definición de plataforma. Ejecutar la fábrica una vez, conservar su mensaje de rechazo y usar un código público explícito. No transformar la entrada ni conservar valores exitosos como evidencia.
Criterio: las mismas entradas producen la misma aceptación en fábrica, plan y validador de entidad. Se prueban espacios externos, ausencia, formato inválido y longitud excesiva.
2. Adaptación asíncrona y cancelación
Seleccionar automáticamente el adaptador síncrono o asíncrono en WithRules. Transmitir cancelación dentro de los planes síncronos evaluados por la entrada asíncrona. Conservar el rechazo síncrono de planes asíncronos y la restricción de invariantes locales.
Criterio: cancelar en una hoja evita ejecutar la siguiente; las consultas reciben el token original; una dependencia fallida evita consultas; las invariantes rechazan planes asíncronos.
3. Opciones por ejecución
Añadir sobrecargas de entidad y modelo con RuleEvaluationOptions. Aplicar cortocircuito entre registros de entidad y dentro de planes. Añadir ModelValidator.EvaluateAsync para obtener reportes también en éxito.
Criterio: las opciones predeterminadas acumulan; ShortCircuit evita trabajo posterior; Trace conserva nodos en reportes exitosos. Reglas personalizadas mantienen su implementación interna.
4. Vistas de diagnóstico
Añadir ForField para errores de dominio usando el enum común DiagnosticView. Seguir ramas con rutas e índices, evitar ciclos por identidad y conservar apariciones compartidas en ramas distintas. Mantener GetDomainDiagnostics sin cambiar su contrato.
Criterio: un plan con alternativas ofrece los mismos códigos en Summary, Details y All antes y después de adaptarlo al dominio.
5. Configuración predecible
Permitir agregar varias composiciones al modelo mediante WithRules, igual que en entidad. Cada composición es independiente y la configuración anterior permanece reutilizable. Documentar diferencias de builders, condiciones y configuraciones vacías.
Criterio: varios planes se ejecutan sin sobrescribir los anteriores; una secuencia sigue siendo necesaria para dependencias.
6. Documentación y contratos
Organizar páginas por motivación y flujos: valores, invariantes, operaciones, persistencia y diagnósticos. Verificar ejemplos ejecutables de cliente y reserva, contratos de dominio y plataforma y compilación.
La ubicación de contratos compartidos de errores se conserva. No se cambia la semántica histórica de Required, When, conjuntos predeterminados ni invariantes síncronas. Las diferencias y los cambios nuevos se describen en migración.