Веб-программирование


Веб-программирование - это курс, в котором изучаются принципы создания приложений для интернет. Интернет - это сложная клиент-серверная среда, в которой данные, программы или сервисы находятся на разбросанных по сети серверах, а пользователи со своих компьютеров получают доступ к этим ресурсам с помощью веб-браузеров. Поэтому веб-программирование обычно рассматривает технологии написания программ как для серверов (для обработки данных на стороне сервера: ASP.NET), так и программ, работающих в браузере (Javascript, AJAX) и так называемых богатых интернет-приложений RIA (технология Silverlight). При этом также важно понимать базовые протоколы обмена между сервером и клиентом - например, язык разметки HTML, понятие URL и т.д.

Основы веб-программирования: HTML

Часто считается, что веб-программирование - это умение создавать веб-страницы. Для этого нужно иметь представление о языке разметки HTML. Хотя многие продукты позволяют вам создавать страницы и сайты без знания HTML - например, можно сохранить любой документ Microsoft Word в HTML, либо использовать Expression Web (входит в Microsoft Expression Studio) для создания более красивых графических веб-сайтов по шаблону или "с нуля".

Основные ресурсы по теме: веб-школа (уроки 1 и 2), курсы Intuit.ru по HTML (этот и этот).

Серверное программирование: ASP.NET WebForms и ASP.NET MVC


Основная задача технологий серверного программирования - в ответ на запросы пользователей формировать веб-страницы в формате HTML, возможно, используя какие-то хранящиеся на сервере данные (обычно, для хранения данных используют базы данных, например, на основе СУБД Microsoft SQL Server)

В настоящее время существуют две технологии серверного программирования от Майкрософт: ASP.NET WebForms (то, что раньше называлось просто ASP.NET) и ASP.NET MVC (Model-View-Controller). ASP.NET WebForms проще для изучения, и позволяет создавать веб-приложения примерно так же, как и оконные приложения Windows Forms - путём перетаскивания объектов в визуальном редакторе и программирования обработчиков событий. При этом программист теоретически не обязан понимать тонкости HTML и обмена между сервером и клиентом - все эти сложности берёт на себя инфраструктура ASP.NET. Изучить ASP.NET можно с помощью видео-курса Гайдара Магданурова, а более тонкие моменты посмотреть в технических докладах на TechDays.ru.

ASP.NET MVC, с другой стороны, открывает программисту более тонкий контроль над происходящим и над генерацией HTML-страницы. При этом используется логически стройная архитектура Model-View-Controller, в которой чётко выделяются модель данных (обычно реализуемая на основе Entity Framework или LINQ), представление данных (View) и логика управления (Controller), переводящая URL запроса в определённые действия. Похожая архитектура используется и других средствах веб-программирования: например, Ruby-on-Rails. Для изучения ASP.NET MVC рекомендуем курс Гайдара Магданурова.

Программирование на стороне клиента: JavaScript, AJAX

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

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

Для изучение JavaScript и AJAX рекомендуем курс основы программирования на JavaScript, или более простой практикум.

Богатые интернет-приложения, RIA

В последнее время всё более популярными становятся так называемые RIA - Rich Internet Applications. Эти приложения обычно запускаются внутри браузера (хотя могут запускаться и как отдельные, внебраузерные, прилодения), но в специальной среде: Silverlight, Adobe Flash и др. Rich Internet Applications позволяют создавать значительно более красивые и удобные интерфейсы, по сравнению с классическими или даже AJAX-приложениями. В качестве примера, посмотрите на Silverlight Airlines, или галерею Silverlight-приложений.

Основные сценарии, для которых удобно использовать RIA:
  • Построение наглядных интерфейсов деловых приложений
  • Работа с Media - просмотр видео, аудио и т.д. Для этого в Silverlight есть технология SmoothStreaming
  • Построение инновационных интерфейсов на основе технологии Deep Zoom

Технология Silverlight хорошо изложена в видео-курсе Михаила Черномордикова, или в книге Л.Морони.

Управление контентом и построение корпоративных порталов

Отдельный вопрос - это построение сайтов на основе существующих систем управления контентом (Content Management Systems, CMS). В этом случае базового программирования для создания сайта не требуется - достаточно установить CMS, сконфигурировать структуру сайта и наполнить его содержимым с помощью визуального редактора. Для более сложных задач CMS допускают расширения с помощью программируемых компонентов. Подробнее про системы управления контентом.

Для построениения более сложных систем, обеспечивающих взаимодействие пользователей через интернет в рамках интранет-портала или внешнего сайта, может использоваться технология Sharepoint. В простейшем случае Sharepoint позволяет в интерактивном режиме создавать сайты для коллективной работы, обмена документами, планирования событий - при этом сайт легко интегрируется со всеми продуктами Microsoft Office. Sharepoint может также выступать как программная среда для построения корпоративных порталов любой сложности. Подробнее про Sharepoint.