Имеет ли .NET (C #) что-то похожее на движок сигналов Django?
Наша бизнес-логика стала действительно сложной за несколько лет добавления новых функций.
Я собираюсь перестроить его. В настоящее время все функции очень взаимосвязаны, что приводит к ошибкам регрессии при изменении чего-либо в одном месте - другое место может быть повреждено.
Мне очень нравится идея приложений Django, когда отдельные приложения представляют новую функциональность и являются абсолютно отдельными. Связь между приложениями осуществляется через сигналы.
Я бы хотел узнать, есть ли в .NET что-то, что позволяет разделить бизнес проекта на множество отдельных «приложений» (плагинов, зон, модулей, и так далее) и осуществлять связь с помощью каких-то «сигналов».
Например, у нас есть простой поток заказов.
Мы можем добавить «приложение купона», которое, если существует в проекте, добавляет возможность использовать купон на скидку.
Мы можем добавить модуль «перекрестная продажа», который, если существует, добавляет возможности предлагать продукты перекрестной продажи
Модуль уведомлений по электронной почте, который, если существует, добавляет возможность отправлять уведомления по электронной почте.
Но в то же время все эти модули являются «автономными», что означает, что связь между ними осуществляется с помощью излучающих сигналов (ORDER_PROCCESS_START, ORDER_SUCCESS, и т. Д.), И другие модули могут подписываться на эти сигналы и обрабатывать их требуемым способом.
Эта архитектура не связана с сетью, вся бизнес-логика обрабатывается на стороне сервера, как без работы с HTTP напрямую.
Интересно, если это хорошая архитектура с точки зрения поддержки и тестирования кода, возможно ли сделать это в .NET? Какие-нибудь недостатки, которые я сейчас не осознаю?