Your SlideShare is downloading. ×
0
Курс по информационни
технологии
Занятие №7
ASP.NET MVC

2013
Съдържание 1/3
• MVC
–
–
–
–
–
–

Какво е MVC?
История на MVC
Основни принципи на MVC
Контролери
Модели
Изгледи
Съдържание 2/3
• ASP.NET MVC
–
–
–
–
–

Какво е ASP.NET MVC?
История на ASP.NET MVC
Предимства
Недостатъци
Separation of C...
Съдържание 3/3
• ASP.NET MVC приложения
–
–
–
–
–
–

Изгледи
Razor
Помощници
Частични изгледи
Филтриране
Рутиране
MVC
• Какво е MVC?
– Шаблон за разработка на приложения
– Позволява преизползване на кода
– SoC (Separation of Concerns)

...
Основни принципи на MVC
• Модел, изглед и контролер
• Мястото на потребителя
• Предимства на MVC
–…

• Недостатъци на MVC
...
Контролери
• Обработват заявката с помощта на модели и
изгледи
• Осигуряват взаимодействие с потребителя
• Контролират раб...
Модели
• Множество от класове представляващи бизнес
логиката и данните, с които тя работи
• Контролират правилата за валид...
Изгледи
• Определят изхода на приложението
ASP.NET MVC
• Какво е ASP.NET MVC?
– Реализация на MVC за ASP.NET приложения
– Безплатен проект под Apache 2.0 лиценз
– Не...
ASP.NET MVC
• Предимства
–
–
–
–
–

По-добър контрол върху изхода
Тестваем
Слабо обвръзване (loose coupling)
Разширяем
Кон...
Обработка на заявка
Постъпва HTTP заявка
Определя се контролер
Контролерът създава модел
Изпълнява се действието на контро...
Обработка на заявка
Контролери
• Контролерите се разполагат в папка “Controllers”
• Контролерите са класове наследяващи класа
Controller
• Наи...
Действия - характеристики
• Действия
– Всяко действие е публичен нестатичен метод на
съответния контролер
– Всяко действие...
Действия - параметри
• Данните от заявката се превръщат в параметри
към методите за действия
– Подаване на параметри с рут...
Действия - резултати
Наименование

Цел

Метод

ContentResult

Низ

Content()

EmptyResult

Празен отговор

FileContentResu...
Модели
• Модели
– Моделите се разполагат в папка /Models/
– Отразяват правилата на бизнес логиката на
приложението за авто...
Изгледи
• Представляват шаблони за динамична
визуализация на данните в папка /Views/
• Различни машини за изгледи (view en...
Razor - основи
•
•
•
•
•
•
•
•
•
•

Език за разработка на шаблони
Razor кодът започва със символа “@”
Екраниране на “@” с ...
Помощници
• Всеки изглед наследява WebViewPage, а той ViewPage
– ViewPage има помощни свойства Html, Ajax, Url и др.
съотв...
Собствени помощници
• Разработка на собствени помощни свойства с
код
– Разширяващи методи на класовете на съответните
помо...
Razor - оформления
• Подразбиращо се оформление в
/Views/_ViewStart.cshtml
• В изгледа: Всеки изглед може да контролира
св...
Razor – оформления и секции
• В изгледа: Дефиниране на секция с “@section
Name { … }”
• В оформлението: Визуализиране на с...
Частични изгледи
• Частичните изгледи се намират в папка /Views/
или в папката /View/Shared/
• Частичните изгледи отново с...
Структура и конфигуриране
• Структура на ASP.NET MVC приложение
• Конфигуриране на ASP.NET MVC приложение
– Конфигуриране ...
Рутиране
• Контролира съответствието между образци на
адреси и контролер/действие/параметри
• Осигурява добре изглеждащи, ...
Филтриране
• Филтрирането може да се прилага преди и след
изпълнението на определена логика
• Филтрирането може да се прил...
ASP.NET MVC
// ДЕМОНСТРАЦИЯ
Въпроси?
Благодаря!
• Валери Дачев
–
–
–
–

valery@david.bg
http://vdachev.net/
@vdachev
https://www.facebook.com/vdachev

• ДАВИД ...
Upcoming SlideShare
Loading in...5
×

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

171

Published on

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

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
171
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Курс по информационни технологии Занятие №7 ASP.NET MVC 2013
  2. 2. Съдържание 1/3 • MVC – – – – – – Какво е MVC? История на MVC Основни принципи на MVC Контролери Модели Изгледи
  3. 3. Съдържание 2/3 • ASP.NET MVC – – – – – Какво е ASP.NET MVC? История на ASP.NET MVC Предимства Недостатъци Separation of Concerns • ASP.NET MVC приложения – – – – Обработка на заявка Контролери Действия Модели
  4. 4. Съдържание 3/3 • ASP.NET MVC приложения – – – – – – Изгледи Razor Помощници Частични изгледи Филтриране Рутиране
  5. 5. MVC • Какво е MVC? – Шаблон за разработка на приложения – Позволява преизползване на кода – SoC (Separation of Concerns) • История на MVC – Формулиран през 70те на миналия век от Trygve Reenskaug – Имплементиран в Smalltalk за настолни приложения – Адаптиран за други видове приложения
  6. 6. Основни принципи на MVC • Модел, изглед и контролер • Мястото на потребителя • Предимства на MVC –… • Недостатъци на MVC – По-сложен от други подходи
  7. 7. Контролери • Обработват заявката с помощта на модели и изгледи • Осигуряват взаимодействие с потребителя • Контролират работата на приложението • Реализират логика специфична за приложението
  8. 8. Модели • Множество от класове представляващи бизнес логиката и данните, с които тя работи • Контролират правилата за валидиране и манипулиране на данните • Скриват достъпа до данните (съотв. могат да се разглеждат като слой за достъп до данни)
  9. 9. Изгледи • Определят изхода на приложението
  10. 10. 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
  11. 11. ASP.NET MVC • Предимства – – – – – По-добър контрол върху изхода Тестваем Слабо обвръзване (loose coupling) Разширяем Конвенции над конфигурация • Недостатъци • Separation of Concerns – SRP (Single Responsibility Principle) – DRY (Don’t Repeat Yourself) – TDD (Test-Driven Development)
  12. 12. Обработка на заявка Постъпва HTTP заявка Определя се контролер Контролерът създава модел Изпълнява се действието на контролера Избира се подходящ изглед (резултат) Моделът се подава на изгледа Изгледът преобразува модела в подходящ формат • Изпраща се HTTP отговор • • • • • • •
  13. 13. Обработка на заявка
  14. 14. Контролери • Контролерите се разполагат в папка “Controllers” • Контролерите са класове наследяващи класа Controller • Наименованията на класовете на контролерите завършват с “Controller” • На различните заявки съответства определено действие • Всеки контролер реализира едно или повече действия под формата на методи
  15. 15. Действия - характеристики • Действия – Всяко действие е публичен нестатичен метод на съответния контролер – Всяко действие има параметри – Всяко действие връща резултат • Резултатът може да е всякакъв • Често използван резултат е инстанция на ActionResult
  16. 16. Действия - параметри • Данните от заявката се превръщат в параметри към методите за действия – Подаване на параметри с рутиране – Подаване на параметри с GET заявка – Подаване на параметри с POST заявка • Контрол над поведението на методите за действия със селектори – Наименование – [ActionName] – Метода – [HttpGet], [HttpPost], [HttpDelete], [HttpOptions] и т.н. – Ограничения – [NoAction], [ChildActionOnly] и [RequireHttps]
  17. 17. Действия - резултати Наименование Цел Метод 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()
  18. 18. Модели • Модели – Моделите се разполагат в папка /Models/ – Отразяват правилата на бизнес логиката на приложението за авторизация, валидация и т.н. – Контролират достъпа до данните и тяхната манипулация – Изолират работата с данните и в този смисъл представляват слой за достъп до данните
  19. 19. Изгледи • Представляват шаблони за динамична визуализация на данните в папка /Views/ • Различни машини за изгледи (view engines) – Изпълняват код, за генериране на изхода – Дават “помощници” за генериране на изхода – Най-популярни машини са Razor и Web Forms • Данни към изгледа се поддават с колекцията ViewBag, динамични обект ViewData или статичния обект Model (силно типизиране) • Поддръжка на оформления (layouts) • Поддръжка на частични изгледи (partial views)
  20. 20. Razor - основи • • • • • • • • • • Език за разработка на шаблони Razor кодът започва със символа “@” Екраниране на “@” с “@@” Коментари с “@*...*@” Razor блоковете от код с “@{…}” Визуализация на текст става с “@:” Изрази с “@(…)” C# конструкции като if, else, for, foreach и т.н. Включване пространство на имената с “@using” Дефиниране типа на модела с “@model”
  21. 21. Помощници • Всеки изглед наследява WebViewPage, а той ViewPage – ViewPage има помощни свойства Html, Ajax, Url и др. съответно от клас HtmlHelper, AjaxHelper, UrlHelper и др. – ViewPage може да има и собствени помощни свойства • Помощните методи връщат резултат под формата на низове
  22. 22. Собствени помощници • Разработка на собствени помощни свойства с код – Разширяващи методи на класовете на съответните помощници – Връщат низове, презаписват метода ToString() или генерират тагове/атрибути като връщат TagBuilder • Разработка на собствени помощни свойства с Razor – Шаблон /App_Code/Helpers.cshtml и “@helper”
  23. 23. Razor - оформления • Подразбиращо се оформление в /Views/_ViewStart.cshtml • В изгледа: Всеки изглед може да контролира своето оформление с променливата Layout • В оформлението: Визуализиране на съдържанието с @RenderBody()
  24. 24. Razor – оформления и секции • В изгледа: Дефиниране на секция с “@section Name { … }” • В оформлението: Визуализиране на секция с @RenderSection(name, isRequired)” • В оформлението: Използване на “@IsSectionDefined()”
  25. 25. Частични изгледи • Частичните изгледи се намират в папка /Views/ или в папката /View/Shared/ • Частичните изгледи отново са стандартни шаблони • Частичните изгледи визуализират части от страницата – Преизползване на части от изгледите – Помощници – Partial, RenderPartial и Action
  26. 26. Структура и конфигуриране • Структура на ASP.NET MVC приложение • Конфигуриране на ASP.NET MVC приложение – Конфигуриране с конфигурация в Web.config – Конфигуриране с код в Global.asax • • • • • • Web API Филтриране Валидиране Рутиране Пакети (bundles) Автентикация
  27. 27. Рутиране • Контролира съответствието между образци на адреси и контролер/действие/параметри • Осигурява добре изглеждащи, REST-like и SEO адреси • Дефиниране на рутиране – – – – Наименование Образец на адреса Съответстващи контролер/действие/параметри Ограничени за параметрите • Дебъгване на рутирането с RouteDebugger
  28. 28. Филтриране • Филтрирането може да се прилага преди и след изпълнението на определена логика • Филтрирането може да се прилага върху действия и контролери • Глобални филтри се регистрират в GlobalFilters.Filters (или /App_Start/FilterConfig.cs) • Собствени филтри за действия – Разполагат се в папка /Filters/ – Наследяват ActionFilterAttribute – Приложими върху контролер, действие или глобално в GlobalFilters.Filters
  29. 29. ASP.NET MVC // ДЕМОНСТРАЦИЯ
  30. 30. Въпроси?
  31. 31. Благодаря! • Валери Дачев – – – – 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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×