Tengo un sitio que se implementa en más de una docena de clientes. El sitio web principal tiene una plantilla base y cada cliente tiene una carpeta de cliente que anula los colores. El problema es que hay muchos archivos CSS, por lo que llevar a cabo un cambio que nos obligue a actualizar cada cliente lleva mucho tiempo. El proceso de compilación automatizado se ocupa de reemplazar los archivos actualizados.Uso de C# para generar dinámicamente archivos CSS
Me gustaría cambiar los archivos CSS para que sean controles de usuario en su lugar, y esos controles de usuario podrían heredar de otro usuariocontrol donde se almacenan los valores específicos del cliente.
Así que, en lugar de tener un archivo forms.css y luego un archivo /client/forms.css, tendría un archivo Forms.ascx que hereda de un control de usuario que contiene los colores.
Ex:
<%@ Control Language="C#" ClassName="Forms" %>
<%@ Register TagPrefix="css" TagName="Client" Src="~/css/ClientStyling.ascx" %>
/* CSS Document */
body
{
color:<%=Client.BodyColor%>
}
Entonces el masterpage heredaría de la usercontrol lugar. Esto haría que el mantenimiento de los sitios del cliente sea mucho más fácil.
¿Es esta solución eficiente y recomendable? ¿O hay una mejor manera de lograr el mismo resultado final?
Si esto es posible, ¿también sería posible hacer que el control Forms.ascx produzca el marcado como CSS? O haga la extensión .css y aún tenga las propiedades ascx?
¿Prevé que Client.BodyColor provenga de una base de datos o un archivo de configuración? –
Sería difícil de codificar en un control de usuario. El proceso de construcción automatizado se encargaría de eso. –