Курс по информационни технологии (2013) - 7. ASP.NET MVC
Upcoming SlideShare
Loading in...5
×
 

Курс по информационни технологии (2013) - 7. ASP.NET MVC

on

  • 291 views

Занятие №7 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - ...

Занятие №7 на курса по информационни технологии (2013) провеждан от ДАВИД академия в ПМГ "Никола Обрешков" - Казанлък. Включва темите:
- ASP.NET MVC

Statistics

Views

Total Views
291
Views on SlideShare
291
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Курс по информационни технологии (2013) - 7. ASP.NET MVC Курс по информационни технологии (2013) - 7. ASP.NET MVC Presentation Transcript

  • Курс по информационни технологии Занятие №7 ASP.NET MVC 2013
  • Съдържание 1/3 • MVC – – – – – – Какво е MVC? История на MVC Основни принципи на MVC Контролери Модели Изгледи
  • Съдържание 2/3 • ASP.NET MVC – – – – – Какво е ASP.NET MVC? История на ASP.NET MVC Предимства Недостатъци Separation of Concerns • ASP.NET MVC приложения – – – – Обработка на заявка Контролери Действия Модели
  • Съдържание 3/3 • ASP.NET MVC приложения – – – – – – Изгледи Razor Помощници Частични изгледи Филтриране Рутиране
  • MVC • Какво е MVC? – Шаблон за разработка на приложения – Позволява преизползване на кода – SoC (Separation of Concerns) • История на MVC – Формулиран през 70те на миналия век от Trygve Reenskaug – Имплементиран в Smalltalk за настолни приложения – Адаптиран за други видове приложения
  • Основни принципи на MVC • Модел, изглед и контролер • Мястото на потребителя • Предимства на MVC –… • Недостатъци на MVC – По-сложен от други подходи
  • Контролери • Обработват заявката с помощта на модели и изгледи • Осигуряват взаимодействие с потребителя • Контролират работата на приложението • Реализират логика специфична за приложението
  • Модели • Множество от класове представляващи бизнес логиката и данните, с които тя работи • Контролират правилата за валидиране и манипулиране на данните • Скриват достъпа до данните (съотв. могат да се разглеждат като слой за достъп до данни)
  • Изгледи • Определят изхода на приложението
  • ASP.NET MVC • Какво е ASP.NET MVC? – Реализация на MVC за ASP.NET приложения – Безплатен проект под Apache 2.0 лиценз – Не замества ASP.NET Web Forms • История на ASP.NET MVC – – – – CTP версия – 10 октомври 2007 (Scott Guthrie) Версия 1.0 – 13 март 2009 Версия 4.0 – 15 август 2012 / 30 май 2013 Версия 5.0 preview – 26 юни 2013
  • ASP.NET MVC • Предимства – – – – – По-добър контрол върху изхода Тестваем Слабо обвръзване (loose coupling) Разширяем Конвенции над конфигурация • Недостатъци • Separation of Concerns – SRP (Single Responsibility Principle) – DRY (Don’t Repeat Yourself) – TDD (Test-Driven Development)
  • Обработка на заявка Постъпва HTTP заявка Определя се контролер Контролерът създава модел Изпълнява се действието на контролера Избира се подходящ изглед (резултат) Моделът се подава на изгледа Изгледът преобразува модела в подходящ формат • Изпраща се HTTP отговор • • • • • • •
  • Обработка на заявка
  • Контролери • Контролерите се разполагат в папка “Controllers” • Контролерите са класове наследяващи класа Controller • Наименованията на класовете на контролерите завършват с “Controller” • На различните заявки съответства определено действие • Всеки контролер реализира едно или повече действия под формата на методи
  • Действия - характеристики • Действия – Всяко действие е публичен нестатичен метод на съответния контролер – Всяко действие има параметри – Всяко действие връща резултат • Резултатът може да е всякакъв • Често използван резултат е инстанция на ActionResult
  • Действия - параметри • Данните от заявката се превръщат в параметри към методите за действия – Подаване на параметри с рутиране – Подаване на параметри с GET заявка – Подаване на параметри с POST заявка • Контрол над поведението на методите за действия със селектори – Наименование – [ActionName] – Метода – [HttpGet], [HttpPost], [HttpDelete], [HttpOptions] и т.н. – Ограничения – [NoAction], [ChildActionOnly] и [RequireHttps]
  • Действия - резултати Наименование Цел Метод ContentResult Низ Content() EmptyResult Празен отговор FileContentResult FilePathResult FileStreamResult Файлово съдържание HttpUnauthorizedResult HTTP 403 Status Code JavaScriptResult JavaScript, който да се изпълни JavaScript() JsonResult Данни в JSON формат Json() RedirectResult Препращане към друг URL Redirect() RedirectPermanent() RedirectToRouteResult Препращане към друго действие RedirectToRoute() RedirectToAction() ViewResult PartialViewResult Изглед от view engine View() PartialView() File()
  • Модели • Модели – Моделите се разполагат в папка /Models/ – Отразяват правилата на бизнес логиката на приложението за авторизация, валидация и т.н. – Контролират достъпа до данните и тяхната манипулация – Изолират работата с данните и в този смисъл представляват слой за достъп до данните
  • Изгледи • Представляват шаблони за динамична визуализация на данните в папка /Views/ • Различни машини за изгледи (view engines) – Изпълняват код, за генериране на изхода – Дават “помощници” за генериране на изхода – Най-популярни машини са Razor и Web Forms • Данни към изгледа се поддават с колекцията ViewBag, динамични обект ViewData или статичния обект Model (силно типизиране) • Поддръжка на оформления (layouts) • Поддръжка на частични изгледи (partial views)
  • Razor - основи • • • • • • • • • • Език за разработка на шаблони Razor кодът започва със символа “@” Екраниране на “@” с “@@” Коментари с “@*...*@” Razor блоковете от код с “@{…}” Визуализация на текст става с “@:” Изрази с “@(…)” C# конструкции като if, else, for, foreach и т.н. Включване пространство на имената с “@using” Дефиниране типа на модела с “@model”
  • Помощници • Всеки изглед наследява WebViewPage, а той ViewPage – ViewPage има помощни свойства Html, Ajax, Url и др. съответно от клас HtmlHelper, AjaxHelper, UrlHelper и др. – ViewPage може да има и собствени помощни свойства • Помощните методи връщат резултат под формата на низове
  • Собствени помощници • Разработка на собствени помощни свойства с код – Разширяващи методи на класовете на съответните помощници – Връщат низове, презаписват метода ToString() или генерират тагове/атрибути като връщат TagBuilder • Разработка на собствени помощни свойства с Razor – Шаблон /App_Code/Helpers.cshtml и “@helper”
  • Razor - оформления • Подразбиращо се оформление в /Views/_ViewStart.cshtml • В изгледа: Всеки изглед може да контролира своето оформление с променливата Layout • В оформлението: Визуализиране на съдържанието с @RenderBody()
  • Razor – оформления и секции • В изгледа: Дефиниране на секция с “@section Name { … }” • В оформлението: Визуализиране на секция с @RenderSection(name, isRequired)” • В оформлението: Използване на “@IsSectionDefined()”
  • Частични изгледи • Частичните изгледи се намират в папка /Views/ или в папката /View/Shared/ • Частичните изгледи отново са стандартни шаблони • Частичните изгледи визуализират части от страницата – Преизползване на части от изгледите – Помощници – Partial, RenderPartial и Action
  • Структура и конфигуриране • Структура на ASP.NET MVC приложение • Конфигуриране на ASP.NET MVC приложение – Конфигуриране с конфигурация в Web.config – Конфигуриране с код в Global.asax • • • • • • Web API Филтриране Валидиране Рутиране Пакети (bundles) Автентикация
  • Рутиране • Контролира съответствието между образци на адреси и контролер/действие/параметри • Осигурява добре изглеждащи, REST-like и SEO адреси • Дефиниране на рутиране – – – – Наименование Образец на адреса Съответстващи контролер/действие/параметри Ограничени за параметрите • Дебъгване на рутирането с RouteDebugger
  • Филтриране • Филтрирането може да се прилага преди и след изпълнението на определена логика • Филтрирането може да се прилага върху действия и контролери • Глобални филтри се регистрират в GlobalFilters.Filters (или /App_Start/FilterConfig.cs) • Собствени филтри за действия – Разполагат се в папка /Filters/ – Наследяват ActionFilterAttribute – Приложими върху контролер, действие или глобално в GlobalFilters.Filters
  • ASP.NET MVC // ДЕМОНСТРАЦИЯ
  • Въпроси?
  • Благодаря! • Валери Дачев – – – – valery@david.bg http://vdachev.net/ @vdachev https://www.facebook.com/vdachev • ДАВИД академия – – – – acad@david.bg http://acad.david.bg/ @david_academy https://www.facebook.com/groups/david.academy/