Hola a todos, antes de nada, perdon por el tamaño del mensaje.

Estoy migrando una aplicación ya exitente cuyo BD es SQL SERVER 2005,
y hasta ahora me ha ido bastante bien con NHibernate. Las capas en las
que está dividida son "UI(MVC)", "Application", "Domain",
"Persistence" e "Infrastructure". Todo lo relacionado con
mantenimientos lo he resuelto mediante NHibernate y FluentNHibernate,
funcionando a la perfección, pero esta aplicación tienen una gran
parte (informes estadísticos) que funcionan a través de Procedimientos
Almacenados. Después de leer por aquí y buscar en Internet durante
unos días, me queda claro el método de ejecución de los "SP", a través
de ISqlQuery.
La duda que me surge es como "modelar" esta parte de la aplicación, me
explico:
Para la parte de maestros, "Application" sirve absolutamente todo lo
que "MVC" necesita, tanto los modelos como los métodos solicitados por
los distintos "Controllers". Para la parte de los modelos, implementa
las diferentes "interfaces" expuestas desde el "Model" de "Domain" por
las diferentes "clases/entidades". Los métodos están definidos en
"Interfaces" dentro del "Domino" e implementadas en "Persistence" a
través de NHibernate. Ahora bien, ¿cómo implemento los "SP"?. La
conclusión a la que he llegado es crear tantos "Value Object" como
"modelos de informe" tengo dentro de "Model", además, tendría un
"Repositorio" para todos los métodos de ejecución de "SP" (no todos
tienen los mismos parámetros de entrada....), y en "Persistence"
tendría la implementación del repositorio con "ISqlQuery" adaptando la
salida a cada "Entidad". Por último, en "Application" tendría la
implentación de las "Interfaces" definidas en "Model" las cuales
servirían a "MVC" como modelo (además de otras tareas que se realizan,
como traducciones en base al idioma del usuario, etc.).
La cuestión es que no estoy muy seguro de que sea la mejor forma de
afrontarlo y quería saber si alguno se ha "enfrentado" con los "SP" y
ha salido ganando decentemente.....

Gracias y un saludo.

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a