Недавно я обнаружил англоязычный блог .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 то добавление
1 2 3 4 5 6 7 8 |
UPDATE Table1 SET Column1 = @newValue WHERE Id = @id IF @@ROWCOUNT = 0 BEGIN INSERT INTO Table1 (Id, Column1) VALUES (@id, @newValue) END |
2. Если запись существует, то апдейт, иначе – добавление
1 2 3 4 5 6 7 8 9 10 11 12 |
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 |
P.S. Оба способа следует использовать с уровнем изоляции транзакций Serializable.
Сохранение позиции скроллбара при постбэках
Чтобы сохранить позицию скроллбара при выполнении postback, в ASP.NET 2.0 просто добавьте MaintainScrollPostionOnPostBack атрибут Page директиве:
1 |
<% Page Language="C#" ... MaintainScrollPositionOnPostback="true" %> |
Если вы хотите, чтобы это работало для всех страниц сайта, то добавьте этот атрибут в блок <pages /> файла your web.config:
1 |
<pages maintainScrollPositionOnPostBack="true" /> |
Используйте “App_Offline.htm” во время апдейта сайта
Если вы вносите много изменений в работающий сайт и не хотите, чтобы пользователи имели доступ к сайту до завершения изменений, создайте файл app_offline.htm в корне сайта. После этого, пользователям на все запросы будет возвращаться содержимое этого файла. После окончания апдейта, просто удалите или переименуйте app_offline.htm.