Аспектно-ориентированное программирование (АОП) — широко распространённая практика во многих популярных фреймворках, таких как Angular или Spring. В ASP.NET мы привычно используем этот архитектурный подход при работе с контроллерами, что натолкнуло нас на мысль масштабировать АОП на другие слои приложений. Благодаря подходу АОП мы получаем возможность декларативно управлять поведением кода и инкапсулировать сквозную функциональность, не засоряя основную логику бизнес-кейсов. В .NET существует как минимум четыре механизма для реализации АОП: классические объектно-ориентированные декораторы, посткомпиляция, динамические прокси, а также новая технология Interseptor в C# 12. Дмитрий расскажет о своём опыте использования каждого из этих механизмов АОП, их преимуществах, ограничениях и особенностях. Кроме того, затронет вопрос перехвата зависимостей из контейнера внедрения зависимостей (DI) для реализации внутренних механизмов АОП с целью обеспечения гибкости и расширяемости кода.