Merge pull request #534 from buddhikac96/GSoC---Project-Structure

Contributor guidelines: Document the project structure
pull/535/head
Oleg Nenashev 2020-05-28 15:42:59 +02:00 committed by GitHub
commit 66167d5251
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 0 deletions

View File

@ -26,3 +26,7 @@ dotnet build src\winsw.sln
```
dotnet test src\Test\winswTests\winswTests.csproj
```
## Project Structure
You can find project structure guideline [here.](doc/developer/projectStructure.md)

View File

@ -0,0 +1,45 @@
# Project Structure
:movie_camera: [You can find code dive session recorede video here](https://youtu.be/_adhRj19ESY)
```
|_ doc
|_ eng
|_ examples
|_ src
|_ Core
| |_ ServiceWrapper
| |_ Main.cs
| |_ WinSWCore
| |_ ServiceDescriptor.cs
| |_ Configurations
| |_ Extensions
|_ Plugins
|_ Test/winswTest
```
## :open_file_folder: examples
This folder contains templates for configuration files. `sample-minimal.xml` contains a template for mandotory configurations and `sample-allOptions.xml` contains all possible configurations with documentation.
## :open_file_folder: Core
## :notebook: ServiceWrapper
This is the main executable project. This contains the main.cs which is the entry point of the projet and contains some features for logging.
### :page_facing_up: Main.cs
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.](https://github.com/winsw/winsw#usage)
## :notebook: WinSWCore
WinSW library is the main component of the project. This contains the most important logics of the project such as ServiceDescriptor.cs, Extension api and configurations etc.
### :page_facing_up: ServiceDescriptor.cs
This contains the logics for extracting configurations from XML file. `ServiceDescriptor` class get XML file as a argument. Currently configuratinos are provided on demand.
## :open_file_folder: Configuration
This contains the interface for the configurations. `IWinSWConfiguration.cs` interface contains all configurations and `DefaultSettings.cs` contains default values for the configurations.