Approaching to domain driven development

13
Approaching to Domain-Driven Development An introduction to DDD and Frameworks

description

A draft introduction on DDD and Apworks framework.

Transcript of Approaching to domain driven development

Page 1: Approaching to domain driven development

Approaching to Domain-Driven Development

An introduction to DDD and Frameworks

Page 2: Approaching to domain driven development

AgendaOverviewDDD Basis (UL, Entity, AR, VO, Services,

Repositories, Factories)DDD Advanced (Techniques, Anticorruption)Domain Model ExamplesDDD Architecture Styles (Layered, CQRS)Frameworks (NCQRS, Apworks)Apworks DemonstrationReferences

Page 3: Approaching to domain driven development

OverviewDDD is an approach to develop software for

complex needsPlacing the primary focus on the core domain

& its logicBasing complex designs on a modelInitiating a creative collaboration between

technical and domain experts on the heart of the problem

Not a technology or a methodologyMore than Model-Driven Architecture

Page 4: Approaching to domain driven development

DDD BasisUbiquitous Language

More like a Domain Specific Language (DSL)Unified Modeling Language (UML)

Bounded ContextContext MapBuilding Blocks of DDD

EntityValue ObjectAggregate and its rootsDomain ServiceRepositorySpecificationFactory

Page 5: Approaching to domain driven development

DDD AdvancedTechnical concepts supporting DDD

Plain Old CLR Objects (POCO)Inversion of Control/Dependency Injection

(IoC/DI)Aspect-Oriented Programming (AOP)Domain Specific LanguagesEvent Driven Architecture (CQRS Architectural

Pattern)Anticorruption Layer

Page 6: Approaching to domain driven development

Domain Model Examples (Flight)

Page 7: Approaching to domain driven development

Domain Model Examples (Sales)

Page 8: Approaching to domain driven development

DDD Architectural StylesLayered Architecture

Page 9: Approaching to domain driven development

DDD Architectural StylesCommand-Query Responsibility Segregation

(CQRS)

Page 10: Approaching to domain driven development

FrameworksNCQRS (.NET)Axon Framework (Java)Jdon Framework (Java)Apworks (.NET)

Supports both Layered and CQRS architecture application development

Visual Studio 2010/2012 Project Templates supported

Flexible configured, any 3rd party components from different vendors are supported to use for any purpose

Page 11: Approaching to domain driven development

Apworks DemonstrationCreating Layered Applications with VS

Project TemplatesCQRS demonstration

Page 12: Approaching to domain driven development

ReferencesDomain-Driven Design:

http://www.domaindrivendesign.orgMicrosoft NlayerApp:

http://microsoftnlayerapp.codeplex.comCQRS:

http://martinfowler.com/bliki/CQRS.htmlNCQRS Framework: http://ncqrs.orgAxon Framework:

http://www.axonframework.orgJdon Framework: http://jdon.comApworks Framework:

http://apworks.codeplex.com

Page 13: Approaching to domain driven development

Thank You