Слайд 2Дублирование кода
http://www.flickr.com/photos/popilop/331357312/
Слайд 6http://en.wikipedia.org/wiki/File:2000_core-repository02_hg.jpg
Слайд 7Template Helpers
+ Shared Views
Слайд 13Снова дублирование кода
http://www.flickr.com/photos/kugelfisch/4663326851/
Слайд 14Совершенствование Shared Views
Наследование от базовых контроллеров
Generic контроллеры
Слайд 15Вариант generic-контроллеров
http://aivolkov.ru/2010/10/
aspnet-mvc-and-generic-controllers/
Слайд 19Generic-пути к View-файлам
VirtualPathProviderViewEngine.FindView
и
VirtualPathProviderViewEngine. GetPathFromGeneralName
Слайд 20Generic-пути к View-файлам
string virtualPath = location
.Format(name, controllerName, areaName);
string urlPart = controllerContext.RouteData.Values[“urlPart"];
string virtualPath
= location
.Format(name, controllerName, areaName, urlPart);
Слайд 21Generic-пути к 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"
};
Слайд 23Плюсы от применения подобных подходов
Заметно снижается дублирование кода
Снижается себестоимость разработки
Заметно уже при
числе источников данных на одну generic-схему > 5
Слайд 24Подводные камни
Очень сложные схемы и интерфейсы
Применение в неподходящих случаях