ASP.NET 4 Social Networking


ASP.NET 4 Social Networking
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
$25.49
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
$49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Create a full-featured, enterprise-grade social network using ASP.NET 4.0
  • Learn key new ASP.NET and .NET Framework concepts like Managed Extensibility Framework (MEF), Entity Framework 4.0, LINQ, AJAX, C# 4.0, ASP.NET Routing,n-tier architectures, and MVP in a practical, hands-on way.
  • Build friends lists, messaging systems, user profiles, blogs, forums, groups, and more
  • A practical guide full of step by step explanations, interesting examples, and practical advice

Book Details

Language : English
Paperback : 484 pages [ 235mm x 191mm ]
Release Date : March 2011
ISBN : 1849690820
ISBN 13 : 9781849690829
Author(s) : Atul Gupta, Sudhanshu Hate, Andrew Siemer
Topics and Technologies : All Books, Web Development, .NET

Table of Contents

Preface
Chapter 1: Social Networking
Chapter 2: An Enterprise Approach to our Community Framework
Chapter 3: User Accounts
Chapter 4: User Profiles
Chapter 5: Friends
Chapter 6: Messaging
Chapter 7: Media Galleries
Chapter 8: Blogs
Chapter 9: Forums
Chapter 10: Groups
Chapter 11: User Interactivity
Chapter 12: Moderation
Chapter 13: Scaling
Appendix: Comparing ASP.NET MVP with ASP.NET MVC
Index
  • Chapter 1: Social Networking
    • What makes this topic so important
      • Communities Galore
    • Once I have my own social network, then what?
      • Customer service
      • Content moderation
      • Growing infrastructure requirements
      • POST and SLATES
    • Our social network—Fisharoo
    • This book's approach
      • Problem
      • Design
      • Solution
    • Features of our social network
      • Accounts
      • Profiles
      • Friends
      • Messaging
      • Media galleries
      • Blogging
      • Forums
      • Groups
      • Comments
      • Tags
      • Ratings
      • Mark as Answer
      • Voting
      • Medals
      • Framework
      • Scaling up
    • Summary
    • Chapter 2: An Enterprise Approach to our Community Framework
      • Application design
        • Key principles
        • Layered architecture
          • Layers
        • Tiered architecture
      • Domain-driven Design
        • Important aspects
          • Ubiquitous language
          • Entities
          • Value objects
          • Services
          • Modules
          • Aggregates
          • Factories
          • Repositories
      • Entity Framework
      • Repository pattern and Entity Framework
      • Building Extensibility using Managed Extensibility Framework (MEF)
      • Model View Presenter pattern
        • Model
        • View
        • Presenter
        • How it works
      • Creating the .NET Solution
        • Presentation layer
        • Components layer
          • Configuration
          • Cache
          • Session
          • Redirection
          • Email
          • Error handling and logging
        • Data Access layer
      • Summary
      • Chapter 3: User Accounts
        • Problem
        • Design
          • Registration
            • Accounts
            • Password strength
            • Terms and conditions
            • reCAPTCHA
            • Email confirmation and verification
          • Security
            • Permissions
            • Password encryption/decryption
          • Logging in
            • Password reminder
            • Manage account
        • Solution
          • Implementing the database
            • The Accounts table
            • The Permissions table
            • The AccountPermissions table
            • The Terms table
            • Creating the relationships
          • Implementing the data access layer
            • Update Model from Database
            • A Data Context wrapper
            • Building repositories
            • The other repositories
          • Implementing the application layer
            • Extension methods
          • Implementing the domain layer
          • Implementing the presentation layer
            • Model view presenter
            • Registration page
            • Email verification
            • Password recovery
            • Edit account
            • Implementing security
        • Summary
        • Chapter 4: User Profiles
          • Problem
          • Design
            • Profile
              • Manage profile
            • Avatar
              • Custom avatars
              • Gravatar
            • Public profile
              • Custom homepage
            • Privacy
            • News feed
          • Solution
            • Revisiting the Solution Structure
          • Implementing the database
            • The Profiles table
            • Level of experience
            • The Attributes table
            • The Privacy table
            • The Alerts table
          • Setting up the data access layer
            • Entity classes
            • Building repositories
          • Implementing the services/application layer
            • ProfileService
            • Account service
            • Privacy service
            • Alert service
            • Other services
          • Implementing the presentation layer
            • Privacy
            • Manage profile
            • Avatar
            • Public profile
            • News feed/Alerts
        • Summary
          • Chapter 5: Friends
            • Problem
            • Design
              • Friends
              • Finding friends
                • Searching for a friend
                • Inviting a friend
                • Importing friends from external sources
                • Sending an invitation
                • Adding friend alerts
              • Interacting with your friends
                • Viewing your friends
                • Managing your friends
                • Following your friends
                • Providing status updates to your friends
            • Solution
              • Implementing the database
                • The friends table
                • Friend invitations
                • Status updates
                • Creating the relationships
              • Setting up the data access layer
                • Building repositories
                • FriendService
                • AlertService
                • PrivacyService
              • Implementing the Presentation layer
                • Searching for friends
                • Invite your friends
                • Outlook CSV importer
                • Confirm friendship
                • Show friends
                • Friends on profile
                • Status updates
            • Summary
            • Chapter 6: Messaging
              • Problem
              • Design
                • Messages
                • Recipients
              • Solution
                • Implementing the database
                  • Messages
                  • MessageRecipients
                  • Creating the relationships
                • Setting up the data access layer
                  • Building repositories
                • Implementing the services/application layer
                  • MessageService
                  • Email
                  • AlertService
                  • FriendService
                • Implementing the presentation layer
                  • New message
                  • Default (or Inbox)
                  • Read message
              • Summary
              • Chapter 7: Media Galleries
                • Problem
                  • Design
                  • Files
                  • Folders
                  • File upload
                  • File system management
                  • Data management screens
                • Solution
                  • Implementing the database
                    • Files
                    • File system folders
                    • File types
                    • Folders
                    • Folder types
                    • Account folders
                    • Account files
                    • Folder files
                    • Creating the relationships
                  • Setting up the data access layer
                    • Building repositories
                  • Implementing the services/application layer
                    • FolderService
                  • Implementing the presentation layer
                    • File upload
                    • Photo albums
                • Summary
                • Chapter 8: Blogs
                  • Problem
                  • Design
                    • Blogs
                    • Solution
                    • Implementing the database
                      • Blogs
                      • Creating the relationships
                    • Setting up the data access layer
                    • Building repositories
                    • Implementing the services/application layer
                      • AlertService
                    • Implementing the presentation layer
                      • Latest blog posts
                      • My Blogs
                      • Fancy URL support
                      • View post
                      • Create or edit post
                  • Summary
                  • Chapter 9: Forums
                    • Problem
                    • Design
                    • Categories
                      • Forums
                      • Threads and posts
                      • Friendly URLs
                      • Alerts
                    • Solution
                      • Implementing the database
                        • Categories
                        • Forums
                        • Posts
                        • Creating the relationships
                      • Setting up the data access layer
                        • Building repositories
                      • Implementing the Services/Application layer
                        • BoardService
                        • AlertService
                      • Implementing the Presentation layer
                        • Default.aspx
                        • URL routing
                        • ViewForum.aspx
                        • ViewPost.aspx
                        • Post.aspx
                    • Summary
                    • Chapter 10: Groups
                      • Problem
                      • Design
                        • Groups
                        • GroupMembers
                        • GroupTypes
                        • GroupForums
                      • Solution
                        • Implementing the database
                        • Groups
                          • GroupMembers
                          • GroupTypes
                          • GroupForums
                          • Creating the relationships
                        • Setting up the data access layer
                          • Building repositories
                          • GroupRepository
                          • GroupToGroupTypeRepository
                          • GroupForumRepository
                          • GroupMemberRepository
                          • GroupTypeRepository
                          • AccountRepository
                          • GetAccountsToApproveByGroupID
                        • Implementing the services/application layer
                          • GroupService
                          • AlertService
                          • Redirector
                          • WebContext
                        • Implementing the presentation layer
                          • ManageGroup
                          • Members
                          • Default
                          • URL routing
                          • ViewGroup
                          • MyGroups
                          • Forum enhancements
                      • Summary
                      • Design
                        • Ratings
                        • Tags
                        • Comments
                        • Voting
                        • Medals
                      • Solution
                        • Implementing the database
                          • SystemObjects
                          • Ratings
                          • System object rating options
                          • Tags
                          • System object tags
                          • Comments
                          • Votes and Mark as Answer
                          • Medals
                          • Creating the relationships
                        • Setting up the data access layer
                          • Building repositories
                          • RatingRepository
                          • SystemObjectRatingOptionRepository
                          • TagsRepository
                          • SystemObjectTagRepository
                          • CommentRepository
                          • BoardPost Repository
                        • Implementing the services/application layer
                          • TagService
                          • Extensions
                          • AccountService
                          • WebContext
                          • Configuration
                        • Implementing the presentation layer
                          • Comments Page
                          • Ratings Page
                          • Tags Page
                          • Votes page
                          • MarkAnswer page
                          • Medals page
                          • Installing the new user controls
                          • Tags page
                      • Summary
                        • Chapter 12: Moderation
                          • Problem
                            • Community moderation
                            • Gagging users
                            • Dynamic filter
                            • Design
                            • Moderation
                            • Gags
                            • Filtering
                          • Solution
                            • Implementing the database
                            • Moderations
                              • Gags
                              • ContentFilters
                              • Creating the relationships
                            • Setting up the data access layer
                              • Building repositories
                            • Implementing the services/application layer
                              • ContentFilterService
                            • Implementing the presentation layer
                              • Moderation
                              • Gagging
                              • Filtering
                          • Summary
                          • Chapter 13: Scaling
                            • Problem
                            • Design
                            • Solution
                              • Tiered architecture
                                • Scaling with two-tiered approach
                                • Scaling with multi-tiered approach
                              • Presentation and application tier scaling
                                • Layered architecture validation
                                • Service enabling business logic
                              • Web farming
                              • Caching
                                • Caching—AppFabric solution
                                • Caching—MemCached solution
                                • Configuration
                                • Where do I start?
                              • Email
                                • Creating services to send email
                                • The database
                                • Services
                                • Serializing email
                                • Connecting the new DBMailQueueService
                                • The queue
                                • Processing the queue
                              • Alerts
                              • Database tier scaling
                                • Flagged for delete
                                • Indexing
                                • Partitioning
                                • Gotchas
                              • Searching
                                • Getting Lucene.NET
                                • Building indexes
                                • Building the search
                            • Summary
                            • Appendix: Comparing ASP.NET MVP with ASP.NET MVC
                              • ASP.NET Web Forms
                                • Web presentation patterns
                                  • Page cache
                                  • Page controller
                                  • Model view presenter
                                  • Model view controller
                                  • Front controller
                                  • Intercepting filter
                              • ASP.NET MVC
                              • Choosing between MVP and MVC
                              • Summary

                              Atul Gupta

                              Atul Gupta is Principal Technology Architect at the Microsoft Technology Center, Infosys Technologies Limited. He has over 15 years of experience working on Microsoft technologies. His expertise spans User Interface technologies and he has worked extensively withASP.NET. His current focus is on Windows Presentation Foundation (WPF), Silverlight and other technologies like Surface, Pivot, Windows Touch and rich data visualization. In his career spanning over 15 years, Atul has also worked on COM, DCOM, C, C++ before getting onto .NET in year 2001. He has worked on all .NET version and alongside worked on Server products like Commerce Server and BizTalk Server. He has authored papers and handbooks that are available at Infosys’ Technology Showcase (http://www.infosys.com/microsoft/resour ... wcase.aspx). He also blogs along with other Infosys colleagues at http://blogs.infosys.com/microsoft. His involved in community activities like forums, speaking session as part of Virtual TechDays and other such events got him the Microsoft Most Valuable Professional Award for 6 years in a row.

                              Sudhanshu Hate

                              Sudhanshu Hate is Senior Technology Architect with Microsoft Technology Center (MTC), Infosys Technologies Limited. He has over 12 years of industry experience with last seven years on Microsoft .NET Currently his technology area of interestare .NET 4core framework and server side technologies such as WCF 4, WF 4, Entity Framework 4, WCF Data Services and App Fabric to name a few. Sudhanshu has authored papers that are available at Infosys’ Technology Showcase (http://www.infosys.com/microsoft/resour ... wcase.aspx), presented in external forums such as Microsoft Virtual TechDays, 3rdIndiaSoftware Engineering Conference (ISEC 2010) and blogs at http://blogs.infosys.com/microsoft Prior to this, Sudhanshu led Business Intelligence and Legacy Modernization solution development initiatives, and consulted to fortune 500 customers in EMEA and US across .NET, J2EE, ORACLE and Delphi technologies.

                              Andrew Siemer

                              Andrew Siemer is currently the enterprise architect at OTX Research. He has worked as a software engineer, enterprise architect, trainer, and author since 1998 when he got out of the Army. Andrew has consulted with many companies on the topics of e-commerce, social networking, and business systems. To name a few, he has worked with eUniverse (AllYouCanInk.com), PointVantage (MyInks.com), Callaway Golf (CallawayConnect.com), Guidance Software (GuidanceSoftware.com), and Intermix Media (Grab.com, AmericanIdol.com, FoxSports.com, FlowGo.com). In addition to his daily duties he also offers various classes in .NET, C#, and other web technologies to local students in his area as well as blogging in his *free* time.

                              Sorry, we don't have any reviews for this title yet.

                              Code Downloads

                              Download the code and support files for this book.


                              Submit Errata

                              Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

                              Sample chapters

                              You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                              Frequently bought together

                              ASP.NET 4 Social Networking +    ASP.NET Site Performance Secrets =
                              50% Off
                              the second eBook
                              Price for both: £29.05

                              Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                              What you will learn from this book

                              • Make key decisions about architecture and the tools to use
                              • Build a solid 'community framework' to give your site a strong foundation; the principles explored this framework will apply to any large-scale web application
                              • Create user accounts, set up a permissions system, and handle password encryption
                              • Work with user profiles, and establish 'friend' relationships between different users
                              • Allow users customize their profile and communicate with one another
                              • Work with photos, forums and start tagging, commenting, voting etc.
                              • Understand core concepts of Entity framework and work with it in a layered environment
                              • Understand core concepts of MEF and see how it helps build pluggable components
                              • Moderate the site, ensuring safety, dealing with cross-site scripting (XSS), privacy, and decency
                              • Utilize the Model View Presenter pattern with ASP.NET 4.0 to enable creation of automated test cases
                              • Add an internal search engine using SQL Server and Lucene.NET
                              • Work with appropriate design patters to create a scalable long-lasting enterprise framework

                              In Detail

                              Social Networking is all about developing connections or ties between friends and associates. While people have always networked with one another the Internet has allowed us to network with people all over the world easily. Any interest or cause can support its own social network, where fans and followers can meet, chat, and share their views. But building a social networking site from scratch involves some complex logic, and some serious coding.

                              This book shows how to build a scalable, enterprise-ready social network using ASP.NET. The book uses the latest features of ASP.NET 4.0 and .NET Framework 4.0 to provide a platform that is efficient, easy to maintain, and extensible. Whether you want to build your own social network, are developing a social site for a customer or employer, or just want a practical guide to developing complex ASP.NET applications, this book is ideal for you.

                              The book starts by planning the essential features of your social network, and then building a 'community framework' that will give your site a solid foundation and enable you to add all your social networking features. You can then go on to create user accounts, profile pages, messaging systems, 'friend' relationships between members, photo galleries, blogs, forums, groups, and more. Along the way you will see MEF, Entity Framework, LINQ, AJAX, C# 4.0, ASP.NET Routing,and other features of ASP.NET 4.0 put to practical and interesting uses. There is also integration with other technologies like Silverlight, Flash, XINHA WYSIWYG editor, reCaptcha, Lucene.NET and Cropper and you also look at custom implementation of authentication and profile features for the website.

                              This book will show you how to create a scalable, maintainable social network that can support hundreds of thousands of users, complete with multimedia features.

                              A step by step guide to building enterprise-ready social networking and community applications with ASP.NET 4

                              Approach

                              Each chapter starts by showing the user experience we are going to create in the chapter. It then has a section discussing the major design decisions we face in building these features, and finally presents the 'solution' including the overall architecture and highlighting the most important code elements.

                              The book presents a lot of real-world code, with comprehensive explanation and discussion. The full social network application is available for download from the Packt website, for you to examine, study, and modify.

                              Who this book is for

                              This book is written for ASP.NET and C# developers who want to build an enterprise-grade Social Network, either for their own business purposes or as a contract job for another company.

                              The book assumes you have prior experience of developing web applications using ASP.NET 4.0, C# , SQL Server 2008, and Visual Studio .NET 2010. If you working with earlier versions of any of these, you can still go ahead and use this book as a guide to get you going. The book focuses on topics that will be of interest to existing developers and not on providing step-by-step examples for each detail.

                              Code Download and Errata
                              Packt Anytime, Anywhere
                              Register Books
                              Print Upgrades
                              eBook Downloads
                              Video Support
                              Contact Us
                              Awards Voting Nominations Previous Winners
                              Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                              Resources
                              Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software