Skip to content

Arc Application Architecture Guidance

saiku edited this page Dec 15, 2010 · 6 revisions

Overview

Recommended reading:

Books:

Application Core

Core

Responsibilities:

  • Entities [Evans DDD, 89] and Value objects [Evans DDD, 97], [Fowler PoEAA, 486]
  • Domain Services [Evans DDD, 104]
  • Interfaces of Application Services [Fowler PoEAA, 133], [GoF DP, 185]

Data Contracts

Responsibilities:

  • Data Transfer Object (DTO) [Fowler PoEAA, 401]

Infrastructure

Infrastructure

Responsibilities:

  • Wrapping 3rd party tools

Services

Responsibilities:

  • Implementations of Application Services [Fowler PoEAA, 133], [GoF DP, 185]
  • Implementations of Repositories [Evans DDD, 147], [Fowler PoEAA, 322]

Configuration

Responsibilities:

  • NHibernate mappings
  • Configuration of 3rd party tools

User Interface

Presentation

Responsibilities:

  • Interfaces and implementations of Presenters [Martin APPP, 637]
  • Interfaces of Views [Martin APPP, 637]

Web

Responsibilities:

  • Implementations for views
  • Content (images, css, javascript etc)

Tests

Unit

Integration

External Libraries

  • Arc (Domain, Infrastructure)
  • NHibernate, FluentNHibernate
  • Ninject / StructureMap / Castle Windsor
  • AutoMapper
  • NHibernate Validator / FluentValidation.NET
  • Castle.DynamicProxy2
  • Log4Net