Содержание
-
Введение в ASP.NET MVC
ASP.NET MVC 4.0 2013
-
История ASP.NET
1996 – ASP – Active Server Pages, построение страниц на сервере на основе шаблонов. Шаблоны сочетали код на VB cHTML-разметкой. 2001 – ASP.NET– Составная часть новой платформы .NET. Технология WebForms, по аналогии с WinForms. 2009 – ASP.NET MVC. Аналогична уже существующим на рынке подходам: Java Spring 2002, Python Jango 2003 и др. 2013 – ASP.NET MVC 5.0 – октябрь, последняя версия 2 ASP.NET WebForms ASP.NET WebForms MVC ASP
-
Фреймворкинабазе ASP.NET
3 ASP.NET – бесплатный фреймворк для построения больших веб-приложений с использованием HTML, CSS и JavaScript. WebForms – технология построение веб-приложений из стандартных управляющих элементов и обработчиков событий. ASP.NET MVC – построение веб-приложений на базе шаблона MVC с разделением ответственности и полным контролем над HTML кодом страниц. Web Pages – быстрая разработка веб-сайтов согласно современным веб-стандартам.
-
План
Введение в ASP.NET MVC Движок Razor Модели Доступ к данным Контроллеры Представления Валидация ввода Аутентификация и авторизация Модульное тестирование jQuery AJAX 4
-
Литература по ASP.NET MVC
5 Jon Galloway, Phil Haack, Brad Wilson, K. Scott AllenPROFESSIONAL ASP.NET MVC 3 (здесьперевод на русский) Стивен СандерсонASP.NET MVC Framework с примерами на C# для профессионалов Jeffrey Palermo, Jimmy Bogard, Eric Hexter, Matthew Hinze, and Jeremy SkinnerASP.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 GET, POST
-
Примеры запроса и ответа
GET /simple.html HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate If-Modified-Since: Wed, 24 Oct 2011 14:12:36 GMT User-Agent: Mozilla/4.0.(compatible; MSIE.6.0; Windows NT 5.1) Host: www.wintellect.com Connection: Keep-Alive [blank line] http://www.wintellect.com/simple.html HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Wed, 24 Oct 2011 14:12:37 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 24 Oct 2001 14:00:53 GMT Content-Length: 46
Hello, world Увидеть заголовки можно в окне разработчика браузера Chrome [F12, F5, Network, Headers]. -
Шаблон MVC
10 Концепция MVC была описана в 1979 г. ТрюгвеРеенскаугом, тогда работающим над языком программирования Smalltalk в Xerox PARC. Пассивная модель — модель не имеет никаких способов воздействовать на представление или контроллер, и используется ими в качестве источника данных для отображения. Все изменения модели отслеживаются контроллером и он же отвечает за перерисовку представления, если это необходимо. Активная модель — модель оповещает представление о том, что в ней произошли изменения, а представления, которые заинтересованы в оповещении, подписываются на эти сообщения. Это позволяет сохранить независимость модели как от контроллера, так и от представления. Классической реализацией концепции MVC принято считать версию именно с активной моделью.
-
Шаблон MVC для Web
M – классы, которые представляют данные приложения и бизнес-правила, которым должны удовлетворять эти данные V – файлы шаблонов, по которым генерируется динамический HTML-ответ C – классы, которые обрабатывают запросы пользователя, получают данные от модели и выбирают представление для формирования ответа пользователю 11
-
Приложение Hello MVC!
Создать проект ASP.NET MVC 4, вид проекта – пустой (Empty). Добавить HomeController, который передаст в представление слова "Hello MVC!" Создать представление, которое получит от контроллера слова "Hello MVC!" и покажет их на странице. 12
-
Траектория запроса
13 Маршрутизатор Запрос Метод контроллера Шаблон представления Ответ "Hello MVC!"
-
Маршрутизатор
14 namespace MvcApplication4 { publicclassRouteConfig { publicstaticvoidRegisterRoutes(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. Шаблон маршрута содержит текст «как есть» и параметры. Имена параметров заключены в фигурные скобки.
-
Контроллер
15 publicclassHomeController : Controller { publicActionResult Index() { ViewBag.Info = "Hello MVC!"; return View(); } } В файле ~/Controllers/HomeController.cs находится класс контроллера. Открытые методы контроллера вызываются по http-запросу. Возвращаемое значение метода ссылается на шаблон представления. По умолчанию дается ссылка на представление, одноименное с методом. Данные, которые нужно показать, закладываются в динамический объект ViewBag.
-
Представление
16
@ViewBag.Info В файле ~/Views/Home/Index.cshtml находится шаблон представления (Home – класс контроллера, Index – метод контроллера). Данные, которые передал контроллер, извлекаются из динамического объекта ViewBag. Данные вставляются в шаблон страницы с использованием нотации Razor. -
Реализовать диалог
Сервер: Назовите свое имя. Клиент: Вася. Сервер: Привет, Вася. 17 Назовите свое имя. Вася Привет, Вася. Готово Вид веб-формы текст поле ввода кнопка текст
-
Реализация диалога
18 Одна страница вызывается дважды – первый раз из адресной строки браузера по команде GET, – второй раз по нажатию кнопки, команда POST. Запрос POST передает на сервер данные формы (содержимое поля ввода). Методы контроллера нужно промаркировать атрибутом HttpGetили HttpPost. GET [HttpGet] Home.Init Представление Ответ POST [HttpPost] Home.Init http://host/Home/Index Форма
-
Извлечение параметров запроса
19 Команды GET и POST могут иметь именованные параметры. Параметры команд должны быть переданы в соответствующие методы контроллера. Есть два способа это сделать: объявить одноименные параметры в соответствующем методе контроллера; publicActionResult Index(string username = "") { ViewBag.UserName = username; return View(); } publicActionResult Index() { ViewBag.UserName = this.RouteData.Values["username"]; return View(); } 2) воспользоваться объектом RouteData, который содержит данные запроса в виде словаря.
-
Самостоятельно
20 Сделать приложение, в котором пользователь может задать один из вопросов, «Который час?» или «Какой сегодня день недели?» и получить ответ от сервера.
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.