Большинство вещей, которые вы сделали, в порядке.
Но для модуля регистрации: создайте отдельный проект в своей инфраструктуре и зарегистрируйте его как одноэлементный объект в Unity.
2 - Для более качественного модульного тестирования вашего проекта используйте единство в полном объеме как создатель зависимостей вашего класса, как в зависимости от контракта, а не от фактической реализации.
3 - Для связи между вашими модулями используйте EventAgreegator
4- Для глобальных команд используйте CompositeCommand.
5 - Если в вашем пользовательском интерфейсе есть элементы управления селектором, такие как Combobox, ListBox, попробуйте расширить свойство Attached, как это сделано в Composite Application for Button base, чтобы вы не перехватывали событие выбора измененного в вашем коде, скорее вы возможность вызывать команды.