Desarrollo Conceptual C#

16/01/2004 - 11:47 por carlos | Informe spam
Solo una cuestión conceptual en el desarrollo en ASP.NET.

Tenemos páginas ASPX, con sus componentes (controles
web). Ahora imaginamos que creamos controles web propios
que utilizan accesos a base de datos.

La cuestión es cómo puedo abstraerme de acceder a la
conexión de base de datos, es decir, en la página yo
tengo el control y en la clase codebehind quiero evitar
tener que pasarle al control una conexión ya abierta para
que éste haga sus consultas.

Es decir, quisiera que en cada página para todos los
controles de alguna forma se tenga una conexión (en
alguna parte) y los controles en su codigo accedieran de
alguna forma a esa conexión e hicieran sus consultas.
Sería la página de alguna forma la que abriera la
conexión y la cerrara...pero en el transcurso de la
ejecución de su código behind los controles que sean
utilizaran esa conexión abierta para ejecutar consultas.

Otra forma de actuar sería utilizar para todas las
páginas o gran parte de eŽstas la misma conexión.

Luego habría que pensar los problemas de rendimiento,
cómo se maneja el pool de conexiones, qué problemas
habría...etcétera...

Alguna sugerencia ?.

Gracias.
 

Leer las respuestas

#1 A.Poblacion
16/01/2004 - 16:20 | Informe spam
Sugerencia:
- Pon la cadena de conexión en el Web.Config
- Que cada control abra la conexión utilizando esa cadena y luego la cierre.
Este proceso es muy rápido, porque la conexión en realidad no se abre y se
cierra, sino que internamente se toma del pool y se devuelve al mismo.

Podrías abrir y cerrar la conexión a nivel de página y guardarla en el
Session para que los controles accedan a ella, o pasarsela a los controles a
través de una propiedad, pero no merece la pena porque el mecanismo del pool
es muy eficiente.



"carlos" wrote in message
news:077d01c3dc1e$297fd940$
Solo una cuestión conceptual en el desarrollo en ASP.NET.

Tenemos páginas ASPX, con sus componentes (controles
web). Ahora imaginamos que creamos controles web propios
que utilizan accesos a base de datos.

La cuestión es cómo puedo abstraerme de acceder a la
conexión de base de datos, es decir, en la página yo
tengo el control y en la clase codebehind quiero evitar
tener que pasarle al control una conexión ya abierta para
que éste haga sus consultas.

Es decir, quisiera que en cada página para todos los
controles de alguna forma se tenga una conexión (en
alguna parte) y los controles en su codigo accedieran de
alguna forma a esa conexión e hicieran sus consultas.
Sería la página de alguna forma la que abriera la
conexión y la cerrara...pero en el transcurso de la
ejecución de su código behind los controles que sean
utilizaran esa conexión abierta para ejecutar consultas.

Otra forma de actuar sería utilizar para todas las
páginas o gran parte de e´stas la misma conexión.

Luego habría que pensar los problemas de rendimiento,
cómo se maneja el pool de conexiones, qué problemas
habría...etcétera...

Alguna sugerencia ?.

Gracias.

Preguntas similares