Método para administrar el control de versiones de resources estáticos: files javascript / css / html, etc.

Estoy trabajando en un sistema RIA que tiene una gran cantidad de resources estáticos.

El sistema henetworkingado cambia el nombre de los files estáticos (con un número de versión) durante el process de compilation y tiene un process que se ejecuta en todas las páginas (que se almacenan en una database henetworkingada) y actualiza los nombres de los files en los enlaces.

Ahora corremos junto con esta una aplicación Asp.Net MVC. La situación se vuelve más compleja por el hecho de que los 2 sistemas comparten resources estáticos.

Estoy contemplando poner el número de versión en el file web.config, y luego agregar una versión modificada del código de este artículo: http://www.codeproject.com/KB/aspnet/autojscssversion.aspx , – luego dejar que el legado procesar gestionar la numeración en TODOS los resources estáticos para ambos sistemas.

¿Alguien ha encontrado mejores methods para manejar este tipo de cosas?

Sin embargo, estoy un poco sorprendido de que todo sea tan torpe. ¿Hay algún mejor enfoque?

Un enfoque común para garantizar que los browseres descarguen las últimas versiones de sus files estáticos es insert una cadena de consulta en la URL.

Por ejemplo, su aplicación solicitaría algo como /scripts/common.js?version=4 .

Esto probablemente networkinguciría la complejidad de su process de compilation, ya que no necesitaría renombrar ningún file durante la compilation. Luego, simplemente podría poner el número de compilation / versión en un file de configuration y cambiar todas las URL para agregar la cadena de consulta de la versión en time de ejecución.

No puedo decir lo suficiente sobre cómo cambiar las llamadas a resources estáticos en un file incluido. Suena terriblemente fácil, pero desde que llegué a esta ruta, he networkingucido mis gastos generales de mantenimiento a casi nada. Un cambio arregla cada página. Sí, hay un poco más de carga de files que pueden no utilizarse en ciertas páginas, pero en el gran esquema de cosas es pequeño y se compensa con el almacenamiento en caching.

Desde el punto de vista de un esquema, tengo una convención de nomenclatura que prefija los files con la base de código (jquery, themeroller, etc.) seguido de un punto, más el nombre del guión, seguido de un punto y js.

Además, haga un gran uso del código alojado por CDN cuando sea posible. Google y Microsoft alojan varios proyectos a través de CDN que se cargarán más rápido al usuario que los serveres de la mayoría de las personas. También distribuye conexiones HTTP entre serveres, lo que en teoría también debería ofrecer un ligero aumento en el performance. Google tiene algunas estrategias únicas para lidiar con el control de versiones en files alojados en CDN que también pueden ser muy útiles. El único inconveniente es que el código alojado por CDN solo está disponible para proyectos importantes como JQuery, etc., que no lo ayuda cuando utiliza uno de los muchos otros scripts de calidad disponibles.