Author: Dino Esposito
Publisher: Microsoft Press
Audience: ASP .NET developers
Reviewer: Mike James
Modern web development from a Microsoft point of view is a mystery to many. Can this book make things clear?
Long time Microsoft web developers are mostly in a state of shock and bewilderment. Perhaps this is over stressing the case, but the author of this book, Dino Esposito, has been writing about Microsoft's approach to building websites since the beginning of its originally distinctive technology. Over time the author, along with the rest of us, has had to watch Microsoft dispose of the technology it spent so much time convincing us to use. Esposito has in the past championed ASP.NET and Sliverlight and has had to rewrite his books to reflect the fact that these technologies are no longer "recommended".
"Customers who paid good money to hear my expert voice back in 2008 tell them to invest in Silverlight are now paying good money to switch back to more or less they where they were in 2008.
Well not exactly."
There will be a lot of readers who resonate with this opinion and they shouldn't blame the author, the responsibility lies with Microsoft. Personally I am of the opinion that Microsoft threw the baby out with the bath water and now offers a mixture of other people's solutions to the web. I'm also fairly sure that Dino Esposito and many others also feel the same way. This is a problem because what exactly can the book focus on so that it doesn't become redundant or rather in need of a complete rewrite in a few months time?
The book is divided into three parts.
Part I is about understanding the domain. This is high level waffle. The author conveys some of the ideas of domain-driven design as well as can be expected and if this is the sort of philosophical high level discussion you like then it is good stuff - just don't go looking for APIs or code.
Part II is called Development. This consists of eight chapters about ASP.NET as it is represented today in ASP.NET Core 1.0. Chapter 6 opens with more soul searching:
"I don't really know if dropping rich-client web development (and Silverlight) has been right or wrong. I take it as a fact and look ahead."
I think he probably does know whether it was right - or rather that it was woefully wrong. Pragmatism rules and in this case it probably says "get away from Microsoft web technologies". The rest of the chapter does its best to make those very same technologies sound appealing. The next chapter explains the technicalities of ASP.NET Core and again there are lots of comments about the nature of the technology and the confusion that surrounds it. Then onto Bootstrap, organising an MVC project, presenting data and persistence.
Part III is about the user experience and consists of just three chapters on interactive views, responsive design and being mobile friendly.
This is a fascinating book to read if only to feel, and share, the author's pain at the loss of a good focused technology being replaced by something that resembles a mess. There is no focus and no vision in ASP.NET MVC. It is essentially a collection of almost randomly selected technologies mixed up together to replace the old ASP.NET way of doing things. It is really a way of doing server-side programming in C#, which is still a very nice language and might be worth the effort of learning ASP.NET MVC.
If you come to it new and without seeing what went before then you might well think Microsoft has caught up with the modern world, but the more likely truth is that Microsoft gave up the future just when it was becoming possible to chase the dream of the Windows Phone - and we know how that one ended.
Is there any point in using Microsoft web technologies?
If there is then this book will sell you the new dream.
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.
Dumping .NET - Microsoft's Madness
NET Core Version 1 Released - So What?
.NET Core The Details - Is It Enough?
ASP.NET 5 Cross Platform - But Is It Still ASP?