none
Librerias comúnes RRS feed

  • 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>

    lunes, 9 de octubre de 2017 22:21

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

    martes, 10 de octubre de 2017 6:17
  • 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.

    martes, 10 de octubre de 2017 11:09

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

    martes, 10 de octubre de 2017 6:17
  • 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.

    martes, 10 de octubre de 2017 11:09