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

1,674 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,674
On SlideShare
0
From Embeds
0
Number of Embeds
646
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Вторая конференция .NET разработчиков<br />Метапрограммирование интерфейсов в ASP.NET MVC<br />Алексей Волков<br />Сонда Технолоджи<br />aivolkov.ru<br />
  2. 2. Дублирование кода<br />http://www.flickr.com/photos/popilop/331357312/<br />
  3. 3. Дублирование кода<br />
  4. 4. Дублирование кода<br />
  5. 5. Дублирование кода<br />
  6. 6. http://en.wikipedia.org/wiki/File:2000_core-repository02_hg.jpg<br />
  7. 7. Template Helpers+ Shared Views<br />
  8. 8. Вариант Shared Views<br />
  9. 9. Вариант Shared Views<br />
  10. 10. Вариант Shared Views<br />
  11. 11. Вариант Shared Views<br />
  12. 12. Контроллеры в Shared Views<br />
  13. 13. Сновадублированиекода<br />http://www.flickr.com/photos/kugelfisch/4663326851/<br />
  14. 14. Совершенствование Shared Views<br /><ul><li>Наследование от базовых контроллеров
  15. 15. Generic контроллеры</li></li></ul><li>Вариант generic-контроллеров<br />http://aivolkov.ru/2010/10/aspnet-mvc-and-generic-controllers/<br />
  16. 16. Вариант generic-контроллеров<br />
  17. 17. Избавление от «свалки» в Shared<br />
  18. 18. Generic-пути к View-файлам<br />
  19. 19. Generic-пути к View-файлам<br />VirtualPathProviderViewEngine.FindView<br />и<br />VirtualPathProviderViewEngine. GetPathFromGeneralName<br />
  20. 20. Generic-пути к View-файлам<br />string virtualPath = location.Format(name, controllerName, areaName);<br />string urlPart = controllerContext.RouteData.Values[“urlPart"];<br />string virtualPath = location.Format(name, controllerName, areaName, urlPart);<br />
  21. 21. Generic-пути к View-файлам<br />ViewLocationFormats = new[] {<br /> "~/Views/{1}/{3}/{0}.cshtml",<br /> "~/Views/{1}/{3}/{0}.vbhtml",<br /> "~/Views/{1}/{0}.cshtml",<br /> "~/Views/{1}/{0}.vbhtml",<br /> "~/Views/Shared/{0}.cshtml",<br /> "~/Views/Shared/{0}.vbhtml"<br /> };<br />
  22. 22. Generic-пути к View-файлам<br />
  23. 23. Плюсы от применения подобных подходов<br /><ul><li>Заметно снижается дублирование кода
  24. 24. Снижается себестоимость разработки
  25. 25. Заметно уже при числе источников данных на одну generic-схему > 5</li></li></ul><li>Подводные камни<br /><ul><li>Очень сложные схемы и интерфейсы
  26. 26. Применение в неподходящих случаях</li></li></ul><li>Спасибо за внимание<br />Алексей Волков<br />Сонда Технолоджи<br />me@aivolkov.ru<br />twitter.com/AIVolkov<br />

×