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


The Presentation inside:

Slide 0

Метапрограммирование интерфейсов в ASP.NET MVC Алексей Волков Сонда Технолоджи aivolkov.ru Вторая конференция .NET разработчиков


Slide 1

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


Slide 2

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


Slide 3

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


Slide 4

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


Slide 5

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


Slide 6

Template Helpers + Shared Views


Slide 7

Вариант Shared Views


Slide 8

Вариант Shared Views


Slide 9

Вариант Shared Views


Slide 10

Вариант Shared Views


Slide 11

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


Slide 12

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


Slide 13

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


Slide 14

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


Slide 15

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


Slide 16

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


Slide 17

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


Slide 18

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


Slide 19

Generic-пути к View-файлам string virtualPath = location .Format(name, controllerName, areaName); string urlPart = controllerContext.RouteData.Values[“urlPart"]; string virtualPath = location .Format(name, controllerName, areaName, urlPart);


Slide 20

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" };


Slide 21

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


Slide 22

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


Slide 23

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


Slide 24

Спасибо за внимание Алексей Волков Сонда Технолоджи [email protected] twitter.com/AIVolkov


×

HTML:





Ссылка: