Metaprogramming in .NET


Metaprogramming is a very wide topic with many gray lines between other topics such as DSLs and dynamic programming. In short, metaprogramming is “code you write so you have to write less code.” As we all know, more code that people have to think about typically results in a higher chance of defects.

In this talk, we’ll cover what metaprogramming is, some good and bad examples of metaprogramming, and then cover a few technologies in the .NET space relevant to the topic.

In particular, we’ll cover Reflection, the Reflection.Emit API, CodeDOM, T4, DSLs, F# Type Providers, Roslyn, IL Rewriting, and more. We don’t have time to take the deepest dives possible into any of these subjects, but we’ll certainly be able to open up a can of worms that could save us all immeasurable headaches and time!

Stachu Korick

Stachu is a .NET hipster, focusing on the fringes of .NET in between taking steps back to see the big picture. Currently employed as a software developer at AcademyOne, he works in the domain of higher-education.