Foros del Web » Programación para mayores de 30 ;) » .NET »

una o varias conexiones para varios formularios

Estas en el tema de una o varias conexiones para varios formularios en el foro de .NET en Foros del Web. Hola, tengo una duda... Si tengo varios formularios, que es mejor crear una conexión en un módulo y utilizar esta en todas las pantallas o ...
  #1 (permalink)  
Antiguo 02/02/2015, 11:50
 
Fecha de Ingreso: agosto-2014
Mensajes: 44
Antigüedad: 9 años, 8 meses
Puntos: 0
una o varias conexiones para varios formularios

Hola, tengo una duda... Si tengo varios formularios, que es mejor crear una conexión en un módulo y utilizar esta en todas las pantallas o crear una conexión nueva en cada formulario?
  #2 (permalink)  
Antiguo 02/02/2015, 13:35
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: una o varias conexiones para varios formularios

Lo mejor en realidad es separar completamente toda la logica de acceso a datos de la capa de presentacion, e incluso separar la logica de negocios de la capa de presentacion.

Sin importar si tenes 1 "formulario" (asumo que te refieres a una ventana?) o varias, todo el codigo de acceso a datos deberia estar separado de la UI, incluso en un proyecto aparte que NO tenga referencias a assemblies de presentación tales como System.Windows.Forms.dll o PresentationFramework.dll. De esta manear garantizas la "separation of concerns" ya que tratar de referenciar alguna clase de UI desde el codigo de acceso a datos o de logica de negocio va a resultar en un error de compilacion.

Por otra parte, como hablas de "conexiones" me suena a que estas usando ADO.Net y poniendo el SQL en strings como se hacía en los '90. Te sugiero que investigues Entity Framework o algun otro ORM, ya que los mismos manejan de manera automática el connection pooling para que no tengas que preocuparte de estos temas, sin mencionar que te permiten trabajar con un modelo de objetos fuertemente tipado, al contrario de la forma antigua que usaba DataTables, etc que son basicamente diccionarios y funcionan sobre la base de "stringly typed".
  #3 (permalink)  
Antiguo 03/02/2015, 10:33
 
Fecha de Ingreso: agosto-2014
Mensajes: 44
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: una o varias conexiones para varios formularios

Hola agleiva, primero gracias por la ayuda...Pero sinceramente, no he entendido nada de nada... Tengo un nivel muy básico de .NET y aun más básico en SQL Server, aun así he conseguido hacerme varios programitas complejos, pero la verdad es que con palabras tán técnicas, no llego...Vamos que no he entendido nada. Lo siento.

Intento explicarme mejor, yo tengo un programa donde en cada ventana o formulario como lo quieras llamar, tiene que conectarse a una base de datos y coger los datos de esta, a veces necesitare conectar varias BD para poder coger datos del cliente, como pueden ser sus ventas, datos personales, pruebas médicas.... Había creado una conexión tipo:
Código PHP:
Public Cnn As SqlConnection = New SqlConnection("Data Source=" NomEquipo "\OPVIN " ";Initial Catalog=OPTIPLUS;Integrated Security=True"
Lo hago así por que creando la conexión con el asistente, me da la sensación que va mas lento.

Mi pregunta era si es mejor crear una conexión nueva en cada formulario o ventana, o por el contrario ir abriendo y cerrando esta conexión y utilizar solo una.
  #4 (permalink)  
Antiguo 04/02/2015, 01:46
 
Fecha de Ingreso: octubre-2012
Ubicación: España
Mensajes: 30
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: una o varias conexiones para varios formularios

Lo que te comenta agleiva es que en los formularios no debes hacer las conexiones a la bd, es más correcto hacerlo aparte creando tres capas (o más según la arquitectura que uses).

En tu solucion creas tres proyectos, 2 bibliotecas de clases y el otro con los formularios. 1 proyecto de biblioteca de clases será la capa de acceso a datos, el otro será la capa de negocio y el de los formularios es la capa de presentación, en el web.config de este defines la cadena de conexión de la bd.

La capa de acceso a datos es la que se comunica con la bd, creas las clases que necesites y los métodos para añadir, eliminar y esas cosas. Aquí y sólo aquí es donde haces las conexiones a la bd, puedes usar System.Configuration para hacer referencia a la cadena de conexión.

En la capa de negocio creas tus clases con métodos que llaman a los métodos de la capa anterior.

En la capa de presentación, en el code behind del formulario o en el controlador si usas MVC creas un método que llama al método de la capa de negocio que a su vez llama al método de la capa de acceso a datos. No olvides añadir las referencias entre capas

A groso modo es algo así. Tienes que investigar sobre arquitecturas de programación, en este caso en 3 capas otra más compleja es la arquitectura Domain Driven Design. También te recomiendo que investigues sobre Entity Framework que te va a facilitar la vida y patrones como UoW e IoC.

Espero que te sirva al menos para ir investigando, es que es un poco largo para explicarlo bien en un mensaje
  #5 (permalink)  
Antiguo 04/02/2015, 02:53
 
Fecha de Ingreso: agosto-2014
Mensajes: 44
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: una o varias conexiones para varios formularios

Gracias Thanos, la verdad que ahora si que lo he entendido! Creo que estoy un poco verde para un proyecto como el que manejo... No parece complicado pero me gusta controlar lo que hago, me informaré bien sobre las capas y Entity Framework!

Etiquetas: conexiones, formularios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:00.