Objetos Globales

10/02/2010 - 22:16 por Jorge Ochoa | Informe spam
Como Estan

tengo un problema quiero hacer un aplicacion en web pero para ingresar tengo
que validar mi usuario, para lo cual el sistema ya tiene creado una dll para
eso, el problema es que es en VB6.0 en el login nosolo hace eso si no que
hace un poco de cosas mas, estar creando un objeto hace que se demore demacia
para la conexion, por lo cual quiero hacer una solo vez, y ese objeto sea
global para toda la aplicacion sin poner en session ya que el los servidores
no funciona eso
como hago objetos globales a toda la aplicaion
 

Leer las respuestas

#1 Alberto Poblacion
11/02/2010 - 08:04 | Informe spam
"Jorge Ochoa" wrote in message
news:
tengo un problema quiero hacer un aplicacion en web pero para ingresar
tengo
que validar mi usuario, para lo cual el sistema ya tiene creado una dll
para
eso, el problema es que es en VB6.0 en el login nosolo hace eso si no que
hace un poco de cosas mas, estar creando un objeto hace que se demore
demacia
para la conexion, por lo cual quiero hacer una solo vez, y ese objeto sea
global para toda la aplicacion sin poner en session ya que el los
servidores
no funciona eso
como hago objetos globales a toda la aplicaion



A ver si lo he entendido: Tienes una aplicación ASP.NET desde la cual
quieres hacer una llamada a una DLL (tipo COM) escrita en VB6, ¿Es asi?

Para hacerla global, basta con que crees la referencia una sola vez, y
la guardes en una variable estática o en el objeto Application. Un sitio
adecuado para crearla sería el método Application_Start en el global.asax:

MiLibreria.MiClase ref = new MiLibreria.MiClase();
Application["MiLibreria"] = ref;

Después, para usarla desde la página:

MiLibreria.MiClase ref = (MiLibreria.MiClase)Application["MiLibreria"];
resultado = ref.MiMetodo();

Sin embargo, una advertencia: La DLL de VB seguramente estará usando el
modelo STA (Single-Threaded Apartment), mientras que la aplicación ASP.NET
es free-threaded. La conmutación entre modelos perjudicará el rendimiento de
tu aplicación web, que se irá "frenando" al no poder acceder desde dos hilos
al objeto guardado en el Application. Si de verdad necesitas que funcione
"bien" (una aplicación web de alto tráfico con muchas llamadas a la DLL), el
remedio es instalarla en COM+ (los Servicios de Componentes) y llamarla a
través de System.EnterpriseServices. Los servicios de Componentes pueden
mantener un "pool" de instancias de tu componente, de forma que no se
"frene" el programa multi-hilo (la aplcación asp.net) que hace las llamadas.

Preguntas similares