Россия |
Урок 4: Динамические веб-сайты
Выбор серверной модели
Итак, существует несколько распространенных серверных языков. Это знание порождает логичный вопрос, естественный для тех, кто только начинает заниматься разработкой динамичных сайтов, а именно: "Какую серверную модель следует использовать?". В приведенном ниже списке описаны основные функции, а также "плюсы" и "минусы" каждой технологии.
- Aсtive Server Pages (ASP).ASP – это технология, разработанная Microsoft для создания динамичных веб-сайтов. Технология соединяет IIS- и PWS-серверы (соответственно Internet Information Services для Windows 2000 and XP и Personal Web Server для Windows 98) с языком VBScript (Visual Basic Script). Второй язык, используемый в ASP, – JScript –представляет собой реализацию корпорацией Microsoft языка JavaScript. Технология ASP бесплатна и встроена в IIS- и PWS-серверы. Это означает, что каждый пользователь Windows, разобравшись в настройках, имеет возможность бесплатно разрабатывать сайты на основе технологии ASP. Правда, для тех, у кого нет опыта в программировании, язык VBScript может показаться довольно сложным. В настоящее время ASP постепенно вытесняется более разрекламированной технологией ASP.NET (см. ниже).
- ColdFusion. ColdFusion – это серверная технология, разработанная компанией Macromedia. Ее синтаксис, основанный на тегах, гораздо проще, чем синтаксис VBScript, а код значительно более компактный. Большинство разработчиков считают ее самой подходящей из всех серверных моделей. Объективно говоря, ColdFusion представляет собой мощный язык, намного ускоряющий разработку динамичных сайтов. С выходом Macromedia ColdFusion MX 6.1 заметно увеличилось быстродействие, которое оставляло желать лучшего в прежних версиях. Недостаток технологии ColdFusion заключается в том, что ее использование является платным, хотя стоимость окупается повышением производительности. Установка и настройка ColdFusion осуществляются невероятно просто.
- PHP Hypertext Processor (PHP). Технология, в названии которой используется рекурсивный акроним PHP, довольно быстро развивается по ряду причин. Это проект с открытым исходным кодом, а, кроме того, он является бесплатным и хорошо сочетается с другими замечательными свободно распространяемыми продуктами, такими как веб-сервер Apache и система управления базами данных MySQL. Код четвертой версии PHP 4, используемой в этой книге, по сложности сравним с ASP, хоть и несколько проще. В появившейся недавно пятой версии языка, в большей степени, задействован объектно-ориентированный подход и, как следствие, он намного сложнее для начинающих (хотя значительно удобнее и эффективнее для опытных программистов). Один, общий для всех программных продуктов с открытым исходным кодом, недостаток заключается в том, что установка и настройка связки PHP-Apache-MySQL может оказаться непростым делом.
- ASP.NET.ASP.NET является частью платформы .NET и отвечает за создание веб-приложений. Это новая мощная технология для реализации быстродействующих и эффективных веб-разработок. Как и предшествующая технология ASP, ASP.NET запускается на любом сервере Microsoft IIS, если на нем установлены бесплатные расширения .NET. Но с учетом принципов своей работы и архитектуры ASP.NET отличается от ASP, ColdFusion и PHP. Вне зависимости от уровня профессионализма и опыта разработчика (даже если он работал с ASP) для эффективной работы с ASP.NET требуется определенная подготовка. ASP.NET поддерживает многочисленные языки программирования, но самыми популярными являются VisualBasic.NET и C#.
- Java Servlet Pages (JSP).Технология разработки динамичных веб-сайтов JSP основана на языке Java. Для интерпретации кода требуется Java-сервер (такой, например, как J2EE). Технология JSP отличается впечатляющей скоростью откликов на запросы и невероятной эффективнойстью. Пожалуй, до появления .NET она была самой мощной технологией, да и сейчас вполне может "померяться силами" с .NET. Но, опять же, код JSP очень сложен для тех, кто только приступает к разработке динамичных веб-сайтов.
В книге рассматривается классическая технология ASP (в дальнейшем просто ASP), ColdFusion и PHP. Но книга не посвящена именно ASP, ColdFusion и PHP. Она задумана как введение в принципы и практику разработки динамичных веб-сайтов, управляемых базами данных, при помощи Dreamweaver MX 2004 компании Macromedia. В ней приводится большое количество кода, описываются принципы кодирования, а также принципы работы с вложенными в Dreamweaver моделями поведения сервера, позволяющими ускорить и упростить процесс разработки. Книга учит объединять несколько технологий для создания динамической страницы, а также планировать и создавать сайты, эффективно использующие возможности технологий. После ее прочтения вы вряд ли станете экспертом в ASP, ColdFusion или PHP, но, взяв в руки книгу по любой из этих технологий и ориентированную на практическую запись кода, в том числе, предназначенную для опытных пользователей, вы будете в состоянии в достаточной степени, понять ее, чтобы двинуться дальше – по пути разработки сложных веб-проектов.
Подводя итоги краткого сравнительного анализа достоинств и недостатков различных серверных моделей, открою один секрет. Веб-разработчики редко имеют возможность самостоятельно решать, какую модель лучше использовать. В действительности, на выбор обычно влияют такие факторы, как доступная технология, бюджет проекта, технологии, которые уже используются на существующем сайте, а также навыки и опыт разработчиков. Таким образом, изучение какой-то одной технологии на практике является недопустимой роскошью, за исключением случаев работы в одной и той же организации в течение длительного времени. Так, начиная карьеру веб-разработчика, я одновременно учил ColdFusion и ASP, поскольку они требовались для различных проектов, над которыми я работал.
Стратегия параллельного изучения ASP, ColdFusion и PHP
Не стоит опасаться перспективы одновременного изучения всех трех моделей. В большинстве случаев, если для обработки определенных выполняемых функций нужно добавить участок кода на ASP, то потребуется добавить эквивалентный участок для обработки таких же функций средствами ColdFusion или PHP. Самой сложной частью является не изучение синтаксиса разных типов кода, а понимание того, какие данные используются в коде, где именно они расположены и каким образом обрабатываются для получения нужного результата. Если все это четко различать, то синтаксис не представит особой сложности.
По этой причине ASP, ColdFusion и PHP описываются параллельно. Конечно, разрабатывать один и тот же сайт трижды, по отдельности для каждой серверной модели, не нужно, однако важно приложить усилия, чтобы понять все три фрагмента кода. Например, вместо того, чтобы при работе с ColdFusion пропускать код для ASP и PHP, следует уяснить, каким образом код на разных языках выполняет одни и те же вещи. Понимание того, как все три фрагмента кода выполняют одну и ту же задачу, заметно ускоряет процесс обучения веб-программированию.
В частности, три приведенных ниже фрагмента кода выполняют одну и ту же задачу – отображение значения, которое пользователь вводит в поле "firstName", содержащееся в форме на XHTML-странице.
Для ASP:
<p> Thank you, <% Response.Write(Request.Form("firstName")) %>, for your submission.</p>
Для ColdFusion:
<p> Thank you, <cfoutput>#form.firstName#</cfoutput>, for your submission.</p>
Для PHP:
<p> Thank you, <? php echo $_POST[‘firstName’]; ?>, for your submission.</p>
Проведем сравнительный анализ приведенных трех участков кода и постараемся понять, что в них общего:
- в каждом применяется специальный набор тегов, которые обозначают код, выполняемый сервером. На ASP – это <% и %>, на ColdFusion – <cf[имя_тега]> и </cf[имя_тега]>, а на PHP – <?php и ?> ;
- в каждом приведена команда вывода данных. На ASP это Response.Write, на ColdFusion – <cfoutput>, а на PHP – echo ;
- в каждом содержится явная ссылка на имя переменной ( firstName );
- в каждом из них указано, что это переменная формы или переменная POST-запроса (переменные формы, как будет рассказано позже, пересылаются при помощи метода POST ). На ASP – это Request.Form("firstName"), на ColdFusion – #form.firstName#, а на PHP – $_POST['firstName'] ;
- ни в одном не содержится дополнительного кода, кроме того, что перечислен выше.
Запоминать этот код не требуется, так как его тестирование проводиться не будет, и в дальнейшем для практической работы с кодом будет достаточно много упражнений. Указанный код приводится для того, чтобы показать полную идентичность действий, которые осуществляются при выполнении этих фрагментов: все три запрашивают переменную формы с именем firstName, и помещают ее в строку обычного XHTML-кода. Следовательно, разница между этими фрагментами только формальная – это вопрос синтаксиса и поиска нужной информации в справочнике. А самая сложная часть – это, в первую очередь, понимание того, что можно взять введенное в форму значение и отправить его обратно вместе с обычным XHTML-кодом.
Таким же образом в книге параллельно приводятся все три вида кода. Каждый раз проводится анализ участков кода, в котором объясняется их предназначение. Достаточно проанализировать все три фрагмента и проследить, как в каждом из них определенным на конкретном языке способом выполняются функции, описанные в основном тексте.
Но прежде чем погружаться в код, следует настроить систему для разработки динамичного сайта.