|Written by||Imar Spaanjaars|
Are you looking to hire an experienced software developer or .NET consultant? Then get in touch with me through my company's web site at devierkoeden.com
Found an interesting article on this site? Got inspired by something you read here? Then consider making a donation with PayPal.
Like this article? Or do you think it sucks? Make yourself heard by casting your vote below.Total number of ratings: 27
At first sight, the book ASP.NET 3.5 Social Networking looks very promising. Its title suggests a deep dive into the inner workings of large, community driven network sites built with ASP.NET 3.5. The very first chapter lists and compares a few large community sites like Digg.com, LinkedIn.com, Facebook.com and Twitter.com so I was hoping that the author was going to cover many of the topics that drive these sites, setting me up with high expectations.
The book starts of with an introductionary chapter on communities in general, and some of the common pitfalls you may encounter. It then introduces the Fisharoo social network site - the sample site built and demonstrated over the course of the book. Fisharoo.com is a community site for fans of fish and aquariums and offers many features that other network sites offer as well. The first chapter ends with a short introduction of each of these features, including:
Each of these topics has its own chapter where you'll learn more about the feature itself, how it works, and how it's designed and developed.
Each chapter follows a "Problem Design Solution" route (which should be familiar to many Wrox readers as they have a Problem Design Solution series as well that follows the same structure. Also, if you are a Wrox reader, check out the Preface section and try if you can spot some more familiar things). At the beginning of each chapter you'll learn more about the actual feature and how it is used in the Fisharoo site. The author then spends a good portion of the chapter outlining the design, including database diagrams, LINQ to SQL diagrams and the use of third party tools and frameworks. The largest part of the chapter is spent discussing the actual implementation. You'll see the code for each feature (a lot of that; I'll return to that later), the way different modules can interact and you'll learn how to acquire, install and configure some popular third party tools including:
Using these tools, Andrew shows you how to build a modern, properly layered web application using best practices that should be easy to maintain in the long run. The Fisharoo web application shows the following best practices in n-layered web application design:
Most of the chapters are pretty similar in concept. You see how to build Blogs, a Media gallery, an on-line messaging system and more, all using the Problem Design Solution structure.
Considering the high expectations I was having at the beginning of the book, you may wonder whether the book delivers or not. The answer is yes and no.
Just recently I was (and still am) involved in the design of a very large, internationally oriented community site. This means I have seen the things that Andrew is discussing from a very close range. Seen it, done that, been there - that kind of stuff. Some of the design principles used in the Fisharoo site are applicable directly in the project I am working on. Some were already there, but for some others Andrew inspired me to think differently about the design decisions I have made, causing me to redesign some elements in the near future. Also, the description and demonstration of the many (open source) third party tools used in the sample site will help you rethink your own web strategies and design decisions.
However, I also think the book is really missing some important things:
On top of these two big omissions, the book has a few other issues, the most important one being the code presented in the book. There is way and way and way and way too much code in the book; sometimes up to three or four pages in succession. Not a fun thing to read, so I often found myself quickly flipping through a chapter skipping most of the code (which caused my girlfriend to say that it looked as if I wasn't reading a very interesting or good book). In my opinion, more than half the code could be removed, making the book slimmer and a lot more interesting to read. That would mean the end of code examples with half a page of C# using statements and stuff like the example on page 66 and onwards that shows the code for a Log class. This class contains a gazillion overloads that do nothing more than calling some other internal overload. Rather than copying the code in its entirety, a simple Class Diagram showing the overload signatures together with the code for one or two overloads in detail would have been a much better option.
The code download that comes with the book needs some brushing up as well. The entire solution doesn't compile out of the box and the source folders contain a lot of bloat like personal .suo, cache and other unneeded files making it sometimes difficult to see what's relevant and what's not. However, the clear design and the inclusion of all the third party projects discussed in the book more than make up for this.
Despite these shortcomings, ASP.NET 3.5 Social Networking is still an interesting read. You'll see many good design principles (both the design *and* the actual implementation), see a lot of best practices and you'll learn something about fish tanks along the way ;-)
I would give it a four star rating if I was writing this on a site like Amazon. I'd give it 4.5 stars if there was less code in the book that I easily could have looked up in the (huge) code download that comes with the book.
Wonder where to go next?
You can read existing comments below
or you can post a comment yourself on this article.
Consider making a donation
Please consider making a donation using PayPal. Your donation helps me to pay the bills so I can keep running Imar.Spaanjaars.Com, providing fresh content as often as possible.
I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.
When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.
For more information about the Talk Back feature, check out this news item.
Unfortunately, something went wrong and your message or comments have not been submitted successfully.
There's a fair chance things broke down because you tried to post something that looks like HTML. Things that look HTML include (X)HTML, obviously, XML, ASP.NET markup and c# generics syntax as all of them use the < and > characters.
If that's the case, try altering your message and remove anything that looks like an angled bracket. You can replace them with [ and ] for example so you can still make it look like HTML to some extend.
If, on the other hand, you were trying to spam this web site, I am pretty glad I caught you in the act and stopped you from doing so ;-)
The number you entered is not correct. Please enter the sum of the two numbers again.