Pregunta

Escenario: Tengo una página maestra bastante estándar para todas mis páginas. Incluye los formularios de inicio de sesión habituales y otras listas dinámicas que se extraerán en cada página. Los diseñadores web ya pueden modificar el marcador de posición de contenido central de cada página. Pero aún así, el diseño y el diseño de la página maestra todavía están en mi proyecto y cualquier modificación al diseño debe hacerse en Visual Studio y el proyecto se debe volver a compilar y volver a implementar.

¿Cuál es la mejor manera de proporcionar acceso casi completo al diseño de la página maestra a través de un CMS? Algunos de los problemas que puedo identificar es la inclusión de listas dinámicas o controles específicos, como un formulario de inicio de sesión.

Gracias.

¿Fue útil?

Solución

¿Sería posible poner marcadores de posición en la página maestra en lugar de las áreas que los diseñadores deberían poder editar? Dado que las páginas maestras solo son editables en Visual Studio, puede ser su única opción factible en este momento. Un problema con este enfoque es que es poco probable que el contenido que se coloca en los marcadores de posición sea válido, ya que es probable que tenga etiquetas abiertas en un marcador de posición y cerradas en otro.

<html>
<head>
<title></title>
<asp:PlaceHolder ID="headerContent" runat="server"></asp:PlaceHolder>
</head>
<body>

<asp:PlaceHolder ID="beforeContent" runat="server"></asp:PlaceHolder>

<asp:PlaceHolder ID="centralContent" runat="server"></asp:PlaceHolder>

<asp:PlaceHolder ID="afterContent" runat="server"></asp:PlaceHolder>

</body>
</html>

Sé que es feo, pero podría darte el control que necesitas (siempre y cuando no te importe que el validador XHTML te advierta todo el tiempo). Lo que pones en los marcadores de posición podrían ser tus controles de usuario o contenido literal o lo que sea, pero tendrías que cargarlo dinámicamente.

¿Pensamientos?

EDITAR: Esto no funcionará. PlaceHolder va a representar <div> etiquetas que arruinarían las cosas. Tal vez podría extender PlaceHolder y anular cómo representa su HTML.

Otros consejos

A menos que desee alojar su contenido dentro de un portal, no sé una respuesta perfecta para esto.

Si los bits que diseñan equivalen a verse y sentirse para la página, entonces esto puede ser controlado por CSS y puede permitirles crear temas usando diferentes archivos CSS.

Esta es una pregunta interesante y no hay una solución perfecta. Trabajé para una tienda de comercio electrónico con este problema y, francamente, solo pedí a los diseñadores en muchos casos que me proporcionaran html y css, luego tomaría las piezas html y css y las agregaría a mi proyecto. Sí, esto fue tedioso ...

Luego construimos un cms donde los diseñadores podían copiar y pegar su html en editores html, y almacenaríamos esas piezas de html en una base de datos. Mi aplicación web tomaría los de la base de datos en tiempo de ejecución. Esto resuelve algunos problemas, pero no todos, ya que no les dio un control completo del diseño de la página web.

La conclusión es que debe estandarizar la forma en que el diseñador le enviará su trabajo. Si tiene eso, y puede contar con html y css, puede comenzar a pensar en la posibilidad de construir un CMS en torno a eso. En estos días de RAD, me ha resultado más fácil trabajar con el html y css que se me entregó y simplemente copiar y pegar las piezas en mi página maestra y otras páginas según sea necesario.

Si bien esta no es una respuesta de CMS, puede permitir que los diseñadores abran las páginas maestras en Expression Web. No diré que es la mejor herramienta del mundo, pero he tenido diseñadores que diseñaron los diseños de la página maestra en Expression con buenos resultados.

Sin embargo, hay un punto doloroso. Si se abre todo el proyecto, el diseñador verá el código detrás de los archivos como elementos separados, no como la vista en árbol vista en Visual Studio.

Me imagino que se puede extraer la página maestra para usarla con Expression a través de un CMS, pero no hay una forma integrada de hacerlo, ni conozco una herramienta de terceros para hacerlo. Esperemos que Expression Web 3 haga las cosas más fáciles.

Si tiene un CMS, puede ser mejor que le dé control total sobre el contenido de la página. Si hay cosas que el CMS no puede hacer, puede buscar escribir extensiones o módulos de complementos para el CMS que sus diseñadores puedan colocar en la página en el editor de páginas del CMS.

Si su CMS no admite módulos de complementos, puede estar tratando de forzar tanto al CMS como a las páginas maestras a hacer cosas que no estaban destinadas a hacer.

Si lo anterior no funciona en su situación, aquí hay otro pensamiento: coloque marcos en línea en su página maestra que alojen páginas que se editan en el CMS.

Espero que eso ayude.

Pregunta interesante,
He estado incursionando en esa área hace un tiempo.

¿Qué tan bien informados están estos diseñadores web cuando no están en el ámbito de no-inside-Photoshop-or-flash?

Si usa un DIY-CMS, quizás pueda modelar los objetos más susceptibles, e. sol. hacer una lista genérica (como en lo que desee, no en lo que sientan ;-)) y una forma de ingresar al diseño, si corresponde.

Siempre que tenga un marco completo configurado, que se ocupe de los atributos disponibles para los diseñadores a través del CMS, no debería haber ninguna necesidad de recompilar ... pero, por supuesto, puedo ver fácilmente un desarrollador ( léase: yo) tropezando en la brecha de nitty-pitty-perfection ...

Me temo que el camino más fácil y manejable es estandarizar cómo los diseñadores expresan sus necesidades & amp; quiere que ... simplemente no se codificará a sí mismo ...

¿Podría proporcionar algunos ejemplos?

Bueno, con un las páginas del Proyecto de aplicación web son no se compiló hasta que se accedió (el enlace es 2005 pero aún se aplica). Esto significa que la página real .aspx (y .ascx, etc.) se implementa en su estado original. Un diseñador puede actualizar el formato de la página en el servidor y las actualizaciones se compilarán la próxima vez que alguien solicite ese contenido.

Sería relativamente trivial permitir a los diseñadores descargar las páginas actuales y cargar reemplazos a través de la interfaz de usuario de su sitio web. Sin embargo, no es muy seguro (y probablemente nunca debería hacerse). Sería mejor permitir que los diseñadores accedan al directorio virtual a través de la web para que puedan conectarse a él utilizando una herramienta como Expression Web . De esta manera, el diseñador puede abrir el sitio web actual, editar páginas e impulsar los resultados directamente a la producción (aunque pueda parecer aterrador).


A medida que me votan negativamente por tener una respuesta correcta, permítanme señalar algo.

Los proyectos del sitio web compilan código detrás y páginas a pedido. Si necesita actualizar el código regularmente, es una solución aceptable.

Los proyectos de aplicaciones web se pueden configurar para que se puedan actualizar. Todos los códigos subyacentes y las clases se compilan en un ensamblado, y todas las páginas aspx, ascx, etc. se implementan y compilan a pedido. Esto significa que un diseñador puede conectarse al sitio web, actualizar el diseño y el contenido estático, y ver los cambios en la próxima solicitud.

Este es mi método preferido de implementación. Tengo algunos proyectos de aplicaciones web en la naturaleza, con archivos aspx actualizables implementados junto con mi dll. La idea es que los usuarios del sitio web puedan alterar la interfaz de usuario sin tener que enviarme actualizaciones para que pueda volver a compilarlo.

un .master es solo un archivo de texto. Pueden editarlo como quieran. Ciertamente, no hay nada que le hagan que requiera que vuelva a compilar el código solo para verlo. Esa es la gran victoria con Master Pages en primer lugar: los diseñadores y otros no programadores pueden editarlos manualmente sin romper nada.

Déles acceso al archivo bajo control de origen y déjelos enloquecer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top