Hola gente!

Interesante tu pregunta, Guillermo. Algunos comentarios sobre como en general 
trabajo...

Yo prefiero tener una capa de servicio, una simple fachada, que me brinde toda 
la funcionalidad que necesita mi presentacion (o las posibles presentaciones 
que luego aparezca). Asi, en vez de

Persona p = new Persona()
p.Nombre = "..."
session.Save(p)

se puede plantear algo como

Persona p = new Persona()
p.Nombre = "..."
ServicioPersona.Save(p)

Ahora, igual aca se puede plantear otro tema: esto es un simple CRUD de 
personas. Llegara el momento, o la aplicacion, donde la logica del dominio, del 
problema a resolver, no sea tan simple. Apareceran actividades a implementar, 
mas grandes que simplemente insertar una persona en la base. Me imagino:

Empleado e = new Empleado(....datos del nuevo empleado....)
ServicioRecursosHumanos.NuevoEmpleadoContratado(e)

En ambos casos, recurro a Servicio, una capa de servicio. Si de ahi para abajo, 
hay NHibernate, o lo que sea, no me interesa en general.

Despues, podemos discutir la linea

Empleado e = new Empleado(....datos del nuevo empleado....)

Porque tener empleado ahi? Y si ponemos en vez del new una factoria? Bueno, a 
veces, solo a veces, necesitaremos algo mas, para un proceso de negocio mas 
dificil, no enviamos solo entidades. Enviamos mensajes, que llegan a la capa de 
servicio, y hacen actuar a nuestro modelo del negocio. Me imagino un proceso 
que necesite hacer una transferencia entre dos cuentas, pueden tener

ServicioTransferencia.Transferir(idctaorigen,idctadestino,importe)

Abajo de eso, levantaremos las entidades cuentas, lo que sea, o llamaremos a un 
procedimiento almacenado, o lo que hayamos decidido hacer.

Luego, en algun momento habra que investigar las ideas de Domain Driven Design, 
donde entonces el NHibernate empieza a brillar, al posibilitar implementar 
DAOs, invocados desde repositorios, sin "molestar" mucho en nuestro modelo de 
domino. Veria el libro y los enlaces de:

http://ajlopez.wordpress.com/tag/domain-driven-design/

Jeje... y como siempre, servicio, entidades, mapeo NHibernate, base de datos, 
lo genero con AjGenesis, ver el ejemplo 
http://msmvps.com/blogs/lopez/archive/2006/03/07/85650.aspx

(hay en la pagina del proyecto, templates para Domain-Driven Design, que estoy 
mejorando).

DataSets los uso para enviar desde servicio, datos a la presentacion, en 
general para ligar a grillas. Sino, en general, envio lo que en java serian 
beans, simples objetos con datos adentro, que se ligaran a la presentacion, y 
luego volveran de alguna forma al servicio.

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com/
(yes!! it's my sabbatical week!!!.... 
http://ajlopez.wordpress.com/2007/01/27/sabbatical-week/ )
  ----- Original Message ----- 
  From: Guillermo Ruffino 
  To: [email protected] 
  Sent: Thursday, February 01, 2007 11:43 PM
  Subject: [NHibernate-Hispano] Estilos de programacion y preguntas


  Hola, les cuento que estoy haciendo con un companiero una aplicación TIPICA 
de ventas.

  En fin, es muy nuevita y la estamos encarando con .net 2 y generics.

  Tenemos partes con DataSets y otras partes con NHibernate.

  Mi trayectoria es el siguiente, cuando naci existía GWBasic, y aprendi base 
de datos relacionales después de aprender orientación a objetos, (un poco al 
revés)  

  Mi primer trabajo serio (en cuanto a calidad de la aplicación) fue un 
orientado a objetos con serializacion binaria.

  Despues de eso tuve ke caer en la realidad y termine con typed DataSet en 
.net 1.1

  Ahora trabajo mucho con ASP.NET y mucho con reporting, y reporting no es un 
escenario ideal para nhib, asi ke no lo uso en ASP.NET. 

  Estoy dando mis primeros pasos con NH en una aplicación Windows, y me gusta 
la programación de capas aplastadas (sin capas casi) entonces en el botón 
aceptar tengo un Session.Save();

   

  Lo que me gusta de DataSets es que se trabaja en memoria y luego el usuario 
decide si le da a Aceptar() o a Cancelar().

   

  En NH sin embargo, lo único que estoy viendo de momento es almacenar listas 
de objetos que necesiten Save, Delete y Updates! Me parece un poquito incomodo 
y saber si alguien tiene alguna experiencia en compartir.

   

  Saludos



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

Responder a