Patterns of Enterprise Application Architecture
by Martin Fowler; David Rice; Matthew Foemmel; Edward Hieatt; Robert Mee; Randy Stafford
Agile Principles, Patterns, and Practices in C#
by Martin C. Robert; Martin Micah
NHibernate in Action
by Pierre Henri Kuaté; Christian Bauer; Gavin King; Tobin Harris
Refactoring: Improving the Design of Existing Code
by Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts
UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
by Martin Fowler
Xcode 3 Unleashed
by Fritz Anderson
Practical C++ Programming, 2nd Edition
by Steve Oualline
C++ Pocket Reference, 1st Edition
by Kyle Loudon
“[This] is a book about design in the .NET world, driven in an agile manner and infused with the products of the enterprise patterns community. [It] shows you how to begin applying such things as TDD, object relational mapping, and DDD to .NET projects...techniques that many developers think are the key to future software development.... As the technology gets more capable and sophisticated, it becomes more important to understand how to use it well. This book is a valuable step toward advancing that understanding.”
–Martin Fowler, author of Refactoring and Patterns of Enterprise Application Architecture
Patterns, Domain-Driven Design (DDD), and Test-Driven Development (TDD) enable architects and developers to create systems that are powerful, robust, and maintainable. Now, there’s a comprehensive, practical guide to leveraging all these techniques primarily in Microsoft .NET environments, but the discussions are just as useful for Java developers.
Drawing on seminal work by Martin Fowler (Patterns of Enterprise Application Architecture) and Eric Evans (Domain-Driven Design), Jimmy Nilsson shows how to create real-world architectures for any .NET application. Nilsson illuminates each principle with clear, well-annotated code examples based on C# 1.1 and 2.0. His examples and discussions will be valuable both to C# developers and those working with other .NET languages and any databases–even with other platforms, such as J2EE. Coverage includes
· Quick primers on patterns, TDD, and refactoring
· Using architectural techniques to improve software quality
· Using domain models to support business rules and validation
· Applying enterprise patterns to provide persistence support via NHibernate
· Planning effectively for the presentation layer and UI testing
· Designing for Dependency Injection, Aspect Orientation, and other new paradigms
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 18 Ratings
An insipid mixed soup - 2008-09-13
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I really cannot figure out how this text has received so many good reviews. The writing style feels like a stream of consciousness from an old colleague after he's been through a really heavy working day, and as for the contents.. well it's a boring mix and rehash of concepts that I hope are familiar even to any decently experienced .NET developer. Like: since you are using a Object Oriented language after all, do model the business you are trying to help with your software with classes, use design patterns when appropriate, test your model and possibly write your test as a means to develop your domain model more clearly, use an Object Relational Mapper like NHibernate to save yourself most of the trouble in solving the Object-Oriented/Relational mismatch etc etc.. All these ideas have been knows to Java developers for ages. True, .NET is behind in test/patterns/model driven design.. but guess what, why is that so? Because if this is the most introductory , detailed, applied, hands on text dedicated to these subjects, well you .NET guys are in big trouble ... And surely no book can introduce them all like this one aims to do, especially if its teaching style is teaching NHibernate saying: "You will find lots of examples of .config files to copy and paste from the NHibernate site so I won't go into detail here, but I 'll just take it for granted that you have a suitable .config file in place". Well, Jimmy, I can find all the documentation I need on that site, but then why on earth did I spend 50 bucks on your tome? As a door stopper? Next time you write a book instead of filling it with unfocused, "high level", vague rambling give some solid, concrete, practical tech help and tutorial. What pisses me off is that the author of this book is a competent developer and a smart guy, but still can come up with such a fluffy, boring, vague, bs-oriented text, and as a final touch cannot resist the temptation to throw in his N(ilsson)Workspace nth level of indirection when we already have a repository, an ORM ... And I always thought that squeezing one own name into a piece of software was the sure signature of a beginner...
Pragmatic, useful, approachable - 2009-06-14
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Another excellent, approachable, useful book on the topic of Domain Driven Design. This book also discussed some exciting side topics that are difficult to find within the context of .NET. Topics such as: Aspect Oriented Programming (AOP), Dependency Injection, Inversion of Control (IOC), Mocking, and TDD. I found Nilsson's book crucial for filling in many of the implementation gaps that Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans skims over. I recommend reading this book alongside Evans seminal work on the topic of Domain Driven Design.
Yawnnnnn .... plunk! - 2008-12-15
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Read Riccardo's review, I completely agree with it. I had really high expectations for this book and I have been sorely disappointed. This book is a total waste of money. I'm not interested in hearing about umpteen different possibilities and accompanying philosophies for every conceivable design decision. Presumably, the author is or should be an expert on enterprise level business applications. At some fundamental level, all custom and/or enterprise business applications are similar. Don't try and tell me Jimmy, you go through all these agonizing thought processes on every application you confront. If I did this on my day to day job as a .NET developer, I would get FIRED. This book reminds me of the Patterns books; I have yet to see a decent design pattern book. One of these days, I am going to quit wasting money on $50 computer books!!
Excellent Book - 2008-09-23
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I really enjoyed reading this book. Jimmy has a very conversational writing style. He will show some code, talk about the pros and cons, make a change, talk about that change and repeat until he has something he is satisfied with. This was very helpful to me as it demonstrated that he has gone through the same growing process that we all need to take as software developers. He is not lecturing from a tower; he is a common programmer who has be able to develop some excellent techniques through research and experience working with others who also seek to be the best they can. His examples are clear and meaningful. He shows how you can actually use TDD to grow a domain model, which is something that has certainly been lacking from other resources I have used in the past. I read the book because I feel like my dev team needs a better focus and I am now more convinced that DDD and TDD will help us focus on creating maintainable code for our enterprise.
Great book for pulling together DDD - 2008-09-04
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I have come back to this book after first digging into it when it first came out. At that time, I got bogged down and never really made it very far into the book. Here's why: A reader needs a basic conceptual familiarity with DDD before tackling this book. I'd suggest Domain-Driven Design: Tackling Complexity in the Heart of Software and Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series). You might be able to get a running start by reading the free e-book "Domain Driven Design Quickly" (http://www.infoq.com/minibooks/domain-driven-design-quickly), but the Fowler book is particularly helpful, since it catalogs and explains a number of the patterns used in Nilsson's book.
Don't assume this book is outdated because it uses NHibernate instead of LINQ or the ADO Entity Framework. If you are a true DDD developer, neither product is quite 'there' yet, and NHibernate remains the best ORM framework available. And if the Entity Framework does become a viable ORM product in Version 2, the skills taught in this book should transfer easily.
In short, this book presents a really good nuts-and-bolts approach to explaining how to do DDD, but it assumes you already have a pretty good understanding of what DDD is all about.
Top Level Categories:
Software Engineering
Sub-Categories:
Software Engineering > OOP
Some information on this page was provided using data from Amazon.com®. View at Amazon >