Skip to content

Contratos avanzados y alcance público ​

Índice

Los contratos públicos se agrupan por el problema que resuelven. Esta clasificación evita tratar cada tipo como requisito de una validación cotidiana.

NivelTiposUso
CotidianoValidation, ValidationBuilder, ValidationPlan, ValidationReport, atajos comunesConfigurar y ejecutar validaciones de aplicación
Reglas compartidasValidationRule, IValidationDefinition, ValidationDefinition, ConditionResult<T>Publicar catálogos, códigos estables y evidencia
Condiciones técnicasIRule<T>, IAsyncRule<T>, IContextRule<T, C>Implementar reglas reutilizables y adaptarlas a definiciones
FormulariosFormValidationSession, FormValidationOperationResult, OptionsCoordinar edición, publicación y listas dependientes
MotorRuleDefinition, RuleNode, RuleTree, RuleEvaluator, RuleDiagnosticsConstruir o inspeccionar árboles manualmente
CompatibilidadILocalValidationDefinition, LocalValidationDefinition, RuleTreeBuilder, Require, ThenIntegrar configuraciones existentes

ILocalValidationDefinition<T> y LocalValidationDefinition<T> permiten adaptar reglas locales a un plan con contexto sin crear un contexto artificial. Por ese motivo todavía tienen una función distinta de IValidationDefinition<T, C>. Las APIs de compatibilidad se revisarán antes de una retirada futura; no deben usarse como primera alternativa en ejemplos nuevos.

Una regla que entrega directamente un tipo de fallo usa IValidationRule<TContext, TFailure> y ValidationRunner. Ese contrato sirve para integraciones que ya modelan su propio fallo; no sustituye ValidationPlan cuando se necesitan rutas y diagnósticos de campos.

Consumidores y decisión actual ​

ContratoConsumidores observadosDecisión
IValidationDefinition<T, C>ValidationBuilder, DomainRule y catálogos de ejemplosConservar como contrato de extensión
ILocalValidationDefinition<T>Fábricas locales y adaptación automática a contextoConservar; evita contexto artificial en reglas locales
ValidationDefinition<T, C>Fábricas ValidationRule y reglas contextuales de ejemplosConservar como implementación pública de definición
LocalValidationDefinition<T>Resultado de fábricas localesConservar mientras las fábricas lo expongan
IValidationRule<TContext, TFailure>ValidationRunner y validadores que producen fallos propiosConservar como integración separada de reportes por campo
RuleTreeBuilder<T, C>Ejemplos avanzados y contratos de árbolesMantener en el recorrido avanzado
LatestEvaluation<T>Coordinación de última operación fuera de sesiones completasMantener como utilidad avanzada; no promover para formularios nuevos
Require y ThenContratos y consumidores existentesCompatibilidad; usar Add y Sequence en código nuevo

No hay todavía una sustitución que permita retirar las definiciones locales sin perder inferencia o adaptación automática. Cualquier propuesta futura de retirada debe incluir una firma alternativa y verificar los consumidores anteriores.

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