application domain

24/10/2009 - 09:14 por AAAAA | Informe spam
Hola amigos me gustaia saber en el mudo real en que puedo usar application
domain, lo puedo usar con programas Web?, con asemblies?

en que casos?

Gracias por su ayuda

Cesar

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
24/10/2009 - 14:21 | Informe spam
"AAAAA" wrote in message
news:%23N6$
Hola amigos me gustaia saber en el mudo real en que puedo usar application
domain, lo puedo usar con programas Web?, con asemblies?



El AppDomain siempre lo usas para cargar un assembly, y sí, se puede usar
desde una aplicación web siempre que tenga los suficientes permisos de CAS.

Un caso en el que te puede interesar, por ejemplo, es para poder
descargar de memoria una DLL. Me imagino que ya sabes que cuando un programa
de .Net llama a una DLL, la carga en memoria y ya se queda cargada "para
siempre", hasta que se cierre el programa. En cambio, si usas un appdomain,
puedes descargar el appdomain y con eso se descargan de memoria los
ensamblados que se hubieran cargado dentro.
Respuesta Responder a este mensaje
#2 AAAAA
28/10/2009 - 07:00 | Informe spam
Hola Alberto gracias por tu respuesta, pero noo me quedo muy claro, es decir
podrias decirme por ejemplo que programas lo usan y para que?, es decir ya
se que es para cargar un asembly pero por ejemplo en que es usado en la vida
real? para que querria cargar un asembly despues descargarlo? es decir ya
se que para liberar memoria pero en que casos es recomendable hacerlo?

Gracias

Cesar

Saludos
"Alberto Poblacion" wrote
in message news:%
"AAAAA" wrote in message
news:%23N6$
Hola amigos me gustaia saber en el mudo real en que puedo usar
application domain, lo puedo usar con programas Web?, con asemblies?



El AppDomain siempre lo usas para cargar un assembly, y sí, se puede
usar desde una aplicación web siempre que tenga los suficientes permisos
de CAS.

Un caso en el que te puede interesar, por ejemplo, es para poder
descargar de memoria una DLL. Me imagino que ya sabes que cuando un
programa de .Net llama a una DLL, la carga en memoria y ya se queda
cargada "para siempre", hasta que se cierre el programa. En cambio, si
usas un appdomain, puedes descargar el appdomain y con eso se descargan de
memoria los ensamblados que se hubieran cargado dentro.


Respuesta Responder a este mensaje
#3 Alberto Poblacion
28/10/2009 - 08:44 | Informe spam
"AAAAA" wrote in message
news:
Hola Alberto gracias por tu respuesta, pero noo me quedo muy claro, es
decir podrias decirme por ejemplo que programas lo usan y para que?, es
decir ya se que es para cargar un asembly pero por ejemplo en que es usado
en la vida real?



Un ejemplo: Sql Server 2005 o posterior. Como probablemente sabrás, es
posible instalar una DLL hecha con .Net dentro del Sql Server, por ejemplo
para crear dentro del servidor procedimientos almacenados o triggers que
estén programados con uno de los lenguajes de .Net en lugar de Transact Sql.
Sin embargo, como el funcionamiento del servidor normalmente es crítico, y
no queremos que se pueda "venir abajo" bajo ninguna circunstancia, no
interesa que pueda ejecutar "cualquier cosa" (como ocurría con los antiguos
procedimientos extendidos que se programaban con C o C++ en Sql Server
2000). Para evitarlo, cuando instalas el ensamblado en Sql Server, en el
comando "create assembly" se le pasa un parámetro parecido a "with
permission_set=safe" o "...=external_access". Esto le está diciendo al Sql
Server que queremos limitar los permisos de la dll que instalamos a sólo
ciertas operaciones que dependen del "permission_set" indicado. ¿Y cómo lo
consigue el Sql Server? Pues precisamente creando un dominio de aplicación,
pasándole las restricciones de permisos a ese dominio, y luego cargando el
ensamblado dentro del dominio.
Además, si hubiera cientos o miles de ensamblados de este tipo,
interesaría ir descargando los que no estén en uso para ahorrar memoria. No
sé si realmente el Sql Server los descarga o no, o bajo qué circunstancias
lo hace, pero si efectivamente los descarga, el método para conseguirlo
consiste en descargar el dominio que previamente ha usado para cargar el
assembly.
Respuesta Responder a este mensaje
#4 AAAAA
24/11/2009 - 04:31 | Informe spam
Muchas gracias Alberto por tu valiosa ayuda.

Saludos

Cesar
"Alberto Poblacion" wrote
in message news:
"AAAAA" wrote in message
news:
Hola Alberto gracias por tu respuesta, pero noo me quedo muy claro, es
decir podrias decirme por ejemplo que programas lo usan y para que?, es
decir ya se que es para cargar un asembly pero por ejemplo en que es
usado en la vida real?



Un ejemplo: Sql Server 2005 o posterior. Como probablemente sabrás, es
posible instalar una DLL hecha con .Net dentro del Sql Server, por ejemplo
para crear dentro del servidor procedimientos almacenados o triggers que
estén programados con uno de los lenguajes de .Net en lugar de Transact
Sql. Sin embargo, como el funcionamiento del servidor normalmente es
crítico, y no queremos que se pueda "venir abajo" bajo ninguna
circunstancia, no interesa que pueda ejecutar "cualquier cosa" (como
ocurría con los antiguos procedimientos extendidos que se programaban con
C o C++ en Sql Server 2000). Para evitarlo, cuando instalas el ensamblado
en Sql Server, en el comando "create assembly" se le pasa un parámetro
parecido a "with permission_set=safe" o "...=external_access". Esto le
está diciendo al Sql Server que queremos limitar los permisos de la dll
que instalamos a sólo ciertas operaciones que dependen del
"permission_set" indicado. ¿Y cómo lo consigue el Sql Server? Pues
precisamente creando un dominio de aplicación, pasándole las restricciones
de permisos a ese dominio, y luego cargando el ensamblado dentro del
dominio.
Además, si hubiera cientos o miles de ensamblados de este tipo,
interesaría ir descargando los que no estén en uso para ahorrar memoria.
No sé si realmente el Sql Server los descarga o no, o bajo qué
circunstancias lo hace, pero si efectivamente los descarga, el método para
conseguirlo consiste en descargar el dominio que previamente ha usado para
cargar el assembly.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida