Связь между прикладными уровнями в C# WPF с Caliburn Micro
Я создаю n-уровневое клиент-серверное приложение с C# и WPF (WCF для взаимодействия клиент-сервер)
То, что я хотел бы сделать, это иметь возможность, чтобы мои менеджеры службы на стороне клиента могли передавать данные прямо в ViewModel, и при этом, чтобы они попадали в представление.
Например: Пользователь A открыл приложение и открыл CustomersViewModel со списком клиентов.
Пользователь B добавляет нового клиента в базу данных.
В тот момент, когда хранилище знает, что данные от пользователя B были сохранены, я хочу отправить сообщение всем подключенным клиентам (NotifyClientsOfUpdateMessage). Когда диспетчер службы на стороне клиента получает это сообщение, я хочу использовать что-то вроде Caliburn.Micro EventAggregator, чтобы затем передать это любому ViewModel, который реализует IHandle для отображения сообщения в представлении, утверждающем, что список изменился, нажмите кнопку Обновить, чтобы обновить,
Теперь - на мои вопросы. 1 - Может ли Caliburn.Micro EventAggregator взаимодействовать между слоями приложения? В моем контейнере Autofac EventAggregator зарегистрирован как единый экземпляр, совместно используемый прикладным уровнем (ViewModels) и клиентским уровнем, в котором находятся все клиентские прокси, менеджеры и т. Д.
По сути, я хотел бы опубликовать событие от менеджера клиентов до уровня приложения и иметь ViewModels обрабатывать эту информацию, однако требуется. Это возможно?
2 - Есть ли более эффективный способ достижения такого же поведения?
Пожалуйста, прости меня, если это основной вопрос, это мое первое клиент-серверное приложение, и я 1 год учусь писать приложения. Я сделал многочисленные поиски через Google, SO, MSDN и т. Д. И не могу найти какую-либо информацию об этом.
Заранее спасибо.