Domain subject
We have companies which are employers
We have persons who are employees
Requirements
-
White list:
We know exactly all business logic of creating companies, fetching companies and getting companies details -
Gray list:
But we don't know anything about the business logic of getting employees from the particular company.
Imagine that this is a part of knowledge of some legacy system or in general words external resource.
We want to build modern up-to date application which allows to implement our well-known business and let perform bad-known logic in the old system.
Old system parts will be reimplemented in the further steps.
But at present moment of time we are going to use them as external resources.
This repository contains the answer on this question.
It includes source code for the architecture concept of IDesign method.
The services and the applications that host them are explained in further detail here.
Some useful debug tools can be found here
White list. Our own applications that allow to perform explicitly work with our own sources:
- Application API
Just provides a simple methods of CRUD operations on the company or person
Gray list. Two externals stand-alone web applications:
-
Application Red
Just provides a simple method of getting all employees in the company from some external resource -
Application Yellow
Just provides a simple method of creating new company of some external resource
- Web application
Simple web application that allows to use our IDesign pattern concept.
For the user it looks like he acts with only one source
Managers are being devided by Domain Subject:
Mainly these accessors allow to perform actions on our own resources or externals
- Accessors are being devided by our knowledges of how many sources we have:
Here we know that:
- Red and Yellow are externals and we use HttpClient to reach out remote hosts.
- Our own resource works directly with our own database (SQL)
- Dal
Provides low access to the SQL database and is being used by our own resource accessors
Just run tye run
and that's it=)