ASP.NET 3.5 Social Networking. An expert guide to building enterprise-ready social networking and community applications with ASP.NET 3.5 - Helion
ebook
Autor: Andrew SiemerTytuł oryginału: ASP.NET 3.5 Social Networking. An expert guide to building enterprise-ready social networking and community applications with ASP.NET 3.5
ISBN: 9781847194794
stron: 580, Format: ebook
Data wydania: 2008-12-11
Księgarnia: Helion
Cena książki: 159,00 zł
Osoby które kupowały "ASP.NET 3.5 Social Networking. An expert guide to building enterprise-ready social networking and community applications with ASP.NET 3.5", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Scrum. O zwinnym zarządzaniu projektami. Wydanie II rozszerzone 58,64 zł, (12,90 zł -78%)
- Od hierarchii do turkusu, czyli jak zarządzać w XXI wieku 58,64 zł, (12,90 zł -78%)
Spis treści
ASP.NET 3.5 Social Networking. An expert guide to building enterprise-ready social networking and community applications with ASP.NET 3.5 eBook -- spis treści
- ASP.NET 3.5 Social Networking
- Table of Contents
- ASP.NET 3.5 Social Networking
- Credits
- About the Author
- About the Reviewer
- Preface
- What This Book Covers
- What You Need for This Book
- Who is This Book For
- Conventions
- Reader Feedback
- Customer Support
- Downloading the Example Code for the Book
- Errata
- Piracy
- Questions
- 1. Social Networking
- What makes this topic so important
- Large communities
- Niche communities
- Once I have my own social network, then what?
- Customer service
- Content moderation
- Growing infrastructure requirements
- Our social networkFisharoo
- This books approach
- Problem
- Design
- Solution
- Features of our social network
- Accounts
- Profiles
- Friends
- Messaging
- Media galleries
- Blogging
- Message boards
- Groups
- Comments
- Tags
- Ratings
- Framework
- Scaling up
- Summary
- What makes this topic so important
- 2. An Enterprise Approach to our Community Framework
- A layered architecture versus a non-layered architecture
- Layers
- Domain-driven Design
- Ubiquitous language
- Entities
- Value objects
- Services
- Modules
- Aggregates
- Factories
- Repositories
- Model View Presenter pattern
- Model
- View
- Presenter
- How it works
- Factory pattern using StructureMap
- Repository pattern and LINQ
- Wrappers for everything!
- Configuration
- Cache
- Session
- Redirection
- Error handling and logging
- Error handling
- Logging
- Summary
- A layered architecture versus a non-layered architecture
- 3. User Accounts
- Problem
- Design
- Registration
- Accounts
- Password strength
- Terms and conditions
- CAPTCHA
- Email confirmation and verification
- Security
- Permissions
- Password encryption/decryption
- Logging in
- Password reminder
- Manage account
- Registration
- Solution
- Implementing the database
- The Accounts table
- The Permissions table
- The AccountPermissions table
- The Terms table
- Creating the relationships
- Implementing the data access layer
- Setting up LINQ for the first time
- A DataContext wrapper
- Building repositories
- Selecting accounts
- Saving an account
- Deleting an account
- Adding permissions to an account
- The other repositories
- Permissions repository
- Terms repository
- Implementing the services/application layer
- Extension methods
- Implementing the business/domain layer
- Implementing the presentation layer
- Model view presenter
- View
- Presenter
- Model
- Registration page
- Email verification
- Password recovery
- Edit account
- Implementing security
- SiteMap
- SiteMap wrapper
- All nodes
- Navigation
- Checking access
- Security
- Implementing navigation and security
- Model view presenter
- Implementing the database
- Summary
- 4. User Profiles
- Problem
- Design
- Profile
- Manage profile
- Avatar
- Custom avatars
- Gravatar
- Public profile
- Custom homepage
- Privacy
- News feed
- Profile
- Solution
- Implementing the database
- The Profiles table
- Level of Experience
- The Attributes table
- The Privacy table
- The Alerts table
- Creating the relationships
- Setting up the data access layer
- Building repositories
- Implementing the services/application layer
- ProfileService
- Account service
- Privacy service
- Alert service
- Profile Attribute Service
- Implementing the presentation layer
- Privacy
- Manage privacy
- Manage profile
- Avatar
- Upload avatar
- Image manipulation
- Gravatar
- Public profile
- Custom homepage
- News feed
- Privacy
- Implementing the database
- Summary
- 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 to The Filter
- 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
- Friends Constraints
- FriendInvitations constraints
- StatusUpdates constraints
- Setting Up the Data Access Layer
- Building Repositories
- FriendRepository
- FriendInvitationRepository
- StatusUpdateRepository
- AccountRepository
- Building Repositories
- Implementing the Services/Application Layer
- FriendService
- AlertService
- PrivacyService
- Implementing the Presentation Layer
- Searching for Friends
- SiteMaster
- Search
- Invite Your Friends
- Outlook CSV Importer
- Importing Contacts
- Selecting Contacts
- Confirm Friendship
- Login
- Registration
- Show Friends
- Friends on Profile
- Status Updates
- Searching for Friends
- Implementing the Database
- Summary
- 6. Messaging
- Problem
- Design
- Messages
- Recipients
- Solution
- Implementing the database
- Messages
- MessageTypes
- MessageRecipients
- MessageRecipientTypes
- MessageStatusTypes
- MessageFolders
- Creating the relationships
- Messages
- Setting up the data access layer
- Building repositories
- MessageRepository
- MessageRecipientRepository
- Building repositories
- Implementing the services/application layer
- MessageService
- AlertService
- FriendService
- Implementing the presentation layer
- New message
- Friends control
- Default (or Inbox)
- Folders
- Read message
- New message
- Implementing the database
- Summary
- 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
- FileRepository
- FolderRepository
- Building repositories
- Implementing the services/application layer
- FolderService
- Implementing the presentation layer
- File upload
- Receiving files
- Testing our receiver
- Multi-file upload
- Photo albums
- MyPhotos
- ViewAlbum
- File upload
- Implementing the database
- Summary
- 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 blog posts
- Fancy URL support
- View post
- Create or edit post
- Implementing the database
- Summary
- 9. Message Boards
- 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
- BoardCategoryRepository
- BoardForumRepository
- BoardPostRepository
- Building Repositories
- Implementing the Services/Application layer
- BoardService
- AlertService
- Implementing the Presentation Layer
- Default.aspx
- Redirector
- UrlRewrite
- ViewForum.aspx
- ViewPost.aspx
- Post.aspx
- Implementing the Database
- Summary
- 10. Groups
- Problem
- Design
- Groups
- GroupMembers
- GroupTypes
- GroupForums
- Schema
- Solution
- Implementing the database
- Groups
- GroupMembers
- GroupTypes
- GroupForums
- Creating the relationships
- Setting up the data access layer
- Building repositories
- GroupRepository
- GetGroupByForumID
- IsOwner
- CheckIfGroupPageNameExists
- DeleteGroup
- GroupToGroupTypeRepository
- SaveGroupTypesForGroup
- GroupForumRepository
- GroupMemberRepository
- GetMemberAccountIDsByGroupID
- DeleteGroupMembers
- GroupTypeRepository
- AccountRepository
- GetApprovedAccountsByGroupID
- GetAccountsToApproveByGroupID
- Implementing the services/application layer
- GroupService
- IsOwnerOrAdministrator
- SaveGroup
- AlertService
- Redirector
- WebContext
- GroupService
- Implementing the presentation layer
- ManageGroup
- WYSIWYG
- Image upload
- Members
- Data pagination
- CheckBoxLists without the CheckBoxList control
- Default
- UrlRewrite
- ViewGroup
- Private/Public
- MyGroups
- Forum enhancements
- ManageGroup
- Implementing the database
- Summary
- 11. Comments, Tags, and Ratings
- Problem
- Ratings
- Tagging
- Commenting
- Design
- Ratings
- Tags
- Comments
- Solution
- Implementing the database
- SystemObjects
- Ratings
- System object rating options
- Tags
- System object tags
- Comments
- Creating the relationships
- Setting up the data access layer
- Building repositories
- RatingRepository
- HasRatedBefore()
- GetCurrentRating()
- SaveRatings()
- SystemObjectRatingOptionRepository
- TagRepository
- GetTagByName()
- GetTagByID()
- GetTagsGlobal()
- GetTagsBySystemObject()
- GetTagsBySystemObjectAndRecordID()
- SystemObjectTagRepository
- GetSystemObjectByTagID()
- CommentRepository
- GetCommentsBySystemObject()
- Implementing the services/application layer
- TagService
- AddTag()
- CalculateFontSize()
- Extensions
- ShuffleList()
- WebContext
- SelectedRatings
- ClearSelectedRatings
- TagID
- Configuration
- TagService
- Implementing the presentation layer
- Comments Page
- Comments.ascx
- Comments.ascx.cs
- CommentsPresenter.cs
- Ratings Page
- Ratings.ascx
- Ratings.ascx.cs
- RatingsPresenter.cs
- Tags Page
- Tags.ascx
- Tags.ascx.cs
- TagsPresenter.cs
- Installing the new user controls
- UrlRewrite.cs
- Tags page
- Tags.aspx
- Tags.aspx.cs
- TagsPresenter.cs
- Comments Page
- Implementing the database
- Summary
- Problem
- 12. Moderation
- Problem
- Community moderation
- Gagging users
- Dynamic filter
- Cross-site scripting (XSS)
- Design
- Moderation
- Gags
- Filtering
- Solution
- Implementing the database
- Moderations
- Gags
- ContentFilters
- Creating the relationships
- Setting up the data access layer
- Building repositories
- ModerationRepository
- GetModerationsGlobal()
- GagRepository
- ContentFilterRepository
- ModerationRepository
- Building repositories
- Implementing the services/application layer
- ContentFilterService
- Extensions
- Implementing the presentation layer
- Moderation
- The user control
- Moderating flagged content
- Gagging
- Filtering
- Moderation
- Implementing the database
- Summary
- Problem
- 13. Scaling Up
- Problem
- Design
- Database optimization
- Flagged for delete
- Indexing
- Partitioning
- Web farming
- Caching
- Searching
- Database optimization
- Solution
- Database optimization
- Indexing
- Partitioning
- FileGroups
- Partition function
- Partition scheme
- Partition tables
- How does this affect our current system?
- Gotchas
- Web farming
- Caching
- The server
- The client
- Using the client
- Starting the cache layer
- Where do I start?
- Searching
- Getting Lucene.NET
- Building indexes
- Building the search
- Email
- Creating services to send email
- The database
- Services
- Serializing email
- Connecting the new DBMailQueueService
- The queue
- Processing the queue
- Database optimization
- Summary
- Index