For All Following different types of Logic, AS will just involve the High Level Calling Logic or Delegating Logic. It does not involve Low Level Details. Low Level Details should not creep into the AS Class. Low Level Details should be dumped inside their own Projects and Classes. Low Levels Details will be remain in their respective Low Level projects and Classes. AS will interact with these Details Projects by keeping Interface in between
Persistence Logic or Data Save Logic
Data Fetch Logic or Query DB Logic
Persistence & Domain Logic
Interfacing with External Systems
Interfacing with OS Services
CCCs Application Logic
1. Persistence Logic or Data Save Logic or Command DB Logic == Defined in Data Project as Custom Repository or Generic Repository. Data is Validated by the Form Validation, and we just want to save data without executing any Domain Logic.
2 Data Fetch Logic or Query DB Logic ==> Defined in Data Project as Custom Repository or Generic Repository. We just want to fetch data.
3. Persistence + Domain Logic ==> Defined in the Data Project
This the case of 1. when Domain is involved. Only form validation is not enough to validate the data. in-memory server side validation is to be done before saving the data. Defined in Data Project as Custom Repository. THERE ARE HIGH CHANCES, THAT THIS LOGIC MIGHT LEAK AND GO INTO THE COMMAND APPLICATION SERVICES.
4. Interfacing with External Systems == Own Separate Project
5. Interfacing with OS Services ==> Own Separate Project
6. CCCs Application Logic that is related to different CCCs of the application like Security, Logging, Exception Handling, Audit Trails, == Separate CCCs Project
Persistence Logic or Data Save Logic
Data Fetch Logic or Query DB Logic
Persistence & Domain Logic
Interfacing with External Systems
Interfacing with OS Services
CCCs Application Logic
1. Persistence Logic or Data Save Logic or Command DB Logic == Defined in Data Project as Custom Repository or Generic Repository. Data is Validated by the Form Validation, and we just want to save data without executing any Domain Logic.
2 Data Fetch Logic or Query DB Logic ==> Defined in Data Project as Custom Repository or Generic Repository. We just want to fetch data.
3. Persistence + Domain Logic ==> Defined in the Data Project
This the case of 1. when Domain is involved. Only form validation is not enough to validate the data. in-memory server side validation is to be done before saving the data. Defined in Data Project as Custom Repository. THERE ARE HIGH CHANCES, THAT THIS LOGIC MIGHT LEAK AND GO INTO THE COMMAND APPLICATION SERVICES.
4. Interfacing with External Systems == Own Separate Project
5. Interfacing with OS Services ==> Own Separate Project
6. CCCs Application Logic that is related to different CCCs of the application like Security, Logging, Exception Handling, Audit Trails, == Separate CCCs Project
No comments:
Post a Comment