Author: Jon Arking and Scott Millett
Publisher: Wrox, 2009
Aimed at: .NET developers
Pros: A good introduction to enterprise concepts, tools and technologies
Cons: Not an easy read due to large examples
Reviewed by: Ian Elliot
This is an interesting book addressing a problem that many ignore. It starts from the premise that the Microsoft developer has mostly concentrated on rapid application development - RAD. This is certainly true of many Visual Basic 6 programmers and their projects although I have to admit that I have seen some very well organised and well implemented VB 6 projects and some that are still being used and expanded. However most of the action in enterprise development has been in the Java progrmming arena and mostly open source. The closed source world of the Microsoft programmer has kept many of the exciting ideas at bay.
This book aims to redress this balance by introducing the key ideas - MVC, inversion of control, unit testing and more. This of course involves using non-Microsoft technologies such as Rhino Mocks and nUnit. If you are going to appreciate this book you simply have to be thinking outside of Visual Studio.
Much of the book is taken up with providing examples of why "Enterprise Architecture" is better than something more ad-hoc. There are some easy-to-read introductions but the main thrust of the book is contained in large C# applications that you really have to follow through to understand what is going on. If you don't actually attempt to implement the examples then you are going to have to put a lot of work into reading and understanding them. I have to admit that on more than one occasion I got well and truly lost and had to re-read large chunks of code to follow what was being explained. With such large examples it is all too easy not to see the architectural wood for the coding trees.
If you are unfamiliar with the ideas of MVC, unit testing, dependency injection and so on and you are a .NET programmer then this is one way into the subject. You won't learn anything new about .NET or Visual Studio but you will encounter a range of tools that aren't normally discussed in the same context. It's not an easy read but for the right programmer prepared to put some work into following the examples it should be rewarding.