Social networking has become a driving force on the Internet. Many people are
part of at least one social network, while more often people are members of many
different communities. For this reason many business people are trying to capitalize
on this movement and are in a rush to put up their own social network. As the
growth of social networks continues, we have started to see more and more niche
communities popping up all over in favor of the larger, all-encompassing networks
in an attempt to capture a sliver of the market .
In this book, we will discuss the many aspects and features of what makes up the
majority of today's social networks or online communities. Not only will we discuss
the features, their purpose, and how to go about building them, but we will also take
a look at the construction of these features from a large scale enterprise perspective .
The goal is to discuss the creation of a community in a scalable fashion
What this book covers
Chapter 1, Social Networking gives you an overall structure of this book, that is, what a
reader can expect from this book .
Chapter 2, An Enterprise Approach to our Community Framework helps you create an
enterprise framework to handle the needs of most web applications. It discusses
design patterns, best practices, and certain tools to make things easier. It also covers
error handling and logging .
Chapter 3, User Accounts covers registration and account creation process by means
of an email verification system and a permission system to ensure security. It also
touches upon password encryption/decryption techniques .
Chapter 4, User Profiles covers the creation of a user's profile and an avatar in a
manner that is flexible enough for all systems to use. In this chapter, we also
implement some form of privacy to allow users to hide parts of their profile that they
don't want to share with others .
Chapter 5, Friends shows you how to implement friends, how to search for them, find
them in the site's listings, and import your contacts into the site to find your friends .
Chapter 6, Messaging helps you create a messaging system that will resemble a web-based email application similar to Hotmail or Gmail. We will also learn how to
implement the Xinha WYSIWYG editor in a way that can be re-used easily across the
site for complex inputs .
Chapter 7, Media Galleries covers details on how to build a generic media management
system that will allow you to host video, photos, resumes, or any number of physical
files with minimal tweaking. It also addresses the issue of
multi-file uploads via RIA technologies like Flash and Silverlight .
Chapter 8, Blogs is all about Blogging. With search engines, users, and security in
mind, we invest a part of this chapter to address an issue that plagues many dynamic
websites—query string data being used to determine page output .
Chapter 9, Forums discusses the creation of the core features of a discussion
forum—categories, forums, threads, and posts. Along with these features, the
chapter also extends the friendly URLs concept to make our content more suitable
for search engine optimization .
Chapter 10, Groups covers the concept of Groups. It focuses on how groups can be
used to bring many different systems together in a way to start creation of sub-communities .
Chapter 11, User Interactivity helps us build controls to allow our users to express
their opinions about various content areas of our site—tagging, rating, commenting ,
voting and mark as answer. It also discusses how these in turn allow users to earn
medals and hence reputation on the site .
Chapter 12, Moderation focuses on Moderation, that is, the means to manage
community provided content using a very simple flagging tool. It also covers
methods such as Gagging to deal with habitual rule breakers. It also takes a look at
how to filter specific words from content on the site .
Chapter 13, Scaling discusses some concepts to help you support a large number of
users on your social network. It starts by looking at some key concepts of tiered
architecture and web farming. It also discusses ways to create and search indexed
data, methods to optimize data retrieval and content creation, and some mail
queuing concepts .
Appendix covers a discussion on the Microsoft ASP.NET MVP and MVC patterns and
explains why we continued to use the MVP pattern for this book .