Предисловие
Существует множество способов приобрести необходимые знания, особенно когда никаким предварительным опытом в этой области не обладаешь. Например, когда я учился кататься на велосипеде, то делал это весьма старомодным способом - я просто садился на него и пытался ехать. Естественно, сначала я терпел одну неудачу за другой. Тем не менее некоторое время спустя я уже мог кататься в течение всего дня, ни разу не ободрав коленки.
Изучение игры на гитаре немного отличалось от предыдущего опыта: самостоятельных попыток было уже недостаточно. Я вынужден был учиться у более опытных гитаристов. Оказывается, преподаватели необходимы. У меня было много учителей, и я научился многим полезным вещам именно у них: будь то фантастически сложные аккорды Джимми Хендрикса (Jimi Hendrix) или виртуозная игра Эдди Вана Халена (Eddie Van Halen) и Эрика Клэптона (Eric Clapton). Но чаще всего мне приходилось садится рядом с более опытным гитаристом и слушать его советы и наставления о приемах и методах игры. Именно применение их знаний и опыта помогли мне стать настоящим музыкантом. Хотя обучение игре на гитаре заняло куда больше времени, чем езде на велосипеде, разбитых колен мне удалось избежать.
К счастью, обучиться ASP.NET гораздо проще, чем игре на гитаре, а сделанная ошибка окажется существенно менее болезненной, чем при падении с велосипеда! ASP.NET предназначен для того, чтобы упростить разработку и публикацию приложений и служб. Одно из главных достоинств, которое наверняка понравится разработчикам, - новая архитектура создания страниц, использующих элементы управления многократного использования, которая поддерживает модель программирования, похожую на применяемую в Visual Basic. Для создания Web-служб, ориентированных на применение XML, имеются фантастические возможности, а публикация с помощью команды "xcopy" позволяет установить приложение, просто скопировав все его ресурсы (типа страниц, компилируемых компонентов и данных конфигурации) без необходимости их регистрации. Более того, существует возможность устанавливать обновления даже для выполняющегося приложения, и приложение элегантно перейдет к новой версии! Кроме того, ASP.NET имеет ряд менее очевидных достоинств, которые, тем не менее, обеспечивает огромные возможности. Например, возможность трассировки вызывала бурные аплодисменты всякий раз, когда мы об этом сообщали разработчикам!
Кроме достоинств собственно ASP.NET, существует еще одно, возможно, самое большое достоинство всей инициативы Microsoft в целом, называемое "The .NET Framework" (Среда .NET Framework). Среда .NET Framework - удивительно богатая платформа для создания приложений и служб, обеспечивающая ряд неоспоримых преимуществ для разработчиков.
Например, среда выполнения общего языка (CLR - Common Language Runtime), являющегося основной частью .NET Framework, существенно увеличивает эффективность разработки, позволяя избежать создания рутинных и служебных процедур. Это, в свою очередь, избавляет разработчиков от элементарных ошибок программирования и проблем, связанных с несовпадением версий. Кроме того, такой подход обеспечивает дополнительные возможности с точки зрения объектно-ориентированной архитектуры (например, возможность наследования). Но наиболее впечатляющим результатом оказалась независимость от языка программирования. Так, например, вполне возможно реализовать объект в C#, а затем наследовать его из Visual Basic (да, теперь VB поддерживает наследование!).
Среда .NET Framework содержит также богатейший набор библиотек классов, которые позволяют разработчикам создавать сложные приложения с меньшим количеством кода. Прилагаются также библиотеки объектов для доступа и управления данными в формате XML и реляционных баз данных, для доступа к файловой системе, сетевого ввода/вывода, для создания и управления изображениями. Кроме того, существует возможность использования таких универсальных структур данных, как хэш-таблицы и списки.
И в довершение ко всему перечисленному платформа .NET укомплектована мощнейшими инструментом - Visual Studio.NET, который обладает возможностью непосредственно взаимодействовать как с .NET Framework, так и с ASP.NET. Следовательно, теперь разработчики могут использовать и этот, самый популярный в мире инструмент для разработки, отладки и публикации своих Web-служб и приложений.
Перечисляя все эти фантастические возможности, мы забыли о главном: как лучше всего изучать ASP.NET? Несмотря на то что все было сделано так, чтобы можно было "сесть" и сразу "поехать", я полагаю, что хороший преподаватель все-таки необходим. Вот почему была написана эта книга, ASP.NET: советы, рекомендации, примеры (ASP.NET: Tips, Tutorials, and Code), которая объединила работы наиболее опытных, всемирно известных разработчиков в области ASP.NET. Экскурс по основным областям ASP.NET и .NET Framework, демонстрация примеров их применения для решения практических задач в реальных приложениях помогут овладеть наиболее важными приемами и методами программирования для ASP.NET.
Конечно, когда наша группа приступала к созданию этой книги, мы имели определенную концепцию ASP.NET. Но за три с половиной года, на протяжении которых она создавалась, наше представление об ASP.NET менялось сотни раз, как, впрочем, оно менялось и внутри самой Microsoft, и в обсуждениях телеконференций по всему миру. Одним из первых рабочих названий этой книги было "ASP.NET Tips and Tricks" (ASP.NET советы и приемы), предложенное Скоттом Гатри (Scott Guthrie), вместе с которым мы начинали этот проект. При этом он исходил из ряда мощнейших возможностей, которыми обладают ASP.NET и .NET Framework. Услышав об этих возможностях, почти все разработчики удивляются: "Неужели это вообще возможно?"
В разговоре с издателями Sams мы упомянули, что подобная книга очень пригодится разработчикам. Кроме того, мы помогли найти самых лучших специалистов в этой области для ее написания. Скотт Митчелл (Scott Mitchell), Стив Уолтер (Steve Walther), Дуг Севен (Doug Seven), Донни Мэк (Donny Mack), Дэн Вахлин (Dan Wahlin) и Крис Пейн (Chris Payne) - одни из наиболее опытных разработчиков ASP.NET и признанные "гуру" в своем сообществе. Адам Натан (Adam Nathan) работает на Microsoft в группе CLR, а Билли Андерс (Billy Anders) был одним из первых сотрудников Microsoft, занявшихся решениями на базе ASP.NET.
Полагаю, читатель найдет ASP.NET: советы, рекомендации, примеры интересным и заслуживающим внимания изданием, которое окажется очень полезным при изучении ASP.NET. Наслаждайтесь!
Марк Андерс (Mark Anders),
менеджер производственного отдела
.NET Framework,
корпорация Microsoft
Введение
В июле 2000 года на конференции профессиональных разработчиков (PDC - Professional Developers Conference) Microsoft официально объявила всему миру о своих разработках в области сетевых технологий - .NET. Ее стратегия рассчитана на применение программного обеспечения, работающего в Internet в качестве службы взаимодействия с клиентом. Для пользователей платформа .NET существенно упрощает процесс хранения и доступа к информации. Это связано с тем, что способ описания данных не зависит от платформы, на которой они находятся (благодаря XML), а способ доступа является универсальным (через Internet). Для профессиональных разработчиков платформа .NET предоставляет абсолютно новую среду разработки, новые языки и инструментальные средства программирования.
Представляя на конференции PDC платформу .NET в целом, Microsoft объявила о новом приложении - активных страницах сервера платформы .NET (ASP.NET - Active Server Pages). Предшественником ASP.NET (составляющей платформы .NET) является технология активных страниц сервера - ASP, позволявшая создавать скрипты (сценарии) сервера IIS для обеспечения динамических Web-страниц. Теперь в эту технологию внесены существенные изменения и дополнения.
Для оказания помощи в создании сложных приложений Microsoft включила в среду .NET Framework комплект разработчика программного обеспечения (SDK - Software Developers Kit), представляющий собой коллекцию сотен полезных классов, размещаемых в логических пространствах имен. Эти классы обеспечивают функциональные возможности, необходимые для разработки приложений на платформе .NET. Например, пространство имен System.Diagnostics содержит классы, позволяющие приложениям .NET проводить сетевую диагностику, чтение и запись в журнал событий Windows, а пространство имен System.Data содержит ряд классов для доступа и манипулирования обширным набором баз данных.
При создании динамических Web-страниц с помощью ASP.NET создаются приложения .NET. Поэтому страницы ASP.NET способны обращаться к многочисленным функциональным возможностям среды .NET Framework и выполнять такие действия, которые ранее были доступны ASP только при помощи компонентов COM (или невозможны вообще).
В связи с существенными изменениями, внесенными платформой .NET в технологию создания сетевых приложений, нет ничего удивительно в том, что и методы разработки динамического Web-сайта, использующего ASP.NET, разительно отличаются от методов создания такого же сайта с использованием классического ASP. Например, в то время как классические страницы ASP создавались с помощью языков сценариев (скриптов), Web-страницы ASP.NET создаются с помощью компилирующих языков программирования. С платформой .NET совместимы такие языки программирования, как Visual Basic.NET и C#. Web-страницы ASP.NET, подобно другим приложениям .NET реагируют на события и поддерживают объектно-ориентированные методы программирования.
Разработчики, обладающие опытом работы с классическим ASP, обнаружат, что ASP.NET отличается от него радикально. Безусловно, для изучения новой технологии приходится приложить определенные усилия, и ASP.NET не является исключением из этого правила. Но пользователям классического ASP все-таки стоит потратить немного времени и ознакомиться с ASP.NET, чтобы впоследствии наслаждаться его безграничными функциональными возможностями и легкостью применения. Но преимущества ASP.NET перед классическим ASP не ограничиваются лишь широкими возможностями и высокой эффективностью: для создания страниц ASP.NET требуется гораздо меньший объем программного кода, а время разработки существенно короче.
В этой книге рассматривается целый ряд захватывающих возможностей ASP.NET, которые отсутствуют в классическом ASP. К таким возможностям, доступным только в ASP.NET, можно отнести следующие.
- Программный интерфейс управляемый событиями (глава 1, "Общие технологии страниц ASP.NET").
- Программный доступ ко всему изобилию классов .NET Framework (глава 2, "Общие технологии программирования ASP.NET").
- Богатейшие возможности проверки правильности ввода значений в поля форм как со стороны сервера, так и со стороны клиента (глава 3, "Проверка правильности ввода значений в поля форм").
- Упрощенная разработка и применение элементов управления пользовательского интерфейса многократного использования (глава 5, "Создание и применение элементов управления").
- Тесная интеграция с объектами данных ActiveX для платформы .NET (ADO.NET - Active Data Objects.NET). Предшественником ADO.NET являлись объекты данных ActiveX Microsoft (ADO - ActiveX Data Objects), применяемые для доступа к базам данных (глава 6, "Манипулирование данными с помощью ADO.NET").
- Возможность создавать расширенные элементы управления данными и связывать с ними результаты запросов к базе данных (глава 7, "Представление данных").
- Простота размещения Web-сайтов и специальных компонентов ASP.NET (гла-ва 11, "Установка и конфигурация ASP.NET").
- Размещение компонентов (Web-служб) в Internet таким образом, чтобы ими могли пользоваться другие Web-сайты (глава 13, "Web-службы").
- Возможность Web-страниц ASP.NET легко использовать Web-службу - компонент, находящийся в Internet (глава 13, "Web-службы").
- API расширенного кэширования позволяет увеличить эффективность Web-страниц (глава 15, "Повышение эффективности ASP.NET").
- Возможность легко создавать элементы управления для Web, способные взаимодействовать с мобильными устройствами связи (глава 17, "Элементы управления для мобильных устройств").
- Совместимость с компонентами COM, созданными до появления технологии .NET (глава 19, "COM и Win32 в Web-страницах ASP.NET").
И это лишь краткий список возможностей! ASP.NET содержит такое разнообразие возможностей и преимуществ над классическим ASP, что практически наверняка завоюет весь мир программирования для Web. Если есть желание принять участие в этих событиях и заинтересованность в подробном изучении ASP.NET, то предлагаемая книга, которая является исчерпывающим руководством по этой теме, окажется очень полезна.
Для кого написана эта книга
Эта книга предназначена для пользователей средней квалификации и опытных разработчиков Web-приложений, которые решили глубоко изучить ASP.NET. ASP.NET содержит так много новых возможностей, и обладает таким большим количеством достоинств по сравнению с классическим ASP, что даже самый опытный разработчик ASP найдет в этой книге много новой полезной информации.
В связи с тем что в ASP.NET внесены радикальные изменения, знакомство с классическим ASP не является необходимым для изучения этой книги, но опыт программирования в VBScript, Visual Basic, Java или любом другом языке программирования высокого уровня будет очень полезен.
Благодарности
Авторы книги и выражают самую глубокую благодарность группе разработчиков ASP.NET корпорации Microsoft и персонально Скотту Гатри (Scott Guthrie), Робу Говарду (Rob Howard) и Марку Андерсу (Mark Anders) - всем, кто пожертвовал свое время и энергию на этот проект. Без тяжкой работы выпускающего редактора Шелли Кронзека (Shelley Kronzek), редактора проекта Роба Тидроу (Rob Tidrow), технического редактора Джона Колэта (John Kolat), организатора проекта Леха Киркпатрика (Leah Kirkpatrick) и разработчика ресурсов Дэна Шерфа (Dan Scherf) эта книга не вышла бы. Благодарим каждого из них!