Hello, Dino Esposito here! A way back, in the spring of 2008, Andrea Saltarello and I finally gave spark to a project we’d been thinking on for over a year: writing a short, concise and effective architecture book. In our mind, it had to be the book we would have gotten ourselves if it only were available at the time. When it comes to architecture and software there are quite a few good books out there, but it’s the actual meaning of the term “architecture” that marks the difference. We were not looking for a book helping with project management, estimates, or diagrams. That’s still something that reasonably falls under the umbrella of architecture, but it was not our core meaning of architecture. We meant “software architecture”—that is, how you ultimately design, implement and build the application: patterns, practices, methodologies, tools and technologies.
In our mind, it had to be a book that talked code extensively without presenting long and complicated listings. And it had to be short and concise. The book, Microsoft .NET: Architecting Applications for the Enterprise, was written in the summer of 2008 and Microsoft Press got the first edition hot from press in the fall. To help put things into perspective, it was the time of the Lehman Brothers collapse, the economy was close to the first minimum point of the recent years and, more than everything else we were still waiting for the first official release of Entity Framework.
Five years is really a lot of time in software development and a lot has changed since the first edition of the book. Still, several parts of the book are a good and useful reading even today. Other parts are much less attractive and enticing than five years ago, if not obsolete at all. Want an example? UML.
A few weeks ago, Andrea and I started working on a new edition which will likely be available in 2014—hopefully in the first half. We aim at another short book with a completely different Table of Contents. In particular, the Table of Contents reflects our experience on real projects and the outline of software design classes we’ve been teaching lately.
From our blogs, and the official Microsoft Press blog, and the book’s Facebook page we plan to share updates as the work progresses. At this time, a draft of Chapter 1 is ready and we’re writing Chapter 2. We also plan to use Twitter to share links to updates. The hashtag we’ll use is #naa4e for Microsoft .NET: Architecting Applications for the Enterprise.
Microsoft Press’s blog
Official Facebook page for the book
Dino’s Twitter account
Andrea’s Twitter account
Microsoft Press’s Twitter account
We plan to publish updates simultaneously on blogs and link them from within the Facebook page where we invite you to share comments, suggestions, tips and any kind of feedback. If you tweet, please use #naa4e.
In the book we propound a revised layered architecture (presentation, application, domain and infrastructure) and a sort of revolutionary approach to design, top-down, that starts from presentation and addresses multi-device concerns, separation of concerns, as well as the Big Ball of Mud problem at its root.
Part I Foundation
1. Mechanics of software projects
2. Principles of software design
3. Writing software of quality
Part II Layered Architecture: Head
4. The Presentation Layer
5. The Mythical Business Layer
Part III Supporting Architectures
6. Introducing Domain Modeling
7. Implementing Domain Modeling
8. Introducing CQRS
9. Implementing CQRS
10. Introducing Event-sourcing Models
11. Implementing Event-sourcing Models
Part IV Layered Architecture: Tail
12. The Infrastructure Layer
Enjoy and stay tuned!