Arquitectura N-Capas en Vb2005

13/07/2006 - 07:14 por Developers - Dany Acosta | Informe spam
Amigos ya se que este tema se toca muchas veces, pero necesito una ayuda en aclaracion de esto:
* Muchos de mis Amigos comentan que lo ideal de Manejar N-Capas en .Net es cuando manejas :
Capa Interfaces (Windows forms) (Esta no la detallo porque se sabe que se relaciona con la Capa
negocios)
Capa de Negocios (Enlace Entidad y Datos)
Capa de Entidades (Cada Tabla es una Entidad)
Capa de Datos (Cada tabla tiene su Propio Manejo de datos "Insert,Delete,Update,Select")

Entonces tendria algo parecido a esto : (Mis Preguntas estan Abajo)

Capa de Negocios:::
Clase Pedido
Funcion ObtenePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerPedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion ObteneDetallePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerDetallePedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion RegistrarPedido(recibe Entidad_M_Pedido,Entidad_D_Pedido)
Instancio mi Capa de datos de M_Pedido en una variable (Dim x as New Datos_M_Pedido)
ValorDevueltoNumero=Proceso Grabar (x=RegistrarPedido(oEntidadPedido)
ValorDevuelto Igual Falso
Si no hay Error
Instacion mi Capa de datos de D_Pedido en una Varible (Dim y as New Datos_D_PEdido)
ValorDevuelto=Proceso Grabardetalle (y= RegistrarDetallePedido(ValorDevueltoNumero,oEntidadDPedido)
Retorno ValorDevuelto
Fin Funcion

*
Fin Clase

Capa de Entidades::::
Clase Entidad_M_Pedido
IDPedido Int
FechaPed Datetime
ClienteID Int
TotalPed Money
FinClase
Clase Entidad_D_Pedido
IdPedido Int
ProductoID Int
Cantidad smallint
Precio money
Finclase

Capa de Datos::::
Clase Datos_M_Pedido
Funcion ObtenerPedidoporCodigo(IdPedido)
Conecto a Base Datos
llamo a mi store procedure
Inicializo en una variable la Entidad_M_Pedido
Lleno la entidad M_Pedido
Cierro conexion
retorno Entidad (Puede estar serializada)
fin Funcion
Funcion RegistrarPedido(oEntidadPedido es un Entidad_M_Pedido)
Conecto a Base datos
Lleno mi Objecto comando con los valores de la entidad
Numero=ejecuto la grabacion
Cierro la Conexion
Retorno Numero
fin funcion
Fin Clase
Clase Datos_D_Pedido
Funcion ObtenerDetallePedidoporCodigo(IDPedido)
Conecto a Base Datos
Llamo a mi Store Procedure
Inicializo en una Variable la Entidad_D_Pedido
lleno la Entidad D_Pedido
Cierro Conexión
Retornó Entidad (Puede estar serializada)
fin funcion
Función RegistrarDetallePedido(IdPedido,oEntidadDPedido es un Entidad_D_PEdido)
Conecto a Base datos
Lleno mi Obtejo Comando con los valores de la entidad
Ejecuto la Grabacion
Cierro la Conexion
Retorno si Fue con Exito o No
Fin Funcion
Fin Clase

Sera Optimizable trabajar de esta manera????

Si Trabajo de esta forma en donde irian las consultas que manejan relaciones entre tablas(en Capa de
Datos o en Negocios) en este ejemplo que puse seria la Relacion PadrePedido>DetallePedido?????
* Tendria que crear otra entidad que PadrePedido Herede de DetallePedido o No????


Como se manejarian las transacciones en estos casos ya que cada capa de datos Abre y Cierra la
Conexion (En la Caso de Registrar Pedido)???
* Tendria que pasar la conexion abierta en estos casos????


Bueno amigos disculpen por lo extenso del mensaje solamente quiero que me aclaren estas dudas o SI
tuvieran otra mejor forma de trabajar con Capas me gustaria sus opiones Ya revize bastante
teoria sobre esto en los foros y quiero ponerlo en practica(Si es que funciona de esta manera)

Gracias

Dany Acosta - Developers

Preguntas similare

Leer las respuestas

#1 Juan Cuello
13/07/2006 - 11:10 | Informe spam
Hola,

Es una opción pero cabe destacar que no hay una forma standard de hacer las
cosas y no hay una arquitectura que sirva para todo.

La definición de capas es un elemento a definir en el diseño técnico de una
aplicación desde el principio. El número de capas y la distribución entre
ellas vendrá definido por los requerimientos funcionales de la misma y
teniendo en cuenta la plataforma sobre la que funcionará la aplicación.

Por ejemplo, ahora mismo estoy desarrollando una aplicación con remoting y
entre cliente y servidor hay unas 6 capas :P

La experiencia te dirá

Un saludo




AP Software Development



"Developers - Dany Acosta" escribió:

Amigos ya se que este tema se toca muchas veces, pero necesito una ayuda en aclaracion de esto:
* Muchos de mis Amigos comentan que lo ideal de Manejar N-Capas en .Net es cuando manejas :
Capa Interfaces (Windows forms) (Esta no la detallo porque se sabe que se relaciona con la Capa
negocios)
Capa de Negocios (Enlace Entidad y Datos)
Capa de Entidades (Cada Tabla es una Entidad)
Capa de Datos (Cada tabla tiene su Propio Manejo de datos "Insert,Delete,Update,Select")

Entonces tendria algo parecido a esto : (Mis Preguntas estan Abajo)

Capa de Negocios:::
Clase Pedido
Funcion ObtenePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerPedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion ObteneDetallePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerDetallePedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion RegistrarPedido(recibe Entidad_M_Pedido,Entidad_D_Pedido)
Instancio mi Capa de datos de M_Pedido en una variable (Dim x as New Datos_M_Pedido)
ValorDevueltoNumero=Proceso Grabar (x=RegistrarPedido(oEntidadPedido)
ValorDevuelto Igual Falso
Si no hay Error
Instacion mi Capa de datos de D_Pedido en una Varible (Dim y as New Datos_D_PEdido)
ValorDevuelto=Proceso Grabardetalle (y= RegistrarDetallePedido(ValorDevueltoNumero,oEntidadDPedido)
Retorno ValorDevuelto
Fin Funcion

*
Fin Clase

Capa de Entidades::::
Clase Entidad_M_Pedido
IDPedido Int
FechaPed Datetime
ClienteID Int
TotalPed Money
FinClase
Clase Entidad_D_Pedido
IdPedido Int
ProductoID Int
Cantidad smallint
Precio money
Finclase

Capa de Datos::::
Clase Datos_M_Pedido
Funcion ObtenerPedidoporCodigo(IdPedido)
Conecto a Base Datos
llamo a mi store procedure
Inicializo en una variable la Entidad_M_Pedido
Lleno la entidad M_Pedido
Cierro conexion
retorno Entidad (Puede estar serializada)
fin Funcion
Funcion RegistrarPedido(oEntidadPedido es un Entidad_M_Pedido)
Conecto a Base datos
Lleno mi Objecto comando con los valores de la entidad
Numero=ejecuto la grabacion
Cierro la Conexion
Retorno Numero
fin funcion
Fin Clase
Clase Datos_D_Pedido
Funcion ObtenerDetallePedidoporCodigo(IDPedido)
Conecto a Base Datos
Llamo a mi Store Procedure
Inicializo en una Variable la Entidad_D_Pedido
lleno la Entidad D_Pedido
Cierro Conexión
Retornó Entidad (Puede estar serializada)
fin funcion
Función RegistrarDetallePedido(IdPedido,oEntidadDPedido es un Entidad_D_PEdido)
Conecto a Base datos
Lleno mi Obtejo Comando con los valores de la entidad
Ejecuto la Grabacion
Cierro la Conexion
Retorno si Fue con Exito o No
Fin Funcion
Fin Clase

Sera Optimizable trabajar de esta manera????

Si Trabajo de esta forma en donde irian las consultas que manejan relaciones entre tablas(en Capa de
Datos o en Negocios) en este ejemplo que puse seria la Relacion PadrePedido>DetallePedido?????
* Tendria que crear otra entidad que PadrePedido Herede de DetallePedido o No????


Como se manejarian las transacciones en estos casos ya que cada capa de datos Abre y Cierra la
Conexion (En la Caso de Registrar Pedido)???
* Tendria que pasar la conexion abierta en estos casos????


Bueno amigos disculpen por lo extenso del mensaje solamente quiero que me aclaren estas dudas o SI
tuvieran otra mejor forma de trabajar con Capas me gustaria sus opiones Ya revize bastante
teoria sobre esto en los foros y quiero ponerlo en practica(Si es que funciona de esta manera)

Gracias

Dany Acosta - Developers






Respuesta Responder a este mensaje
#2 Bingen
13/07/2006 - 11:12 | Informe spam
Hola, intentaré se muy breve:

Podrías tener:
Una capa de interfaces (Windows forms, etc)
Una capa de negocio. (Clase pedido con su colección de lineas pedido,
funciones, etc. Clase linea pedido, etc...)
Una capa de persistencia.
La capa de persistencia sería la encargada de mapear tus clases que
requieren ser guardados de forma permanente en una base de datos. En esta
capa estaría la lógica que traduciría tus objetos y sus relaciones a tablas
relacionales. Esto te permitiría trabajar con transacciones etc, ademas no
dependerías de una bd en particular etc.

Por suerte, existe un proyecto llamado NHibernate que implementa la capa
de persistencia para tus proyectos. Tu solamente debes de crear unos
ficheros que indican el mapeo de tus objetos y sus relaciones con las
tablas. Podras obtener mas información y ejemplos en la página
http://www.hibernate.org

Un saludo
Bingen




"Developers - Dany Acosta" escribió en el mensaje
news:
Amigos ya se que este tema se toca muchas veces, pero necesito una ayuda
en aclaracion de esto:
* Muchos de mis Amigos comentan que lo ideal de Manejar N-Capas en .Net es
cuando manejas :
Capa Interfaces (Windows forms) (Esta no la detallo porque se sabe que se
relaciona con la Capa negocios)
Capa de Negocios (Enlace Entidad y Datos)
Capa de Entidades (Cada Tabla es una Entidad)
Capa de Datos (Cada tabla tiene su Propio Manejo de datos
"Insert,Delete,Update,Select")

Entonces tendria algo parecido a esto : (Mis Preguntas estan Abajo)

Capa de Negocios:::
Clase Pedido
Funcion ObtenePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerPedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion ObteneDetallePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerDetallePedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion RegistrarPedido(recibe Entidad_M_Pedido,Entidad_D_Pedido)
Instancio mi Capa de datos de M_Pedido en una variable (Dim x as New
Datos_M_Pedido)
ValorDevueltoNumero=Proceso Grabar (x=RegistrarPedido(oEntidadPedido)
ValorDevuelto Igual Falso
Si no hay Error
Instacion mi Capa de datos de D_Pedido en una Varible (Dim y as New
Datos_D_PEdido)
ValorDevuelto=Proceso Grabardetalle (y=
RegistrarDetallePedido(ValorDevueltoNumero,oEntidadDPedido)
Retorno ValorDevuelto
Fin Funcion

*
Fin Clase

Capa de Entidades::::
Clase Entidad_M_Pedido
IDPedido Int
FechaPed Datetime
ClienteID Int
TotalPed Money
FinClase
Clase Entidad_D_Pedido
IdPedido Int
ProductoID Int
Cantidad smallint
Precio money
Finclase

Capa de Datos::::
Clase Datos_M_Pedido
Funcion ObtenerPedidoporCodigo(IdPedido)
Conecto a Base Datos
llamo a mi store procedure
Inicializo en una variable la Entidad_M_Pedido
Lleno la entidad M_Pedido
Cierro conexion
retorno Entidad (Puede estar serializada)
fin Funcion
Funcion RegistrarPedido(oEntidadPedido es un Entidad_M_Pedido)
Conecto a Base datos
Lleno mi Objecto comando con los valores de la entidad
Numero=ejecuto la grabacion
Cierro la Conexion
Retorno Numero
fin funcion
Fin Clase
Clase Datos_D_Pedido
Funcion ObtenerDetallePedidoporCodigo(IDPedido)
Conecto a Base Datos
Llamo a mi Store Procedure
Inicializo en una Variable la Entidad_D_Pedido
lleno la Entidad D_Pedido
Cierro Conexión
Retornó Entidad (Puede estar serializada)
fin funcion
Función RegistrarDetallePedido(IdPedido,oEntidadDPedido es un
Entidad_D_PEdido)
Conecto a Base datos
Lleno mi Obtejo Comando con los valores de la entidad
Ejecuto la Grabacion
Cierro la Conexion
Retorno si Fue con Exito o No
Fin Funcion
Fin Clase

Sera Optimizable trabajar de esta manera????

Si Trabajo de esta forma en donde irian las consultas que manejan
relaciones entre tablas(en Capa de Datos o en Negocios) en este ejemplo
que puse seria la Relacion PadrePedido>DetallePedido?????
* Tendria que crear otra entidad que PadrePedido Herede de DetallePedido o
No????


Como se manejarian las transacciones en estos casos ya que cada capa de
datos Abre y Cierra la Conexion (En la Caso de Registrar Pedido)???
* Tendria que pasar la conexion abierta en estos casos????


Bueno amigos disculpen por lo extenso del mensaje solamente quiero que me
aclaren estas dudas o SI tuvieran otra mejor forma de trabajar con Capas
me gustaria sus opiones Ya revize bastante teoria sobre esto en los
foros y quiero ponerlo en practica(Si es que funciona de esta manera)

Gracias

Dany Acosta - Developers






Respuesta Responder a este mensaje
#3 Dany Acosta
13/07/2006 - 18:39 | Informe spam
Ok Amigo... dejame revisar el documento si alguien mas tiene mas
opiniones me gustaria saber

Gracias


Bingen escribió:
Hola, intentaré se muy breve:

Podrías tener:
Una capa de interfaces (Windows forms, etc)
Una capa de negocio. (Clase pedido con su colección de lineas pedido,
funciones, etc. Clase linea pedido, etc...)
Una capa de persistencia.
La capa de persistencia sería la encargada de mapear tus clases que
requieren ser guardados de forma permanente en una base de datos. En esta
capa estaría la lógica que traduciría tus objetos y sus relaciones a tablas
relacionales. Esto te permitiría trabajar con transacciones etc, ademas no
dependerías de una bd en particular etc.

Por suerte, existe un proyecto llamado NHibernate que implementa la capa
de persistencia para tus proyectos. Tu solamente debes de crear unos
ficheros que indican el mapeo de tus objetos y sus relaciones con las
tablas. Podras obtener mas información y ejemplos en la página
http://www.hibernate.org

Un saludo
Bingen




"Developers - Dany Acosta" escribió en el mensaje
news:
Amigos ya se que este tema se toca muchas veces, pero necesito una ayuda
en aclaracion de esto:
* Muchos de mis Amigos comentan que lo ideal de Manejar N-Capas en .Net es
cuando manejas :
Capa Interfaces (Windows forms) (Esta no la detallo porque se sabe que se
relaciona con la Capa negocios)
Capa de Negocios (Enlace Entidad y Datos)
Capa de Entidades (Cada Tabla es una Entidad)
Capa de Datos (Cada tabla tiene su Propio Manejo de datos
"Insert,Delete,Update,Select")

Entonces tendria algo parecido a esto : (Mis Preguntas estan Abajo)

Capa de Negocios:::
Clase Pedido
Funcion ObtenePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerPedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion ObteneDetallePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerDetallePedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion RegistrarPedido(recibe Entidad_M_Pedido,Entidad_D_Pedido)
Instancio mi Capa de datos de M_Pedido en una variable (Dim x as New
Datos_M_Pedido)
ValorDevueltoNumero=Proceso Grabar (x=RegistrarPedido(oEntidadPedido)
ValorDevuelto Igual Falso
Si no hay Error
Instacion mi Capa de datos de D_Pedido en una Varible (Dim y as New
Datos_D_PEdido)
ValorDevuelto=Proceso Grabardetalle (y=
RegistrarDetallePedido(ValorDevueltoNumero,oEntidadDPedido)
Retorno ValorDevuelto
Fin Funcion

*
Fin Clase

Capa de Entidades::::
Clase Entidad_M_Pedido
IDPedido Int
FechaPed Datetime
ClienteID Int
TotalPed Money
FinClase
Clase Entidad_D_Pedido
IdPedido Int
ProductoID Int
Cantidad smallint
Precio money
Finclase

Capa de Datos::::
Clase Datos_M_Pedido
Funcion ObtenerPedidoporCodigo(IdPedido)
Conecto a Base Datos
llamo a mi store procedure
Inicializo en una variable la Entidad_M_Pedido
Lleno la entidad M_Pedido
Cierro conexion
retorno Entidad (Puede estar serializada)
fin Funcion
Funcion RegistrarPedido(oEntidadPedido es un Entidad_M_Pedido)
Conecto a Base datos
Lleno mi Objecto comando con los valores de la entidad
Numero=ejecuto la grabacion
Cierro la Conexion
Retorno Numero
fin funcion
Fin Clase
Clase Datos_D_Pedido
Funcion ObtenerDetallePedidoporCodigo(IDPedido)
Conecto a Base Datos
Llamo a mi Store Procedure
Inicializo en una Variable la Entidad_D_Pedido
lleno la Entidad D_Pedido
Cierro Conexión
Retornó Entidad (Puede estar serializada)
fin funcion
Función RegistrarDetallePedido(IdPedido,oEntidadDPedido es un
Entidad_D_PEdido)
Conecto a Base datos
Lleno mi Obtejo Comando con los valores de la entidad
Ejecuto la Grabacion
Cierro la Conexion
Retorno si Fue con Exito o No
Fin Funcion
Fin Clase

Sera Optimizable trabajar de esta manera????

Si Trabajo de esta forma en donde irian las consultas que manejan
relaciones entre tablas(en Capa de Datos o en Negocios) en este ejemplo
que puse seria la Relacion PadrePedido>DetallePedido?????
* Tendria que crear otra entidad que PadrePedido Herede de DetallePedido o
No????


Como se manejarian las transacciones en estos casos ya que cada capa de
datos Abre y Cierra la Conexion (En la Caso de Registrar Pedido)???
* Tendria que pasar la conexion abierta en estos casos????


Bueno amigos disculpen por lo extenso del mensaje solamente quiero que me
aclaren estas dudas o SI tuvieran otra mejor forma de trabajar con Capas
me gustaria sus opiones Ya revize bastante teoria sobre esto en los
foros y quiero ponerlo en practica(Si es que funciona de esta manera)

Gracias

Dany Acosta - Developers











Respuesta Responder a este mensaje
#4 Maxi
17/07/2006 - 19:22 | Informe spam
Hola, el tema de capas no es blanco y negro, primero deberias definir que
componentes pueden cambiar mucho, por ej: Si vas a usar siempre la misma
base de datos no tiene ningun sentido hacer una capa de persistencia, ese
tipo de capas es para cuando no tienes un motor definido, debo aclarar que
el uso de algun ORM por lo general no utilizan lo maximo de los motores de
bdd, con lo cual el tema performance es algo a revisar al igual que la
seguridad.

Yo te cuento que modelo estamos usando ahora por ej

UI -- BC -- BE - SI -- SQL2005

UI = Interfaz usuario
BC = Bussines component
BE = Bussines Entity (lo representamos con un dataset tipado)
SI = service Interface (Depende de un param en el appcpnfig sale por WS o
indigo o local)



Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org
Speaker INETA
Speaker Culminis


"Developers - Dany Acosta" escribió en el mensaje
news:
Amigos ya se que este tema se toca muchas veces, pero necesito una ayuda
en aclaracion de esto:
* Muchos de mis Amigos comentan que lo ideal de Manejar N-Capas en .Net es
cuando manejas :
Capa Interfaces (Windows forms) (Esta no la detallo porque se sabe que se
relaciona con la Capa negocios)
Capa de Negocios (Enlace Entidad y Datos)
Capa de Entidades (Cada Tabla es una Entidad)
Capa de Datos (Cada tabla tiene su Propio Manejo de datos
"Insert,Delete,Update,Select")

Entonces tendria algo parecido a esto : (Mis Preguntas estan Abajo)

Capa de Negocios:::
Clase Pedido
Funcion ObtenePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerPedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion ObteneDetallePedido(IdPedido)
Instancio mi Capa de Datos en una Variable (Dim x as New Datos_M_Pedido)
Ejecuto la Consulta (Retorno=x.ObtenerDetallePedidoporCodigo(IdPedido))
Retorno el Resultado
Fin Funcion
Funcion RegistrarPedido(recibe Entidad_M_Pedido,Entidad_D_Pedido)
Instancio mi Capa de datos de M_Pedido en una variable (Dim x as New
Datos_M_Pedido)
ValorDevueltoNumero=Proceso Grabar (x=RegistrarPedido(oEntidadPedido)
ValorDevuelto Igual Falso
Si no hay Error
Instacion mi Capa de datos de D_Pedido en una Varible (Dim y as New
Datos_D_PEdido)
ValorDevuelto=Proceso Grabardetalle (y=
RegistrarDetallePedido(ValorDevueltoNumero,oEntidadDPedido)
Retorno ValorDevuelto
Fin Funcion

*
Fin Clase

Capa de Entidades::::
Clase Entidad_M_Pedido
IDPedido Int
FechaPed Datetime
ClienteID Int
TotalPed Money
FinClase
Clase Entidad_D_Pedido
IdPedido Int
ProductoID Int
Cantidad smallint
Precio money
Finclase

Capa de Datos::::
Clase Datos_M_Pedido
Funcion ObtenerPedidoporCodigo(IdPedido)
Conecto a Base Datos
llamo a mi store procedure
Inicializo en una variable la Entidad_M_Pedido
Lleno la entidad M_Pedido
Cierro conexion
retorno Entidad (Puede estar serializada)
fin Funcion
Funcion RegistrarPedido(oEntidadPedido es un Entidad_M_Pedido)
Conecto a Base datos
Lleno mi Objecto comando con los valores de la entidad
Numero=ejecuto la grabacion
Cierro la Conexion
Retorno Numero
fin funcion
Fin Clase
Clase Datos_D_Pedido
Funcion ObtenerDetallePedidoporCodigo(IDPedido)
Conecto a Base Datos
Llamo a mi Store Procedure
Inicializo en una Variable la Entidad_D_Pedido
lleno la Entidad D_Pedido
Cierro Conexión
Retornó Entidad (Puede estar serializada)
fin funcion
Función RegistrarDetallePedido(IdPedido,oEntidadDPedido es un
Entidad_D_PEdido)
Conecto a Base datos
Lleno mi Obtejo Comando con los valores de la entidad
Ejecuto la Grabacion
Cierro la Conexion
Retorno si Fue con Exito o No
Fin Funcion
Fin Clase

Sera Optimizable trabajar de esta manera????

Si Trabajo de esta forma en donde irian las consultas que manejan
relaciones entre tablas(en Capa de Datos o en Negocios) en este ejemplo
que puse seria la Relacion PadrePedido>DetallePedido?????
* Tendria que crear otra entidad que PadrePedido Herede de DetallePedido o
No????


Como se manejarian las transacciones en estos casos ya que cada capa de
datos Abre y Cierra la Conexion (En la Caso de Registrar Pedido)???
* Tendria que pasar la conexion abierta en estos casos????


Bueno amigos disculpen por lo extenso del mensaje solamente quiero que me
aclaren estas dudas o SI tuvieran otra mejor forma de trabajar con Capas
me gustaria sus opiones Ya revize bastante teoria sobre esto en los
foros y quiero ponerlo en practica(Si es que funciona de esta manera)

Gracias

Dany Acosta - Developers





Respuesta Responder a este mensaje
#5 Dany Acosta
19/07/2006 - 22:34 | Informe spam
La Parte de UI y BE lo tengo claro, mi duda es como definir la capa de
Datos o la Capa de Negocios por ejemplo.
En una aplicacion de Gestion se tiene 3 modulos conocidos Compras +
Almacen + Facturacion.
Mi duda es como aplicar esto si tengo una DLL (Capa de Negocio o Datos)
que tiene:
* Clase Almacen
* Clase Compras
* Clase Facturacion

Esas tres clases trabajan solas pero tambien comparten Procesos (x
Ejmplo Graba_Cabecera_almacen y Graba_Detalle_almacen) .

como podria resolver esos casos aplicando Herencia???

Si pudieras enviarme un pequeño ejemplo de como trabaja todo en un
Maestro - Detalle te agredeceria bastente

Gracias

Dany Acosta - Developers

Maxi escribió:
Hola, el tema de capas no es blanco y negro, primero deberias definir que
componentes pueden cambiar mucho, por ej: Si vas a usar siempre la misma
base de datos no tiene ningun sentido hacer una capa de persistencia, ese
tipo de capas es para cuando no tienes un motor definido, debo aclarar que
el uso de algun ORM por lo general no utilizan lo maximo de los motores de
bdd, con lo cual el tema performance es algo a revisar al igual que la
seguridad.

Yo te cuento que modelo estamos usando ahora por ej

UI -- BC -- BE - SI -- SQL2005

UI = Interfaz usuario
BC = Bussines component
BE = Bussines Entity (lo representamos con un dataset tipado)
SI = service Interface (Depende de un param en el appcpnfig sale por WS o
indigo o local)


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida