Fork me on GitHubEpicdominant domains
API

API
The Epic.NET code base consists of many different libraries that can work together in various combination, thanks to carefully designed responsibilities that lead to high cohesion and low coupling.

This is the reference documentation of such libraries (whose objectives has been described in the second part of the manual). There's no convention between DLL's names and namespaces, so that for example you will not find an Epic.Prelude namespace: while each library's name maps its usage pattern, namespaces express the logical organization of the modelled concepts.
Namespaces
NamespaceDescription
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.

Epic.Collections
The Epic.Collections namespace contains useful models of collections for DDD.
It's defined in Epic.Prelude.

Epic.Environment
Epic.Environment contains base implementations of IEnvironment.
It's defined in Epic.Core.

Epic.Events
The Epic.Events namespace contains common use EventArgs for domain models.
It's defined in Epic.Core.

Epic.Extended.Delegates

Epic.Math
The Epic.Math namespace contains common mathematical abstractions such as Mappings, generic groups, abelian groups and rings.
It is defined in Epic.Prelude.

Epic.Organization
The Epic.Organization namespace contains base classes for the organization of the enterprise using the domain model.
It's defined in Epic.Core.

Epic.Query
Epic.Query contains common tools used by all the query models available (Epic.Query.Object and Epic.Query.Linq).
It is defined in Epic.Query.

Epic.Query.Linq
The Epic.Query.Linq contains the interface and the base class of Linq based repositories.
It's defined in Epic.Query.Linq.

Epic.Query.Linq.Expressions.Normalization
The Epic.Query.Linq.Expressions.Normalization namespace contains visitor that "normalize" an ExpressionTree.
It's defined in Epic.Query.Linq.

Epic.Query.Object
The Epic.Query.Object namespace provide a simplified alternative to Linq repositories based on a slightly modified QueryObject pattern. It allows entity lookups by specifications, sorting and slicing, but can be easily extended to produce custom projections and aggregations.
It's defined in Epic.Query.Object.

Epic.Query.Object.Expressions
The Epic.Query.Object.Expressions contains the visitable expressions representing a query.
It is defined in Epic.Query.Object.

Epic.Query.Relational
The Epic.Query.Relational namespaces defines a tree of relational algebra expressions with bag semantics. It's used as an intermediate step from Epic.Query.Linq and Epic.Query.Object to any relational backend (read each specific SQL dialect).
It's defined in Epic.Query.

Epic.Query.Relational.Operations
Epic.Query.Relational.Operations expresses relational operations (and some bag one, like sorting and grouping).
It's defined in Epic.Query.

Epic.Query.Relational.Predicates
Epic.Query.Relational.Predicates express common relational predicates.
It's defined in Epic.Query.

Epic.Specifications
The Epic.Specifications namespace contains a general purpose framework for specifications. It provides a closure of operations over basic logical operators (conjunction, disjunction and negation) with some well designed extensions for handling inhteritance.
It's defined in Epic.Prelude.

Epic.Specifications.Visitors

Epic.Visitors
The Epic.Visitors namespace contains a set of general purpose visitors.
It's defined in Epic.Prelude.

blog comments powered by Disqus