NRuleValidator, release 0.2

Proprio stamattina sul treno ho finito di scrivere le ultime righe e a pranzo ho fatto l'upload

Sono state inserite novità interessanti:

La stampa dei messaggi di errore è fatta con un sistema a provider molto semplice ma comodo. Adesso si possono usare dei Formatter già predefiniti o scriversene di propri solamente estendendo e completando un FormatterBase.

Corretto qualcosina sullo ShortCircuit. Serve a cortocircuitare la valutazione delle regole, alla prima non validata si interrompe direttamente il processo. In un sistema UserInterfaceLess è comodo.
Ovviamente ha perfettamente senso anche non usarlo...in una maschera complessa mi piacerebbe vedere tutti i vari errori e non fermarmi al primo.

Un sistema di valutazione delle regole con la definizione di una priorità per ogni regola.

Il contesto di validazione è adesso astratto, e vengono forniti due sue implementazioni concrete:
ValidationContext (quello di prima) e
ValidationContextPrePost, che in più ha la possibilità di definire regole su due liste distinte: PreConditions e PostConditions. In più accetta il riferimento ad un oggetto ICommand che deve implementare il meccanismo tipico di un command pattern (Execute, Commit, Rollback).

In questo modo il context applica le regole PreConditions, lancia la execute del command e applica successivamente le regole di PostConditions. Tipico in scenari con trigger su database da controllare dopo l'esecuzione di un comando e applicare successivamente altre regole di validazione, (ovviamente in contesto transazionale...in modo da rollbakkkkare)

Qualche considerazione:

Innanzitutto...ho saputo che oltre ai singoli, c'è anche qualche gruppo di lavoro che usa NRuleValidator come libreria di riferimento e mi fa molto piacere...
Mi fa piacere anche vedere che nascono i primi thread sul sito da cui sono venute molte di queste idee appena pubblicate. Grazie a tutti i vari collaboratori

Prossimi passi:
a breve:
sicuramente integrazione di Unit Test e degli esempi (che non sono allineati a questa versione), documentazione, e i due componenti di aggancio alle WinForm e alle WebForm.

un po più a lungo termine: il Validation Designer fatto con i DSL Tools, che sta prendendo piede, per quello sfrutterò tantissimo Spring.NET per la parte di configurazione.

Qui dove scaricare la versione:
http://workspaces.gotdotnet.com/NRuleValidator

Print | posted on giovedì 18 maggio 2006 16:32

Comments on this post

# re: NRuleValidator, release 0.2

Requesting Gravatar...
bravo janky, avrei dovuto farmi sentire sul messenger, perchè mi sentivo in colpa per essere un po' latitante, ma da quando ho ricominciato a lavorare mi stanno tartassando. :-(
sono contento, cmq, perchè il mio progetto Fatturazione si basa anche sulla NRuleValidator, ed adesso che è stata rilasciata posso continuare...
ciao
Left by Igor Damiani on mag 18, 2006 3:30

# re: NRuleValidator, release 0.2

Requesting Gravatar...
Ottimo lavoro.

Soprattutto trovo molto utile il ValidationContextPrePost.

Forse sarebbe stato meglio chiamare ValidationContext la classe astratta e magari SimpleValidationContext o PrePostValidationContext le altre.
Ma questo è solo un mio parere.

Complimenti.


Left by Antonio Di Motta on mag 18, 2006 5:08

# re: NRuleValidator, release 0.2

Requesting Gravatar...
Probabilmente per il nome hai perfettamente ragione...:-)
un motivo c'è....volevo evitare che se qualcuno avesse avuto del codice che utilizzava già la vecchia ValidationContext in questo modo non doveva cambiarla! :-)
Però siamo in una fase in cui (fortunatamente per noi) fare una breaking change è quasi d'obbligo ;-)
Posta pure un work item sul tracking di gotdotnet....
Left by Giancarlo Sudano on mag 18, 2006 5:16
Comments have been closed on this topic.