Добавление цикла 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;
}
Формы:
Установите Page.Form.DefaultFocus
и Page.Form.DefaultButton
, чтобы улучшить взаимодействие с пользователем
Проверьте Page.IsValid
в обработчике кнопки «Сохранить», прежде чем продолжить.
Общее:
Поймите и примените методы, описанные в статье « ИСТИННОЕ понимание ViewState »
Используйте Page.IsPostBack в события вашей страницы, чтобы остановить ненужный запуск кода.
Используйте гиперссылки вместо публикации и использования Response.Redirect, когда это возможно.
a. Поймите и используйте второй параметр Response.Redirect (он «Указывает, следует ли завершать выполнение текущей страницы»).
Используйте Кэш на запрос (HttpContext. Items) вместо кеша, где это имеет смысл.
Web.Config:
Развернуть с помощью
Зарегистрируйте элементы управления на уровне web.config ] вместо уровня страницы (например, @Register).
Темы:
При использовании тем также помещайте свои статические изображения в тему.
а. Не делайте ссылки на изображения непосредственно из вашей разметки, вместо этого ссылайтесь на них из файла скина или файла css в вашей теме.
пример:
Я бы порекомендовал пару книг, если вы хотите стать лучшим и продуктивным разработчиком. Эти книги не зависят от языка и, как вы можете видеть по отзывам пользователей, очень и очень полезны.
Если вы ищете книгу, посвященную .NET, вы можете оценить следующую книгу :
Руководство по архитектуре приложений Microsoft [доступно в Интернете бесплатно вне формата для печати]
Некоторые из передовых практик, которые я усвоил со временем и написал для использования в моей компании ... многие из них в основном применимы к WebForms, а не к MVC.
Создайте базовую страницу для всех ваших страниц asp.net. Эта страница будет производной от System.Web.UI.Page, и вы можете поместить ее в YourApp.Web.UI. Пусть все ваши asp.net-страницы будут созданы из класса YourApp.Web.UI.Page. Это может уменьшить много боли.
Используйте обработчик Application_OnError для корректной обработки любой ошибки или исключения. Вы должны зарегистрировать критическое исключение и отправить подробную информацию об исключении вместе с датой, временем и IP-адресом клиента на адрес электронной почты администратора. Да ELMAH - верный путь.
Используйте темы ASP.NET . Многие разработчики им не пользуются. Используйте их - их очень много.
Используйте MembershipProvider и RoleProvider . И Никогда не используйте встроенный ProfileProvider - они хранят все в виде простых строк. Это резко снизит производительность при выполнении R / W
Используйте Firebug для отладки на стороне клиента. Старайтесь следовать стандартам YSlow для веб-приложений. Используйте расширение YSlow для FireBug.
Используйте jQuery для клиентских сценариев.
Никогда не храните информацию об аутентификации пользователя в сеансе или не используйте сеансы, чтобы судить, если пользователь вошел в систему. В сеансах хранится только минимально необходимая информация.
Посмотрите PostSharp . Может улучшить ремонтопригодность вашего кода и сделать вас более продуктивным.
Никогда не развертывайте приложение asp.net с конфигурацией отладки в производственной среде. Узнайте здесь , что scottgu говорит об этом.
Пользователь Проекты веб-развертывания . Он может преобразовать сеть. config и замените его настройками рабочего сервера. Он объединит все скомпилированные классы программной части в одну сборку, что очень важно.
Используйте домены без файлов cookie для обслуживания статических ресурсов, таких как изображения, скрипты, стили и т. Д. Каждый клиентский запрос отправляется вместе с целым куча файлов cookie, вам не нужны файлы cookie при показе изображений или сценариев. Поэтому разместите эти ресурсы в домене без файлов cookie.
Минимизируйте сценарии, таблицы стилей и HTML-ответ с сервера. Удаление ненужных разрывов строк и пробелов может улучшить время загрузки и оптимизацию полосы пропускания.
Я не думаю, что блоки try / catch всегда подходят для низкоуровневых методов. Конечно, вы хотите отлавливать (и регистрировать / предупреждать, что еще лучше!) Любые ошибки до того, как они попадут к пользователю. Но часто для низкоуровневого метода лучше просто позволить своим ошибкам подняться на более высокий уровень. Проблема, которую я видел с низкоуровневым перехватом ошибок, заключается в том, что он часто позволяет продолжить более крупную операцию, но затем результат, который не совсем правильный, представляется пользователю или сохраняется в базе данных, и в конечном итоге это намного сложнее исправить. Это также просто лишний беспорядок в вашем коде, чтобы поставить попытку / уловить на каждом уровне, если вы не собираетесь «ничего делать» с ошибкой, пока она не будет поднята на более высокий уровень.
Вот несколько похожих вопросов, которые могут вам помочь.
Лучший способ изучить лучшие практики .NET / ООП?
Вероятно, это должно быть сообщество также вики.
ASP.NET
Server.Transfer
вместо Response.Redirect
, если это возможно.Design