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!