| |||
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? |
| |||
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". |
| |||
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: 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. |
| |||
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 |
| |||
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: |