I’d like to thank Packt for providing me with a review version of Visual Studio 2010 Best Practices eBook.
In fairness I also know the author Peter having seen him speak at DevTeach on many occasions. I started by looking at the table of content to see what this book was about, knowing that “best practices” is a real misnomer I wanted to see what they were. I really like the fact that he starts the book by really saying they are not really best practices but actually recommend practices.
As a Team Foundation Server user I found that chapter 2 was more for the open source crowd and I really skimmed it. The portion on Branching was well documented, although I’m not a fan of the testing branch myself, but the rest was right on. The section on merge remote changes (bring the outside to you) paradigm is really important and was touched on.
Chapter 3 has good solid practices on low level constructs like generics and exceptions.
Chapter 4 dives into architectural practices like decoupling, distributed architecture and data based architecture. DTOs and ORMs are touched on briefly as is NoSQL.
Chapter 5 is about deployment and is really a great primer on all the “packaging” technologies like Visual Studio Setup and Deployment (depreciated in 2012), Click Once and WIX the major player outside of commercial solutions. This is a nice section on how to move from VSSD to WIX this is going to be important in the coming years due to the fact that VS 2012 doesn’t support VSSD.
In chapter 6 we dive into automated testing practices, including test coverage, mocking, TDD, SpecDD and Continuous Testing. Peter covers all those concepts really nicely albeit succinctly. Being a book on recommended practices I find this is really good.
I really enjoyed chapter 7 that gave me a lot of great tips to enhance my Visual Studio “experience”. Tips on organizing projects where good. Also even though I knew about configurations I like that he put that in there so you can move all your settings to another machine, a lot of people don’t know about that. Quick find and Resharper are also briefly covered. He touches on macros (depreciated in 2012). Finally he touches on Continuous Integration a very important concept in today’s ALM landscape.
Chapter 8 is all about Parallelization, threads, Async, division of labor, reactive extensions. All those concepts are touched on and again generalized approaches to those modern problems are giving.
Chapter 9 goes into distributed apps, the most used and accepted practice in the industry for .NET projects the chapter tackles concepts like Scalability, Messaging and Cloud (the flavor of the month of distributed apps, although I think this will stick ;-)). He also looks a protocols TCP/UDP and how to debug distributed apps. He touches on logging and health monitoring.
Chapter 10 tackles recommended practices for web services starting with implementing WCF services, which goes into all sort of goodness like how to host in IIS or self-host. How to manual test WCF services, also a section on authentication and authorization. ASP.NET Web services are also touched on in that chapter
All in all a good read, nice tips and accepted practices. I like the conciseness of the subjects and Peter touches on a lot of things in this book and uses a lot of the current technologies flavors to explain the concepts.
Cheers,
ET