Создавание приложения ASP.NET - Лучшие практики

Добавление цикла foreach создает в 1,5. Я < 3 это.

// For each Object, instantiated as foo, in myCollection
for(Object foo: myCollection) {
  System.out.println(foo.toString());
}

И может использоваться во вложенных экземплярах:

for (Suit suit : suits)
  for (Rank rank : ranks)
    sortedDeck.add(new Card(suit, rank));

для - каждая конструкция также применима к массивам, где она скрывает индексную переменную, а не итератор. Следующий метод возвращает сумму значений в международном массиве:

// Returns the sum of the elements of a
int sum(int[] a) {
  int result = 0;
  for (int i : a)
    result += i;
  return result;
}

Ссылка на документацию Sun

18
задан codeConcussion 7 December 2009 в 22:18
поделиться

7 ответов

Формы:

  1. Установите Page.Form.DefaultFocus и Page.Form.DefaultButton , чтобы улучшить взаимодействие с пользователем

  2. Проверьте Page.IsValid в обработчике кнопки «Сохранить», прежде чем продолжить.

Общее:

  1. Поймите и примените методы, описанные в статье « ИСТИННОЕ понимание ViewState »

  2. Используйте Page.IsPostBack в события вашей страницы, чтобы остановить ненужный запуск кода.

  3. Используйте гиперссылки вместо публикации и использования Response.Redirect, когда это возможно.

    a. Поймите и используйте второй параметр Response.Redirect (он «Указывает, следует ли завершать выполнение текущей страницы»).

  4. Правильно используйте жизненный цикл страницы .

  5. Используйте Кэш на запрос (HttpContext. Items) вместо кеша, где это имеет смысл.

Web.Config:

  1. Развернуть с помощью

  2. Зарегистрируйте элементы управления на уровне web.config ] вместо уровня страницы (например, @Register).

Темы:

  1. При использовании тем также помещайте свои статические изображения в тему.

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

    пример:

7
ответ дан 30 November 2019 в 06:02
поделиться

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

Code Complete 2

Pragmatic Programmer

Если вы ищете книгу, посвященную .NET, вы можете оценить следующую книгу :

Руководство по архитектуре приложений Microsoft [доступно в Интернете бесплатно вне формата для печати]

1
ответ дан 30 November 2019 в 06:02
поделиться

Некоторые из передовых практик, которые я усвоил со временем и написал для использования в моей компании ... многие из них в основном применимы к WebForms, а не к MVC.

  • Не пишите код .NET непосредственно в ваша разметка ASPX (если она не предназначена для привязка данных, т.е. Evals). если ты есть код, это помещает код для страницы в более чем одном месте и делает код менее управляемым. Положить весь код .NET в коде программной части.
  • SessionPageStatePersister можно использовать вместе с ViewState сделать ViewState полезным без увеличение размеров страницы. Отмена PageStatePersister страницы с new SessionPageStatePersister будет хранить все данные ViewState в памяти, и будет хранить только зашифрованный ключ на стороне клиента.
  • Создайте BasePage, от которого ваши страницы могут наследовать, чтобы повторно использовать общий код между страницами. Создайте MasterPage для своих страниц для визуального наследования. Страницы с совершенно разные визуальные стили должны используйте другую MasterPage.
  • Создайте список имен ключей параметров страницы в каждой WebForm которые передаются через URL-адрес в настроить строго типизированные параметры страницы. Это предотвращает необходимость жестко запрограммировать ключевые строки параметров страницы и их вероятная ошибка при вводе, а также разрешение строго типизированного параметра доступ с других страниц.
  • Используйте кэш ASP.NET для кеширования часто используемых информация из вашей базы данных. Сборка (или повторное использование из другого проекта) общий уровень кэширования, который оберните кэш ASP.NET.
  • Оберните объекты ViewState свойствами на своих страницах, чтобы избежать ошибки развития в орфографии, и т. д. при ссылке на элементы из Коллекция ViewState.
  • Избегайте помещения больших объектов и графов объектов в ViewState, используйте его в основном для хранения идентификаторов или очень простых объектов DTO.
  • Оберните сеанс ASP.NET с помощью SessionManager, чтобы избежать разработки орфографические ошибки и т. д., когда ссылки на элементы из сеанса.
  • Широко используйте ключ / значение applicationSettings значения конфигурации в web.config - оберните Configuration.ApplicationSettings с классом, который можно использовать для легко получить конфигурацию настройки без запоминания ключи из web.config.
  • Избегайте простоты настройки свойств отображения в пользовательском интерфейсе вместо этого используйте стили CSS и классы - это сделает ваши стили более управляемым.
  • Создайте UserControls в своем приложении, чтобы повторно использовать общие Функциональность пользовательского интерфейса в вашем страниц. Например, если выпадающий список, содержащий коллекцию категории будут использоваться во многих места на сайте - создайте Элемент управления CategoryPicker, который будет передавать данные связывать себя при загрузке страницы.
  • Используйте Свойства в своих UserControls для настройки таких вещей, как значения по умолчанию, разные дисплеи между страницами и т. д. Тип значения свойства могут быть определены на вашем UserControls, а затем установить в вашем Разметка ASP.NET с использованием уровня класса свойства в UserControls.
  • Используйте элементы управления валидацией ASP.NET для выполнения простых проверки, или используйте CustomValidator для выполнения сложных
  • Создайте страницу обработки ошибок, которую можно перенаправить, когда необработанное исключение происходит внутри Ваш сайт. Перенаправление может происходит через событие Page_Error в ваша страница, Application_Error событие в вашем Global.asax или в раздел внутри web.config.
  • При работе со страницами, использующими высокодинамичные данные, управляемые дисплей, используйте сторонний (бесплатно) DynamicControlsPlaceholder для упростить код, необходимый для сохранения состояние динамически добавленных элементов управления между обратными передачами.
26
ответ дан 30 November 2019 в 06:02
поделиться
  1. Создайте базовую страницу для всех ваших страниц asp.net. Эта страница будет производной от System.Web.UI.Page, и вы можете поместить ее в YourApp.Web.UI. Пусть все ваши asp.net-страницы будут созданы из класса YourApp.Web.UI.Page. Это может уменьшить много боли.

  2. Используйте обработчик Application_OnError для корректной обработки любой ошибки или исключения. Вы должны зарегистрировать критическое исключение и отправить подробную информацию об исключении вместе с датой, временем и IP-адресом клиента на адрес электронной почты администратора. Да ELMAH - верный путь.

  3. Используйте темы ASP.NET . Многие разработчики им не пользуются. Используйте их - их очень много.

  4. Используйте MembershipProvider и RoleProvider . И Никогда не используйте встроенный ProfileProvider - они хранят все в виде простых строк. Это резко снизит производительность при выполнении R / W

  5. Используйте Firebug для отладки на стороне клиента. Старайтесь следовать стандартам YSlow для веб-приложений. Используйте расширение YSlow для FireBug.

  6. Используйте jQuery для клиентских сценариев.

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

  8. Посмотрите PostSharp . Может улучшить ремонтопригодность вашего кода и сделать вас более продуктивным.

  9. Никогда не развертывайте приложение asp.net с конфигурацией отладки в производственной среде. Узнайте здесь , что scottgu говорит об этом.

  10. Пользователь Проекты веб-развертывания . Он может преобразовать сеть. config и замените его настройками рабочего сервера. Он объединит все скомпилированные классы программной части в одну сборку, что очень важно.

  11. Используйте домены без файлов cookie для обслуживания статических ресурсов, таких как изображения, скрипты, стили и т. Д. Каждый клиентский запрос отправляется вместе с целым куча файлов cookie, вам не нужны файлы cookie при показе изображений или сценариев. Поэтому разместите эти ресурсы в домене без файлов cookie.

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

19
ответ дан 30 November 2019 в 06:02
поделиться

Я не думаю, что блоки try / catch всегда подходят для низкоуровневых методов. Конечно, вы хотите отлавливать (и регистрировать / предупреждать, что еще лучше!) Любые ошибки до того, как они попадут к пользователю. Но часто для низкоуровневого метода лучше просто позволить своим ошибкам подняться на более высокий уровень. Проблема, которую я видел с низкоуровневым перехватом ошибок, заключается в том, что он часто позволяет продолжить более крупную операцию, но затем результат, который не совсем правильный, представляется пользователю или сохраняется в базе данных, и в конечном итоге это намного сложнее исправить. Это также просто лишний беспорядок в вашем коде, чтобы поставить попытку / уловить на каждом уровне, если вы не собираетесь «ничего делать» с ошибкой, пока она не будет поднята на более высокий уровень.

4
ответ дан 30 November 2019 в 06:02
поделиться

Вот несколько похожих вопросов, которые могут вам помочь.

Лучшие практики .NET?

Лучший способ изучить лучшие практики .NET / ООП?

Вероятно, это должно быть сообщество также вики.

2
ответ дан 30 November 2019 в 06:02
поделиться

ASP.NET

  • Если вы не используете состояние сеанса, не используйте забудьте его выключить.
  • Используйте Server.Transfer вместо Response.Redirect, если это возможно.
  • Установите параметр истечения срока действия в IIS.
  • Используйте GZip для сжатия текстовых файлов.
  • Используйте валидацию на стороне сервера и на стороне клиента вместе.
  • Используйте Url Rewriter или Routing для создания дружественного url для SEO.

Design

  • Запишите каждый класс и его свойства. вашего CSS-файла в той же строке. (Для уменьшения размера файла)
  • Используйте CSS-спрайты. (Для уменьшения запроса)
1
ответ дан 30 November 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: