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

Formerly an active member of the Rubik’s Cube speed-solving community, Stachu loves solving problems and follows the cubing adage “Go Slow and Look Ahead” to the best of his ability.