Fork me on GitHubEpicdominant domains
APIEpic

Epic
The Epic namespace contains fundamental concepts that all Domain Driven applications built with the Epic's modeling patterns in mind will require.

Epic.Prelude defines here IVisitable interface and the composite visitor pattern. Epic.Core defines the Enterprise entry point to the domain model.
Declaration Syntax
C#
namespace Epic
Types
All TypesClassesInterfaces
TypeDescription
CompositeVisitor<(Of <(<'TResult>)>)>
Visitors' composition. It uses composition to handle the visit of any type of expression tree.
CompositeVisitorBase<(Of <(<'TResult, TExpression>)>)>
Visitors' composition base class. This class must be derived from concrete compositions.
Enterprise
Enterprise entry point. It MUST be initialized once.
EnterpriseBase
Enterprise base class, to be injected in Enterprise during initialization.
EpicException
Base ancestor for all the infrastructural exceptions in the Epic's ecosystem.
IEnvironment
Environment of the running enterprise. It will provide informations useful for the enterprise, but not belonging to the domain. Obviously, no domain class should depend on either the environment or the tools it provide: the domain model have to be coded, not configured.
InstanceName<(Of <(<'TObject>)>)>
Name to identify any instance of a given type (when the type has no identity by itself, like an int, a logger or a db connection). It could be used as a key on a Hashtable.
IOrganization
Model of the organization. It is the domain model entry point.
IRepository<(Of <(<'TEntity, TIdentity>)>)>
Common interface of repositories.
IVisitable
Visitable objects.
IVisitContext
Context of a visit.
IVisitor<(Of <(<'TResult>)>)>
Visitor producing a TResult.
IVisitor<(Of <(<'TResult, TExpression>)>)>
Visitor that knows how to visit a TExpression.
IWorkingSession
A user working session. It can be created or disposed by IOrganization
NonExhaustiveVisitorException
Exception thrown when a visitor composition is can not visit an expression that it's intended to visit.
NonExhaustiveVisitorException<(Of <(<'TExpression>)>)>
Exception thrown when a visitor composition can not handle an expression that it is intended to visit.
ObserverBase<(Of <(<'TEntity>)>)>
Base class for entities' observers.
UnvisitableExtensions
Defines a set of extension methods that make some common type hierarchies suitable for visit by a IVisitor<(Of <(<'TResult>)>)>.
VisitableBase
Base class for visitable expressions.
VisitContext
Visit context.
CompositeVisitor<(Of <(<'TResult>)>)>..::..VisitorBase
Base class for composable visitors.
blog comments powered by Disqus