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