Last post Aug 28, 2018 08:21 PM by dpant
Aug 28, 2018 08:21 PM|dpant|LINK
Here is my review of the
Modern Web Development book by Dino Esposito.
Modern Web Development by Dino Esposito is a well-written, sincere book. There are some good key points that may require you to read certain parts (at least) twice to fully comprehend them. For example, it is only when reading the chapters of the second
part that you need to go back and carefully reread the theory to fully justify some of the author’s architectural choices and why things are implemented the way they are.
Having read other books about DDD and ASP.NET in the past such as the Professional ASP.NET Design Patterns (2010) book by Scott Millett, the one thing that this book greatly helped me with is simplifying the intricacies of Domain-Driven Design. Let’s not
forget that DDD primarily aims to attack the complexity of software systems. It seems, though, that more often than not, people talking and writing about DDD tend to offer solutions way more complicated than the problem at hand. Dino Esposito is very honest
on this subject: simplify your code as long as it works without compromises in the architectural design. Don’t follow DDD “rules” as if they were carved in stone.
There are some things written in this book that I found confusing. What follows is a list of sentences, terms and examples that I could argue about their comprehensiveness or completeness.
The notion of mirroring versus modelling is confusing. It is not clear how the former differs from the latter. On page 3, mirroring is suggested but on the first paragraph of page 4 modelling comes to the rescue.
I found the “What DDD has changed” paragraph on page 50 redundant (it has been repeatedly explained in previous chapters) and frankly, irrelevant to the subject.
I found the references on Silverlight and WCF unnecessary. Silverlight, in particular, is a long gone dead-in-the-water technology.
Chapter five is the beating heart of the book. The only thing I didn’t like much is the use of the “physical data model” term on page 94. I would prefer “persistence layer”, instead.
Figure 8-4 on page 154 should read “Action Invoker” instead of “Action Broker”. This is probably just a typo.
The ajax paging solution provided on page 266 is way too complicated and it doesn’t have to be so, really. The same result could have been achieved with a (containing) view, a partial view with both the pager and the grid in it,
a couple of action methods and a render action!
I didn’t like the “TempData” solution very much. I understand the reasoning behind PRG but this pattern is neither endorsed or promoted by ASP.NET MVC itself. Actually, the authentication code generated by the Visual Studio ASP.NET
MVC project template contradicts everything discussed about PRG in this chapter.
According to DDD, the rule of thumb is to have one repository per aggregate root and not per aggregate as stated in the second bullet on page 327.
Hope it helps,