diff --git a/doc/developer/projectStructure.md b/doc/developer/projectStructure.md new file mode 100644 index 0000000..ac8670d --- /dev/null +++ b/doc/developer/projectStructure.md @@ -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. diff --git a/doc/projectStructure.md b/doc/projectStructure.md deleted file mode 100644 index 9b7c639..0000000 --- a/doc/projectStructure.md +++ /dev/null @@ -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`.