Введение в ASP.NET MVC ASP.NET MVC 4.0 2014. История ASP.NET 1996 – ASP – Active Server Pages, построение страниц на сервере на основе шаблонов. Шаблоны.

Презентация:



Advertisements
Похожие презентации
Платформа разработки ASP.NET Гайдар Магдануров t: e: m: +7.
Advertisements

WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
Web-программирование По материалам курса University of Washington
ПРОТОКОЛЫ HTTP. HTTP - HyperText Transfer Protocol Протокол уровня приложений Текущая версия HTTP/1.1.
Где хранить данные в web- приложении page –JSP страница request – HTTP запрос session – сессия пользователя application – веб-приложение Static Java class.
Лекция Тема: «Средства создания серверного программного обеспечения» Преподаватель: Халелова Е.Н.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
Лекция 5 WWW (World Wide Web) – всемирная паутина 2 3 основные идеи: 1.язык разметки / гипертекст (xHTML) 2.универсальная идентификация ресурсов (URL)
Hypertext Transfer Protocol (HTTP) Протокол передачи гипертекста.
КУРС «WEB-ДИЗАЙН». Что такое Web-страница? То, что мы видим в окне браузера, когда заходим на какой-либо сайт! Мы видим веб-страницу сайта – ее содержимое!
Powerpoint Templates Page 1 Язык разметки гипертекста HTML.
Лекция 11 Тема «Формы » Преподаватель: Халелова Е.Н.
1 Паттерны проектирования MVC, MVP, MVVM. 2 Обзор Cхема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения,
Языки, технологии и средства создания Web-сайтов. Компонентная структура. Выполнил Федорова Я.В., студентка СФУ ИППС 1 курс заочное отделение.
WEB- ТЕХНОЛОГИИ Лекция 5. Традиционное Web- программирование 1.
Выполнили: Фаттахов Ленар, Горюнов Семен.. Задача Мы довели нашу программу до полноценного функционирования. Заказчик захотел заняться рассылкой рекламы.
Ксения Петрова KK12-PV2. Технология Word Wide Web Всемирная паутина - это вольный перевод английского словосочетания World Wide Web, которое часто обозначает-,
Материалы взяты из википедии. HTTP HTTP (англ. HyperText Transfer Protocol «протокол передачи гипертекста»)англ. гипертекста.
Сервис WWW Веб-программирование. World Wide Web WWW - распределенная информационная система, предоставляющая доступ к гипертекстовым документам по протоколу.
Транксрипт:

Введение в ASP.NET MVC ASP.NET MVC

История ASP.NET 1996 – ASP – Active Server Pages, построение страниц на сервере на основе шаблонов. Шаблоны сочетали код на VB c HTML- разметкой – ASP.NET – Составная часть новой платформы.NET. Технология WebForms по аналогии с WinForms – ASP.NET MVC. Аналогична уже существующим на рынке подходам: Java Spring 2002, Python Jango 2003 и др – ASP.NET MVC 5.0 – октябрь, последняя версия 2 ASP.NET WebForms ASP.NET WebFormsMVC ASP

Фреймворки на базе ASP.NET 3 ASP.NET – бесплатный фреймворк для построения больших веб-приложений с использованием HTML, CSS и JavaScript. WebForms – технология построение веб-приложений из стандартных управляющих элементов и обработчиков событий. ASP.NET MVC – построение веб-приложений на базе шаблона MVC с разделением ответственности и полным контролем над HTML кодом страниц. Web Pages – быстрая разработка веб-сайтов согласно современным веб-стандартам.

План 1. Введение в ASP.NET MVC 2. Движок Razor 3. Модели 4. Доступ к данным 5. Контроллеры 6. Представления 7. Валидация ввода пользователя 8. Аутентификация и авторизация 9. Модульное тестирование 10. jQuery 11. AJAX 4

Литература по ASP.NET MVC 5 Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen PROFESSIONAL ASP.NET MVC 3 (здесь перевод на русский)здесь Стивен Сандерсон ASP.NET MVC Framework с примерами на C# для профессионалов Jeffrey Palermo, Jimmy Bogard, Eric Hexter, Matthew Hinze, and Jeremy Skinner ASP.NET MVC 4 in Action (есть на русском)есть на русском

Цель занятия Познакомиться с архитектурой WEB приложения. Вспомнить шаблон MVC. Написать приложение Hello ASP.NET MVC! 6

WEB-приложение на платформе ASP.NET 7 WEB server WEB client GET, POST HTML ASP.NET WEB application WEB application – виртуальный каталог на сервере. Поэтому путь к ресурсу не обязан быть путем в файловой системе.

Протокол HTTP HTTP протокол прикладного уровня, аналогичными ему являются FTP и SMTP. Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Клиент WEB сервер Клиент Документ Тим Бернерс-Ли, изобретатель URI, URL, HTTP, HTML и Web GET, POST

URL 9 :// : / ? # ПРИМЕРЫ:

Команды GET и POST 10 Обе команды требуют ответа от сервера. GET – команда получения информации. Ответ кешируется браузером. POST – команда отправки информации. Ответ не кешируется браузером. Команда GET не должна вызывать никаких изменений на серверной стороне.

Примеры запроса и ответа GET /simple.html HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate If-Modified-Since: Wed, 24 Oct :12:36 GMT User-Agent: Mozilla/4.0.(compatible; MSIE.6.0; Windows NT 5.1) Host: Connection: Keep-Alive [blank line] HTTP/ OK Server: Microsoft-IIS/5.0 Date: Wed, 24 Oct :12:37 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 24 Oct :00:53 GMT Content-Length: 46 Hello, world Увидеть заголовки можно в окне разработчика браузера Chrome [F12 – F5 – Network – Headers].

Шаблон MVC 12 Концепция MVC была описана в 1979 г. Трюгве Реенскаугом, тогда работающим над языком программирования Smalltalk в Xerox PARC. Пассивная модель модель не имеет никаких способов воздействовать на представление или контроллер, и используется ими в качестве источника данных для отображения. Все изменения модели отслеживаются контроллером и он же отвечает за перерисовку представления, если это необходимо. Активная модель модель оповещает представление о том, что в ней произошли изменения, а представления, которые заинтересованы в оповещении, подписываются на эти сообщения. Это позволяет сохранить независимость модели как от контроллера, так и от представления. Классической реализацией концепции MVC принято считать версию именно с активной моделью.

Шаблон MVC для Web MODEL – классы, которые представляют данные приложения и бизнес-правила, которым должны удовлетворять эти данные. VIEW – файлы шаблонов, по которым генерируется динамический HTML-ответ. CONTROLLER – классы, которые обрабатывают запросы пользователя, получают данные от модели и выбирают представление для формирования ответа пользователю. 13

Приложение Hello MVC! 1. Создать проект ASP.NET MVC 4, вид проекта – пустой (Empty). 2. Добавить HomeController, который передаст в представление слова "Hello MVC!" 3. Создать представление, которое получит от контроллера слова "Hello MVC!" и покажет их на странице. 14

Траектория запроса 15 Маршрутизатор Запрос Метод контроллера Шаблон представления Ответ "Hello MVC!"

Маршрутизатор 16 :// : / ? # Маршрутизатор в ASP.NET может сопоставить URLпуть не только с файлом на сервере, но и с действиями. В ASP.NET MVC URLпуть интерпретируется как вызов метода контроллера. Интерпретация происходит на основе шаблонов. Шаблон маршрута содержит текст «как есть» и параметры, заключенные в фигурные скобки. Текст и заполнители располагаются в сегментах URL-пути, разделенных косыми чертами ("/"). "{controller}/{action}/{id}" После разбора запроса составляется словарь – список пар (параметр=значение). Так URL-путь "Home/Index/25" будет разобран в словарь: controller=Home, action=Index, id=25, что позволит фреймворку вызвать метод Index(id=25) класса контроллера Home.

Коррекция маршрутизатора 17 namespace MvcApplication4 { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } В файле ~/App_Start/RouteConfig.cs корректируется таблица маршрутов. Эта коррекция означает, что запрос "хост/приложение/С/M/" вызовет метод M класса C, а запрос " хост/приложение/" вызовет метод Index класса Home.

Контроллер 18 public class HomeController : Controller { public ActionResult Index() { ViewBag.Info = "Hello MVC!"; return View(); } В файле ~/Controllers/HomeController.cs находится класс контроллера. Открытые методы контроллера вызываются по http-запросу. Возвращаемое значение метода ссылается на шаблон представления. По умолчанию дается ссылка на представление, одноименное с методом. Данные, которые нужно показать, закладываются в динамический объект ViewBag.

Представление В файле ~/Views/Home/Index.cshtml находится шаблон представления (Home – класс контроллера, Index – метод контроллера). Данные, которые передал контроллер, извлекаются из динамического объекта ViewBag. Данные вставляются в шаблон страницы с использованием нотации Razor.

20

Реализовать диалог Сервер: Назовите свое имя. Клиент: Вася. Сервер: Привет, Вася. 21 Назовите свое имя. Вася Привет, Вася. Готово Вид веб-формы текст поле ввода кнопка текст

Реализация диалога 22 Одна страница вызывается дважды – первый раз из адресной строки браузера по команде GET, – второй раз по нажатию кнопки, команда POST. Запрос POST передает на сервер данные формы (содержимое поля ввода). Методы контроллера нужно промаркировать атрибутом HttpGet или HttpPost. GET [HttpGet] Home.Init Представление Ответ POST [HttpPost] Home.Init Форма

Извлечение параметров запроса 23 Команды GET и POST могут иметь именованные параметры. Параметры команд должны быть переданы в соответствующие методы контроллера. Есть два способа это сделать: 1)объявить одноименные параметры в соответствующем методе контроллера; public ActionResult Index(string username = "") { ViewBag.UserName = username; return View(); } public ActionResult Index() { ViewBag.UserName = this.RouteData.Values["username"]; return View(); } 2) воспользоваться объектом RouteData, который содержит данные запроса в виде словаря.

Самостоятельно 24 Сделать приложение, в котором пользователь может задать один из вопросов, «Который час?» или «Какой сегодня день недели?» и получить ответ от сервера.