Советы, как избежать образования большого комка грязи с помощью ASP.NET WebForms

StackOverflow https://stackoverflow.com/questions/118126

  •  02-07-2019
  •  | 
  •  

Вопрос

Хотя ASP.NET В наши дни MVC, похоже, пользуется большой популярностью, веб-формы по-прежнему довольно распространены.Как вам удается поддерживать разумность вашего проекта?Давайте соберем здесь несколько советов.

Это было полезно?

Решение

  • Создавайте веб-пользовательские элементы управления для всего, что будет отображаться более чем на одной странице, которая не является частью содержимого типа masterpage.Пример:Если ваше приложение отображает информацию о продукте на 10 страницах, лучше всего использовать пользовательский элемент управления, который используется на 10 страницах, а не повторять отображаемый код 10 раз.
  • Добавляйте в код как можно меньше бизнес-логики.Лежащий в основе код должен быть перенесен на ваш бизнес-уровень для выполнения работы, которая напрямую не связана с размещением чего-либо на странице и отправкой данных туда и обратно с бизнес-уровня.
  • Не изобретайте велосипед заново.Многие неаккуратные кодовые узлы, которые я видел, состоят из кода, который выполняет то, что уже предоставляет фреймворк.
  • Как правило, избегайте блоков скрипта в html.
  • Не заставляйте одну страницу делать слишком много вещей.Что-то, что я видел снова и снова, - это страница, на которой, как говорят, есть режимы добавления и редактирования.Это прекрасно.Однако, если у вас есть много подрежимов для добавления и редактирования, вам лучше иметь несколько страниц для каждого подрежима с возможностью повторного использования через пользовательские элементы управления.Вам действительно нужно избегать использования множества вложенных "если", чтобы определить, что пытается сделать ваш пользователь, а затем показывать правильные вещи в зависимости от этого.Ситуация быстро выходит из-под контроля, если ваша страница имеет много возможных состояний.
  • Изучите жизненный цикл страницы и используйте его в своих интересах.Многие уродливые страницы с привязкой к коду, которые я видел, могли бы быть чище, если бы программист лучше понимал жизненный цикл страницы.

Другие советы

Обычно я стараюсь держаться от этого подальше...но когда я использую WebForms, я следую этим правилам:

  1. Содержите полученный HTML-код в чистоте:Просто потому, что вы не кодируете вручную каждый <div> это не значит, что сгенерированный код должен превратиться в нечитаемый кошмар.Отказ от элементов управления, которые создают уродливый код, может впоследствии окупиться сокращением времени отладки, поскольку проблемы становятся более заметными.
  2. Минимизировать внешние зависимости:Вам платят не за то, чтобы вы отлаживали код других людей.Если вы делай выбирайте сторонние компоненты, а затем получайте исходный код, чтобы вам не приходилось тратить необычно много времени на исправление их ошибок.
  3. Избегайте делать слишком много на одной странице:Если вы обнаружите, что реализуете сложные "режимы" для данной страницы, подумайте о том, чтобы разбить ее на несколько однорежимных страниц, возможно, используя мастер-страницы для выделения общих аспектов.
  4. Избегайте обратной отправки:Это всегда была ужасная идея, и с тех пор она не стала менее ужасной.Приятным бонусом является то, что вы избавитесь от головной боли, если не будете использовать элементы управления, зависящие от обратной передачи.
  5. Избегать состояния ПРОСМОТРА:Смотрите комментарии к #4.

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

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

o ASP.NET MVC Проблема с этим в том, что он находится в режиме предварительного просмотра.Я разговаривал с Татхэмом Одди, и он упомянул, что это очень стабильная и полезная программа.Мне это нравится, это обеспечивает разделение проблем и делает это с минимальным дополнительным кодом для разработчика.

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

Начните с Мастер-страниц в день № 1 - возвращение к модернизации сопряжено с болью.

Следуя тому, что сказал Одд, я тестирую версию MVP под названием Model Presentation, которая пока у меня хорошо работает.Я все еще начинаю понимать это и адаптирую для собственного использования, но это освежает код, который я использовал для написания.

Проверьте это здесь: Модель представления

Используйте контроль версий и структуру папок, чтобы в одной папке не находилось слишком много файлов.Нет ничего более болезненного, чем ждать, пока проводник Windows что-нибудь загрузит, потому что в папке более 1000 файлов, и он должен загрузить их все при открытии папки.Соглашение об именовании переменных и методов также полезно иметь заранее, если это возможно, чтобы не было этой мешанины кода, в который разные разработчики вносят свои уникальные штрихи, и это болезненно проявляется.

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

Наконец, знайте, каким стандартам будут соответствовать ваши формы:Это только для пользователей IE или любой из IE, Firefox или Safari должен легко загружать форму и хорошо выглядеть?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top