Silverlight Prism - загрузка модулей после успешного входа в систему - PullRequest
0 голосов
/ 30 ноября 2009

У меня есть приложение Silverlight Prism, которое включает в себя модуль панели инструментов с элементами управления входом. В настоящее время у меня есть модуль в основном регионе, установленный на InitializationMode.OnDemand в Bootstrapper, и я могу загрузить его через ModuleManager.LoadModule () после успешного входа в модуль панели инструментов. Тем не менее, это не совсем правильно, так как по сути тесно связывает модуль панели инструментов с модулями, которые он загружает после входа в систему.

Теперь к вопросу ... Является ли это наилучшей практикой, или я должен что-то предпринять по аналогии с поднятием CompositePresentationEvent из модуля панели инструментов и загрузкой оболочкой соответствующих модулей? Или есть другие варианты? Я создаю это приложение, пытаясь узнать больше о Prism, и хочу быть уверенным, что я следую наилучшим методам, насколько это возможно.

1 Ответ

1 голос
/ 02 декабря 2009

Мне больше нравится подход EventAggregator в этом случае. Мне не нравится, когда один модуль знает о другом. Самое большее, что Shell должна знать о других модулях, но они не должны так разговаривать друг с другом.

Поскольку это скорее ответственность за оболочку, вы задумывались о том, чтобы вставить это в саму оболочку? Если они логически одинаковы, нет особой причины держать их отдельно, если только вы не собираетесь часто заменять панель инструментов. Я обычно запекаю меню в оболочке и делаю так, чтобы Модули могли вносить свой вклад в меню через сервис, такой как IMenuRegistry или что-то подобное Просто предложение.

...