2008-09-22 3 views
7

Несмотря на то, что в наши дни ASP.NET MVC имеет всю рекламу, WebForms все еще довольно распространены. Как вы поддерживаете свой проект? Давайте соберем здесь несколько советов.Советы по предотвращению большого шара грязи с ASP.NET WebForms

+0

Хороший вопрос :) – GateKiller 2008-09-22 23:35:21

ответ

2
  • Создайте веб-элементы управления для всего, что будет отображаться на нескольких страницах, которые не являются частью содержимого типа главной страницы. Пример. Если ваше приложение отображает информацию о продукте на 10 страницах, лучше иметь пользовательский элемент управления, который используется на 10 страницах, вместо того, чтобы сокращать код дисплея 10 раз.
  • Положите как можно меньше логики бизнеса в код сзади. Код должен отложить до уровня вашего бизнеса, чтобы выполнить работу, которая напрямую не связана с размещением вещей на странице и отправкой данных с бизнес-уровня.
  • Не изобретайте велосипед. Множество небрежных кодов, которые я видел, составлено из кода, который выполняет те вещи, которые уже предоставляет инфраструктура.
  • В общем, избегайте блоков сценариев в html.
  • У вас нет одной страницы слишком много вещей. То, что я видел снова и снова, - это страница, которая говорит, что она добавляет и редактирует режимы. Хорошо. Однако, если у вас есть много дополнительных режимов для добавления и редактирования, вам лучше иметь несколько страниц для каждого вспомогательного режима с повторным использованием через пользовательские элементы управления. Вам действительно нужно избегать группировки вложенных IF, чтобы определить, что ваш пользователь пытается сделать, а затем показывать правильные вещи в зависимости от этого. Вещи быстро выходят из-под контроля, если ваша страница имеет много возможных состояний.
  • Learn/Grok жизненный цикл страницы и используйте его в ваших интересах. Многие уродливые страницы кода, которые я видел, могут быть более чистыми, если кодер лучше понимает жизненный цикл страницы.
+0

Все здесь хорошо, для первой точки, за исключением; использование мастер-страниц полностью отрицает необходимость использования пользовательских элементов управления для общей презентации, все, что разделяется между несколькими страницами, должно быть на главной странице. – Dexter 2008-09-22 23:19:08

+1

Я, вероятно, был недостаточно ясен, но я имел в виду использование элементов управления для повторяющихся вещей, таких как отображение и редактирование бизнес-объектов. Пример. Скажите, что есть 10 страниц, которые позволяют мне просматривать продукт. Лучше иметь один пользовательский контроль, чем cut'n'pasted HTML на 10 страницах. Ответ обновлен для уточнения. – 2008-09-22 23:26:22

1

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

3

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

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

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

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

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

3

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

o Модель View Presenter (though this is now Supervisor Controller and Passive View). Это прочная модель, которая подталкивает друг к другу между вашим пользовательским интерфейсом и бизнес-моделью, что все ваши разработчики могут следить без особых проблем. Полученный код гораздо более проверяемый и поддерживаемый. Проблема в том, что она не применяется, и вам необходимо написать много поддерживающего кода для реализации модели.

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

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

0

После того, что сказал Нечетный, я пробовал версию MVP под названием «Презентация модели», которая до сих пор хорошо работает для меня. Я все еще понимаю его и приспосабливаю его к собственному использованию, но он обновляется от кода, который я использовал для написания.

Проверьте это здесь: Presentation Model

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