Visual Basic.NET - base de datos, 1 o muchas conexiones?

 
Vista:

base de datos, 1 o muchas conexiones?

Publicado por Guillermo (73 intervenciones) el 16/09/2008 23:41:04
Hola a Todos:
estoy desarrollando contra un servidor sql server 2005 express. Me manejo de la siguiente forma: cada vez que necesito algo de la base de datos me conecto, lo traigo y cierro la conexión. Leí por ahí que no tiene sobre costo conectarse y desconectarse a cada rato. Les parece esto razonable? o es mejor conectarse al principio y cerrar la conexión al salir de la aplicación?
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:base de datos, 1 o muchas conexiones?

Publicado por P. J. (706 intervenciones) el 16/09/2008 23:46:11
Yo lo trabajo del mismo modo, es mas uso el SQLHelper y tiene ese esquema desconectado.

Conectarse al inicio y cerrar al final seria otro entorno, siempre conectado que no se usa mucho solo cuando necesitas tus datos durante toda la aplicacion.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:base de datos, 1 o muchas conexiones?

Publicado por Guillermo (73 intervenciones) el 17/09/2008 00:12:37
Gracias por la pronta respuesta!

Voy a ver eso del SQLHelper para sql2005. Por otro lado te comento que parece que voy a tener que organizar el código en capas. Me gusta la idea que un cambio en las tablas no me impacte en la presentación. Planteando la siquiente arquitectura:

Presentación: formularios con validaciones sintácticas,
Negocios: validaciones propias del esta aplicación,
Acceso a Datos: conexión a la BD, mediante strings sql, o procedimentos almacenados, y usando la autenticación de windows o logins en el servidor y roles de aplicación.

Me surge la siguiente duda entre otras: Dónde debo manejar las transacciones? Mi idea es la siguiente:
En la capa de acceso a datos: Objetos que encapsulan los selects, inserts, etc;
En la capa de negocios: objetos que mediante métodos de los objetos de datos chekan la info en la bd.

Qué objeto y de qué capa tiene la responsabilidad de comenzar la transacción? Quizás un objeto genérico en la capa de datos. Pero quién decide si realizar el commit o no? un objeto de negocios?

Como verás estoy perdido en esto, y no quiero reinventar la rueda...
Bueno muchas gracias por tu atención.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:base de datos, 1 o muchas conexiones?

Publicado por P. J. (706 intervenciones) el 17/09/2008 07:39:09
Bueno, te respondo algo tarde ya estoy a punto de dormir. zZz

En la capa de Acceso a Datos (DAL), alli se invoca a los procedimientos almacenados donde puedes tener las transacciones y las puedes manejar con el COMMIT y ROLLBACK.
El que decide es la capa DAL, osea esta capa es la que enviara la informacion debidamente validados, que como bien dices para esto te puedes valer de una capa de negocios.

AHORA, yo en la capa DAL hago uso del SQLHelper, al cual le envio los parametros, conexion y el nombre del Procedimiento Almacenado, esta clase se encarga de conectarse a la BD y ejecutar los SP.

Si buscas aca en el foro esta el uso del COMMIT, ROLLBACK y la clase SQLHelper.

Suerte en esta nueva etapa de programacion, parece algo complicado pero es muy util.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:base de datos, 1 o muchas conexiones?

Publicado por Guillermo (73 intervenciones) el 17/09/2008 16:38:37
Hola, muchas gracias. Lo voy a buscar. Por otro lado tenía ganas de contar aquí el conjunto de decisiones que fui tomando para armar mi solución. Obviamente de las críticas de la gente de este foro espero enriquecerme; pero también puede llegar a servir como un modelo de una aplicación pequeña, para aquellos que como yo recién empiezan. No he encontrado en lla web un modelo que satisfaga todos esos pequeños detalles que me exigen, o al menos algo "todo junto" jeje.
Gracias de nuevo.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar