2009-03-04 2 views
3

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

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

Спасибо.

ответ

0

Возможно ли, чтобы вы разместили заполнители на главной странице вместо областей, разрешенных дизайнерам для редактирования? Поскольку мастер-страницы доступны только для редактирования в 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 валидатор предупредят вас все время). То, что вы помещаете в заполнители, может быть вашим пользовательским контролем или литеральным контентом или что-то еще, но вам придется загружать его динамически.

Мысли?

EDIT: Это не сработает. PlaceHolder собирается отображать <div> теги, которые могут испортить вещи. Возможно, вы могли бы расширить PlaceHolder и переопределить, как он отображает свой HTML.

+0

Я реализовал решение, которое немного напоминает это. Я использовал ContentPlaceHolder вместо asp: PlaceHolder. – mbp

0

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

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


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

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

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

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

+0

Это проект веб-сайта, а не проект веб-приложения, который компилируется по запросу. – hunter

+0

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

+0

Ничего плохого в этом ответе, кроме небольшого имени, смешайте – TFD

1

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

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

0

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

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

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

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

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

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

1

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

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

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

1

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

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

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

1

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

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

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

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

0

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

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

Смежные вопросы