winsw/docs/developer/project-structure.md

46 lines
1.7 KiB
Markdown
Raw Normal View History

2020-03-24 16:00:00 +00:00
# Project structure
2020-05-23 10:40:29 +00:00
2020-03-24 16:00:00 +00:00
:movie_camera: You can find the code dive session recorded video [here](https://youtu.be/_adhRj19ESY).
2020-05-23 10:40:29 +00:00
```
2020-02-03 16:00:00 +00:00
|_ docs
2020-05-23 10:40:29 +00:00
|_ eng
2020-02-03 16:00:00 +00:00
|_ samples
2020-05-23 10:40:29 +00:00
|_ src
|_ Core
| |_ ServiceWrapper
| |_ Main.cs
| |_ WinSWCore
| |_ ServiceDescriptor.cs
| |_ Configurations
| |_ Extensions
|_ Plugins
|_ Test/winswTest
```
2020-02-03 16:00:00 +00:00
## :open_file_folder: samples
2020-05-23 10:40:29 +00:00
2020-02-03 16:00:00 +00:00
This folder contains templates for configuration files. *sample-minimal.xml* contains a template for mandatory configurations and *sample-complete.xml* contains all possible configurations with documentation.
2020-05-23 10:40:29 +00:00
## :open_file_folder: Core
## :notebook: ServiceWrapper
2020-03-24 16:00:00 +00:00
This is the main executable project. This contains the main.cs which is the entry point of the project and contains some features for logging.
2020-05-23 10:40:29 +00:00
### :page_facing_up: Main.cs
2020-03-24 16:00:00 +00:00
This file contains the entry point of the program (Main method). This file includes the main flow of the program and has implemented the logics for command line arguments. You can find more details about command line arguments [here](../../README.md#usage).
2020-05-23 10:40:29 +00:00
## :notebook: WinSWCore
2020-03-24 16:00:00 +00:00
This is the main component of the project. This contains the most important logics of the project such as ServiceDescriptor.cs, Extension api, configurations, etc.
2020-05-23 10:40:29 +00:00
### :page_facing_up: ServiceDescriptor.cs
2020-03-24 16:00:00 +00:00
This contains the logics for extracting configurations from XML file. The `ServiceDescriptor` class gets XML file as an argument. Currently configuratinos are retrieved on demand.
2020-05-23 10:40:29 +00:00
## :open_file_folder: Configuration
2020-03-24 16:00:00 +00:00
This contains the interface for the configurations. The `IWinSWConfiguration.cs` interface contains all configurations and `DefaultSettings.cs` contains default values for the configurations.