Система Orphus

Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов

Авторы: Мэтью Мак-Дональд
Марио Шпушта
Издательство: Вильямс, 2006
1408 страниц

Материал предоставил: Издательство ''Вильямс''
Найти в магазинах
Купить в Озоне (847 руб.)
Купить в Болеро (650 руб.)
Купить в OZ.by (Беларусь)
Купить в My-Shop.ru (717 руб.)

Аннотация

Содержание
Введение
Переход с ASP.NET 1.0 на ASP.NET 2.0
Как организована эта книга
На кого рассчитана эта книга
Что необходимо для использования этой книги
От издательства
Исходные коды примеров

Аннотация

Книга известных специалистов в области технологий .NET представляет собой учебное и справочное пособие для разработчиков .NET-приложений, использующих новую версию ASP.NET 2.0. Предложенный авторами практический подход к изложению материала не является простым повторением документации MSDN, а позволяет сконцентрироваться на решении конкретных задач, связанных с разработкой Web-приложений разного уровня сложности. Глубина изложения материала превращает эту книгу в незаменимый источник информации для разработчиков. Подробно рассматриваются все вопросы, связанные с ASP.NET 2.0, начиная с объектной модели и заканчивая взаимодействием с XML и различными поставщиками данных. Книга рассчитана на программистов разной квалификации, а также будет полезна для студентов и преподавателей дисциплин, связанных с программированием и разработкой для .NET.

Содержание

Об авторах

Введение

Переход с ASP.NET 1.0 на ASP.NET 2.0
Как организована эта книга
На кого рассчитана эта книга
Что необходимо для использования этой книги
От издательства
Благодарности издательства
Исходные коды примеров

Часть I. Базовые концепции

Глава 1. Введение в ASP.NET

Развитие Web-разработки
Мир разработки до ASP.NET
Недостатки классического ASP
ASP.NET 1.0
Семь важных фактов об ASP.NET
Факт 1: ASP.NET интегрирована с .NET Framework
Факт 2: ASP.NET компилируется, а не интерпретируется
Факт 3: ASP.NET поддерживает несколько языков
Факт 4: ASP.NET функционирует внутри исполняющей среды CLR
Факт 5: ASP.NET является объектно-ориентированной
Факт 6: ASP.NET поддерживает множество устройств и браузеров
Факт 7: ASP.NET легко развертывается и конфигурируется
ASP.NET 2.0: история продолжается
C# 2005
Visual Studio 2005
ASP.NET 2.0
Резюме

Глава 2. Visual Studio 2005

Модель разработки .NET
Компилятор
Интегрированная среда разработки Visual Studio
Web-сайты в Visual Studio
Беспроектная разработка
Миграция проектов Visual Studio.NET
Проектирование Web-страницы
Интегрированная среда разработки Visual Studio
Solution Explorer
Окно документа
Панель инструментов
Окна Error List и Task List
Проводник Server Explorer
Редактор кода
Добавление ссылок на сборку
Средство IntelliSense и структуризация
Модель кодирования
Связывание файлов скрытого кода со страницами
Связывание дескрипторов элементов управления с переменными страниц
Связывание событий с обработчиками событий
Отладка в Visual Studio
Пошаговая отладка
Расширенные точки прерывания
Слежение за переменными
Макросы в Visual Studio
ASP.NET Development Helper
Резюме

Глава 3. Web-формы

Обработка страниц
Формы HTML
Динамические интерфейсы
Модель событий ASP.NET
Автоматические обратные отсылки
Состояние вида
Соблюдение стандарта XHTML
Этапы обработки Web-форм
Инициализация структуры страницы
Инициализация кода пользователя
Проверка достоверности
Обработка событий
Автоматическая привязка данных
Очистка
Пример страничного потока
Страница как контейнер элементов управления
Отображение дерева элементов управления
Заголовок страницы
Создание динамического элемента управления
Класс Page
Session, Application и Cache
Request
Response
Server
User
Trace
Получение доступа к НТТР-контексту в другом классе
Резюме

Глава 4. Серверные элементы управления

Типы серверных элементов управления
Иерархия серверных элементов управления
Серверные элементы управления HTML
Класс HtmlControl
Класс HtmlContainetControl
Класс HtmlInputControl
Классы серверных элементов управления HTML
Установка атрибутов стилей и других свойств
Программное создание серверных элементов управления
Обработка серверных событий
Элементы управления Web
Базовый класс WebControl
Базовые классы элементов управления Web
Единицы измерения
Перечислимые значения
Цвета
Шрифты
Фокус
Кнопка по умолчанию
Прокручиваемые панели
Обработка событий элементов управления Web
Списковые элементы управления
Списковые элементы управления с возможностью выбора
Элемент управления BulletedList
Элементы управления проверкой достоверности ввода
Элементы управления проверкой достоверности
Процесс проверки достоверности
Класс BaseValidator
Элемент управления RequiredFieldValidator
Элемент управления RangeValidator
Элемент управления CompareValidator
Элемент управления RegularExpressionValidator
Элемент управления CustomValidator
Элемент управления ValidationSummary
Программное использование элементов управление проверкой достоверности
Группы проверки достоверности
Полнофункциональные элементы управления ASP.NET
Элемент управления AdRotator
Элемент управления Calendar
Резюме

Глава 5. Приложения ASP.NET

Анатомия приложения ASP.NET
Домен приложения
Время жизни приложения
Обновления приложений
Структура каталога приложения
Файл приложения global.asax
События приложения
Демонстрация событий приложения
Конфигурация ASP.NET
Файл machine.config
Файл web.config
Параметры настройки конфигурации
Программный способ чтения и записи разделов конфигурации
Website Administration Tool (WAT)
Расширение структуры конфигурационного файла
Шифрование разделов конфигурации
Компоненты .NET
Создание компонента
Использование компонента через каталог App_Code
Использование компонента через каталог Bin
Расширение конвейера HTTP
Обработчики HTTP и модули HTTP
Создание специального обработчика HTTP
Конфигурирование специального обработчика HTTP
Регистрация обработчиков HTTP без конфигурирования IIS
Создание более функционального обработчика HTTP
Создание специального модуля HTTP
Резюме

Глава 6. Управление состоянием

Управление состоянием в ASP.NET
Состояние вида
Пример использования состояния вида
Сохранение объектов в состоянии вида
Сохранение переменных экземпляра
Оценка преимуществ использования состояния вида
Настройка состояния вида в элементе управления типа списка
Обеспечение безопасности состояния вида
Передача информации
Строка запроса
Межстраничная обратная отправка данных
Межстраничная обратная отсылка и проверка данных
Специальные cookie-наборы
Состояние сеанса
Архитектура сеанса
Использование состояния сеанса
Конфигурирование состояния сеанса
Обеспечение безопасности состояния сеанса
Состояние приложения
Статические переменные приложения
Резюме

Часть II. Доступ к данным

Глава 7. Основы ADO.NET

Архитектура ADO.NET
Поставщики данных ADO.NET
Стандартизация в ADO.NET
SQL Server 2005
Фундаментальные классы ADO.NET
Класс Connection
Строки соединений
Тестирование соединения
Организация пула соединений
Статистика соединений
Классы Command и DataReader
Основы команд
Класс DataReader
Метод ExecuteReader() и DataReader
Метод ExecuteScalar()
Метод ExecuteNonQuery()
Атаки внедрением SQL
Применение параметризованных команд
Вызов хранимых процедур
Транзакции
Транзакции и приложения ASP.NET
Уровни изоляции
Точки сохранения
Вложенные транзакции
Код, независимый от поставщика
Создание фабрики
Создание объектов с помощью фабрики
Запрос с независимым от поставщика кодом
Резюме

Глава 8. Компоненты данных и DataSet

Построение компонента доступа к данным
Пакет данных
Хранимые процедуры
Служебный класс базы данных
Тестирование компонента
Автономные данные
Web-приложения и DataSet
Интеграция с XML
Классы DataSet
Класс DataTable
Класс DataRow
Класс DataAdapter
Наполнение DataSet
Работа с множественными таблицами и отношениями
Поиск определенных строк
Применение DataSet в пользовательском классе данных
Привязка данных
Класс DataView
Сортировка с помощью DataView
Фильтрация с помощью DataView
Расширенное фильтрование с отношениями
Вычисляемые столбцы
Резюме

Глава 9. Привязка данных

Основы привязки данных
Привязка одного значения
Другие типы выражений
Привязка множественного значения
Элементы управления источниками данных
Жизненный цикл страницы с привязкой данных
SqlDataSource
Извлечение записей
Параметризация данных
Обработка ошибок
Обновление записей
Недостатки SqlDataSource
ObjectDataSource
Извлечение записей
Обновление записей
Обновление с помощью объекта данных
Ограничения элементов управления источниками данных
Проблема
Добавление дополнительных элементов
Обработка дополнительных элементов с помощью SqlDataSource
Обработка дополнительных элементов с помощью ObjectDataSource
Резюме

Глава 10. Расширенные элементы управления данными

GridView
Определение столбцов
Форматирование в GridView
Форматирование полей
Стили
Специфичные форматирующие значения
Выбор строк GridView
Применение выбора для создания форм типа ''главная-детальная''
Событие SelectedIndexChanged
Использование поля данных в качестве кнопки выбора
Сортировка GridView
Сортировка с помощью SqlDataSource
Сортировка с помощью ObjectDataSource
Сортировка и выбор
Расширенная сортировка
Разбиение на страницы в GridView
Автоматическое разбиение на страницы
Настраиваемое разбиение на страницы с помощью ObjectDataSource
Настройка панели страниц
Шаблоны GridView
Применение множественных шаблонов
Редактирование шаблонов в Visual Studio
Привязка метода
Обработка событий в шаблоне
Редактирование с помощью шаблона
Редактирование без командного столбца
DetailsView и FormView
DetailsView
FormView
Расширенные табличные элементы управления
Итоговые значения в GridView
Представление ''родительский-дочерний'' в одной таблице
Доставка графических образов из базы данных
Обнаружение конфликтов, связанных с параллелизмом
Резюме

Глава 11. Кэширование

Понятие о кэшировании ASP.NET
Кэширование вывода
Декларативное кэширование вывода
Кэширование и строка запроса
Кэширование со специфичными параметрами строки запроса
Настраиваемое управление кэшем
Кэширование с классом HttpCachePolicy
Послекэшевая подстановка и кэширование фрагментов
Профили кэшей
Кэширование на диске
Кэширование данных
Добавление элементов в кэш
Простой тест кэша
Приоритеты кэширования
Кэширование с помощью элементов управления источниками данных
Зависимости кэша
Зависимости от файлов и элементов кэша
Агрегатные зависимости
Метод обратного вызова при удалении элемента
Понятие об уведомлениях кэша SQL
Уведомления кэша в SQL Server 2000 или SQL Server 7
Уведомления кэша в SQL Server 2005
Пользовательские зависимости кэша
Базовая пользовательская зависимость кэша
Пользовательская зависимость кэша с использованием очередей сообщений
Резюме

Глава 12. XML

Когда использование XML имеет смысл?
Введение в XML
Преимущества XML
Хорошо оформленный XML
Пространства имен XML
Схемы XML
Программная запись и чтение XML
Запись файлов XML
Чтение XML-файлов
Проверка достоверности XML-файлов
Отображение содержимого XML с помощью XSL
Базовая таблица стилей
Использование XslTransform
Использование элемента управления Xml
Привязка данных XML
Неиерархическая привязка
Использование XPath
Вложенные таблицы
Иерархическая привязка с помощью TreeView
Использование XSLT
Привязка к содержимому XML из других источников
Обновление XML через XmlDataSource
XML и ADO.NET
Преобразование данных в XML
Доступ к DataSet как к XML
Выполнение XML-запроса
Резюме

Глава 13. Файлы и потоки

Работа с файловой системой
Классы Directory и File
Классы DirectoryInfo и FileInfo
Класс DriveInfo
Работа с Attributes
Фильтрация файлов с помощью шаблонов
Извлечение информации о версиях файлов
Класс Path
Браузер файлов
Чтение и запись файлов с помощью потоков
Текстовые файлы
Двоичные файлы
Загрузка файлов
Обеспечение безопасности файлов для множества пользователей
Сжатие
Сериализация
Резюме

Часть III. Создание Web-сайтов на платформе ASP.NET

Глава 14. Пользовательские элементы управления

Основы пользовательских элементов управления
Создание простого пользовательского элемента управления
Преобразование страницы в пользовательский элемент управления
Добавление кода в пользовательский элемент управления
Обработка событий
Добавление свойств
Использование специальных объектов
Добавление событий
Отображение внутреннего элемента управления Web
Динамическая загрузка пользовательских элементов управления
Портальные каркасы
Частичное кэширование страниц
Свойство VaryByControl
Совместное использование кэшированных элементов управления
Резюме

Глава 15. Темы и мастер-страницы

Стандартизация форматирования Web-сайта
Каскадные таблицы стилей
Темы
Папки тем и оформления
Применение простой темы
Обработка конфликтов темы
Создание множества вариантов оформления для одного элемента управления
Оформления с шаблонами и изображениями
Использование CSS в теме
Применение тем в конфигурационном файле
Динамическое применение тем
Стандартизация компоновки Web-сайта
Основы мастер-страниц
Простая мастер-страница
Простая страница содержимого
Особенности мастер-страниц во время проектирования
Содержимое по умолчанию
Более практичная мастер-страница
Мастер-страницы и относительные пути
Мастер-страницы и форматирование
Применение мастер-страниц через конфигурационный файл
Усовершенствованные мастер-страницы
Определение заголовка и метадескрипторов для страницы содержимого
Взаимодействие с классом мастер-страницы
Динамическая настройка мастер-страницы
Вложение мастер-страниц
Резюме

Глава 16. Навигация по Web-сайту

Страницы с множеством представлений
Элемент управления MultiView
Элемент управления Wizard
Карты сайта
Определение карты сайта
Привязка к карте сайта
''Хлебные крошки''
Связывание частей карты сайта
Навигация программными средствами
Связывание остальных элементов управления
Добавление специальной информации о карте сайта
Создание специального поставщика SiteMapProvider
Отображение URL
Элемент управления TreeView
TreeNode
Заполнение узлов по запросу
Стили элемента управления TreeView
Элемент управления Menu
Стили элемента управления Menu
Шаблоны меню
Резюме

Глава 17. Ресурсы и локализация

Ресурсы в приложениях .NET
Локализация Web-приложений
Локализация и общеязыковая среда выполнения
Локальные ресурсы для одной страницы
Совместное использование ресурсов страницами
Локализация статического текста
Направления чтения текста
Резюме

Глава 18. Развертывание Web-сайтов

Internet Information Services (IIS)
IIS и обработка URL
Обработка запросов с помощью IIS и ASP.NET
Модель процессов в IIS 5.x
Модель процессов IIS 6.0
Инсталляция IIS
Управление Web-сайтами
Создание виртуального каталога
Виртуальные каталоги и Web-приложения
Параметры настройки папок
Управление пулами приложений в IIS 6.0
Создание пулов приложений
Пулы приложений и Web-приложения
Специальные личности пулов приложений
Развертывание ваших приложений ASP.NET
Проверка установки ASP.NET
Параллельное выполнение ASP.NET
Конфигурирование параметров исполняющей среды HTTP
Модели компиляции
Развертывание с помощью Visual Studio
Класс VirtualPathProvider в ASP.NET 2.0
Мониторинг работоспособности в ASP.NET 2.0
Понимание базовой структуры
События и поставщики
Резюме

Часть IV. Безопасность

Глава 19. Модель безопасности ASP.NET

Что означает создание безопасного программного обеспечения
Понятие потенциальной угрозы
Правила безопасного кодирования
Понятие стража
Понятие уровней безопасности
Аутентификация
Авторизация
Конфиденциальность и целостность
Связываем все вместе
Средства безопасности Internet Information Services
Аутентификация IIS
Авторизация IIS
IIS и SSL
Архитектура безопасности ASP.NET
Аутентификация
Авторизация
Контекст безопасности
API-интерфейсы Membership и Roles
Резюме

Глава 20. Аутентификация с помощью форм

Введение в аутентификацию форм
Почему стоит использовать аутентификацию форм?
Когда не следует применять аутентификацию форм?
Почему бы не реализовать cookie-аутентификацию самостоятельно?
Классы аутентификации форм
Реализация аутентификации форм
Конфигурирование аутентификации форм
Закрытие доступа анонимным пользователям
Создание пользовательской страницы регистрации
Пользовательское хранилище удостоверений
Постоянные cookie-наборы в аутентификации форм
Резюме

Глава 21. Интерфейс Membership API

Введение в Membership API, предлагаемом ASP.NET
Использование Membership API
Конфигурирование аутентификации форм
Создание хранилища данных
Конфигурирование строки соединения и поставщика Membership
Создание аутентифицируемых пользователей
Использование элементов управления безопасностью
Элемент управления Login
Элемент управления LoginStatus
Элемент управления LoginView
Элемент управления PasswordRecovery
Элемент управления ChangePassword
Элемент управления CreateUserWizard
Использование класса Membership
Извлечение пользователей из хранилища
Обновление пользователей в хранилище
Создание и удаление пользователей
Проверка пользователей
Резюме

Глава 22. Аутентификация Windows

Введение в аутентификацию Windows
Зачем использовать Windows-аутентификацию?
Когда не следует использовать Windows-аутентификацию?
Механизм Windows-аутентификации
Реализация Windows-аутентификации
Конфигурирование IIS
Конфигурирование ASP.NET
Запрет доступа анонимным пользователям
Доступ к информации о пользователях Windows
Заимствование прав
Заимствование прав в Windows 2000
Заимствование прав в Windows XP
Заимствование прав и делегирование в Windows Server 2003
Конфигурируемое заимствование прав
Программное заимствование прав
Резюме

Глава 23. Авторизация и роли

Авторизация URL
Правила авторизации
Файловая авторизация
Проверки авторизации в коде
Применение метода IsInRole()
Использование класса PrincipalPermission
Использование службы Roles Service для авторизации ориентированной на роли
Использование элемента управления LoginView c Roles
Программный доступ к Roles
Использование службы Roles Service с Windows-аутентификацией
Защита ресурсов, не являющихся Web-страницами
Добавление отображения типа файла
Разработка собственного обработчика HTTP
Резюме

Глава 24. Профили

Понятие профилей
Производительность Profiles
Как система Profiles хранит данные
Профили и аутентификация
Профили по сравнению с настраиваемыми компонентами данных
Использование SqlProfileProvider
Создание таблиц профилей
Конфигурирование поставщика
Определение свойств профиля
Использование свойств профилей
Сериализация профиля
Группы профилей
Профили и пользовательские типы данных
Программный интерфейс Profiles API
Анонимные профили
Построение корзины покупок
Классы корзины покупок
Тестовая страница
Множественный выбор
Настраиваемые поставщики Profiles
Пользовательские классы поставщиков Profiles
Проектирование FactoredProfileProvider
Кодирование FactoredProfileProvider
Тестирование FactoredProfileProvider
Резюме

Глава 25. Криптография

Шифрование данных: соображения конфиденциальности
Пространство имен .NET Cryptography
Понятие о классах криптографии .NET
Алгоритм симметричного шифрования
Асимметричное шифрование
Абстрактные криптографические классы
Интерфейс ICryptoTransform
Класс CryptoStream
Шифрование важных данных
Управление секретами
Использование симметричных алгоритмов
Использование асимметричных алгоритмов
Шифрование ответственной информации в базе данных
Шифрование строки запроса
Оболочка для строки запроса
Создание тестовой страницы
Резюме

Глава 26. Пользовательские поставщики Membership

Архитектура пользовательских поставщиков
Базовые шаги создания пользовательского поставщика
Общий дизайн пользовательского поставщика
Проектирование и реализация пользовательского хранилища
Реализация классов поставщиков
Использование классов пользовательских поставщиков
Резюме

Часть V. Расширенный пользовательский интерфейс

Глава 27. Настраиваемые серверные элементы управления

Основы настраиваемых серверных элементов управления
Создание простейшего настраиваемого элемента управления
Использование настраиваемого элемента управления
Настраиваемые элементы управления в панели инструментов
Создание Web-элемента управления, поддерживающего свойства стилей
Процесс генерации
Обращение с различными браузерами
HtmlTextWriter
Определение браузера
Свойства браузеров
Адаптивная генерация
Состояние элемента управления и события
Состояние вида
Состояние элемента управления
Обратная отправка данных и события изменений
Запуск обратной отсылки
Расширение существующих Web-элементов управления
Композитные элементы управления
Производные элементы управления
Шаблонные элементы управления
Создание шаблонного элемента управления
Использование шаблонных элементов управления
Стили
Резюме

Глава 28. Поддержка времени проектирования

Атрибуты времени проектирования
Окно Properties
Атрибуты и наследование
Пиктограмма панели инструментов
Web-ресурсы
Сериализация кода
Преобразователи типов
Атрибуты сериализации
Редакторы типов
Визуальные конструкторы элементов управления
Базовый визуальный конструктор элемента управления
Интеллектуальные дескрипторы
Список действий
Коллекция DesignerActionItem
Визуальный конструктор элемента управления
Резюме

Глава 29. JavaScript

Главные элементы JavaScript
События JavaScript
Блоки сценария
Генерация блоков сценария
Атаки вмешательством в сценарий
Проверка достоверности запросов
Отключение проверки достоверности запросов
Клиентские обратные вызовы
Создание клиентского обратного вызова
Клиентские обратные вызовы: за кулисами
Настраиваемые элементы управления с JavaScript
Всплывающие окна
Обращающиеся кнопки
Динамические панели
Фреймы
Навигация во фреймах
Встроенные фреймы
Резюме

Глава 30. Динамическая графика и GDI+

Элемент управления ImageMap
Создание активных участков
Обработка щелчков на активных участках
Настраиваемый активный участок
Рисование с GDI+
Простое рисование
Формат изображения и качество
Класс Graphics
Использование GraphicsPath
Перья
Кисти
Встраивание динамической графики в Web-страницу
Использование формата PNG
Передача информации динамическим изображениям
Настраиваемые элементы управления, использующие GDI+
Вычерчивание графиков с GDI+
Резюме

Глава 31. Порталы на основе страниц Web Part

Типичные портальные страницы
Базовые страницы Web-частей
Разработка дизайна страницы
WebPartManager и WebPartZones
Добавление Web-частей на страницу
Настройка страницы
Создание Web Parts
Простые задачи Web Part
Разработка расширенных Web-частей
Подключение Web-частей
Авторизация Web Parts
Заключительные задачи для персонализации
Резюме

Часть VI. Web-службы

Глава 32. Создание Web-служб

Обзор Web-служб
История Web-служб
Распределенная обработка данных и Web-службы
Проблемы с технологиями распределенных компонентов
Преимущества Web-служб
Зарабатывание денег с помощью Web-служб
Стек протоколов технологии Web-служб
Создание базовой Web-службы
Класс Web-службы
Требования Web-службы
Отображение Web-службы
Тестирование Web-службы
Использование Web-службы
Прокси-класс
Создание ASP.NET-клиента
Создание клиентского приложения Windows Forms
Создание ASP-клиента с помощью MSXML
Создание ASP-клиента с помощью инструментального набора Microsoft SOAP Toolkit
Настройка Web-службы
Свойство CacheDuration
Свойство EnableSession
Свойство BufferResponse
Свойство TransactionOption
Резюме

Глава 33. Стандарты и расширения Web-служб

Стандарт WS-Interoperability
Стандарт SOAP
SOAP-кодировка
Версии SOAP
Трассировка SOAP-сообщений
SOAP-конверт
SOAP-заголовок
Стандарт WSDL
Просмотр WSDL-документа Web-службы
Базовая структура
Реализация существующего контракта
Настройка SOAP-сообщений
Сериализация сложных типов данных
Настройка процесса сериализации XML с помощью атрибутов
Совместное использование типов
Настройка процесса сериализации XML с помощью IXmlSerializable
Специальная сериализация для больших типов данных
Расширения импортера схем
Резюме

Глава 34. Усовершенствованные Web-службы

Асинхронные вызовы
Асинхронные делегаты
Простой асинхронный вызов
Параллельные асинхронные вызовы
Реагирующие Windows-клиенты
Асинхронные службы
Обеспечение безопасности Web-служб
Аутентификация Windows
Специальная аутентификация на основе мандатов
Отслеживание подлинности пользователя
Аутентификация пользователя
Авторизация пользователя
Тестирование SOAP-системы аутентификации
SOAP-расширения
Создание SOAP-расширения
Набор инструментальных средств Web Services Enhancements
Инсталляция WSE
Выполнение аутентификации с помощью WSE
Резюме

Предметный указатель

Введение

Заинтересовать разработчиков в ASP.NET не особенно трудно. Без преувеличения, ASP.NET является наиболее полной платформой для Web-разработки из всех, которые когда-либо создавались. Она оставила далеко позади свою предшественницу - ASP, которая создавалась как минимальный набор средств для вставки динамического содержимого в обычные Web-страницы, и в отличие от нее, представляет собой полнофункциональную платформу, позволяющую создавать сложные и чрезвычайно быстрые Web-приложения.

В этой книге будет рассказываться обо всем, что нужно знать для того, чтобы овладеть ASP.NET 2.0. Те, кому приходилось работать с предыдущими версиями ASP.NET, смогут быстренько вспомнить основные концепции и сразу же приступить к изучению новых, интересных функциональных возможностей версии 2.0. Тем же, кому никогда не доводилось иметь дела с ASP.NET, эта книга позволит и ознакомиться со всеми базовыми концепциями, и понять, что на самом деле происходит внутри ASP.NET. От читателя требуется только одно: он должен хорошо разбираться в языке C# и иметь хотя бы общее представление о .NET. Тем, кто привык работать с Java или C++ и для кого язык C# является новым, пожалуй, лучше будет сначала прочитать какую-нибудь книгу, в которой подробно описываются основные концепции .NET, такую как Язык программирования C# 2005 для профессионалов (издательство "Диалектика", 2006 год).

Переход с ASP.NET 1.0 на ASP.NET 2.0

Как читателю наверняка уже известно, ASP.NET - это новая технология (то есть технология следующего поколения) для создания серверных Web-приложений производства Microsoft. Она входит в состав платформы Microsoft .NET Framework, которая представляет собой набор тесно связанных между собой новых, ставших революционными технологий, начиная от технологии для получения доступа к базам данных и заканчивая технологией для создания распределенных приложений. ASP.NET является одним из самых важных компонентов .NET Framework и позволяет разрабатывать высокопроизводительные Web-приложения и Web-службы.

Появление версии ASP.NET 1.0 стало настоящей революцией в мире Web-программирования. Она пользовалась такой бешеной популярностью, что еще на этапе бета-тестирования была установлена (через программу лицензирования Microsoft Go-Live) на множестве коммерческих Web-серверов. Выпущена версия ASP.NET 1.0 была только в начале 2002 года.

Версия ASP.NET 1.1 такого ажиотажа уже не вызвала. Она явилась своего рода возможностью для разработчиков Microsoft передохнуть и собраться с силами.

В ASP.NET 1.1 внимание уделялось не новым функциональным возможностям (таковых в ней вообще не было), а повышению производительности, настройке системы безопасности и устранению некоторых незначительных дефектов. Новые функциональные возможности потихонечку "откладывались в длинный ящик" и припрятывались до прихода более подходящих времен, то есть до выхода следующей крупной версии - ASP.NET 2.0. Версия ASP.NET 1.1 была выпущена в конце 2003 года и закрепила за ASP.NET статус наиболее предпочитаемой платформы для Web-разработки среди профессиональных разработчиков.

Два года спустя на горизонте наконец-то появилась версия ASP.NET 2.0. В отличие от ASP.NET 1.0, ASP.NET 2.0 не станет началом нового направления в Web-разработке. На самом деле, практически вся лежащая в основе этой версии архитектура почти ничем не отличается от той, что была в версии ASP.NET 1.0. Разница состоит в том, что в ASP.NET 2.0 к существующей технологии добавились некоторые новые функциональные возможности более высокого уровня. В принципе, после успеха версии ASP.NET 1.0, Microsoft не жалела ни сил разработчиков, ни времени, ни ресурсов на планирование и подготовку версии ASP.NET 2.0. Поскольку переписывать код механизма ASP.NET больше было не нужно, разработчики, занимавшиеся версией ASP.NET 2.0, смогли добавить новые элементы управления, создать более гибкие решения для управления данными, построить основанную на ролях модель безопасности и даже создать целый набор инструментальных средств для разработки портальных Web-сайтов. Если не вдаваться в подробности, ASP.NET 2.0 дает разработчикам возможность расслабиться и порадоваться множеству новых функций, которые были разработаны для их любимой платформы.

В этой книге они смогут узнать, как этими всеми функциями пользоваться, как их настраивать и как их можно расширять.

Как организована эта книга

Ниже приводится краткий перечень вопросов, которые будут рассматриваться в этой книге:

Часть 1. Базовые концепции. В главе 1 читатель сможет узнать, что собой вообще представляет .NET Framework и платформа ASP.NET в частности, а также какие изменения в целом были внесены в версию ASP.NET 2.0. В главе 2 читатель познакомится с доступными в этой версии инструментальными средствами, такими как Visual Studio 2005. В главах 3, 4, 5 и 6 описываются базовые концепции инфраструктуры ASP.NET, а именно: модель Web-страницы, конфигурирование приложения, управление состоянием и кэширование. Изучив эти концепции, читатель также сможет увидеть (на уровне кода), как процессы ASP.NET запрашивают и управляют временем жизни Web-приложений, а также узнать, как можно расширить архитектуру ASP.NET.

Часть 2. Доступ к данным. Эта часть книги посвящена одной из самых главных тем в сфере разработки любого программного обеспечения - "получение доступа к данным и управление ими". В главе 7 и 8 читатель познакомится с основными концепциями ADO.NET, которые могут пригодиться при разработке Web-приложений, и научится проектировать компоненты, отвечающие за доступ к данным. В главе 9 и главе 10 читатель сможет узнать о новых элементах управления для привязки данных в наборе ASP.NET, которые позволяют форматировать и представлять данные, не требуя для этого написания нескольких страниц кода. В главе 11 описываются усовершенствованные стратегии кэширования, обеспечивающие максимально высокую производительность. И, наконец, в главах 12 и 13 рассматриваются способы работы с XML-содержимым и способы обработки обычных процедур получения доступа к файлам.

Часть 3. Создание Web-сайтов на платформе ASP.NET. В этой части читатель познакомится с основными технологиями и функциональными возможностями, позволяющими управлять группами Web-страниц. В главе 14 описываются просто пользовательские элементы управления, позволяющие повторно использовать сегменты пользовательского интерфейса; в главе 16 - две новых технологии ASP.NET: темы (позволяющие автоматически настраивать стиль элементов управления) и ведущие страницы (позволяющие повторно использовать один шаблон для множества страниц); а в главе 16 рассказывается о том, как с помощью новой модели навигации ASP.NET 2.0 можно позволить пользователям переходить с одной страницы на другую. И, наконец, в главе 17 приводится описание процедуры локализации, а в главе 18 - процесса разворачивания и программного обеспечения Web-сервера IIS.

Часть 4. Безопасность. Эта часть посвящена доступным в ASP.NET средствам безопасности. Сначала читатель ознакомится с основными концепциями безопасности (глава 19), затем - с деталями технологии аутентификации с помощью форм (глава 20), а после этого - с новым, работающим с этой технологией интерфейсом Membership API (глава 21). В главе 22 читатель вспомнит, что собой представляет аутентификация Windows, а в главе 23 узнает о том, как можно настраивать доступ для авторизованных пользователей с помощью сложных правил авторизации и пользоваться основанной на ролях моделью безопасности. В главе 24 читатель познакомится с новым, заранее созданным решением для хранения информации пользователя - Profiles API, а в главе 25 уже научится защищать данные, хранящиеся в базе данных, а также информацию, пересылаемую в URL, с помощью шифрования. И, наконец, в главе 26, он увидит, как можно подключиться к модели безопасности ASP.NET, разработав специальный поставщик Membership.

Часть 5. Расширенный пользовательский интерфейс. В этой части расска- зывается о том, как можно расширить Web-страницы с помощью дополнитель- ных технологий. В главе 27 и 28 описываются способы создания специальных элементов управления, в главе 29 и 30 - способы применения JavaScript для создания динамических страниц и GDI+ для создания графики вручную, а в главе 31 - способы использования ASP.NET 2.0 Web Parts Framework для соз- дания Web-порталов.

Часть 6. Web-службы. Web-службы обещают стать революционным прорывом в технологиях обмена функциональными возможностями между разными приложениями, сетевыми окружениями и вычислительными платформами. В главе 32 читатель для начала познакомится с основными концепциями технологии Web-служб, а также увидит, как создаются базовые Web-службы и как их можно использовать в Web-приложениях ASP.NET, в Windows-приложениях .NET и даже в унаследованных ASP-приложениях. В главе 33 читатель узнает о стандартах, лежащих в основе технологии Web-служб, и том, как они работают. А в главе 34 он познакомится с дополнительными технологиями, позволяющими вызывать Web-службы асинхронно и делать их безопасными, а также с набором инструментальных средств WSE (Web Services Enhancements) и поддерживаемыми им более новыми стандартами для Web-служб.

На кого рассчитана эта книга

Эта книга рассчитана в первую очередь на профессиональных разработчиков, которые достаточно хорошо разбираются в такой теме, как разработка серверных Web-приложений. В этой книге не приводится подробное описание всех компонентов .NET Framework - на самом деле, такая книга заняла бы в два раза больше страниц. Напротив, при ее создании преследовалась следующая цель: кратко и доходчиво познакомить с ASP.NET профессиональных программистов, которым уже известны базовые концепции и которые не нуждаются в их повторном изучении. В этой книге будут рассматриваться и другие технологии .NET Framework, которые просто необходимы для создания профессиональных Web-приложений, а именно - доступ к данным и XML. Используя эти технологии, разработчики смогут создавать Web-сайты следующего поколения с помощью наилучших из доступных на сегодняшний день средств.

Кроме того, данная книга является еще и крайне практичной. В ней описываются не только функциональные возможности, но и технологии, пригодные для использования в реальном мире, применяя которые разработчик сможет ''поднять'' свой Web-сайт на следующий уровень. В более поздних главах рассматриваются такие интересные темы, как специальные элементы управления, динамическая графика, усовершенствованная система безопасности и высокоэффективный доступ к данным - и все для того, чтобы предоставить разработчикам всю информацию, которая им может понадобиться для создания профессиональных Web-приложений.

Чтобы извлечь максимальную пользу из данной книги, читатель должен быть знаком с синтаксисом языка C# и базовыми концепциями объектно-ориентированного программирования. Наличие опыта работы с предыдущими версиями ASP.NET не обязательно, потому что необходимые базовые сведения здесь приводятся. Тем, кто привык работать с Java или C++ и никогда не работал с .NET, пожалуй, лучше будет сначала прочитать какую-нибудь книгу по .NET.

Что необходимо для использования этой книги

Главным условием является наличие компьютера с установленной на нем версией Visual Studio 2005. Хотя теоретически код можно было бы написать и вручную, из-за чрезмерного количества требующихся для этого усилий и вероятности допущения ошибки профессиональные разработчики никогда не пользуются таким подходом.

ПРИМЕЧАНИЕ
На заметку! Вы можете использовать сокращенную версию Visual Studio Web Developer 2005 Express Edition, но в этом случае в некоторых примерах ваши возможности будут существенно ограничены. Кроме того, что даже еще более важно, Visual Studio Web Developer 2005 Express Edition нельзя применять для создания библиотек классов, которые являются важной частью современного компонентно-ориентированного проектирования.

Помимо этого, для запуска ASP.NET-страниц в качестве операционной системы может использоваться только одна из следующих версий Windows: Windows 2000 Professional, Windows XP Professional, Windows 2000 Server или Windows Server 2003. Также, при желании создавать Web-службы или тестировать стратегии разворачивания, придется установить IIS (Internet Information Services - Информационные службы Internet); это компонент, который отвечает за размещение на сервере Web-сайтов клиентов и является частью операционной системы Windows.

И, наконец, в эту книгу для демонстрации кода доступа к данным, технологий обеспечения безопасности и Web-служб были включены несколько примеров, в которых используются образцы баз данных, поставляемые вместе с SQL Server.

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

Эта книга готовилась на основе самых последних бета-версий ASP.NET (beta 2 и post-beta 2). Поскольку ASP.NET сейчас еще проходит заключительный цикл бета-тестирования, не исключено, что окончательная версия продукта будет содержать некоторые изменения: это могут быть новые функциональные возможности или незначительные синтаксические отличия (такие как измененное имя свойства или метода). Избежать путаницы помогут примеры кода, которые можно найти на сайте , в разделе "Source Code" ("Исходный код"), и которые будут обязательно обновлены, как только станет доступна окончательная версия продукта (кроме того, исходные коды всех примеров доступны и на сайте издательского дома "Вильямс").

От издательства

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

Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или электронное письмо, либо просто посетить наш Web-сервер и оставить свои замечания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас.

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

Наши координаты:
E-mail: info@williamspublishing.com
WWW: http://www.williamspublishing.com
Информация для писем из:
России: 115419, Москва, а/я 783
Украины: 03150, Киев, а/я 152

Исходные коды примеров

Загрузить исходные коды примеров, рассмотренных в книге, можно из сайтов http://www.apress.com и http://www.williamspublishing.com. Исходные коды представлены в виде ZIP-файла. Прежде чем использовать код, разархивируйте этот ZIP-файл с помощью соответствующей программы, такой, например, как WinZip. Код организован по каталогам в соответствии с главами книги.

Перед тем как использовать код, ознакомьтесь с содержимым прилагаемого файла Readme.txt: в нем описываются условия, которые должны быть обязательно соблюдены, а также приводятся другие важные сведения.