Я пишу свое первое приложение с ASP.NET MVP (попытка Supervisory Controller) и модульное тестирование (лучше поздно, чем никогда!), И я столкнулся с небольшой дилеммой. Я написал 3 пользовательских элемента управления, все протестированы и подключены, ведущие на буксире. Теперь я зашел на страницу, которая берет эти три пользовательских элемента управления и столкнулся со следующей проблемой:
Пользовательский элемент управления 1 - это DateSelector, это элемент управления Calendar с несколькими другими кнопками / списками. Ничего особенного захватывающего.
Пользовательский элемент управления 2 - DailyList. Угадай, что это. В любом случае, вы можете выбрать / удалить и т. Д. Если вы выбираете элемент из сетки, он должен заполнить User Control 3.
Пользовательский элемент управления 3 - ItemDetail. Вот DropDownLists, TextBoxes и т. Д. ... некоторые с существующими зависимостями от других (выбор параметра в DropDown влияет на параметры в DropDown 2).
Если я выберу новую дату из своего DateSelector, вызову ли я событие из Presenter DateSelector? Я должен как-то сообщить другим пользовательским элементам управления, что была выбрана новая дата, чтобы они могли заново связать свои данные, но как? Если я использую Presenter страницы для подписки на Presenters представлений пользовательского контроля, не буду ли я открыто нарушать закон Деметры (выставляя Presenters как свойства через их представления)? Разве я не должен использовать ведущий страницы как всезнающий контроллер страницы? Есть ли что-то, что мне не хватает?
Все, что я до сих пор читал, говорит: «MVP великолепен, даже с пользовательскими элементами управления», но об использовании пользовательских элементов управления удобно забывать, когда речь идет о примерах. Мне кажется, что MVC будет более точно соответствовать моей модели мышления, но в настоящее время MVC не подходит. Любая помощь будет отличной здесь. Заранее спасибо.