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

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

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

1 ответ

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

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

Другие вопросы по тегам