Preguta de desarrollo

17/08/2005 - 15:26 por pagonza | Informe spam
Hola a todos:

Lo que quiero preguntar o mas bien plantear es lo siguiente. No se si .Net
puede ejecutar codigo antes y despues de ejecutar una metodo que llamas. Me
explico.

Imaguinemos una clase A. La mayoria de los metodos de la clase A tienen que
hacer lo mismo al empezar y al termitar el metodo. Como por ejemplo Abrir y
cerrar una conexion a una BD. Lo que no me gustaria o por lo menos intentar
evitar es tener que hacer en la primera linea y en la ultima linea llamadas a
alguna funcion.
Hay alguna forma de poder hacer estas operaciones antes y despues de
ejecutar los metodos de la clase A???. Imagual usando algun atributos, como
los de los [WebMetod] o alguna otra cosa.

Si hay alguna forma de hacerlo, os lo agradeceria mucho. Muchas gracias por
todo y un saluda.

Pablo :b
 

Leer las respuestas

#1 Miguel Angel Campos
18/08/2005 - 09:38 | Informe spam
Lo que quieres hacer es posible hacerlo en .NET, de hecho se hace por
ejemplo en las clases que derivan de
System.EnterpriseServices.ServicedComponent (es decir los componentes COM+).
Esta clase a su vez deriva de System.ContextBoundObject que es la que
implementa parte de la lógica necesario.

Tecnicamente tiene el nombre AOP (Aspect Oriented Programming), con este
nombre puedes encontrar muchas referencias en Google.
Lo que si te comento es que no es muy sencillo de aplicar, aunque en .Net se
ha reducido mucho todo lo necesario para aplicarlo, de hecho existen
framwork que te facilitan el trabajo:
http://sourceforge.net/projects/aopnet/

En la revista DotNetMania del número 10 de Diciembre de 2004 había un
artículo muy bueno de como implementarlo.
Igualmente en el libro "Essential .NET" de DonBox tambien viene un capítulo
dedicado.

Según he interpretado de tu correo, lo que quieres es abrir la conexión a la
base de datos al principio y cerrarla tras llamar a cada método, e incluso a
lo mejor indicar si es necesario iniciar una transacción o no. El tema de
las transacciones es lo que utiliza COM+ al indicar determinado atributos en
las clases que derivan de ServicedComponent.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"pagonza" escribió en el mensaje
news:
Hola a todos:

Lo que quiero preguntar o mas bien plantear es lo siguiente. No se si .Net
puede ejecutar codigo antes y despues de ejecutar una metodo que llamas.
Me
explico.

Imaguinemos una clase A. La mayoria de los metodos de la clase A tienen
que
hacer lo mismo al empezar y al termitar el metodo. Como por ejemplo Abrir
y
cerrar una conexion a una BD. Lo que no me gustaria o por lo menos
intentar
evitar es tener que hacer en la primera linea y en la ultima linea
llamadas a
alguna funcion.
Hay alguna forma de poder hacer estas operaciones antes y despues de
ejecutar los metodos de la clase A???. Imagual usando algun atributos,
como
los de los [WebMetod] o alguna otra cosa.

Si hay alguna forma de hacerlo, os lo agradeceria mucho. Muchas gracias
por
todo y un saluda.

Pablo :b

Preguntas similares