Основы разработки web приложений. Теоретические основы разработки Web-приложений. Порядок выполнения лабораторной работы
Сегодня речь пойдет о книге Сэмми Пьюривал Основы разработки веб-приложений» (ссылка на сайт издательства «Питер»), на английском она имеет название «Learning Web App Development »(ссылка на amazon.com). Тот счастливый случай, когда книга на русском стоит дешевле чем в оригинале 300 рублей против почти 20$ за электронную версию.
Однако, книги мы берем и читаем обычно не из-за того что они дешево или дорого стоят, а из-за того что они могут принести нам хоть какую-то пользу. Книга позиционируется как пособие для новичков, которые не имели дела с разработкой. В ней поэтапно описывается весь процесс создания приложений, плюс задания. Используются технологии как HTML, CSS, JavaScript, Express, Redis, Sublime text 3, git, MongoDB, Vagrant, Oracle VM VirtualBox, cloud foundry, а так же используются API twitter. Все это умещается на 272 листах, вместе с обложкой. Впечатляющий результат. Ниже можно почитать обо всем более подробно.
Автор на момент написания уже проработал около 10 лет преподавателем компьютерных дисциплин и фрилансером-консультантом JavaScript. Люди обычно начинают создавать что-то свое, когда не могут найти подходящее у других людей, так вышло и с этой книгой. Она создана под влиянием времени о том, как должна выглядеть современная веб-разработка. Возможно, этот курс подойдет не всем. Еще Сэмми Пьюривал честен и говорит, что эта книга не сделает из вас программистов, и скорее всего после прохождения курса вас никто не позовет на работу. Это так, но большое начинается с малого.
Книгу стоит читать активно, усевшись рядом с компьютером. Автор старается делать невозможное и показывает рецепты для Windows / Linux / MacOS, хотя некоторые рецепты за это время могут не работать, а веб-интерфейсы сайтов изменились, надо отдать должное, что он проделал огромный труд. Весь путь начинается с подготовки: с установки текстового редактора и браузера. От себя отмечу, что все делал в FireFox и не испытывал проблем, в одной из глав будет запуск «опасного кода», и вот firefox в отличии от google chrome может запускать его без всяких параметров. В целом первая глава не должна составить особых трудностей.
Во второй главе начинается рассказ о современном HTML, который можно использовать для создания статичных веб страниц, да и что кривить душой, это по-прежнему основа веб приложений. Может материал и не очень обширный, но даже если вы никогда не имели с ним дело, то даст общие понятия. А закрепить умения можно в многочисленных интернет курсах. Я например использовал codecademy ( и ссылка на курс learn HTML). Плюс со второй главы начинается простое использование git.
Третья глава открывает возможности CSS форматирования. Сами каскадные таблицы стилей сделали html файлы проще и чище, а еще их можно гораздо быстрее изменять и получать отличный результат. Для тех кому показалось мало этой главы могут попробовать он-лайн курс, а так же фреймворки для CSS, такие как Twitter Bootstrap и Zurb’s Foundation.
В четвертой главе автор знакомит нас с JavaScript и его библиотекой jQuery, однако более глубокие знания по этому языку можно почерпнуть либо в курсе, либо например в книге «Выразительный JavaScript» (без регистрации и смс, бесплатная книга на хабре). Можно по-разному относиться к JS, но на сегодняшний день это один из тех языков, который надо хоть немного знать для работы в вебе.
В пятой главе идет речь о JSON, AJAX и помимо всего прочего создается интересное приложение, для поиска картинок на Flickr.
В шестой главе нужно запастись терпением и силами, предстоит настроить виртуальную машину и окружение внутри неё. Со время выхода книги некоторые вещи изменились и тут пришлось знатно повозиться. Однако можно арендовать какой-нибудь веб сервер и выполнить задачу еще и там, самостоятельно настроив окружение. Здесь же очень пригодилась шпаргалка по пакетному менеджеру npm (ссылка на хабр). Здесь же может понадобиться учетная запись для твиттера, которая захочет ваш телефонный номер. Делать или не делать, решать вам.
В седьмой главе идет речь о базах данных Redis и MongoDB, с одной стороны хорошее изложение, с другой стороны, кажется, что чего-то не хватает. В качестве дополнения одна из рекомендуемых книг «7 баз данных за 7 недель» Эрика Редмонда и Джима Уилсона, её сложность заключается в том, что не прочитав и не сделав предыдущую главу не стоит переходить к следующей, а еще там нет сведений об установке и настройке баз данных. Что само по себе является проблемой. Есть еще MongoDB университет, но нужно запастись терпением, чтобы ждать пока будут приходить новые задания. Может для кого-то это хороший вариант, решать вам.
NET имеет специальное расширение " .aspx ".Порядок работы ASP . NET выглядит следующим образом:
- Когда веб-браузер запрашивает файл ASP.NET, веб-сервер IIS перенаправляет запрос модулю ASP.NET на сервере.
- Модуль ASP.NET читает файл построчно и выполняет, коды сценариев, содержащиеся в файле.
- Веб-браузеру возвращается обратно файл ASP.NET, но уже в виде обычного HTML документа.
Любая страница ASP . NET представлена классом, производным от класса System.Web.UI , который определяет свойства, методы и события, общие для всех страниц, предназначенных для обработки средой ASP . NET
Наиболее важные свойства этого объекта приведены в таблице ниже:
Свойство | Описание |
---|---|
Application | Возвращает объект HttpApplicationState |
Cache | Возвращает объект Cache , в котором хранятся данные приложения, в т.ч. и самой страницы |
IsPostBack | Возвращает значение, определяющее, была ли страница загружена клиентом впервый раз, или загружена повторно в ответ на запрос клиента |
Request | Возвращает объект HttpRequest , используемый для получения информации о входящем запросе HTTP |
Response | Возвращает объект HttpResponse , используемые для формирования ответа сервера клиенту |
Server | Возвращает объект HttpServerUtility |
Session | Возвращает объект System.Web.SessionState.HttpSessionState , с помощью которого получается информация о текущем сеансе HTTP |
Такое построение проекта позволяет хранить отдельно код представления для генерации HTML кода (в файле *.aspx ) от программной логики (в файле *.aspx.cs ), что во многих случаях существенно упрощает разработку сложных веб-приложений.
Порядок выполнения лабораторной работы
Для работы с примерами, приводимыми в данной лабораторной работе, потребуется установка среды разработки Microsoft Visual Studio 2005+ и веб-сервера IIS 5+ ( Internet Information Server ).
После завершения создания проекта, он будет содержать файлы Default.aspx , Default.aspx.cs и Default.asp.designer.cs .
Первый из них будет содержать примерно следующий код:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" Default.aspx.cs" Inherits="ASPNETHello._Default" %>
Из этого кода видно, что, во-первых, для создания кода HTML , возвращаемого браузеру, будет использован язык C # (см. атрибут Language ). Во-вторых, код C # содержится в отдельном файле, который будет выполняться на веб-сервере (см. атрибут CodeBehind ). И, наконец, атрибут Inherits указывает на имя класса , определенного в CodeBehind .
Важным новшеством в ASP . NET является атрибут runat="server" , размещенный в тэге