Tuesday, December 25, 2018

Layers Names and Componets Names inside Layers

Component Types Included
Projects Reference Included
Responsibilities

ApplicationName.Web/Admin/Management/Maintainance/CustomerFacing 
(For Small Apps)
BoudedContextName.Web/Admin/Management/Maintainance/CustomerFacing
(For Large EA)

Component Types Included
DI/IOC Container Added
View, Controller, Web API Controller,
Controller Contains Application Services if Use Case or BC is Complex or Domain Intensive
Controller Contains Entity/Generic/Composite Repository if the Use Case or BC is CRUD oriented

Projects Reference Included
Domain/Core

Responsibilities:



ApplicationName.Web/Admin/Management/Maintainance/CustomerFacing.ViewModels 
(For Small Apps)
BoudedContextName.Web/Admin/Management/Maintainance/CustomerFacing.ViewModels
(For Large EA)

Component Types Included
ViewModels with annotations for the View
DI/IOC Container Added

Projects Reference Included

Responsibilities:




ApplicationName.Services (For Small Apps)
BCName.Services (For Large EA)

Component Types Included
DataMappers ???,

Projects Reference Included

Responsibilities




ApplicationName.Domain/Core(For Small Apps)
BC.Domain/Core (For Large EA)

Component Types Included
All Model Classes, IEntityRepositoryWrapper Interface, ViewModels, 
Both Repository Interface and the ViewModels returned by the Custom Repository are defined in the Domain/Core class.


Projects Reference Included
Does not need any Project Reference

Responsibilities




ApplicationName.Data/Infrastructure(For Small Apps)
BC.Data/Infrastructure (For Large EA)

Component Types Included
DBContext, EntityRepositoryWrapper Class, GraphRepClass, NonGraphRepoClass, Read/QueryOpsClass, Write/CommandOpsClass, 

Projects Reference Included
Include Domain/Core Reference 

Responsibilities

ApplicationName.SharedKernel/Common (For Small Apps)
BC.SharedKernel/Common (For Large EA)

Component Types Included

Projects Reference Included

Responsibilities
SharedKernel Contains Common Interfaces used throughout the project. Shared Kernel contains IEntity.cs that is implemented by all entities in the Domain project

ApplicationName.SharedKernel/Common.Data (For Small Apps)
BC.SharedKernel/Common.Data (For Large EA)

Component Types Included

Projects Reference Included

Responsibilities
SharedKernel.Data contains Generic Repository, Common Classes for Data Project. ApplicationName.Data Contains User Defined Repository Classes Wrappers and Custom Classes I thinks. Utility Class added to the ShareKernel.Data Project, Resuable Logic with in GR, with in same project. SharedKernel.Data will reference the SharedKernel project, because GR will implement that interface




ApplicationName.Tests.Services 

ApplicationName.Tests.Domain  

ApplicationName.Tests.Data  

ApplicationName.Tests.SharedKernel  



No comments:

Post a Comment