Principales respuestas
Librerias comúnes

Pregunta
-
Buenas tardes, soy nuevo en el desarrollo de aplicaciones web, estoy desarrollando aplicaciones en aspx, c#, y montándolas en un servidor iis. Hasta aquí más o menos todo bien. <o:p></o:p>
Comento, he creado una clase en c#, que se llama “librerías”, y que contiene varios procedimientos comunes a cualquier aplicación (conexión a datos, consultas comunes, guardado de datos, etc.etc.), y en cada una de mis aplicaciones web he agregado la referencia a “librerías”, lo que funciona ok. <o:p></o:p>
El problema es que la Aplicación Web 1 funciona desde hace un tiempo y tiene referencias a “librerías”. Así también la segunda, pero la tercera que se está desarrollando ahora, también tiene ref. a “librerías”, la cual se está actualizando.<o:p></o:p>
La pregunta es, como se puede hacer para que una vez terminada de actualizar “librerías”, La aplicación web 1, 2 ...5, puedan utilizar "librerias nva version", sin tener que recompilar todo/s el/los sitios.<o:p></o:p>
Espero pueda ser claro, y sus ayudas serán bienvenidas. <o:p></o:p>
Desde ya muchas gracias.<o:p></o:p>
Respuestas
-
hola
>>puedan utilizar "librerias nva version", sin tener que recompilar todo/s el/los sitios
habria que probar, pero si en la nueva libreria no has cambiado la forma de ningun metodo que expone podrias reutilizarla si copias la dll al \bin del sitio web
ahora bien si a los metodo les agregaste parametros nuevos en ese caso vas a tener que abrir los proyectos, recompilar (arreglando los errores que se presenten) y publicar
igual no es nada seguro que funcione aunque no cambiaras la forma, mas que nada si se genero una nueva version
recuerdo que para esto existia la GAC (global assembly cache) donde podias publicar versiones de la libreria sin afectar el funcionamiejnto de los sitios, pero cada sitio usara la version para la cual fue desarrollado
podrias hacer una prueba de montar localmente en un sitio en el iis, el codigo publicado de un sitio1 y poner la dll nueva a ver como se comporta cuando accedes
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Jorge TurradoMVP martes, 10 de octubre de 2017 11:29
- Marcado como respuesta Juan MondragónModerator lunes, 16 de octubre de 2017 20:56
-
Si instalas la DLL en el GAC (y no en el bin de cada proyecto), todas las webs acudirán al GAC para usar esa única copia de la DLL.
Cuando hagas una nueva versión de la DLL, puedes añadirla también al GAC. En principio, cada programa usará la misma versión con la que fue compilado (no necesariamente la última que añadiste). Pero si lo deseas puedes forzarlo a que use la última versión. Eso se hace metiendo una pequeña instruccion "bindingRedirect" en el web.config que básicamente significa "cada vez que requieras la versión x.x.x.x de esta dll, usa en su lugar la versión y.y.y.y". Si se necesita hacer esto para muchas aplicaciones, se puede construir lo que se llama "publisher policy", que básicamente es un ficherito xml que tiene la misma instrucción bindingRedirect, y que se firma y se instala en el GAC. Eso hace que todaas las aplicaciones que usan la versión x.x.x.x pasen automáticamente a usar la y.y.y.y.
- Propuesto como respuesta Jorge TurradoMVP martes, 10 de octubre de 2017 11:29
- Marcado como respuesta Juan MondragónModerator lunes, 16 de octubre de 2017 20:56
Todas las respuestas
-
hola
>>puedan utilizar "librerias nva version", sin tener que recompilar todo/s el/los sitios
habria que probar, pero si en la nueva libreria no has cambiado la forma de ningun metodo que expone podrias reutilizarla si copias la dll al \bin del sitio web
ahora bien si a los metodo les agregaste parametros nuevos en ese caso vas a tener que abrir los proyectos, recompilar (arreglando los errores que se presenten) y publicar
igual no es nada seguro que funcione aunque no cambiaras la forma, mas que nada si se genero una nueva version
recuerdo que para esto existia la GAC (global assembly cache) donde podias publicar versiones de la libreria sin afectar el funcionamiejnto de los sitios, pero cada sitio usara la version para la cual fue desarrollado
podrias hacer una prueba de montar localmente en un sitio en el iis, el codigo publicado de un sitio1 y poner la dll nueva a ver como se comporta cuando accedes
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Jorge TurradoMVP martes, 10 de octubre de 2017 11:29
- Marcado como respuesta Juan MondragónModerator lunes, 16 de octubre de 2017 20:56
-
Si instalas la DLL en el GAC (y no en el bin de cada proyecto), todas las webs acudirán al GAC para usar esa única copia de la DLL.
Cuando hagas una nueva versión de la DLL, puedes añadirla también al GAC. En principio, cada programa usará la misma versión con la que fue compilado (no necesariamente la última que añadiste). Pero si lo deseas puedes forzarlo a que use la última versión. Eso se hace metiendo una pequeña instruccion "bindingRedirect" en el web.config que básicamente significa "cada vez que requieras la versión x.x.x.x de esta dll, usa en su lugar la versión y.y.y.y". Si se necesita hacer esto para muchas aplicaciones, se puede construir lo que se llama "publisher policy", que básicamente es un ficherito xml que tiene la misma instrucción bindingRedirect, y que se firma y se instala en el GAC. Eso hace que todaas las aplicaciones que usan la versión x.x.x.x pasen automáticamente a usar la y.y.y.y.
- Propuesto como respuesta Jorge TurradoMVP martes, 10 de octubre de 2017 11:29
- Marcado como respuesta Juan MondragónModerator lunes, 16 de octubre de 2017 20:56