SlideShare a Scribd company logo
9
Most read
14
Most read
15
Most read
Implementing DDD with C#
Pascal Laurin
May 2015
@plaurin78
pascal.laurin@outlook.com
www.pascallaurin.com
Microsoft C# MVP
MSDEVMTL user group organizer
Developer & Architect at GSoft
DDD Basics
Overall Architecture
Some Design Patterns to help
Questions
Agenda
Model-Driven Design and the Ubiquitous Language
Entities, Value Objects and Services
Aggregates
Factories
Repositories
Bounded Contexts and Context Map
Anticorruption Layers
Domain Driven Design Basics
Technology should have nothing to do with domain modeling of a
system
Put the domain at the center of the solution
Should use the domain language even in code (at the lowest level:
variable names)
Only one word per concept!
Use ULM if you like but simple diagrams should work too
User stories, use cases, etc.
Model-Driven Design and the Ubiquitous
Language
Order
Order line Product
* 1
Entities have identities
Value Objects don’t have identities (mostly immutable)
Use services only with complex operations requiring multiples
domain entities
Some team use services with anemic entities (better fit for functional
languages?)
Entities, Value Objects and Services
public class Money // Value Object
{
public decimal Amount { get; private set; }
public Currency Currency { get; private set; }
}
public class Product // Entity
{
public int Id { get; private set; }
public string Description { get; private set; }
}
Boundary around objects inside (can't access objects directly, must
go through the Root)
Enforce invariants of the Entities inside
Root Entity has global identity
Internal Entities have local identities
Contains no direct references to other Aggregates, only IDs
Aggregates
public class Product // Aggregate root
{
public int Id { get; private set; }
public int CatalogId { get; private set; }
public Money Price { get; private set; }
public void ChangePrice(Money newPrice)
{
}
}
For creation and initialization of complex objects structures
Respect invariants
Creation as an atomic unit (complete or fail, no partial)
Creates entire Aggregates
Can use simple constructor on Aggregate Root Entity if construction
is simple enough
Factories
public class ProductFactory
{
public Product CreatePhysicalProduct(string name, Weight weight,
Dimensions dimensions)
{
return new Product();
}
public Product CreateDigitalProduct(string name, StorageSize storageSize)
{
return new DigitalProduct();
}
}
Don’t use generic Repository<T>!
Don’t leak DAL concerns in the domain
Most DAL technology today already offer a generic abstraction
Mostly for mocking with unit testing
Repositories
public interface IProductRepository
{
Product LoadProductAggregateById(int id);
void AddNewProduct(Product product);
IEnumerable<Product> QueryProductsByCatalog(string catalogName);
IEnumerable<Product> QueryArchivedProducts(string catalogName);
IEnumerable<Product> QueryDiscountedProducts(string nameFilter,
DateTime? discountExpirationDateFilter, Money maxPriceFilter);
IQueryable<Product> GetById(int id);
IQueryable<Product> GetAll();
}
Split large domains into smaller ones
Especially if two vision of the same domain concept dependent of the
view point
Usually along departments or divisions lines, business units, etc.
Could be still be monolithic apps or separated apps
Bounded Contexts and Context Map
HR
Payroll
Employee
Security
Access
Control
Employee
Don’t pollute your domain with foreign concepts
Abstract external providers, partners, etc.
Translate between two different domains (Bounded Context) using
Adapters
Allow both to evolve independently
Anticorruption Layers
API
Adapter
HR
Payroll
Prep
Employee
Payroll (external)
?
Hexagonal architecture or Port and Adapter
Domain at the center
Demo solution
The overall architecture
Ports are API or contracts in and out of the domain
Adapters translate between Ports and external dependencies
Swap out external dependencies implementation using different
adapters or using mocks
Hexagonal architecture or Port and
Adapter
Domain
UI
API
Data Store
External
Services
Ports
Adapters
Push everything to the sides and concentrate on the middle
For big app components => Hexagonal architecture to split into
smaller chunk
Either monolithic app or micro-services
The Domain at the center of everything
Only testing the Domain
Testing at the Ports entering the Domain
Use mocks or stubs to replace the Adapters
14
Unit Tests
Domain
Unit Test
Mocks or
Stubs
Ports
Adapters
Only testing the Adapters
Testing at the Ports exiting the Domain
Adapters calling real external dependencies
15
Integration Tests
Domain
Integration
Test
Real external
dependencies
Ports
Adapters
Demo Solution
Interfaces and abstractions
Dependency injection
Bootstrapper
MVC, MVVM, MVP (UI)
Command & Query responsibility segregation
Design Patterns (and Architectural
Patterns)
Most useful to mock dependencies
Swap implementations by configuration
Do not overuse!
Interfaces and abstractions
ISomething
Implementation Mock
Inversion of Control
Domain should not depend on DAL, Web Services, IO, etc.
Construction, composition and life cycle of non-domain concerns stay
outside the domain (use Factories for domain objects)
Dependency injection
Presentation
Business
Data
Application startup code
Composition of the application, services and infrastructure code
Load configuration and setup
Should help write integration tests by replacing some external
dependencies in the tests
Bootstrapper
Presentation patterns
Mostly useful when unit testing and reuse if multiple platforms
targeting (mobile)
Model and View always separated
MVC, MVVM, MVP (UI)
View Controller
Model
Web site, web service, API
View ViewModel
Model
Desktop, SPA (data binding)
View Presenter
Model
Desktop (no data binding)
Queries are simple and have no side effect
All changes to entities go through commands
With CommandHandler to execute Command
Could still be using the same data store for both Command and
Query
Command Dispatcher
Command & Query Responsibility
Segregation
Presentation
Read
Repository
Read
DB
Write
Repository
CommandHandler
Write
DB
Controller
or API
Domain
Domain Driven Development improve the quality of the code by
Introducing useful design patterns to structure your application
Knowing where each piece of new code should go
Better communication by using the language of the domain in the team
Clear separation of business and non-business code
24
Conclusion
References
DDD book by Eric Evans
• http://www.amazon.ca/dp/0321125215
DDD Quickly
• http://www.infoq.com/minibooks/domain-driven-design-quickly
SlideShare of the presentation
• http://www.slideshare.net/PascalLaurin
BitBucket for the code
• https://bitbucket.org/pascallaurin/ddd-talk
@plaurin78
pascal.laurin@outlook.com
www.pascallaurin.com
Questions?

More Related Content

What's hot (20)

PDF
Domain driven design and model driven development
Dmitry Geyzersky
 
PDF
Domain Driven Design (Ultra) Distilled
Nicola Costantino
 
PPTX
Domain Driven Design: Zero to Hero
Fabrício Rissetto
 
PPTX
Introduction to DDD
Eduards Sizovs
 
PPTX
Brownfield Domain Driven Design
Nicolò Pignatelli
 
PPT
Domain Driven Design (DDD)
Tom Kocjan
 
PDF
Clean Architecture
Badoo
 
PPTX
Clean Pragmatic Architecture - Avoiding a Monolith
Victor Rentea
 
PPTX
Domain Driven Design Quickly
Mariam Hakobyan
 
PDF
Modelling a complex domain with Domain-Driven Design
Naeem Sarfraz
 
PPTX
A Practical Guide to Domain Driven Design: Presentation Slides
thinkddd
 
PPTX
Applying Domain-Driven Design to craft Rich Domain Models
Alexander van Trijffel
 
PPTX
The Clean Architecture
Dmytro Turskyi
 
PPTX
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
 
PDF
Domain Driven Design
Young-Ho Cho
 
PPSX
Domain Driven Design
Araf Karsh Hamid
 
PPTX
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
 
PPTX
SOLID, DRY, SLAP design principles
Sergey Karpushin
 
PPTX
SOLID Principles
Surendra Shukla
 
PDF
Clean Architecture
Flavius Stef
 
Domain driven design and model driven development
Dmitry Geyzersky
 
Domain Driven Design (Ultra) Distilled
Nicola Costantino
 
Domain Driven Design: Zero to Hero
Fabrício Rissetto
 
Introduction to DDD
Eduards Sizovs
 
Brownfield Domain Driven Design
Nicolò Pignatelli
 
Domain Driven Design (DDD)
Tom Kocjan
 
Clean Architecture
Badoo
 
Clean Pragmatic Architecture - Avoiding a Monolith
Victor Rentea
 
Domain Driven Design Quickly
Mariam Hakobyan
 
Modelling a complex domain with Domain-Driven Design
Naeem Sarfraz
 
A Practical Guide to Domain Driven Design: Presentation Slides
thinkddd
 
Applying Domain-Driven Design to craft Rich Domain Models
Alexander van Trijffel
 
The Clean Architecture
Dmytro Turskyi
 
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
 
Domain Driven Design
Young-Ho Cho
 
Domain Driven Design
Araf Karsh Hamid
 
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
 
SOLID, DRY, SLAP design principles
Sergey Karpushin
 
SOLID Principles
Surendra Shukla
 
Clean Architecture
Flavius Stef
 

Viewers also liked (13)

PDF
Domain-driven design - tactical patterns
Tom Janssens
 
PDF
Domain-Driven Design with ASP.NET MVC
Steven Smith
 
PDF
Beyond design patterns and principles - writing good OO code
Matthias Noback
 
PDF
Go-jek's Go-Food Chatbot
Irwansyah Irwansyah
 
PPTX
Architecture Principles CodeStock
Steve Barbour
 
PPTX
Why Domain-Driven Design and Reactive Programming?
VMware Tanzu
 
PDF
DDD patterns that were not in the book
Cyrille Martraire
 
PDF
Solid principles, Design Patterns, and Domain Driven Design
Irwansyah Irwansyah
 
PDF
Architecting iOS Project
Massimo Oliviero
 
PDF
Domain-Driven Design (Artur Trosin Product Stream)
IT Arena
 
PPTX
Domain Driven Design in the Browser - Cameron Edwards
Hakka Labs
 
PPTX
Automation of functional tests using JMeter Part II (in Polish)
Tieto Corporation
 
PDF
Principles of microservices velocity
Sam Newman
 
Domain-driven design - tactical patterns
Tom Janssens
 
Domain-Driven Design with ASP.NET MVC
Steven Smith
 
Beyond design patterns and principles - writing good OO code
Matthias Noback
 
Go-jek's Go-Food Chatbot
Irwansyah Irwansyah
 
Architecture Principles CodeStock
Steve Barbour
 
Why Domain-Driven Design and Reactive Programming?
VMware Tanzu
 
DDD patterns that were not in the book
Cyrille Martraire
 
Solid principles, Design Patterns, and Domain Driven Design
Irwansyah Irwansyah
 
Architecting iOS Project
Massimo Oliviero
 
Domain-Driven Design (Artur Trosin Product Stream)
IT Arena
 
Domain Driven Design in the Browser - Cameron Edwards
Hakka Labs
 
Automation of functional tests using JMeter Part II (in Polish)
Tieto Corporation
 
Principles of microservices velocity
Sam Newman
 
Ad

Similar to Implementing DDD with C# (20)

PDF
D2 domain driven-design
Arnaud Bouchez
 
PDF
Clean architecture with ddd layering in php
Leonardo Proietti
 
PPTX
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
NETFest
 
PPTX
DDD Intro
fredverheul
 
PPTX
Domain Driven Design
Lalit Kale
 
PDF
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Enea Gabriel
 
PPTX
how_does_ddd_work
Tomaš Maconko
 
PDF
Domain Driven Design
Mojammel Haque
 
PPTX
Up to speed in domain driven design
Rick van der Arend
 
PDF
Domain-Driven Design
Geeks Anonymes
 
PPTX
Domain driven design
Amit Mukherjee
 
PPTX
Building rich domain models with ddd and tdd ivan paulovich - betsson
Ivan Paulovich
 
PPTX
Schibsted Spain - Day 1 - DDD Course
Kevin Mas Ruiz
 
PPTX
Domain Driven Design Primer
Donald Belcham
 
PPTX
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Mizanur Sarker
 
PPTX
Introducing domain driven design - dogfood con 2018
Steven Smith
 
PPTX
Practical domain driven design
Alessandro Bonometti
 
PDF
ddd.pdf
chanhluc2112
 
PDF
Adopting Domain-Driven Design in your organization
Aleix Morgadas
 
PDF
Domaine Driven Design - Bordeaux IO
Publicis Sapient Engineering
 
D2 domain driven-design
Arnaud Bouchez
 
Clean architecture with ddd layering in php
Leonardo Proietti
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
NETFest
 
DDD Intro
fredverheul
 
Domain Driven Design
Lalit Kale
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Enea Gabriel
 
how_does_ddd_work
Tomaš Maconko
 
Domain Driven Design
Mojammel Haque
 
Up to speed in domain driven design
Rick van der Arend
 
Domain-Driven Design
Geeks Anonymes
 
Domain driven design
Amit Mukherjee
 
Building rich domain models with ddd and tdd ivan paulovich - betsson
Ivan Paulovich
 
Schibsted Spain - Day 1 - DDD Course
Kevin Mas Ruiz
 
Domain Driven Design Primer
Donald Belcham
 
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Mizanur Sarker
 
Introducing domain driven design - dogfood con 2018
Steven Smith
 
Practical domain driven design
Alessandro Bonometti
 
ddd.pdf
chanhluc2112
 
Adopting Domain-Driven Design in your organization
Aleix Morgadas
 
Domaine Driven Design - Bordeaux IO
Publicis Sapient Engineering
 
Ad

More from Pascal Laurin (6)

PPTX
Tests automatisés java script
Pascal Laurin
 
PPTX
7 astuces pour améliorer vos tests unitaires
Pascal Laurin
 
PPTX
C# 6
Pascal Laurin
 
PDF
L'amélioration des tests unitaires par le refactoring
Pascal Laurin
 
PPTX
Behaviour Driven Development with SpecFlow
Pascal Laurin
 
PPTX
Cloud design patterns
Pascal Laurin
 
Tests automatisés java script
Pascal Laurin
 
7 astuces pour améliorer vos tests unitaires
Pascal Laurin
 
L'amélioration des tests unitaires par le refactoring
Pascal Laurin
 
Behaviour Driven Development with SpecFlow
Pascal Laurin
 
Cloud design patterns
Pascal Laurin
 

Recently uploaded (20)

PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 

Implementing DDD with C#

  • 1. Implementing DDD with C# Pascal Laurin May 2015 @plaurin78 [email protected] www.pascallaurin.com Microsoft C# MVP MSDEVMTL user group organizer Developer & Architect at GSoft
  • 2. DDD Basics Overall Architecture Some Design Patterns to help Questions Agenda
  • 3. Model-Driven Design and the Ubiquitous Language Entities, Value Objects and Services Aggregates Factories Repositories Bounded Contexts and Context Map Anticorruption Layers Domain Driven Design Basics
  • 4. Technology should have nothing to do with domain modeling of a system Put the domain at the center of the solution Should use the domain language even in code (at the lowest level: variable names) Only one word per concept! Use ULM if you like but simple diagrams should work too User stories, use cases, etc. Model-Driven Design and the Ubiquitous Language Order Order line Product * 1
  • 5. Entities have identities Value Objects don’t have identities (mostly immutable) Use services only with complex operations requiring multiples domain entities Some team use services with anemic entities (better fit for functional languages?) Entities, Value Objects and Services public class Money // Value Object { public decimal Amount { get; private set; } public Currency Currency { get; private set; } } public class Product // Entity { public int Id { get; private set; } public string Description { get; private set; } }
  • 6. Boundary around objects inside (can't access objects directly, must go through the Root) Enforce invariants of the Entities inside Root Entity has global identity Internal Entities have local identities Contains no direct references to other Aggregates, only IDs Aggregates public class Product // Aggregate root { public int Id { get; private set; } public int CatalogId { get; private set; } public Money Price { get; private set; } public void ChangePrice(Money newPrice) { } }
  • 7. For creation and initialization of complex objects structures Respect invariants Creation as an atomic unit (complete or fail, no partial) Creates entire Aggregates Can use simple constructor on Aggregate Root Entity if construction is simple enough Factories public class ProductFactory { public Product CreatePhysicalProduct(string name, Weight weight, Dimensions dimensions) { return new Product(); } public Product CreateDigitalProduct(string name, StorageSize storageSize) { return new DigitalProduct(); } }
  • 8. Don’t use generic Repository<T>! Don’t leak DAL concerns in the domain Most DAL technology today already offer a generic abstraction Mostly for mocking with unit testing Repositories public interface IProductRepository { Product LoadProductAggregateById(int id); void AddNewProduct(Product product); IEnumerable<Product> QueryProductsByCatalog(string catalogName); IEnumerable<Product> QueryArchivedProducts(string catalogName); IEnumerable<Product> QueryDiscountedProducts(string nameFilter, DateTime? discountExpirationDateFilter, Money maxPriceFilter); IQueryable<Product> GetById(int id); IQueryable<Product> GetAll(); }
  • 9. Split large domains into smaller ones Especially if two vision of the same domain concept dependent of the view point Usually along departments or divisions lines, business units, etc. Could be still be monolithic apps or separated apps Bounded Contexts and Context Map HR Payroll Employee Security Access Control Employee
  • 10. Don’t pollute your domain with foreign concepts Abstract external providers, partners, etc. Translate between two different domains (Bounded Context) using Adapters Allow both to evolve independently Anticorruption Layers API Adapter HR Payroll Prep Employee Payroll (external) ?
  • 11. Hexagonal architecture or Port and Adapter Domain at the center Demo solution The overall architecture
  • 12. Ports are API or contracts in and out of the domain Adapters translate between Ports and external dependencies Swap out external dependencies implementation using different adapters or using mocks Hexagonal architecture or Port and Adapter Domain UI API Data Store External Services Ports Adapters
  • 13. Push everything to the sides and concentrate on the middle For big app components => Hexagonal architecture to split into smaller chunk Either monolithic app or micro-services The Domain at the center of everything
  • 14. Only testing the Domain Testing at the Ports entering the Domain Use mocks or stubs to replace the Adapters 14 Unit Tests Domain Unit Test Mocks or Stubs Ports Adapters
  • 15. Only testing the Adapters Testing at the Ports exiting the Domain Adapters calling real external dependencies 15 Integration Tests Domain Integration Test Real external dependencies Ports Adapters
  • 17. Interfaces and abstractions Dependency injection Bootstrapper MVC, MVVM, MVP (UI) Command & Query responsibility segregation Design Patterns (and Architectural Patterns)
  • 18. Most useful to mock dependencies Swap implementations by configuration Do not overuse! Interfaces and abstractions ISomething Implementation Mock
  • 19. Inversion of Control Domain should not depend on DAL, Web Services, IO, etc. Construction, composition and life cycle of non-domain concerns stay outside the domain (use Factories for domain objects) Dependency injection Presentation Business Data
  • 20. Application startup code Composition of the application, services and infrastructure code Load configuration and setup Should help write integration tests by replacing some external dependencies in the tests Bootstrapper
  • 21. Presentation patterns Mostly useful when unit testing and reuse if multiple platforms targeting (mobile) Model and View always separated MVC, MVVM, MVP (UI) View Controller Model Web site, web service, API View ViewModel Model Desktop, SPA (data binding) View Presenter Model Desktop (no data binding)
  • 22. Queries are simple and have no side effect All changes to entities go through commands With CommandHandler to execute Command Could still be using the same data store for both Command and Query Command Dispatcher Command & Query Responsibility Segregation Presentation Read Repository Read DB Write Repository CommandHandler Write DB Controller or API Domain
  • 23. Domain Driven Development improve the quality of the code by Introducing useful design patterns to structure your application Knowing where each piece of new code should go Better communication by using the language of the domain in the team Clear separation of business and non-business code 24 Conclusion
  • 24. References DDD book by Eric Evans • http://www.amazon.ca/dp/0321125215 DDD Quickly • http://www.infoq.com/minibooks/domain-driven-design-quickly SlideShare of the presentation • http://www.slideshare.net/PascalLaurin BitBucket for the code • https://bitbucket.org/pascallaurin/ddd-talk @plaurin78 [email protected] www.pascallaurin.com Questions?

Editor's Notes

  • #17: Show the projects (dependencies if not already done) First level in Business, Data and Presentation are domain concepts First level in Application and Infrastructure are non-domain concepts One test project per type: unit, integration, system, behaviour or functional
  • #21: Graph ou code?