Метапрограммирование интерфейсов в ASP.NET MVC

Содержание

Слайд 2

Дублирование кода

http://www.flickr.com/photos/popilop/331357312/

Дублирование кода http://www.flickr.com/photos/popilop/331357312/

Слайд 3

Дублирование кода

Дублирование кода

Слайд 4

Дублирование кода

Дублирование кода

Слайд 5

Дублирование кода

Дублирование кода

Слайд 6

http://en.wikipedia.org/wiki/File:2000_core-repository02_hg.jpg

http://en.wikipedia.org/wiki/File:2000_core-repository02_hg.jpg

Слайд 7

Template Helpers + Shared Views

Template Helpers + Shared Views

Слайд 8

Вариант Shared Views

Вариант Shared Views

Слайд 9

Вариант Shared Views

Вариант Shared Views

Слайд 10

Вариант Shared Views

Вариант Shared Views

Слайд 11

Вариант Shared Views

Вариант Shared Views

Слайд 12

Контроллеры в Shared Views

Контроллеры в Shared Views

Слайд 13

Снова дублирование кода

http://www.flickr.com/photos/kugelfisch/4663326851/

Снова дублирование кода http://www.flickr.com/photos/kugelfisch/4663326851/

Слайд 14

Совершенствование Shared Views

Наследование от базовых контроллеров
Generic контроллеры

Совершенствование Shared Views Наследование от базовых контроллеров Generic контроллеры

Слайд 15

Вариант generic-контроллеров

http://aivolkov.ru/2010/10/ aspnet-mvc-and-generic-controllers/

Вариант generic-контроллеров http://aivolkov.ru/2010/10/ aspnet-mvc-and-generic-controllers/

Слайд 16

Вариант generic-контроллеров

Вариант generic-контроллеров

Слайд 17

Избавление от «свалки» в Shared

Избавление от «свалки» в Shared

Слайд 18

Generic-пути к View-файлам

Generic-пути к View-файлам

Слайд 19

Generic-пути к View-файлам
VirtualPathProviderViewEngine.FindView
и
VirtualPathProviderViewEngine. GetPathFromGeneralName

Generic-пути к View-файлам VirtualPathProviderViewEngine.FindView и VirtualPathProviderViewEngine. GetPathFromGeneralName

Слайд 20

Generic-пути к View-файлам

string virtualPath = location .Format(name, controllerName, areaName);
string urlPart = controllerContext.RouteData.Values[“urlPart"];
string virtualPath

Generic-пути к View-файлам string virtualPath = location .Format(name, controllerName, areaName); string urlPart
= location .Format(name, controllerName, areaName, urlPart);

Слайд 21

Generic-пути к View-файлам

ViewLocationFormats = new[] {
"~/Views/{1}/{3}/{0}.cshtml",
"~/Views/{1}/{3}/{0}.vbhtml",
"~/Views/{1}/{0}.cshtml",
"~/Views/{1}/{0}.vbhtml",
"~/Views/Shared/{0}.cshtml",

Generic-пути к View-файлам ViewLocationFormats = new[] { "~/Views/{1}/{3}/{0}.cshtml", "~/Views/{1}/{3}/{0}.vbhtml", "~/Views/{1}/{0}.cshtml", "~/Views/{1}/{0}.vbhtml", "~/Views/Shared/{0}.cshtml", "~/Views/Shared/{0}.vbhtml" };
"~/Views/Shared/{0}.vbhtml"
};

Слайд 22

Generic-пути к View-файлам

Generic-пути к View-файлам

Слайд 23

Плюсы от применения подобных подходов
Заметно снижается дублирование кода
Снижается себестоимость разработки
Заметно уже при

Плюсы от применения подобных подходов Заметно снижается дублирование кода Снижается себестоимость разработки
числе источников данных на одну generic-схему > 5

Слайд 24

Подводные камни
Очень сложные схемы и интерфейсы
Применение в неподходящих случаях

Подводные камни Очень сложные схемы и интерфейсы Применение в неподходящих случаях
Имя файла: Метапрограммирование-интерфейсов-в-ASP.NET-MVC.pptx
Количество просмотров: 161
Количество скачиваний: 0