




Начните с мастер-страниц в день №1 - возвращаться к модификациям становится непросто.
Вероятно, я не совсем понял, но я имел в виду использование элементов управления для повторяющихся вещей, таких как отображение и редактирование бизнес-объектов. Пример: Скажем, есть 10 страниц, на которых я могу просмотреть продукт. Лучше иметь один пользовательский элемент управления, чем вырезать и вставить HTML на 10 страниц. Ответ обновлен для уточнения.
Обычно я стараюсь держаться подальше от этого ... но когда я использую WebForms, я следую этим правилам:
<div>, не означает, что сгенерированный код должен стать нечитаемым кошмаром. Избегание элементов управления, создающих некрасивый код, может впоследствии окупиться сокращением времени на отладку, облегчая выявление проблем.Как избежать обратной передачи с помощью веб-форм? Постбэки лежат в основе модели веб-форм. Означает ли это, что единственный код, который у вас есть в вашем коде, находится в загрузке страницы?
Да. Именно это и означает. Конечным результатом являются страницы с очень, очень небольшим количеством кода программной части период, поскольку все, что не имеет прямого отношения к построению страницы, находится где-то в своем собственном специализированном классе. Это ... очень освобождает.
Мне было бы интересно увидеть примеры этого в использовании - хотя в теории это звучит великолепно, некоторые вещи, по сути, должны выполняться на стороне сервера, например, проверка.
Проверка достаточно проста: все формы отправляются обработчику, зависящему от действия (.ashx), с передачей параметра, определяющего страницу для перенаправления в случае успеха или неудачи. Каждому дается параметр сообщения, описывающий результат (успех, ошибка проверки, Армагеддон и т. д.)
Для обеспечения доступности и поддержки мобильных устройств и устройств, отличных от javascript, вы всегда должны убедиться, что ваши формы проверены на стороне сервера, а функции javascript (esp multi-dropdown) реплицируются на стороне сервера.
Если вы не собираетесь использовать обратную передачу, вы можете использовать другой язык.
Язык? Постбек никак не связан с выбором языка.
@ Shog9: Вы излишне усложняете парадигму веб-форм ASP.NET и тупо избегаете стандарта разработки, который большинство разработчиков ASP.NET обучены понимать без реальной цели. Как вы справляетесь с повторным отображением формы, если данные в вашем обработчике недействительны? Вы перенаправляете обратно на форму? А как быть с уже заполненными полями? Теперь вам нужно выполнить перенаправление с параметрами запроса, чтобы исходная форма могла заполнить себя заново? Постбэк - хорошая работоспособная концепция, но, как правило, ее неправильно понимают многие разработчики, которые начали с другого веб-языка.
@Chris: на самом деле, вы поднимаете хороший вопрос - при сохранении большего, чем небольшого количества введенных пользователем данных, отправка обратно в aspx для ввода данных действительно упрощает много для восстановления значений полей формы. Я все еще не нравиться, но это один из многих компромиссов, которые необходимо сделать ... Тем не менее, стоит дважды подумать, прежде чем использовать этот метод, зарезервировав его только для тех сценариев, где он действительно окупается: много разработчики, которые запустили нет на другой платформе, оставляют себя беззащитными перед головной болью, когда слепо соглашаются с тем, что каждое действие должно приводить к обратной передаче.
Используйте контроль версий и структуру папок, чтобы в одной папке не находилось слишком много файлов. Нет ничего более болезненного, чем ждать, пока Windows Explorer что-то загрузит, потому что в папке более 1000 файлов, и он должен загрузить их все при открытии папки. Соглашение об именах переменных и методов также хорошо иметь заранее, если это возможно, чтобы не было этой мешанины кода, в которую разные разработчики вкладывают свои уникальные штрихи, и это болезненно видно.
Использование шаблонов проектирования может быть полезным для организации кода и хорошего масштабирования, например шаблон стратегии может облегчить время, когда нужно добавить новый тип продукта или устройства, которые должны поддерживаться. Аналогично использованию некоторых шаблонов переходников или фасадов.
Наконец, знайте, какие стандарты будут соблюдать ваши формы: это только для пользователей IE или какой-либо из IE, Firefox или Safari должен легко загружать форму и хорошо выглядеть?
В случае больших проектов лучшее, что я могу вам предложить, - это следовать общему шаблону проектирования, с которым все ваши разработчики хорошо обучены и хорошо осведомлены. Если вы имеете дело с ASP.NET, то для меня есть два лучших варианта:
o Презентатор обзора модели (хотя теперь это контроллер супервизора и пассивный просмотр). Это прочная модель, разделяющая ваш пользовательский интерфейс и бизнес-модель, которой все ваши разработчики могут без особых проблем следовать. Полученный код гораздо более поддается тестированию и сопровождению. Проблема в том, что это не применяется, и вам необходимо написать много вспомогательного кода для реализации модели.
o ASP.NET MVC Проблема с этим в том, что он находится в предварительном просмотре. Я разговаривал с Татхамом Одди и должен отметить, что он очень стабилен и удобен в использовании. Мне это нравится, он обеспечивает разделение проблем и делает это с минимальным дополнительным кодом для разработчика.
Я думаю, что какую бы модель вы ни выбрали, самое важное - это иметь модель и гарантировать, что все ваши разработчики смогут придерживаться этой модели.
Следуя тому, что сказал Одд, я пробую версию MVP под названием Model Presentation, которая пока работает у меня хорошо. Я все еще понимаю это и адаптирую его для собственного использования, но он освежает от кода, который я использовал для написания.
Посмотрите здесь: Модель презентации
Здесь все хорошо, кроме первого пункта; использование главных страниц полностью исключает необходимость в пользовательских элементах управления для общего представления, все, что совместно используется несколькими страницами, должно находиться на главной странице.