Update projectStructure.md

pull/534/head
Buddhika Chathuranga 2020-05-23 16:10:29 +05:30
parent 24b2d0e933
commit 6ef42a988e
2 changed files with 46 additions and 97 deletions

View File

@ -0,0 +1,46 @@
# 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 following command line arguments.
```install, uninstall, start, stop, stopwait, restart, restart!, status, test, testwait, help, version```
## :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.

View File

@ -1,97 +0,0 @@
# Project Structure
:movie_camera: [You can find code dive session recorded video here](https://youtu.be/_adhRj19ESY)
```
|_ doc
|_ eng
|_ examples
|_ src
|_ Core
| |_ ServiceWrapper
| |_ WinSWCore
|_ Plugins
|_ Test/winswTest
```
## :open_file_folder: doc
This directory contains all the documents related to the WinSW project.
## :open_file_folder: eng
### :page_facing_up: build.yaml
This contains Build configurations. We have another release pipeline that is not yet added to this repository and will be added in later.
## :open_file_folder: examples
This folder contains templates for configuration files. Currently, there are XML configuration templates. YAML templates will be added in later.
### :page_facing_up: sample-minimal.xml
This contains a template for mandatory configurations.
### :page_facing_up: sample-allOptions.xml
This template contains all possible configurations with documentation.
## :open_file_folder: src
This contains the implementation of the WinSW.
## :open_file_folder: Core
## :notebook: ServiceWrapper
This is the main executable project.
```
|_ ServiceWrapper
|_ Logging
| |_ WrapperServiceEventLogProvider.cs
|_ Properties
| |_ AssemblyInfo.cs
|_ Main.cs
|_ NullableAttributes.cs
|_ winsw.csproj
```
#### :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 such as `install`, `uninstall`, `start`, `stop`, `restart`.
## :notebook: WinSWCore
```
|_ WinSWCore
|_ Configuration
|_ Extensions
|_ Logging
|_ Native
|_ Util
|_ Download.cs
|_ DynamicProxy.cs
|_ LogAppenders.cs
|_ NullableAttributes.cs
|_ PeriodicRollingCalendar.cs
|_ ServiceDescriptor.cs
|_ WinSWCore.csproj
|_ WinSWException.cs
|_ WinSWSystem.cs
|_ Wmi.cs
|_ WmiSchema.cs
```
#### :page_facing_up: ServiceDescriptor.cs
This contains the logics for extracting configurations from the XML file. `ServiceDescriptor` class get XML file as an argument. Currently, configurations are provided on demand.
## :open_file_folder: Configuration
#### :page_facing_up: IWinSWConfiguration.cs
`IWinSWConfigurations` interface contains all configurations.
#### :page_facing_up: DefaultSettings.cs
This contains default values for all configurations which included in `IWinSWConfiguration.cs`.