Abrir cerrar Conexion Mysql C#?

Iniciado por yercaos, 23 Marzo 2015, 15:10 PM

0 Miembros y 1 Visitante están viendo este tema.

yercaos

HOla estoy empezando a programar en c# y que me recomiendan, deberia mantener abierta una conexión o abrir y cerrar cuando termine las consultas?

Usuario Invitado

Las conexiones se deben de cerrar al terminar cada proceso. Puedes utilizar la misma conexión para hacer X consultas, pero al final, siempre debes cerrarlas para liberar cursors, handlers, etc, que son recursos de la conexión a la BBDD. Otro problema puede ser que si tenemos una aplicación multi threading, ambos hilos pueden acceder paralelamente a la misma conexión y ocurrirá un problema, para esto es conveniente usar synchronized.

Si tienes que hacer muchas conexiones simultáneas, mejor usa un pool.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

elvehe

#2
Y que pasaria si utilizamos una sola conexión en toda la aplicación y lo serramos al finalizar la aplicacion, es decir sin desconectarnos en cada proceso .Como en la programacion web.

Creo que esta es la mejor opcion. Te ahorras codigo

Shell Root

Si mal no recuerdo cuando lei patterns en PHP, lo que se debe de usar es Singleton. Si lo que digo es una burrada, es porque ando al pedo. jajajaja
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Usuario Invitado

Singleton es considerado una mala práctica, para algunos es un anti patrón. Los objetos singleton dificultan la programación orientada a objetos. El simple hecho de ser un singleton va en contra de la POO, cuyo principal objetivo es que el acoplamiento entre clases sea lo más débil posible, reutilizar código entre otras.

¿Qué pasa si cambia la especificación del singleton? Debemos cambiar todos los bloques en donde hagamos uso del singleton. ¿Qué tan posible es reutilizar código de una aplicación que hace uso de singletons en otra diferente? Prácticamente nula. Cuando usamos singletons, la reutilización, mantenimiento y testeabilidad, baja a niveles muy bajos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

elvehe

Tienen razon el singleton va en contra de la modularidad.
Pero si estamos hablando de una simple conexion que sabemos que siempre se va a ser igual, creo que es valido  ademas te ahorraria mucho codigo al estar cerrando y abriendo conexiones.
:P entonces es aceptable.

Usuario Invitado

En aplicaciones pequeñas que no van a escalar, no tiene mucha importancia, no hay impacto negativo, solo seria un mal hábito pero sin repercusiones en el funcionamiento de la aplicación. De todas formas existen alternativas al Singleton.

Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein