diff --git a/doc/projectStructure.md b/doc/projectStructure.md new file mode 100644 index 0000000..20b6492 --- /dev/null +++ b/doc/projectStructure.md @@ -0,0 +1,98 @@ +# Project Structure + +:movie_camera: [You can find code dive session recorede 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 WinSW project. + +## :open_file_folder: eng + +### :page_facing_up: build.yaml + +This contains Build configurations. We have another relase pipeline which 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 mandotory configurations. + +### :page_facing_up: sample-allOptions.xml + +This template contains all possible configurations with documentation. + +## :open_file_folder: src + +This contains the implementation for 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. +ex : ```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 XML file. ```ServiceDescriptor``` class get XML file as a argument. Currently configuratinos 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```. \ No newline at end of file