ASP.NET. Сборник рецептов (+ CD-ROM)

Павел Агуров

В книге собраны практические советы и примеры, которые помогут при создании веб-приложений с использованием ASP.NET: разработка архитектуры веб-приложения, его отладка, профилирование, защита, конфигурирование, работа с данными и многое другое. Рассмотрены специальные инструменты и утилиты, которые позволяют ускорить и упростить разработку и отладку веб-приложений. Уделено внимание обработке исключений в веб-приложениях. Отдельная глава посвящена созданию отчетов в MS Excel.

Книга будет полезна не только программистам, которые уже используют в своих разработках ASP.NET, но и тем, кто переходит на технологию ASP.NET с классической ASP или языка РНР.

На компакт-диске приведен исходный код рассмотренных примеров.

Для программистов.

Издательство: БХВ-Петербург, 2010 г.

ISBN 978-5-9775-0521-5

Количество страниц: 528.

Содержание книги «ASP.NET. Сборник рецептов (+ CD-ROM)»:

  • 1 Введение
    • 2 Для кого эта книга
    • 2 О программном коде
    • 3 Краткое описание глав
    • 4 Благодарности
    • 4 Обратная связь
  • 5 Глава 1. Архитектура и общие вопросы
    • 5 1.1. Основные отличия ASP.NET 1.1 и 2.0
    • 7 1.2. В ASP было
    • 8 1.3. Можно ли запустить приложение ASP.NET под Apache
    • 8 1.4. Где найти исходный код Framework
    • 8 1.5. Использование SSI include в ASP.NET
    • 9 1.6. Как узнать версию ASP.NET, под которой работает сайт
    • 9 1.7. Как узнать браузер и версию клиента, запустившего сайт
    • 9 1.8. Как узнать параметры компьютера, на котором работает сайт
    • 9 1.9. Где расположен временный каталог
    • 10 1.10. Как изменить временный каталог ASP.NET
    • 10 1.11. Информация о соединении
    • 10 1.12. Зачем создается пользователь ASPNET
    • 10 1.13. Где сохранить данные при переходе между страницами
      • 11 1.13.1. Адресная строка
      • 11 1.13.2. Куки
      • 12 1.13.3. Скрытые поля
      • 12 1.13.4. Состояние страницы
      • 12 1.13.5. Сессия
      • 13 1.13.6. Память приложения
      • 14 1.13.7. Что же выбрать
    • 14 1.14. Не используйте подчеркивание в имени серверов
    • 14 1.15. Общие правила создания страниц
      • 14 1.15.1. Не путайте разметку и код
      • 15 1.15.2. Не встраивайте C#-код в ASPX-файл
      • 15 1.15.3. Используйте отдельные JS-файлы
      • 16 1.15.4. Используйте отдельные CSS-файлы
      • 16 1.15.5. Используйте мастер-страницы
      • 16 1.15.6. Создавайте базовые классы страниц
      • 16 1.15.7. Используйте свойства для обращения к сессии и состоянию
      • 17 1.15.8. Не используйте Convert.To-методы, когда этого не требуется
      • 18 1.15.9. Не используйте TryParse, когда не проверяется результат
      • 18 1.15.10. Проверяйте данные не только на клиенте, но и на сервере
      • 18 1.15.11. Не создавайте глубокой иерархии элементов управления
      • 19 1.15.12. Используйте события для обмена между элементами управления и их контейнерами
      • 19 1.15.13. Будьте аккуратны со статическими переменными
      • 20 1.15.14. Правила обработки исключений
      • 20 1.15.15. Не выводите входные данные напрямую на страницу
      • 20 1.15.16. Подготовка к тестированию
    • 20 1.16. Как заблокировать одновременный доступ Application
    • 20 1.17. Простой класс доступа к данным
    • 30 1.18. Реализация единого дизайна страниц
    • 30 1.19. Процедура восстановления пароля
    • 31 1.20. Файл global.asax и события
      • 31 1.20.1. Наиболее важные методы global.asax
      • 32 1.20.2. Можно ли создать global.asax в виде CS-файла
      • 33 1.20.3. Определение причины закрытия сайта
    • 34 1.21. Модули HTTP и обработчики HTTP
      • 35 1.21.1. Модули HTTP
      • 37 1.21.2. Обработчики HTTP
      • 38 1.21.3. Стандартные обработчики HTTP
    • 38 1.22. Как сделать иконку для сайта (Favicon)
    • 39 1.23. Ввод чисел с плавающей точкой
    • 41 1.24. В чем разница между CurrentCulture и CurrentUICulture
    • 41 1.25. Отправка почты из ASP.NET-приложения
      • 41 1.25.1. Использование класса SmtpClient
      • 47 1.25.2. Стандартные настройки SMTP в ASP.NET 2.0
      • 48 1.25.3. Решение проблемы с русскими символами
      • 49 1.25.4. Игнорирование проверки сертификата SSL
      • 49 1.25.5. Как отправить событие в календарь Outlook
    • 50 1.26. Проверка орфографии
    • 51 1.27. Как задать допустимое время выполнения скриптов
    • 51 1.28. Почему установка executionTimeout не работает
    • 51 1.29. Offline-режим для приложения
    • 52 1.30. Кроссбраузерность
      • 52 1.30.1. Проблемы не IE-браузеров
      • 52 1.30.2. Фильтры браузеров
      • 53 1.30.3. Применение стилей только для IE
      • 53 1.30.4. Условные выражения в CSS
      • 54 1.30.5. Прыгающая ширина поля ввода в IE
      • 54 1.30.6. Прозрачная PNG-картинка в браузере IE
      • 55 1.30.7. Ограничение на число файлов стилей в браузере IE
      • 55 1.30.8. Удаление рамки с активной ссылки
    • 55 1.31. Разное про HTML
      • 55 1.31.1. Лишний отступ снизу и подчеркивание изображения внутри ссылки
      • 55 1.31.2. Вставка флэш-файлов в страницу
      • 56 1.31.3. «Отладка» верстки
      • 56 1.31.4. Преобразование HTML-текста
      • 57 1.31.5. Как передать значение из JS-кода на сторону сервера
      • 57 1.31.6. Как вывести значение в HTML
      • 57 1.31.7. Предупреждение о закрытии браузера (только IE и Firefox)
      • 58 1.31.8. Двигающийся текст
      • 58 1.31.9. Блокировка экрана на время длительной операции
      • 61 1.31.10. Определение текущей кодировки страницы
    • 61 1.32. Совместимость
      • 61 1.32.1. Как определить, поддерживает ли браузер пользователя ActiveX
      • 61 1.32.2. Как определить, поддерживает ли браузер пользователя JavaScript
    • 61 1.33. Дни месяца по-русски
    • 62 1.34. Запуск задач по расписанию
      • 62 1.34.1. Запуск задач в ASP.NET с помощью таймера или потока
      • 63 1.34.2. Запуск задач в ASP.NET с помощью кэша
      • 64 1.34.3. Вызов определенного URL через Windows-планировщик
    • 65 1.35. Использование встроенных ресурсов
      • 65 1.35.1. Встроенные изображения
      • 67 1.35.2. Строковые ресурсы
    • 68 1.36. Работа с изображениями и пиктограммами
      • 68 1.36.1. Изменение размера изображения
      • 69 1.36.2. Создание пиктограммы
      • 70 1.36.3. Анимированный GIF
      • 71 1.36.4. Обрезка изображений
    • 71 1.37. Разное
      • 71 1.37.1. Как преобразовать массив в строку с разделителем
      • 71 1.37.2. Перекодировка текста
      • 72 1.37.3. Преобразование в Base64 и обратно
      • 72 1.37.4. Преобразование из Win1251 в Koi8 и обратно
      • 73 1.37.5. Преобразование цвета в строку и обратно
      • 73 1.37.6. Преобразование цвета в HTML-формат
      • 74 1.37.7. Преобразование цвета в целое число и обратно
      • 74 1.37.8. Возможности форматирования методов Format и Eval
  • 76 Глава 2. Формы
    • 76 2.1. Получение параметров формы
    • 77 2.2. Модификация страницы до вызова метода Page_Load
    • 77 2.3. Почему Page_Load вызывается два раза
    • 77 2.4. Сохранение позиции скроллинга в браузере
    • 78 2.5. Отображение данных в строке состояния браузера
    • 78 2.6. Программная установка метатегов
    • 79 2.7. Установка фокуса на элемент управления
    • 79 2.8. Установка фокуса по умолчанию
    • 79 2.9. Задание кнопки по умолчанию
    • 79 2.10. На странице не отображаются русские буквы
    • 80 2.11. Задание фона страницы из кода
    • 80 2.12. Комментирование кода внутри ASPX-страницы
    • 80 2.13. Комментирование внутри элементов управления
    • 81 2.14. Открытие страницы по кнопке в новом окне
    • 81 2.15. Использование WinForms-компонентов в веб-проектах
    • 84 2.16. Как сделать аналог метода MessageBox.Show
    • 85 2.17. Ручное формирование HTML-кода страницы
    • 87 2.18. Мастер-страницы (master pages)
      • 87 2.18.1. Создание шаблона страниц
      • 90 2.18.2. Доступ к мастер-странице
      • 91 2.18.3. Передача данных из мастер-страницы в контент
      • 93 2.18.4. Регистрация JS-скрипта для мастер-страницы
      • 93 2.18.5. Доступ к ScriptManager мастер-страницы
      • 94 2.18.6. Указание мастер-страницы через web.config
      • 95 2.18.7. Динамический выбор мастер-страницы
      • 95 2.18.8. Выбор мастер-страницы в зависимости от браузера
      • 96 2.18.9. Как задать тему для мастер-страницы
      • 98 2.18.10. Установка метатегов мастер-страницы
    • 98 2.19. Динамическое добавление JS-файла к странице
    • 99 2.20. Динамическое добавление CSS-файла к странице
    • 99 2.21. Динамическое добавление HTML-кода на страницу
    • 99 2.22. Просмотр исходного кода страницы
    • 100 2.23. Получение всех введенных данных формы
    • 100 2.24. Как получить значение hidden-поля в коде
    • 100 2.25. «Горячие» клавиши страницы
      • 100 2.25.1. Использование свойства AccessKey
      • 101 2.25.2. Использование JS-скрипта
    • 101 2.26. Автоматическое обновление страницы по времени
      • 101 2.26.1. Использование JavaScript
      • 102 2.26.2. Использование метатегов
    • 103 2.27. Печать страницы на принтер по умолчанию
    • 105 2.28. Создание PDF-файла из страницы
  • 109 Глава 3. Элементы управления
    • 109 3.1. Общие вопросы элементов управления
      • 109 3.1.1. Регистрация элементов управления в eb.config
      • 109 3.1.2. Получение HTML-кода элемента
      • 110 3.1.3. Получение клиентских идентификаторов (ClientID)
      • 111 3.1.4. Удаление ненужных клиентских идентификаторов (ClientID)
      • 112 3.1.5. Улучшение работы с ClientID в ASP.NET 4.0
      • 112 3.1.6. Отключение табличного представления форм (ASP.NET 4.0)
      • 113 3.1.7. Использование серверных тегов в серверных элементах управления
      • 115 3.1.8. Создание элементов из строки
      • 115 3.1.9. Скрыть/показать элемент страницы
    • 116 3.2. Элемент выбора файла
      • 116 3.2.1. Загрузка нескольких файлов
      • 119 3.2.2. Как запретить ввод имени файла
      • 119 3.2.3. Проверка типа файла
      • 119 3.2.4. Можно ли задать фильтр для выбираемых файлов
      • 120 3.2.5. Одновременная загрузка нескольких файлов с отображением процесса
        • 120 Вариант 1
        • 120 Вариант 2
        • 120 Вариант 3
    • 121 3.3. Элемент управления Label
      • 121 3.3.1. Как отобразить текст по вертикали
      • 121 3.3.2. Как изменить текст через JavaScript
      • 121 3.3.3. Как отобразить текст в несколько строк
    • 121 3.4. Элемент управления CheckBoxList
      • 121 3.4.1. Выбрать все отмеченные элементы
      • 121 3.4.2. Проверить, что ничего не выбрано
    • 122 3.5. Элемент управления TreeView
      • 122 3.5.1. Ограничение по ширине
      • 122 3.5.2. Дерево отображается некорректно
    • 122 3.6. Элементы управления ListView и ListBox
      • 122 3.6.1. Почему свойство SelectedItem равно null
      • 123 3.6.2. Улучшения ListView в ASP.NET 4.0
      • 123 3.6.3. Скроллируемый ListBox
    • 124 3.7. Элемент управления TextBox
      • 124 3.7.1. Запрет ввода формы по клавише
      • 124 3.7.2. Указание максимальной длины TextBox для полей ввода
      • 126 3.7.3. Подсказка ввода в TextBox
      • 127 3.7.4. Выравнивание текста
      • 128 3.7.5. Проверка введения корректной даты
    • 128 3.8. Отображение графических карт
    • 129 3.9. Элемент управления GridView
      • 129 3.9.1. Общие вопросы
        • 129 А где DataGrid?
        • 129 Добавление прокрутки
      • 130 3.9.2. Привязка данных
        • 130 Чем свойство DataSource отличается от DataSourceId
        • 130 Привязка данных с помощью свойства DataSource
        • 131 Привязка данных с помощью свойства DataSourceId
        • 132 Форматирование данных при привязке
      • 132 3.9.3. Колонки GridView
        • 132 Автоматическая генерация колонок
        • 132 Декларативное добавление колонок
        • 133 Программное добавление колонок
        • 133 Проблемы форматирования колонок
        • 133 Колонки операций
        • 135 Несколько кнопок в одной колонке
        • 135 Подтверждение выполнения операции
        • 135 Как отобразить картинку
        • 136 Как отобразить и заголовок и картинку
      • 136 3.9.4. Строки GridView
        • 136 Получение номера строки в GridView
        • 137 Подсветка строк при наведении курсора мыши
        • 138 Удаление строки
        • 139 Редактирование строк
        • 139 Добавление строк
        • 139 Подтверждение при удалении строки
      • 141 3.9.5. Сортировка GridView (MS SQL)
      • 142 3.9.6. Уменьшение размера ViewState
      • 142 3.9.7. Событие выбора строк
      • 147 3.9.8. Экспорт в Excel
      • 148 3.9.9. Сортировка по нескольким столбцам
    • 148 3.10. Элемент управления Repeater
      • 148 3.10.1. Привязка списка объектов
      • 150 3.10.2. Привязка списка строк
      • 150 3.10.3. Вложенные Repeater
      • 152 3.10.4. Операции с элементами Repeater
      • 152 3.10.5. Цветные строки в Repeater
    • 153 3.11. Календарь (Calendar)
      • 153 3.11.1. Отображение расписания с помощью элемента Calendar
      • 157 3.11.2. Валидация данных календаря
    • 157 3.12. Реализация закладок (TabControl)
    • 160 3.13. Кнопки
      • 160 3.13.1. Изображение для запрещенной кнопки с картинкой
      • 161 3.13.2. Задание кнопки по умолчанию
      • 161 3.13.3. Как отключить у кнопки валидацию формы
      • 161 3.13.4. Как задать клиентский обработчик кнопки
      • 161 3.13.5. Как перейти на другую страницу после возврата страницы
      • 161 3.13.6. Почему не вызывается метод Click у кнопки
      • 162 3.13.7. Кнопка закрытия окна браузера
      • 162 3.13.8. Запрет кнопки на время длительной операции
    • 163 3.14. Отображение рекламных объявлений
  • 165 Глава 4. Валидация
    • 165 4.1. Варианты валидации
      • 166 4.1.1. Обязательные поля
      • 166 4.1.2. Проверка диапазона данных
      • 166 4.1.3. Проверка формата данных
        • 167 Примеры регулярных выражений
      • 169 4.1.4. Сравнение значений
      • 169 4.1.5. Сравнение дат календарей
      • 171 4.1.6. Пользовательские процедуры валидации
      • 172 4.1.7. Отображение итоговой информации о валидации
    • 173 4.2. Установка фокуса на ошибку
    • 174 4.3. Элементы, не вызывающие валидацию
    • 174 4.4. Валидация групп полей
    • 175 4.5. Проблемы валидации данных
      • 175 4.5.1. Слишком строгие правила
      • 175 4.5.2. Проблема кодировок
      • 176 4.5.3. Валидация буквы е
      • 176 4.5.4. Только клиентская валидация
    • 177 4.6. Валидация переключателей (CheckBox)
    • 178 4.7. Валидация чисел с плавающей точкой
    • 178 4.8. Валидация перед переходом на другую страницу
    • 179 4.9. Валидация без использования стандартных валидаторов
    • 180 4.10. Клиентская валидация с помощью веб-методов
  • 184 Глава 5. Отладка, тестирование, обработка исключений и ошибок
    • 184 5.1. Проверка на запуск в отладочном режиме
    • 184 5.2. Правила разработки для облегчения тестирования сайтов
      • 185 5.2.1. Режим отладки
      • 185 5.2.2. Тестирование при Windows-имперсонации
      • 185 5.2.3. Тестирование рабочего процесса, зависящего от времени
      • 186 5.2.4. Тестирование почтовой рассылки
    • 187 5.3. Общие правила обработки исключений
      • 187 5.3.1. «Не глотайте» исключения молча
      • 187 5.3.2. Не обрабатывайте те исключения, которые не должны быть обработаны в данный момент
      • 188 5.3.3. Обходитесь без исключений, если это возможно
      • 188 5.3.4. Сообщайте информацию о коде с помощью исключений
      • 189 5.3.5. Не пересоздавайте исключения заново
      • 190 5.3.6. Не давайте пользователю приложения лишнюю информацию об исключениях
      • 190 5.3.7. Используйте исключения, а не коды ошибок
      • 192 5.3.8. Используйте иерархию исключений
    • 193 5.4. Обработка ошибок в параметрах URL
    • 194 5.5. Отладочная информация (трассировка) для ASP.NET
    • 195 5.6. Оценка времени выполнения кода
      • 195 5.6.1. Измерение с помощью TickCount (наименьшая точность)
      • 195 5.6.2. Измерение с помощью Ticks (средняя точность)
      • 195 5.6.3. Измерение с помощью QueryPerformance (высокая точность)
      • 196 5.6.4. Измерение с помощью класса Stopwatch (C# 2.0)
    • 196 5.7. Вывод сообщений в окно Output среды
    • 196 5.8. Запись в Application Log
    • 197 5.9. Создание своего Event Log
    • 199 5.10. Обработка исключений на странице
    • 199 5.11. Глобальная обработка исключений ASP.NET
      • 199 5.11.1. Обработка через HTTP-модуль (IHttpModule)
      • 201 5.11.2. Обработка через web.config
      • 201 5.11.3. Обработка с помощью монитора здоровья
      • 202 5.11.4. Обработка с помощью библиотеки ELMAH
    • 203 5.12. Обнаружение причины перезагрузки сайта
    • 203 5.13. Отключение перезагрузки сайта при изменениях в каталогах
    • 204 5.14. Исключение при перенаправлении на другую страницу
    • 205 5.15. Тестирование веб-страниц без веб-сервера
    • 205 5.16. Отладка JS-кода
    • 206 5.17. Сохранение запроса
  • 207 Глава 6. Конфигурирование и конфигурационные файлы
    • 207 6.1. Конфигурационный файл web.config
      • 207 6.1.1. Общие сведения о web.config
      • 208 6.1.2. Где найти класс ConfigurationManager
      • 208 6.1.3. Можно ли в web.config использовать символы и т. п
      • 208 6.1.4. Шифрование секций web.config
      • 208 6.1.5. Шифрование строки подключения
      • 208 6.1.6. Вынесение секции параметров во внешний файл
      • 209 6.1.7. Вынесение секций во внешний файл
      • 209 6.1.8. Нестандартный конфигурационный файл
      • 215 6.1.9. Изменение web.config
      • 216 6.1.10. Отключение модулей в web.config
    • 217 6.2. Где хранить строку подключения к БД
    • 218 6.3. Управление виртуальными директориями IIS
    • 222 6.4. Шифрование с помощью DPAPI
    • 223 6.5. Хранение паролей в памяти
    • 224 6.6. Хранение паролей в файле конфигурации
  • 226 Глава 7. Производительность
    • 226 7.1. Не кэшируйте соединение с БД
    • 227 7.2. Получение статистики о соединении с БД
    • 227 7.3. Используйте DataReader для последовательного доступа к данным
    • 228 7.4. Используйте хранимые процедуры
    • 228 7.5. Управление буферизацией страниц
    • 228 7.6. Используйте отдельные JS- и CSS-файлы
    • 228 7.7. Отключайте режим отладки
    • 229 7.8. Управление кэшированием страниц
      • 230 7.8.1. Атрибут Location
      • 230 7.8.2. Атрибут Duration
      • 230 7.8.3. Атрибут VaryByParam
      • 231 7.8.4. Атрибут VaryByControl
      • 232 7.8.5. Атрибут VaryByHeader
      • 232 7.8.6. Атрибут VaryByCustom
      • 234 7.8.7. Использование класса HttpCachePolicy
      • 235 7.8.8. Очистка кэша
      • 236 7.8.9. Ограничения кэширования
    • 236 7.9. Частичное кэширование
      • 236 7.9.1. Кэширование элементов управления
      • 236 7.9.2. Подстановка вне кэша
    • 237 7.10. Создание статического кэша
    • 239 7.11. Кэширование в ASP.NET 4.0
    • 240 7.12. Использование кэша ASP.NET
      • 240 7.12.1. Чем Cache отличается от Application
      • 240 7.12.2. Добавление элементов в кэш
        • 241 Простое добавление в кэш
        • 241 Задание абсолютного времени устаревания
        • 241 Задание скользящего времени устаревания
        • 241 Задание зависимостей от другого элемента кэша
        • 242 Задание зависимостей от файла или папки
        • 242 Задание времени начала контроля зависимостей
        • 243 Задание приоритетов освобождения
        • 243 Обращение к элементам кэша
  • 244 Глава 8. Работа с URL
    • 244 8.1. Получение «чистого» пути к странице
    • 244 8.2. Получение «чистого» пути к приложению
    • 245 8.3. Чем URL отличается от URI
    • 245 8.4. Разбор URL на составляющие
    • 246 8.5. Преобразование относительного пути в абсолютный
    • 246 8.6. Проверка использования защищенного протокола
    • 247 8.7. Перенаправление на другую страницу
      • 247 8.7.1. Постоянное перенаправление (код 301)
      • 247 8.7.2. Перенаправление через определенный интервал времени
      • 248 8.7.3. Чем Server.Transfer отличается от Response.Redirect
        • 249 Ошибка «View State Is Invalid
        • 249 Почему Server.Transfer(«page.html») дает пустую страницу?
        • 249 Как распознать Response.Redirect и Server.Transfer
        • 249 Выбор между Response.Redirect и Server.Transfer
      • 250 8.7.4. Чем Server.Execute отличается от Server.Transfer?
      • 250 8.7.5. Сравниваем Server.Transfer, Server.Execute и Response.Redirect
        • 251 Вызываем Response.Redirect
        • 251 Вызываем Server.Transfer
        • 252 Вызываем Server.Execute
    • 252 8.8. Управление созданием HTTP-обработчиков (IHttpHandler)
    • 254 8.9. Можно ли задать расширение в диалоге выбора файла
    • 254 8.10. Отобразить значок состояния ICQ-пользователя
    • 254 8.11. Отобразить значок состояния Skype-пользователя
    • 254 8.12. Получение относительного пути
    • 255 8.13. Оптимизация ссылок (URL Rewriting)
      • 256 8.13.1. Использование свойства PathInfo
      • 257 8.13.2. Использование метода RewritePath
      • 258 8.13.3. Использование IIS7
      • 258 8.13.4. Использование web.config
      • 259 8.13.5. Ссылки на картинки, скрипты и др.
      • 259 8.13.6. Сравнение вариантов перезаписи ссылок
  • 261 Глава 9. Пользователи, имперсонация, авторизация
    • 261 9.1. Получение имени текущего пользователя
    • 261 9.2. Программная имперсонация
    • 263 9.3. Как получить IP-адрес клиента, открывшего сайт
    • 264 9.4. Как получить культуру клиента, открывшего сайт
    • 264 9.5. Как получить список групп домена, в которые входит пользователь
    • 265 9.6. Сохранение данных пользователя и реализация IPrincipal
  • 276 Глава 10. Библиотека JQuery
    • 276 10.1. Базовые операции
      • 276 10.1.1. Подключение библиотеки
      • 276 10.1.2. Обработка событий страницы
      • 277 10.1.3. Выбор элементов страницы
        • 277 Обращение по клиентскому идентификатору
        • 277 Выбор элементов по типу
        • 277 Выбор элементов по классу
        • 278 Специальные символы в идентификаторах
        • 278 Выбор элемента в иерархии
        • 278 Выбор дочерних элементов
        • 278 Выбор элементов по атрибуту
        • 278 Примеры
      • 279 10.1.4. Проверка существования элемента
      • 280 10.1.5. Метод click
      • 280 10.1.6. Перебор элементов
      • 280 10.1.7. Отмена стандартного обработчика
      • 281 10.1.8. Обработка возврата формы (submit)
      • 281 10.1.9. Генерация возврата формы (submit)
      • 281 10.1.10. Проверка принадлежности
      • 282 10.1.11. Установка и удаление атрибутов элементов
      • 282 10.1.12. Загрузка данных из XML-файла
        • 283 Проблема в браузере IE
      • 284 10.1.13. Чем html() отличается от text()
    • 284 10.2. Элементы управления
      • 284 10.2.1. Разрешение и запрещение элементов
      • 284 10.2.2. Отметка опции (checkbox)
      • 285 10.2.3. Получение выбранного элемента выпадающего списка
      • 285 10.2.4. Получение выбранного переключателя (radiobutton)
      • 285 10.2.5. Изменение атрибутов при подведении курсора
    • 286 10.3. Плагины
      • 286 10.3.1. Таблица jqGrid
      • 287 10.3.2. Графики jqPlot
      • 288 10.3.3. Преобразование таблиц в графики
      • 288 10.3.4. Таблица tablesorter
      • 289 10.3.5. Сортировка таблиц перетаскиванием
      • 289 10.3.6. HTML-редакторы текста
      • 289 10.3.7. Подсказки qTip
      • 289 10.3.8. Подсказки Easy Tooltip
      • 290 10.3.9. Кнопки рейтинга
      • 290 10.3.10. Загрузка файлов
      • 290 10.3.11. Обрезка изображений
      • 290 10.3.12. Меню в стиле MS Office
      • 291 10.3.13. Ненавязчивые окна jGrow
      • 291 10.3.14. Всплывающие подсказки BeautyTips
      • 291 10.3.15. Меню в стиле Apple Mac
      • 292 10.3.16. Карусель MovingBoxes
      • 292 10.3.17. Меню Garage Door
      • 293 10.3.18. Подключение Google Maps
      • 293 10.3.19. Модуль валидации полей
      • 293 10.3.20. Вращение предметов
    • 293 10.4. JQuery CDN
  • 295 Глава 11. Получение данных из Интернета
    • 295 11.1. Получение файла из Интернета
    • 296 11.2. Получение любых данных из Интернета
    • 296 11.3. Получение веб-страницы
    • 297 11.4. Использование прокси-сервера
    • 297 11.5. Получить текущий курс валюты
    • 297 11.6. Создание простого RSS-канала
    • 301 11.7. AJAX
      • 301 11.7.1. Что такое AJAX?
      • 308 11.7.2. Получение серверных данных без AJAX
      • 311 11.7.3. Вывод сообщений с помощью UpdatePanel
      • 313 11.7.4. Вызов серверного метода с помощью AJAX
  • 316 Глава 12. Базы данных, привязка данных
    • 316 12.1. Привязка данных
      • 316 12.1.1. Сложная привязка данных с помощью DataBinder
      • 317 12.1.2. Зависимая привязка данных
      • 318 12.1.3. Привязка XML-данных
      • 320 12.1.4. Привязка списка данных к выпадающему списку
      • 321 12.1.5. Привязка перечислений (enum)
        • 322 Добавление дополнительных элементов
        • 322 Расширенная привязка перечислений
        • 324 Вычисление имен значений перечисления
      • 326 12.1.6. Привязка данных Access
      • 326 12.1.7. Привязка данных к списку
      • 327 12.1.8. Привязка данных с помощью LINQ
      • 328 12.1.9. Привязка данных с разбивкой на страницы
    • 331 12.2. Передача списка в SQL
    • 332 12.3. Создание ссылки на файл, сохраненный в БД
      • 333 12.3.1. Код обработчика
      • 334 12.3.2. Регистрация обработчика
      • 335 12.3.3. Код обработчика (второй вариант)
      • 336 12.3.4. Структура БД для хранения файлов
      • 336 12.3.5. Базовые классы
      • 338 12.3.6. Загрузка файлов в БД
      • 340 12.3.7. Получение файлов из БД
      • 342 12.3.8. Создание ссылки на файл в БД
      • 344 12.3.9. Типы файлов
      • 344 12.3.10. Определение типа файла по расширению
      • 345 12.3.11. Список поддерживаемых браузером типов
      • 346 12.3.12. Регистрация своего расширения файла
      • 346 12.3.13. Определить формат файла
      • 348 12.3.14. Можно ли использовать в имени файла русские буквы?
      • 348 12.3.15. Указание размера файла
      • 348 12.3.16. Некоторые ограничения
    • 349 12.4. Что следует использовать для закрытия соединения — Close или Dispose?
    • 349 12.5. Получение индекса объекта после добавления его в таблицу MS SQL
  • 350 Глава 13. Сессия, куки и хранение данных
    • 350 13.1. Как программно завершить сессию
    • 350 13.2. Сообщение о завершении сессии
    • 351 13.3. Сжатие данных в сессии (ASP.NET 4.0)
    • 351 13.4. Отображение окна сообщения о завершении сесии
    • 352 13.5. Непредсказуемое поведение сессии
    • 352 13.6. Почему не вызывается Session_End
    • 352 13.7. Подсчет числа посетителей сайта
    • 356 13.8. Как получить доступ к сессии обычного класса
    • 356 13.9. Как получить доступ к сессии из HttpHandler
    • 356 13.10. Использование cookies
    • 357 13.11. Что плохого в использовании сессий?
    • 358 13.12. Настройка хранения сессий
    • 359 13.13. Создание общей сессии между ASP- и ASP.NET-приложениями
    • 359 13.14. Как не допустить закрытия сессии
    • 361 13.15. Передача между страницами значений серверного элемента управления
    • 363 13.16. Как перехватить загрузку и сохранение ViewState
    • 363 13.17. Управление размером ViewState
    • 364 13.18. Сжатие ViewState
    • 366 13.19. Хранение ViewState на сервере
    • 367 13.20. Управление ViewState в ASP.NET 4.0
  • 368 Глава 14. Защита данных
    • 368 14.1. Шифрование конфигурации
      • 368 14.1.1. Шифрование строки подключения
      • 369 14.1.2. Шифрование секций web.config
      • 370 14.1.3. Программное шифрование секций web.config
    • 370 14.2. «Зашитые» пароли
    • 370 14.3. Защита от внедрения в SQL (SQL Injection)
    • 373 14.4. Защита от внедрения в XML (XML Injection)
    • 373 14.5. Защита от внедрения в строки запуска (DOS Injection)
    • 374 14.6. Защита от внедрения кода в HTML (XSS)
      • 376 14.6.1. Проверка подверженности сайта XSS
      • 376 14.6.2. Защита от XSS
      • 376 14.6.3. Защита от XSS в ASP.NET 2.0
      • 376 14.6.4. Библиотека Microsoft AntiXss
    • 377 14.7. Ошибки в алгоритмах
    • 377 14.8. Защита от разглашения информации
      • 377 14.8.1. Забытые комментарии
      • 377 14.8.2. Сообщения об ошибках
      • 378 14.8.3. Трассировка
    • 378 14.9. Защита паролей, хранящихся в БД
    • 379 14.10. Защита от отказа в обслуживании (DOS)
    • 380 14.11. Защита от перебора данных
      • 380 14.11.1. Слабые пароли
      • 380 14.11.2. Пароли по умолчанию
      • 381 14.11.3. Блокировка подбора
      • 381 14.11.4. Замедление проверок
      • 381 14.11.5. Время жизни пароля
      • 382 14.11.6. Очевидные ответы
    • 382 14.12. Пассивная защита
    • 382 14.13. Отсутствие автозакрытия сессии
    • 383 14.14. Защита от перебора параметров
    • 383 14.15. Защита файлов ресурсов
    • 384 14.16. Защита ссылок
    • 385 14.17. Создание CAPTCHA
    • 401 14.18. Защита без CAPTCHA
  • 403 Глава 15. Данные и отчеты MS Excel для веб-приложений
    • 403 15.1. Способы взаимодействия с MS Excel
      • 404 15.1.1. Использование библиотеки MS Excel
      • 405 15.1.2. Формат CSV
      • 406 15.1.3. Формат HTML
      • 406 15.1.4. Формат XML
      • 406 15.1.5. Использование OLE DB-провайдера
      • 406 15.1.6. Формат Office 2008
      • 407 15.1.7. Бесплатные библиотеки
      • 407 15.1.8. Платные библиотеки
    • 407 15.2. Лицензионные ограничения MS Excel
    • 408 15.3. Библиотека MS Excel
      • 408 15.3.1. Раннее и позднее связывание
      • 408 15.3.2. Сборки взаимодействия
      • 410 15.3.3. Объектная модель Excel
        • 411 Как найти нужные объекты
      • 412 15.3.4. Раннее связывание
      • 418 15.3.5. Позднее связывание
        • 423 Как определять значения констант
      • 424 15.3.6. Создание шаблона отчета
      • 428 15.3.7. Быстрая вставка данных
    • 429 15.4. Excel CSV, HTML и XML
      • 429 15.4.1. Формат Excel/CSV
      • 432 15.4.2. Формат Excel/HTML
      • 435 15.4.3. Формат Excel/XML
      • 443 15.4.4. Объединенный формат HTML и XML
      • 445 15.4.5. Генерация Excel-документов в ASP.NET
    • 451 15.5. Использование OLE DB
      • 451 15.5.1. OLE DB-провайдер
      • 460 15.5.2. OLE DB для платформы x64
    • 460 15.6. Формирование файлов в формате Excel 2008
      • 460 15.6.1. Кратко о формате Office 2008
      • 462 15.6.2. Распаковка документа
      • 464 15.6.3. Создание документа
      • 468 15.6.4. Запись данных в документ
      • 473 15.6.5. Использование блоков кода Microsoft
      • 477 15.6.6. Использование утилиты DocumentReflector
      • 478 15.6.7. Использование утилиты OpenXmlDiff
      • 479 15.6.8. Описание констант MS Office 2008
  • 480 Глава 16. Инструменты и библиотеки
    • 480 16.1. Инструменты
      • 480 16.1.1. Fiddler
      • 481 16.1.2. Firebug
      • 482 16.1.3. YSlow
      • 482 16.1.4. Wireshark
      • 484 16.1.5. SQL Server Profiler
      • 484 16.1.6. Анализатор ссылок Xenu
      • 485 16.1.7. HttpWatch
      • 485 16.1.8. Отладчик Web Development Helper
      • 485 16.1.9. Internet Explorer Developer Toolbar
      • 486 16.1.10. Сайт Site-Perf
      • 487 16.1.11. Doloto
      • 487 16.1.12. Редактор IxEdit
      • 488 16.1.13. jQueryPad
      • 489 16.1.14. CSS-утилиты
      • 489 16.1.15. UrlScan
      • 489 16.1.16. Microsoft Ajax Minifier
    • 490 16.2. Редакторы HTML-текста
      • 490 16.2.1. CKEditor
      • 490 16.2.2. Damn Small Rich Text Editor
      • 491 16.2.3. TinyMCE
      • 491 16.2.4. WYMeditor
      • 491 16.2.5. widgEditor
      • 492 16.2.6. jwysiwyg
      • 492 16.2.7. NicEdit
      • 493 16.2.8. Whizzywig
      • 493 16.2.9. Yahoo!
      • 493 16.2.10. markItUp!
      • 494 16.2.11. elRTE
    • 494 16.3. Архиваторы
      • 494 16.3.1. Библиотека SharpZipLib
      • 495 16.3.2. Библиотека CAKE3
    • 495 16.4. Таблицы
      • 495 16.4.1. Плагины jQuery
      • 495 16.4.2. Таблица AjaxDataControl
    • 496 16.5. Графики и диаграммы
      • 496 16.5.1. Плагины jQuery
      • 496 16.5.2. Графики и диаграммы MS Chart
      • 497 16.5.3. Графики Google Chart
    • 499 16.6. Разное
      • 499 16.6.1. Библиотека Google Gears
      • 499 16.6.2. CDN-сервисы
  • 501 Приложение. Содержимое компакт-диска
  • 504 Предметный указатель

Инструкция как скачать книгу Павел Агуров: ASP.NET. Сборник рецептов (+ CD-ROM) в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
ASP.NET. Сборник рецептов (+ CD-ROM)
Рейтинг книги:
1 голос
998

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: