Как обеспечить простое редактирование главных страниц ASP .NET для дизайнеров?

Сценарий: у меня есть довольно стандартная главная страница для всех моих страниц. Он включает в себя обычные формы входа и другие динамические списки, которые можно извлечь на каждой странице. Веб-дизайнеры уже могут изменить центральный заполнитель содержимого каждой страницы. Но, тем не менее, дизайн и макет главной страницы все еще находятся в моем проекте, и любые изменения в дизайн должны быть внесены в Visual Studio, а проект повторно скомпилирован и повторно развернут.

Как лучше всего обеспечить почти полный доступ к созданию главной страницы через CMS? Некоторые из проблем, которые я могу определить, - это включение каких-либо динамических списков или определенных элементов управления, таких как форма входа в систему.

Спасибо.


person mbp    schedule 04.03.2009    source источник


Ответы (8)


Можно ли было бы разместить заполнители на главной странице вместо областей, которые дизайнерам следует разрешить редактировать? Поскольку главные страницы доступны для редактирования только в Visual Studio, это может быть вашим единственным возможным вариантом на данный момент. Одна проблема с этим подходом заключается в том, что содержимое, помещенное в заполнители, вряд ли будет действительным, так как у вас, вероятно, будут теги, оставленные открытыми в одном заполнителе и закрытыми в другом.

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

Я знаю, что это уродливо, но это может дать вам необходимый контроль (если вы не возражаете против того, что валидатор XHTML постоянно предупреждает вас). То, что вы вставляете в заполнители, может быть вашими пользовательскими элементами управления или буквальным контентом или чем-то еще, но вам придется загружать его динамически.

Мысли?

РЕДАКТИРОВАТЬ: это не сработает. PlaceHolder будет отображать <div> теги, которые могут все испортить. Возможно, вы могли бы расширить PlaceHolder и переопределить способ отображения HTML.

person Cᴏʀʏ    schedule 11.03.2009
comment
Я реализовал решение, которое немного похоже на это. Однако я использовал ContentPlaceHolder вместо asp: PlaceHolder. - person mbp; 12.03.2009

Если вы не хотите размещать свой контент на портале, я не знаю идеального ответа на этот вопрос.

Если элементы, которые они разрабатывают, сводятся только к тому, чтобы выглядеть и ощущаться на странице, тогда это можно контролировать с помощью css, и вы можете позволить им создавать темы с использованием разных файлов css.

person Chris Simpson    schedule 04.03.2009

Это действительно интересный вопрос, и идеального решения не существует. Я работал с этой проблемой в интернет-магазине, и, честно говоря, во многих случаях я просто просил дизайнеров предоставить мне там html и css, а затем я брал фрагменты html и css и добавлял их в свой проект. Да, это было утомительно ....

Затем мы создали cms, в котором дизайнеры могли копировать и вставлять свой HTML-код в редакторы HTML, и мы сохраняли эти фрагменты HTML в базе данных. Мое веб-приложение получало их из базы данных во время выполнения. Это решает некоторые проблемы, но не все, поскольку не дает им полного контроля над дизайном веб-страницы.

Суть в том, что вам нужно иметь стандарт в отношении того, как дизайнер представит вам свою работу. Если у вас есть это, и вы можете рассчитывать на html и css, тогда вы можете подумать о возможном создании CMS вокруг этого. В наши дни RAD мне стало проще просто работать с предоставленными мне html и css и просто копировать и вставлять фрагменты на мою главную страницу и другие страницы по мере необходимости.

person user69889    schedule 10.03.2009

Хотя это не ответ CMS, у вас есть возможность разрешить дизайнерам открывать главные страницы в Expression Web. Я не скажу, что это лучший инструмент в мире, но у меня были дизайнеры, которые работали над дизайном мастер-страниц в Expression с хорошими результатами.

Однако есть болевой момент. Если весь проект открыт, дизайнер увидит код файлов как отдельные элементы, в отличие от представления дерева в Visual Studio.

Я предполагаю, что вы могли бы проверить главную страницу для использования с Expression через CMS, но нет встроенного способа сделать это, и я не знаю стороннего инструмента для этого. Надеюсь, Expression Web 3 упростит задачу.

person Gregory A Beamer    schedule 11.03.2009

Если у вас есть CMS, возможно, вам лучше предоставить ей полный контроль над содержимым страницы. Если есть вещи, которые CMS не может делать, вы можете написать расширения или подключаемые модули для CMS, которые ваши дизайнеры могут затем перетащить на страницу в редакторе страниц CMS.

Если ваша CMS не поддерживает подключаемые модули, возможно, вы пытаетесь заставить и CMS, и главные страницы делать то, для чего они не предназначены.

Если описанное выше не работает в вашей ситуации, есть еще одна мысль: разместите встроенные фреймы на своей главной странице, на которых размещаются страницы, редактируемые в CMS.

Надеюсь, это поможет.

person saille    schedule 11.03.2009

Интересный вопрос, я некоторое время назад баловался этой областью.

Насколько хорошо осведомлены эти веб-дизайнеры, если они не работают в сфере «не изнутри-Photoshop-или-Flash»?

Если вы используете DIY-CMS, возможно, вы сможете создать шаблон для наиболее уязвимых объектов, например. г. составить общий (как в том, что вы чувствуете, а не то, что они чувствуют ;-)) список и способ ввода дизайна, если применимо.

Пока у вас есть тщательно настроенная структура, которая имеет дело с атрибутами, доступными дизайнерам через CMS, не должно быть необходимости в перекомпиляции ... но, конечно, я могу легко увидеть разработчика (читай: меня ) спотыкаясь в щель ничтожного совершенства ....

Боюсь, что самый простой и единственный управляемый путь - стандартизировать то, как дизайнеры выражают свои потребности и желания ... он просто не кодирует сам себя ...

Не могли бы вы привести несколько примеров?

person Morten Bergfall    schedule 06.03.2009

Что ж, с проект веб-приложения страницы не компилируются до тех пор, пока доступ (ссылка 2005, но она все еще применяется). Это означает, что фактическая страница .aspx (и .ascx и т. Д.) Развернута в исходном состоянии. Дизайнер может обновить формат страницы на сервере, и обновления будут скомпилированы в следующий раз, когда кто-то запросит этот контент.

Было бы относительно тривиально разрешить дизайнерам загружать текущие страницы и загружать замену через пользовательский интерфейс вашего веб-сайта. Однако это не очень безопасно (и, вероятно, никогда не следует делать). Было бы лучше предоставить дизайнерам доступ к виртуальному каталогу через Интернет, чтобы они могли подключаться к нему с помощью такого инструмента, как Expression Web. Таким образом дизайнер может открывать текущий веб-сайт, редактировать страницы и отправлять результаты прямо в производство (хотя это может быть страшно).


Поскольку я получаю отрицательные голоса за правильный ответ, позвольте мне указать на кое-что.

Проекты веб-сайтов компилируют программный код и страницы по запросу. Если вам нужно регулярно обновлять код, это нормальное решение.

Проекты веб-приложений можно настроить для обновления. Весь программный код и классы компилируются в сборку, и все страницы aspx, ascx и т. Д. Развертываются и компилируются по запросу. Это означает, что дизайнер может подключиться к веб-сайту, обновить макет и статический контент и увидеть изменения при следующем запросе.

Это мой предпочтительный метод развертывания. У меня есть несколько проектов веб-приложений с обновляемыми файлами aspx, развернутыми вместе с моей dll. Идея состоит в том, что пользователи веб-сайта могут изменять пользовательский интерфейс, не отправляя мне обновления, чтобы я мог перекомпилировать его для них.

person Community    schedule 04.03.2009
comment
Это проект веб-сайта, а не проект веб-приложения, который компилируется по запросу. - person hunter; 11.03.2009
comment
Это означает, что фактическая страница .aspx (и .ascx и т. Д.) Развернута в исходном состоянии. Дизайнер может обновить формат страницы на сервере, и обновления будут скомпилированы в следующий раз, когда кто-то запросит этот контент. - person ; 11.03.2009
comment
Какое название путаница? Я исправлю, если что-то упустил. - person ; 12.03.2009
comment
На самом деле IIRC и веб-сайт, и проект веб-приложения динамически компилируются, просто этот веб-сайт компилируется страница за страницей? - person TFD; 12.03.2009
comment
WAP компилирует страницы по запросу. Сайт компилирует код и страницы по первому запросу. Я считаю, что оба компилируют все, что не скомпилировано, по первому запросу. - person ; 13.03.2009

.master - это просто текстовый файл. Они могут редактировать его как угодно. Они определенно не сделали бы ничего такого, что потребовало бы от вас перекомпиляции кода только для его просмотра. В первую очередь, это большая победа с мастер-страницами: дизайнеры и другие непрограммисты могут редактировать их вручную, ничего не ломая.

Дайте им доступ к файлу в системе контроля версий и позвольте им сходить с ума.

person Jason Kester    schedule 12.05.2009