Me gusta Fluent NHibernate y creo que es lo suficientemente maduro si va a comenzar un nuevo proyecto. Usarlo en un nuevo proyecto debería permitir que el proyecto Fluent NHibernate continúe madurando a medida que avanza el tuyo. Existe la posibilidad de romper los cambios (como sucedió recientemente con las asignaciones de convenciones), pero debería ser capaz de lidiar con ellos. He tenido algunos problemas con las asignaciones, pero el proyecto es bastante sensible a los informes de errores y ha funcionado en gran medida como se esperaba.
Las opciones de asignación son: asignaciones
XML - Estándar de NHibernate. Los dolores de cabeza de mantenimiento son bien conocidos, pero la ventaja es que tiene acceso a todas las opciones de configuración proporcionadas por NHibernate. Hay algunas opciones de configuración menos utilizadas que se siguen agregando a Fluent (al menos la última vez que presté atención). Por lo tanto, si está anticipando algunas asignaciones locas, es posible que desee considerar esta opción.
Asignación estándar: Provisto por Fluent. Puede crear las asignaciones mediante el código y es mucho mejor para la refactorización y la creación. No hay mucho que decir al respecto, en mi experiencia, aparte de que funciona bien y es una gran mejora en la opción xml.
Auto Mapping - Provisto por Fluent. Le permite mapear propiedades de objetos por convención e intenta crear las asignaciones automáticamente. Es una buena idea, pero creo que todavía tiene algo de madurez por hacer. Actualmente estoy usando este método de mapeo y funciona bien, pero he terminado escribiendo una gran cantidad de convenciones y especificando las relaciones entre objetos que no parece haber ahorrado mucho esfuerzo de las asignaciones estándar.
Fluido NHibernate también proporciona buenos ayudantes de prueba para probar sus asignaciones y algunas API de configuración que puede hacer que sea más fácil de configurar NHibernate. En general, es un buen proyecto y proporciona una buena funcionalidad adicional a NHibernate.
edición:
Una cosa adicional a tener en cuenta: Si usted comienza con Fluido NHibernate y decide que no va a trabajar para su escenario, puede migrar fácilmente de nuevo a los mapeos XML. Fluidez NHibernate le permite exportar las asignaciones que crea y puede usar esas exportaciones para no perder el trabajo de mapeo que ya haya realizado.
+1 para la ventaja de refactorización, especialmente en combinación con la automatización. Puedo ver cómo anular las convenciones predeterminadas todavía puede requerir algo de tiempo, pero al menos puedo refactorizar y volver a generar los archivos hbm, minimizando el ajuste manual/personalización en el nivel XML. –