Конверсации версии 2 оказались неуместными.
Во первых сами длительные транзакции оказались опасными и невостребованными.
Архитектура транзакций и обработки событий конверсаций, их менеджмент и хранение были крайне усложнены. Львиную долю цикла делал ужасный BaseApplication, а сессии все равно жили своей жизнью.
В версии 3 решено полностью пересмотреть подход.
Во первых сами длительные транзакции оказались опасными и невостребованными.
Архитектура транзакций и обработки событий конверсаций, их менеджмент и хранение были крайне усложнены. Львиную долю цикла делал ужасный BaseApplication, а сессии все равно жили своей жизнью.
В версии 3 решено полностью пересмотреть подход.
- Сессии пусть живут отдельно
- Никаких постоянных транзакций, только Flush.Never и соглашение, что обновление данных в защищенном контексте
- Нет как таковых конверсаций
- Вместо этого переписан шаблон приложения в Core, WebApplicationBase, от него все наследуется.
- WebApplicationBase инициирует IApplicationLifecycleManager из ioc и ему делегирует события веб - тут если надо можно завесить обработчиков рекветов. Это заместо перехватчиков конверсаций.
- Конверсации вообще удаляются из проекта
Комментариев нет:
Отправить комментарий