Book Review: Unity 2.0
To start my current dive into the state of WPF composition and IoC frameworks I read the Unity documentation book: Unity 2.0 General Purpose Dependency Injection Mechanism for your .Net Applications. I’m rather familiar with Unity, but it seemed time for me to finally read the docs to see if I was missing anything. The book is a pdf freely available on the Unity Codeplex Page.
The book is as dry as the desert sands of Arrakis. You wont find gripping prose found in such tech classics as Naked came the Null Delegate. Also, it leads with 70 pages detailing xml configuration which in an informal survey, I found exactly 0 people in favor of over runtime configuration. The book is also not entirely thorough and in depth, though I believe all Unity 2.0 features are covered. So it works pretty well as a shopping list for further web research. The most annoying thing about this book is that there’s a ton of blue text with blue underlines that aren’t hyperlinked. Click and click and go nowhere. There oughtta be a law against this:
In any case, I found what I wanted to know which was if I read the book, would I learn anything about Unity that I didn’t already know. Spoiler Alert. The answer was yes, but not by much.
One of the best paragraphs in the book explained Unity itself:
Application Design Concepts with Unity
Features such as inversion of control, dependency injection, interception, factory, and lifetime… provide several major advantages when building applications that consist of many individual classes and components. Designing applications that conform to these patterns can provide the following:
The capability to substitute one component for another using a pluggable architecture.
The capability to centralize and abstract common features and to manage crosscutting concerns such as logging, authentication, caching, and validation.
Increased configuration flexibility.
The capability to locate and instantiate services and components, including singleton instances of these services and components.
Simplified testability for individual components and sections of the application.
Simplified overall design, with faster and less error‐prone development.
Ease off reuse for common components within other applications.
Then again, the Unity Home Page may do an even better job.
I’ll flesh out a few details from the book in my next post.