Validación en NHibernate
Una de las puertas que dejó abierta el port de EventListeners, es la posibilidad de crear algunas clases para poder validar objetos antes de ser guardados (como así también antes de ser borrados).
Una opción es portar Hibernate.Validator, pero… alguién realmente va a usarlo? Yo personalmente creo que no. Mirando su implementación y qué hace, no ofrece mucho más de lo que se puede encontrar del lado de .Net con algunas librerías. Quizás algún día se porte Hibernate.Validator, pero por ahora, yo creo que es más importante portar algunas otras features de Hibernate, estas se van a aprovechar más.
Una opción valida, es crear bridges entre NHibernate (EventListeners) y algunos frameworks conocidos en .Net para la validación de entradas (input validation).
Algunas opciones que se me ocurren:
La implementación ya sea Hibernate.Validator (no creo) o algún bridge para los mencionados, se hará en uNHAddIns.
Un punto interesante, sería que posea la posilidad de extensibilidad para validadores hechos por nosotros.
3 Responses to Validación en NHibernate
Leave a Reply Cancel reply
-
Categories
- .NET
- ActiveRecord
- agil
- Alt.Net
- AOP
- Asp.net MVC
- blog
- C#
- codegeneration
- cosas interesantes
- db4o
- db4o-analyzer
- DLR
- enterprise-library
- expresiones regulares
- General
- Hibernate
- IoC
- it
- Java
- LINQ
- Linux
- Lucene
- Mocking
- Mono
- monosms
- MVC
- NAnt
- NHibernate
- NHibernate.Burrow
- NHibernate.Contrib
- NHibernate.Validator
- noticias
- O/R Mapping
- Open Source
- patrones
- personal
- podcast
- programación
- Redes Neuronales
- Refactoring
- regex
- Scrum
- Security
- Shards
- Sin Categoría
- Spring
- SqlServer
- Testing
- tips
- Tool
- tutorial
- Ubuntu
- uNHAddIns
- video
- Virtualización
- Visual Basic.Net
- Visual Studio
- VMWare
- Web
-
Articles
- June 2011
- May 2011
- November 2009
- October 2009
- April 2009
- March 2009
- February 2009
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- March 2006
- February 2006
- December 2005
- November 2005
- October 2005
-
Meta





[...] este post estaba adelantando algo que estoy empezando a hacer, por ahora bosquejando y pensando, sin [...]
Buenisimo lo que vas a hacer. Te comento que hoy en dia es bastante complicado lograr la misma funcionalidad asi que si vos simplificas eso te transformas en un nuevo idolo.
Es decir, para lograr integrar hoy en dia (v1.2ga) una integracion hay que implementar IInterceptor , etc. Es mucho trabajo y lo peor es que no es muy “simple de entender” . Especialmente cuando la gente piensa que todos los calls pasan por los DAO. La mayoria de los mundamos (a los cuales pertencezco) se olvida de los cascade updates.
Uno de los casos mas simples (y es el que nosotros usamos ) es basicamente implementar una interface IValidatable (implementado en los POCO).
Tenes pensado algo para este caso? (en tu texto diste a entender que si, pero despues te concentras en los 2 frameworks (CLSA + EL ).
Mi imagino algo como: esta es mi interface (IValidatable) , esta propiedad (de la interface) determine si es valido (IsValid). Creo que en el sentido contrario no seria lo mismo (me cuesta explicar por que pero estoy casi seguro que no seria lo mejor..). Es decir, si Nhibernate define la interfaz .
Otros comentario: como probablemente ya sabes el Enterprise Library validation block funciona mediante injection “agregando una fachada” en la creacion del DAO. Es decir que para integrarlo basicamente tambien deberia tener informacion basica sobre la architectura de los DAO’s (aca me perdi como pensas hacerlo .. )
Buenos Saludos y Feliz Navidad!
Hola Sebastian, podés ir viendo algo de lo que hice aquí:
http://blog.darioquintana.com.ar/2007/12/14/nhibernate-eventlisteners-cualquier-framework-de-validacin/
Este ejemplo muestra como integrar Enterprise Library en NHibernate en la validación. En realidad se puede integrar con cualquier framework, solamente resta hacer el bridge para el respectivo.
Por otro lado, estoy portando Hibernate Validator a .Net: http://www.hibernate.org/412.html
NHibernate Validator es un framework de validación como lo es EntLib Validation App Block o Castle Validators. Y por ahora no brinda la capacidad de integración con algún otro framework de Validación.
Podés ir mirando los tests aquí:
https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate.Validator/src/
Saludos