1 / 24

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

Введение в ASP . NET MVC. ASP . NET MVC 4.0 201 4. История ASP . NET. 1996 – ASP – Active Server Pages , построение страниц на сервере на основе шаблонов. Шаблоны сочетали код на VB c HTML- разметкой.

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Введение в ASP.NET MVC ASP.NET MVC 4.0 2014

  2. История 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 – октябрь, последняя версия ASP WebForms ASP.NET WebForms MVC ASP.NET

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

  4. План • Введение в ASP.NET MVC • Движок Razor • Модели • Доступ к данным • Контроллеры • Представления • Валидация вводапользователя • Аутентификация и авторизация • Модульное тестирование • jQuery • AJAX

  5. Литература по ASP.NET MVC • 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 (есть на русском)

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

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

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

  9. URL <схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь> ПРИМЕРЫ: http://translate.google.com.ua/?hl=ru&tab=wT#en/ru/table https://www.google.com.ua/maps/@49.9916541,36.2804766,11z

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

  11. Примеры запроса и ответа http://www.wintellect.com/simple.html 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/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 <html> <body> Hello, world </body> </html> Увидеть заголовки можно в окне разработчика браузера Chrome [F12 – F5 – Network – Headers].

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

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

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

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

  16. Маршрутизатор <схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь> Маршрутизаторв 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. Коррекция маршрутизатора В файле ~/App_Start/RouteConfig.csкорректируется таблица маршрутов. Эта коррекция означает, что запрос "хост/приложение/С/M/"вызовет метод M класса C, а запрос " хост/приложение/"вызовет метод Index класса Home. 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 } ); } } }

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

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

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

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

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

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

More Related