Epic
dominant domains
Overview
Roadmap
Blog
Documentation
Download
License
Bards
Dominant Domains
Giacomo
Tesio
Table of Contents
Nothing but business
A dependency inversion
What is Epic?
More than theories
All that glitters ain’t gold!
Target audience
The structure of this manual
I. Toward a shared modeling grammar
1. Plain old CLR objects
Fix the gap
Nothing but business (again)
Contracts matter
Typed explicitness
2. Bounded Roles
Know your users
Binding roles to contexts
Complexity partition
A junction point
3. Shared Identifiers
You can share what you have
Avoid naming conventions
Cheap placeholders
Decoupling entities
Decoupling contexts
Coding conventions
4. Command - Query separation
A simple convention
What about factory methods?
Idempotence
5. Observable Entities
Who, where, when, what…
…and why
Domain events
Did you feel that earthquake?!
6. SOLID Principles
Single Responsibility
Open-Closed
Liskov Substitution
Interface Segregation
Dependency Inversion
7. Repositories
Generic repositories
Custom repositories
Enter Linq
Commands as implementation details
Explicit, explicit, explicit
8. Single Mutable State
Intent
Motivation
Applicability
Structure
Participants
Collaboration
Consequences
Implementation
Sample Code
Related Patterns
II. The bellis perennis
9. Epic.Prelude
Interpreting values
Specifying qualities
10. Epic.Core
The company, first
The environment
The corporate organization
Yet another working day!
11. Epic.Query
12. Epic.Query.Object
13. Epic.Query.Linq