Разговоры о динамической кодогенерации, или «Тёмная сторона IL-a»

Задумывались ли вы о том, насколько много исполняемого кода в современных .NET приложениях порождается не непосредственно программистами в процессе написания программы, а специальным кодом в процессе её исполнения? Каковы реальные причины появления такого кода? С помощью каких механизмов он появляется? Каковы его возможности, сильные и слабые стороны?

Рассмотрим теоретические аспекты и нюансы практического применения. Обсудим и подумаем о том, как использовать возможности динамической кодогенерации в своих целях:

  • для поднятия производительности в конкретных сценариях,
  • для обхода ограничений платформы и языка программирования,
  • для построения гибких систем с динамическими связями,
  • для увеличения собственной эффективности.

Доклад для тех, кто хочет узнать, зачем может быть нужно, находясь в здравом уме, парсить IL-код метода в рантайме и, самое главное, как это делать. Иными словами — добро пожаловать на «тёмную сторона IL-a»…));


Дмитрий Гаравский

DevExpress

Lead .NET Developer. в DevExpress в отделе Desktop-разработки. Фокусируется на разработке UI-компонентов Desktop-приложений. Сфера профессиональных интересов – MVVM, PnP, тонкие моменты .NET (интроспекция, сериализация, динамическая компиляция и кодогенерация, оптимизация). В свободное время любит помогать другим разработчикам разбираться с тонкостями .NET.