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!
I'm very happy to hear that you guys (Dino and Andrea) are working in a new book related to the Software Architecture. I'm starting to get involved in all this wonderfull world that is the Software Architecture and this new book looks a very good and up-to-date complement for the first edition that will help me to learn and improve my skills as (Not yet, but hopefully soon) Software Architect.
I'll be waiting for more news! :)
Your first edition was for me a real eye opener. Looking forward to the new edition. Not a suprise that CQRS gets a more central place.
i want it now !!!
Dino, I appreciate your efforts a great deal and ask if the following situation be considered: I work for a state agency, most of our projects are long term - no kidding 10+ years.
In doing Enterprise apps, the design that is very necessary in my world to deal with exception handling, logging, emailing, features, database, whatever so it can be changed. Entire re-writes are not possible, no money, yet we have major production problems and issues.
While there is code 1st, database 1st techniques; design is everything for long term usage.