Author: Carl Ganz
Publisher: Apress, 2010
Aimed at: Experienced C# programmers
Pros: Some interesting advanced techniques
Cons: Misleading title, not deep
Reviewed by: Ian Elliot
This is a very strange book. It isn't a good book but you still might want to buy it.
The title Pro Dynamic .NET 4.0 Applications might lead you to believe that the book was about the latest dynamic programming facilities in .NET 4.0, or indeed something about .NET 4.0. In fact the book is about things that were included in .NET 3.5 and it doesn't really deal with dynamic typing at all.
So what is the book all about? Mainly it's about code generation with a something thrown in on SQL and dynamic forms.
Chapter 1 looks at SQL Metadata and .NET code generation - mainly CodeDOM. Chapter 2 discusses the use of reflection to load assemblies, instantiate classes and call methods at runtime. Chapter 3 takes us a little further with code generation and looks at runtime code compilation. This more or less closes the section of the book on dynamic code.
Chapter 4 deals with changing forms at runtime even to the extent of defining an XML language that specifies the form - something like XAML for WinForms. Chapter 5 does the same thing for ASP.NET Web Forms and Chapter 6 for WPF forms. There is nothing clever or particularly advanced in these chapters - if you know how to programmatically create a control and add it to a form or layout panel then you really don't need to read this.
The final two chapters are about reporting generation and database design. Again nothing particular difficult or surprising.
Another problem with the book is that nothing is very well explained. The examples are long and without adequate discussion and perhaps most importantly there is insufficient motivation for the whole enterprise. If you know why you might want to work with the CodeDOM and generate code then you might find digging though the examples rewarding but if you just a vague idea that dynamic code might be useful don't bother.
This isn't an inspiring book and in the main you can give it a miss.