Советы по .NET Framework
Недавно я обнаружил англоязычный блог .NET Tip of The Day, в котором публикуются довольно полезные советы для программистов на .NET Framework.
Привожу здесь мой вольный перевод некоторых, полезных на мой взгляд, советов и рекомендую изучить этот блог подробнее.
Автоматическая вставка кавычек для значений атрибутов
HTML/ASPX редактор в Visual Studio может автоматически вставлять кавычки, когда вы вводите имя атрибута и знак ”=”. Для этого включете опцию Tools | Options… | Text Editor | HTML | Format | Insert attribute value quotes when typing.
Не генерируйте ненужные WinForm переменные для элементов управления Label
Большинство Windows форм содержит элементы управления Label, при помощи которых выводится статический текст. Как правило, с этим текстом ничего не надо делать программно. Чтобы не засорять код лишними переменными уровня класса формы, которые создаются автоматически дизайнером для каждого элемента управления, выберите этот элемент управления и установите свойство GenerateMember в false.
Два подхода к добавлению/апдейту записей в базе
Одна из главных задач при выполнении операции update/insert - это минимизация блокировок. Рассмотрим два наиболее распространенных подхода:
1. Апдейт, если @@ROWCOUNT = 0 то добавление
UPDATE Table1 SET Column1 = @newValue WHERE Id = @id
IF @@ROWCOUNT = 0
BEGIN INSERT INTO Table1 (Id, Column1) VALUES (@id, @newValue)
END
Этот метод следует использовать, если вы знаете, что в большинстве случаев запись существует в базе (например, хранение настроек в специальной таблице). В противном случае должен быть использован второй метод.
2. Если запись существует, то апдейт, иначе - добавление
IF EXISTS(SELECT * FROM Table1 WHERE Id = @id)BEGIN UPDATE Table1 SET Column1 = @newValue WHERE Id = @id
END
ELSE
BEGIN INSERT INTO Table1 (Id, Column1) VALUES (@id, @newValue)
END
Этот подход хорош, если в большинстве случаев запись не существует и будет выполнен INSERT.
P.S. Оба способа следует использовать с уровнем изоляции транзакций Serializable.
Сохранение позиции скроллбара при постбэках
Чтобы сохранить позицию скроллбара при выполнении postback, в ASP.NET 2.0 просто добавьте MaintainScrollPostionOnPostBack атрибут Page директиве:
<% Page Language="C#" ... MaintainScrollPositionOnPostback="true" %>
Если вы хотите, чтобы это работало для всех страниц сайта, то добавьте этот атрибут в блок <pages /> файла your web.config:
<pages maintainScrollPositionOnPostBack="true" />
Используйте “App_Offline.htm” во время апдейта сайта
Если вы вносите много изменений в работающий сайт и не хотите, чтобы пользователи имели доступ к сайту до завершения изменений, создайте файл app_offline.htm в корне сайта. После этого, пользователям на все запросы будет возвращаться содержимое этого файла. После окончания апдейта, просто удалите или переименуйте app_offline.htm.