Book review - "Pro ASP.NET 4 in C# and VB", by Bill Evjen, Scott Hanselman, and Devin Rader. ISBN: 978-0-470-50220-4 - Published by WROX
Hello, this is my book review for "Pro ASP.NET 4 in C# and VB". Even though there are many new technologies available for programming (Silverlight 4 for example), many times I find myself resorting to the trusty old asp.net web programming environment. Why? For me, most of my clients still consider websites the mainstream way of reaching customers, building database aware websites with logon profiles, SSL protection, SQL database calls etc. are still main staples of today's computer programmer.
An example of this is a membership "portal" application I am building; I was briefly sidetracked into using a popular CMS application framework, until my hosting provider objected to the CPU usage of the database and shutdown my database. This is because the CMS system stores all of its content into SQL server databases. So, while I was able to quickly build a prototype of my application using the CMS, changing hosting providers at this stage of the game was a little more than I wanted to deal with at this time. The CMS framework was enticing because it had many features available for use, security infrastructure (users/roles/profiles), ability to edit the content on the website directly, ability to write custom modules and apply them to the website etc... However, you do pay for that infrastructure, mostly in performance and having to write code that conforms to the way the CMS is built. Don't get me wrong, I still like the concept and will probably re-explore the CMS approach (it's based upon asp.net by the way, but it has an additional framework built up on top of it) only in my project's case, I had to move on and get everything going.
So, I decided to make use of many of the features in asp.net such as membership provider, role provider and profile provider (read up on the aspnetdb command), WCF services hosted in IIS, and Silverlight content also hosted in an asp.net webpage. While I didn't have that initial CMS framework available for my consumption, I now have the advantage of knowing and controlling every little nuance in my programming because I am building my system with plain asp.net code (C# mostly) using much of the clever and productive ways that Microsoft has enhanced ASP.NET over the years. I have written many an asp.net website over the past 12 years or so (since asp.net 1.0 first came out).
Moral of the story? There is always a good and a bad about every choice we may make as a programmer. In the case of ASP.NET, there is not much to complain about, while I did have to build up more infrastructure than I would have if I stayed with the CMS, I was able to take advantage of the many improvements in asp.net 4.0 that make it easier and more productive to build up the infrastructure in the first place. As stated earlier, the CMS added a layer of code that had to (at times) be conformed to, for example, you had to write CMS modules in a certain way in order for the CMS framework to recognize them). My asp.net website outperforms the CMS based one by a large degree also, it is blazingly fast compared to the CMS.
Now, on to the book. I have read many of the latest asp.net 4 books that have recently been released to print. One fairly unique feature about this book is it has code samples in both C# and VB.NET. Lately, most books I have read focus on the C# programming language. I still believe that C# is the language I would start with if I was just starting out, but I also feel that programming languages are not meant to be memorized verbatim. It's much more important to get a solid understanding of how computer programming works and the various programming methodologies and concepts that are out there in the world. It's a common misconception to people starting out with computer programming that it's something that you memorize and once you memorize the syntax, you stay with that language. Not at all, programming is the art and science of telling a computer what you want it to do, a programmer should be able to pick up any language and within a few hours or days be able to build useful applications or games etc. with it. This is what makes programming exciting, you are telling your humble servant (the computer) to do whatever you want it to do!
The book has good content on pretty much any concept about asp.net that you could ask for. While there are few real changes in asp.net 4.0,it does seem to perform faster (as opposed to earlier versions), the book does a thorough job of covering asp.net as a whole entity, I find it to be very thorough and it covers most any topic you can think of related to ASP.NET programming. While it does not cover too much the usage of Visual Studio 2010 (the preferred development IDE for .net framework 4.0), it does have a useful Appendix "B", which outlines some tools that can be used in conjunction with Visual Studio, I found this chapter to be pretty unique and useful, because it has tools I never heard of that I will be sure to play around with and add to my arsenal.
Topics I found to be especially useful include Chapter 16, Portal Frameworks and Web Parts (since I am involved in writing a CMS system) and Chapter 31, WCF (windows communication foundation), without WCF you aren't able to easily integrate Silverlight applications into your application domain. This book seems to deal with Silverlight 3, which is pretty surprising because Silverlight 4 was released in conjunction pretty much with .net framework 4.0.
One chapter in particular (Appendix D) covered "dynamic language runtime" which I don't recall having read much about in other books or websites, it was very interesting this chapter, I recommend reading up on it.
I recommend studying up on Master Pages, LINQ, Security, Entity Framework, Working with Services and the provider models (Membership/Profile/Roles) because they are typically areas of asp.net where you get a lot of useful infrastructure critical to any halfway complex asp.net website.
I downloaded the code samples and found them to be useful and able to showcase the relevant topics effectively.
How does this book stack up to other asp.net books I have read? I believe it fits in very well, you can't go wrong with this book, the content is not really geared to the beginner, I would consider it intermediate to advanced definitely.
A minor criticism of this book is its typeface, it is smaller than many other books I have read, but it's probably because of the sheer volume of content (about 1500) pages of jam-packed useful content all about the topic of ASP.NET.
Conclusion: This has a lot of useful content, the authors spent a considerable amount of effort on this book and it ranks near the top of the asp.net programming technical books I have read. I would definitely recommend this book to those who are thinking about purchasing it.