DESCRIPTION Metaprogramming is a style of software development that lets a program change and respond to the conditions present when it runs. .NET enables many Metaprogramming capabilities, including code generation systems, application composition frameworks, and scripting technologies. Metaprogramming in .NET begins by teaching the basic concepts, advantages, and potential pitfalls of metaprogramming. Then it takes a deep dive into each of the relevant tools and technologies, using plenty of real-world examples that reinforce key concepts. Armed with the knowledge they need, readers will be able to build high-performance, metaprogramming-enabled software - just like the pros. AUDIENCE Readers should be comfortable with C# and the .NET framework. No prior experience with metaprogramming is required. ABOUT THE TECHNOLOGY Metaprogramming is mostly a set of language-independent skills that are all about making software simpler and reusable. Rather than depending strictly on language features to reduce code complexity or to increase reusability, metaprogramming uses a variety of libraries and coding techniques.