NHibernate 2.0.0Alpha1 liberado
Aquà les dejo el enlace al precio de costo:
Aquà les dejo el enlace al precio de costo:
La semana pasada estuve con el querido Fabio Maulo en el MUG (Buenos Aires) hablando sobre NHibernate. Fueron 2 lindas jornadas donde pudimos meternos a fondo con NHibernate y ver cosas que quizás no son tan conocidas, y también cosas nuevas de este framework.
Los ejemplos que hicimos tienen la particularidad de ser proyectos de Test. Si necesitan hacer debugging en ellos quizás Resharper o TestDriven puede ayudar. Debo dar las gracias a Diego Jancic que estuvo colaborando en los ejemplos también.
Este es el enlace con la presentación y los ejemplos:
A raíz de largas discusiones en la lista de desarrolladores de NHibernate se ha decidido separar los proyectos non-core de NHibernate en otro proyecto dentro de Sourceforge. Entre los proyectos que destaco que estarán bajo este paraguas son NHibernate Attributes a cargo de Pierre Kuate; NHibernate Search a cargo de Oren Eini; NHibernate Validator, NHibernate Shards que están a mi cargo y NHibernate Burrow a cargo de Kailuo Wang.
Este último proyecto es nuevo, que trae todo lo bueno de la intergración con NHibernate de MindLib, es decir, MindLib va a ser fusionado a NHibernate Burrow.
Entre las cosas que Burrow pretende solucionar está el manejo de la sesión de NHibernate, tanto en aplicaciones desktop como web.
Una de las cosas que me gusta de Burrow es que vamos a tener una herramienta "nuestra" o "de la casa" que solucione o haga un poco más transparente esos asuntos a los que estamos expuestos día a días en nuestras aplicaciones con NHibernate.
Sabrán más sobre NHibernate Contrib en breve.
Ya están los horarios para los seminarios de NHibernate en Buenos Aires en el que voy a estar junto a Fabio Maulo disertando sobre NHibernate. El lugar es en el Auditorio del MUG: Rivadavia 1479 1º A.
Miércoles 20 y Jueves 21 de febrero de 2008, en el horario de 18.30 a 21.30 hs.
- Quick Start
- Entorno de test de entities
- Manejo de Session de NHibernate: Qué cosas hacer y qué no.
- Parent-Child
- Overview Lazy-Loading
- Ejemplo de como cambiar base de datos usando los ejemplos generado
en toda la charla.
- Overview NHibernate.Validator
- Introducción a NHibernate
- Manejo de Sesiones.
- Conceptos y ejemplos: EntityName, SQL nativa para CRUD, Transformers, StoredProcedure, Named-Queries, Event-Listeners, Filters, MultiQuery, StatelessSession, UserType, UserCollectionType, Batch-size entre otros.
- Queries: HQL, Criteria, SQL Nativo.
- NHibernate.Shards: Estado del arte
- Tunning
Hace unos dÃas estuve mostrando algunas de las caracterÃsticas de Ohloh. La verdad que Ohloh es completo, pero la actualización de la información no es inmediata, y no muestra un avance real del proyecto.
CIA.vc nos provee de una manera más simple pero en tiempo real las estadÃsticas de commits. Por ejemplo, este es el informe de los commits en NHibernate. También poseemos feed RSS 2.0 para los commits.
Espero que sirva.
A raÃz de este hilo en el foro de desarrolladores de NHibernate, se planteó el hecho de qué framework hacen el manejo de sesión de NHibernate abstrayéndonos bastante en este asunto.
A enumerar:
Por favor avisen si estoy omitiendo alguno en la lista. Gracias
Debido a que NHibernate.Validator es un framework para validar objetos, y no tiene restricciones acerca de donde realizar la validación, pensé que podrÃa ser interesante tener algún tipo de integración con Winforms o Asp.Net. Por ahora me inclino hacia el lado de Winforms donde estoy más cómodo programando.
El siguiente ejemplo intenta validar un simple formulario con un par de cajas de texto:
Ahora bien, como fue validado esto? Usando NHibernate.Validator y unas clases ayudantes que se encuentran en Suricato.Winforms.Validation. La clase ViewValidator es la encarga de realizar los enlaces de los controles con las reglas. Esta es la configuración:
Como pueden ver, ViewValidator recibe el ErrorProvider que mostrará los controles que poseen inconsistencia en sus valores. Prácticamente lo que se hacer es enlazar un control de la UI con ciertas reglas que le corresponden a propiedades de un objeto. Por ejemplo el TextBox “tFirstName” se corresponde con las reglas de validación de la property “FirstName” en la clase Customer. Seguidamente se añade el evento que debe realizar la validación del control.
Esto se podrÃa realizar de una manera más fácil? Si, con un esquema similar la clase SmartViewValidator realiza el enlace de los objetos y el registro de los eventos de manera más automática.
SmartViewValidator hará por nosotros algunas cosas automáticamente. Con un poco de menos de código se puede lograr el mismo trabajo, pero debemos ponernos de acuerdo en algunas normas en nuestro código.
Los controles, deben tener un prefijo en minúsculas, seguido del nombre de la propiedad que están representando. Por ejemplo si tenemos un control llamado “txtNombre”, el nombre de la propiedad serÃa “Nombre”, si escribimos “dtpFecha”, este DateTimePicker se corresponderá con la property “Fecha” de alguna clase.
Debemos acordarnos de inicializar estos controles luego de que InitializeComponent() sea llamado por nuestro formulario, en caso contrario el ErrorProvider valdrá null.
Ahora vemos como luce una clase que posee la validación de NHibernate.Validator:
Como pueden ver, con algunas clases podemos usar NHibernate.Validator también en la UI, solamente hace falta configurar 1 lÃnea por control y todo queda integrado con Winforms.
Ohloh es una red open source que conecta a personas que usan y/o contribuyen con proyectos de este tipo. Es algo asà como la Web 2.0 de los proyectos OSS, no he visto cosa similar, la verdad que Ohloh es muy completo.
Estuve buscando las herramientas que comúnmente uso y este es mi stack:
Lo bueno de Ohloh es la posibilidad de conectarse con otras personas de todo el mundo que están proyectos que comunmente usamos o nos gustarÃa participar. Este es el mapa de todas las personas que tienen como stack a NHibernate:
Otro punto interesante es que posee toda la historia del versionado de código de cada proyecto, con esto podemos saber TODO sobre el código de un proyecto en particular. Este es el gráfico de la historia de NHibernate:
Esta es la tabla donde podemos ver los últimos commits en NHibernate. Se podrÃa decir que le falta un RSS en esta parte (por suerte Ohloh tiene un lugar para hacer sugerencias
)

Como NHibernate Validator está bastante maduro y tiene la gran mayorÃa de los validadores que posee Hibernate.Validator, empecé hace unos dÃas el port de Hibernate Shards.
NHibernate Shards permitirá el extender el core de NHibernate para gozar deParticionamiento horizontal en tablas.
Los mantendré informado, mientras tanto pueden ir pispeando en el SVN.
Para los que todavÃa no sintonizaron NHibernate-Hispano, ayer di la noticia en este post de que se podÃa usar el nuevo port de NHibernate: NHibernate.Validator (port de este proyecto). TodavÃa no hay ejemplos y documentación asà que por ahora, se puede reutilizar lo que hay disponible en Java.
Links: