Asp net mvc
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

Введение в ASP . NET MVC PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on
  • Presentation posted in: General

Введение в 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Asp net mvc

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

ASP.NET MVC 4.0

2014


Asp net

История 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


Asp net1

Фреймворкинабазе ASP.NET

ASP.NET – бесплатный фреймворк для построения больших веб-приложений с использованием HTML, CSS и JavaScript. 

WebForms – технология построение веб-приложений из стандартных управляющих элементов и обработчиков событий.

ASP.NET MVC – построение веб-приложений на базе шаблона MVC с разделением ответственности и полным контролем над HTML кодом страниц.

Web Pages – быстрая разработка веб-сайтов согласно современным веб-стандартам.


Asp net mvc

План

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

  • Движок Razor

  • Модели

  • Доступ к данным

  • Контроллеры

  • Представления

  • Валидация вводапользователя

  • Аутентификация и авторизация

  • Модульное тестирование

  • jQuery

  • AJAX


Asp net mvc1

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


Asp net mvc

Цель занятия

  • Познакомиться с архитектурой WEB приложения.

  • Вспомнить шаблон MVC.

  • Написать приложение Hello ASP.NET MVC!


Web asp net

WEB-приложениена платформе ASP.NET

WEB server

WEB client

ASP.NET

GET, POST

HTML

WEB application

WEB application – виртуальный каталог на сервере. Поэтому путь к ресурсу не обязан быть путем в файловой системе.


Asp net mvc

Клиент

WEB сервер

Клиент

Документ

Протокол HTTP

HTTP — протокол прикладного уровня, аналогичными ему являются FTP и SMTP. Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. 

GET, POST

GET, POST

Тим Бернерс-Ли, изобретатель URI, URL, HTTP, HTML и Web


Asp net mvc

URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь>

ПРИМЕРЫ:

http://translate.google.com.ua/?hl=ru&tab=wT#en/ru/table

https:[email protected],36.2804766,11z


Get post

Команды GET и POST

Обе команды требуют ответа от сервера.

GET– команда получения информации. Ответ кешируетсябраузером.

POST – команда отправки информации. Ответ не кешируется браузером.

Команда GET не должна вызывать никаких изменений на серверной стороне.


Asp net mvc

Примеры запроса и ответа

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].


Asp net mvc

Шаблон MVC

Концепция MVC была описана в 1979 г. ТрюгвеРеенскаугом, тогда работающим над языком программирования Smalltalkв Xerox PARC. 

Пассивная модель — модель не имеет никаких способов воздействовать на представление или контроллер, и используется ими в качестве источника данных для отображения. Все изменения модели отслеживаются контроллером и он же отвечает за перерисовку представления, если это необходимо.

Активная модель — модель оповещает представление о том, что в ней произошли изменения, а представления, которые заинтересованы в оповещении, подписываются на эти сообщения. Это позволяет сохранить независимость модели как от контроллера, так и от представления.

Классической реализацией концепции MVC принято считать версию именно с активной моделью.


Mvc w eb

Шаблон MVC для Web

MODEL – классы, которые представляют данные приложения и бизнес-правила, которым должны удовлетворять эти данные.

VIEW – файлы шаблонов, по которым генерируется динамический HTML-ответ.

CONTROLLER – классы, которые обрабатывают запросы пользователя, получают данные от модели и выбирают представление для формирования ответа пользователю.


Hello mvc

Приложение Hello MVC!

  • Создать проект ASP.NET MVC 4, вид проекта – пустой (Empty).

  • Добавить HomeController, который передаст в представление слова "Hello MVC!"

  • Создать представление, которое получит от контроллера слова "Hello MVC!" и покажет их на странице.


Asp net mvc

Траектория запроса

Маршрутизатор

Метод контроллера

Запрос

"Hello MVC!"

Шаблон представления

Ответ


Asp net mvc

Маршрутизатор

<схема>://<логин>:<пароль>@<хост>:<порт>/<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.


Asp net mvc

Коррекция маршрутизатора

В файле ~/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 }

);

}

}

}


Asp net mvc

Контроллер

publicclassHomeController : Controller

{

publicActionResult Index()

{

ViewBag.Info = "Hello MVC!";

return View();

}

}

В файле ~/Controllers/HomeController.cs находится класс контроллера.

Открытые методы контроллера вызываются по http-запросу.

Возвращаемое значение метода ссылается на шаблон представления. По умолчанию дается ссылка на представление, одноименное с методом.

Данные, которые нужно показать, закладываются в динамический объект ViewBag.


Asp net mvc

Представление

<h2>@ViewBag.Info</h2>

  • В файле ~/Views/Home/Index.cshtml находится шаблон представления (Home – класс контроллера, Index – метод контроллера).

  • Данные, которые передал контроллер, извлекаются из динамического объекта ViewBag.

  • Данные вставляются в шаблон страницы с использованием нотации Razor.


Asp net mvc

Реализовать диалог

Сервер: Назовите свое имя.

Клиент: Вася.

Сервер: Привет, Вася.

Вид веб-формы

текст

Назовите свое имя.

поле ввода

Вася

кнопка

Готово

текст

Привет, Вася.


Asp net mvc

Реализация диалога

Одна страница вызывается дважды

– первый раз из адресной строки браузера по команде GET,

– второй раз по нажатию кнопки, команда POST.

Запрос POST передает на сервер данные формы (содержимое поля ввода).

Методы контроллера нужно промаркировать атрибутом HttpGetили HttpPost.

http://host/Home/Index

[HttpGet]

Home.Init

GET

Форма

Представление

Ответ

[HttpPost]

Home.Init

POST


Asp net mvc

Извлечение параметров запроса

Команды GET и POST могут иметь именованные параметры.

Параметры команд должны быть переданы в соответствующие методы контроллера.

Есть два способа это сделать:

объявить одноименные параметры в соответствующем методе контроллера;

publicActionResult Index(string username = "")

{

ViewBag.UserName = username;

return View();

}

2) воспользоваться объектом RouteData, который содержит данные запроса в виде словаря.

publicActionResult Index()

{

ViewBag.UserName = this.RouteData.Values["username"];

return View();

}


Asp net mvc

Самостоятельно

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


  • Login