Running the Application
Open a Powershell or Terminal window
Navigate to the c:\work folder
Create a git folder called
git
if it does not already existmkdir git
navigate into the
git
folderClone the application down to your machine from https://github.com/dotnet-architecture/eShopOnWeb.git
Navigate into the repo you have just coned down
If Docker is not running, start it from the Windows start menu
Run docker-compose on the project
docker-compose up
Observe the data being logged into the console window
The application should be reachable at
https://localhost:5001/
. Visit this location for more information. Play around with the application so that you get an appreciation for it’s current behaviour
Reverse Engineering the Codebase
You should still be in the repo you just cloned down, if not navigate into it
Type the command
code .
the full stop is importantLocate the
docker-compose.yml
file, double click to open itExamine the file, you should see that it defines 3 services, make note of them, and how you think they relate to each other
Use the File Explorer from within VSC, and expand the src/ApplicationCore and src/Infrastructure folders. You will have to drill down further on each folder, but you should find there are components in there that match the ideas you learnt in 03 Domain Driven Design
The application uses RPC for its middleware, so you will not find any MOM technology in there
What concepts have been implemented in the code?
Understanding the Data
You will need to set up a data source in the Windows ODBC manager before you can connect the DB Server, see this howto
Once your database connection is set up, examine the data structures that they are using
What stands out about the design?
Event Storming
The activities above will take you 60-90 minutes to conclude.
In your teams with your collective understanding, use event storming to capture the current state of the eShopWeb application.
Presentation
Be prepared to present everything you discovered to your trainer and any SME from within your organisation.