This document discusses patterns for website development including: - Using domain models as pure POCO objects with no behavior that are shared across layers - Having view models that are optimized for views with validation and helper methods - Having controllers call tasks to retrieve data and map between domain and view models - Implementing business logic in tasks that work with domain objects and call repositories - Having repositories that encapsulate data access and transactions for domain aggregates