Files
docs
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>About this Repository | System.Dynamic.ExpandoObject </title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="title" content="About this Repository | System.Dynamic.ExpandoObject "> <link rel="icon" href="images/favicon.ico"> <link rel="stylesheet" href="public/docfx.min.css"> <link rel="stylesheet" href="public/main.css"> <meta name="docfx:navrel" content="toc.html"> <meta name="docfx:tocrel" content="toc.html"> <meta name="docfx:rel" content=""> <meta name="docfx:docurl" content="https://github.com/Inxton/AXOpen/blob/dev/src/README.md/#L1"> <meta name="loc:inThisArticle" content="In this article"> <meta name="loc:searchResultsCount" content="{count} results for "{query}""> <meta name="loc:searchNoResults" content="No results for "{query}""> <meta name="loc:tocFilter" content="Filter by title"> <meta name="loc:nextArticle" content="Next"> <meta name="loc:prevArticle" content="Previous"> <meta name="loc:themeLight" content="Light"> <meta name="loc:themeDark" content="Dark"> <meta name="loc:themeAuto" content="Auto"> <meta name="loc:changeTheme" content="Change theme"> <meta name="loc:copy" content="Copy"> </head> <script type="module"> import options from './public/main.js' import { init } from './public/docfx.min.js' init(options) </script> <script> const theme = localStorage.getItem('theme') || 'auto' document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme) </script> <body class="tex2jax_ignore" data-layout="" data-yaml-mime=""> <header class="bg-body border-bottom"> <nav id="autocollapse" class="navbar navbar-expand-md" role="navigation"> <div class="container-xxl flex-nowrap"> <a class="navbar-brand" href="index.html"> <img id="logo" class="svg" src="images/logo.svg" alt=""> </a> <button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation"> <i class="bi bi-three-dots"></i> </button> <div class="collapse navbar-collapse" id="navpanel"> <div id="navbar"> <form class="search" role="search" id="search"> <i class="bi bi-search"></i> <input class="form-control" id="search-query" type="search" disabled="" placeholder="Search" autocomplete="off" aria-label="Search"> </form> </div> </div> </div> </nav> </header> <main class="container-xxl"> <div class="toc-offcanvas"> <div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel"> <div class="offcanvas-header"> <h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5> <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <nav class="toc" id="toc"></nav> </div> </div> </div> <div class="content"> <div class="actionbar"> <button class="btn btn-lg border-0 d-md-none" style="margin-top: -.65em; margin-left: -.8em" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents"> <i class="bi bi-list"></i> </button> <nav id="breadcrumb"></nav> </div> <article data-uid=""> <h1 id="about-this-repository">About this Repository</h1> <h2 id="pre-requisites">Pre-requisites</h2> <p>Run following script to check the pre-requisites:</p> <pre><code>./scripts/check_requisites.ps1 </code></pre> <h3 id="add-package-source">Add package source</h3> <p>To get access to the packages from <code>AX#</code> and <code>AXOpen</code> you will need to authenticate to a dedicated package feed hosted on GitHub. Authentication is free. If you do not have a GitHub account please consider creating one by signing up at <a href="https://github.com">https://github.com</a>.</p> <pre><code>dotnet nuget add source --username GITHUBUSERNAME --password PAT --store-password-in-clear-text --name gh-packages-inxton "https://nuget.pkg.github.com/inxton/index.json" </code></pre> <p>Replace GITHUBUSERNAME with your github name Replace PAT with your Personal Access Token (<a href="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token">how to create your PAT</a>)</p> <h3 id="checking-pre-requisites-using-script">Checking pre-requisites using script</h3> <p>To check pre-requisites in your enviroment run <a href="../scripts/check_requisites.ps1">check_requisites.ps1</a> script.</p> <pre><code class="lang-Powershell"># cd into your `axopen` folder .\scripts\check_requisites.ps1 </code></pre> <h2 id="build-this-repository">Build this repository</h2> <p>In order to build this repostory run <a href="../build.ps1">build.ps1</a> script.</p> <pre><code class="lang-Powershell"># cd into your `axopen` folder .\build.ps1 </code></pre> <h2 id="directory-structure">Directory Structure</h2> <h3 id="docfx"><strong>docfx</strong></h3> <p>Contains documentation for this repository.</p> <pre><code>docfx/ │ ├── api/ │ └── API for .NET part of the framework (autogenerated from code) │ ├── apictlr/ │ └── API for controller part of the framework (autogenerated from code) │ ├── apidoc/ │ └── Table of contents for API documentation │ ├── articles/ │ └── Various articles │ ├── components/ │ ├── Documentation for components │ └── toc.yml (new component library doc ref needs to be added here) │ ├── framework/ │ ├── Documentation for framework │ └── toc.yml (new framework library doc ref needs to be added here) │ ├── images/ │ └── Icons and images (some are used in articles) │ └── templates/ └── Documentation site templates </code></pre> <div class="NOTE"> <h5>Note</h5> <p>When adding a new library, update <code>components/toc.yml</code> for components and <code>framework/toc.yml</code> for framework libraries manually.</p> </div> <p>To test the documentation, run the following script from the repository root folder:</p> <pre><code class="lang-Powershell">.\scripts\build_test_docu.ps1 </code></pre> <p>It will create docs-test folder that is git-ignored.</p> <h3 id="docs"><strong>docs</strong></h3> <p>The docs folder contains the documentation site. It should be generated on the appropriate branch used to publish the documentation.</p> <div class="IMPORTANT"> <h5>Important</h5> <p>Never commit changes to the <code>docs</code> directory!</p> </div> <h3 id="scripts"><strong>scripts</strong></h3> <p>Contains various scripts.</p> <h3 id="src"><strong>src</strong></h3> <p>Contains all source code related to AXOpen. Each library is placed in a separate directory which has:</p> <pre><code>library/ │ ├── app/ │ └── Sandbox for testing the library, integration tests, and documentation code (linked to the library's actual documentation) │ ├── ctrl/ │ ├── src/ # Library source code │ ├── tests/ # Unit tests │ └── docs/ # (optional) Controller code documentation │ ├── src/ # .NET twin and Blazor twin │ ├── tests/ # Tests of various levels │ ├── docs/ # Library documentation │ ├── this.proj # Traversal project. Use to create a solution file for this library [see](README.md#creating-solution-file-from-traversal-project-file) │ └── slngen.ps # Generates solution file from `this.proj` </code></pre> <h2 id="apax-package-versions">APAX Package Versions</h2> <div class="IMPORTANT"> <h5>Important</h5> <p>All apax packages on the default branch (dev) have a fixed version '0.0.0-dev.0'. This version must not be changed by any commit. The version is assigned at build time in the CI/CD pipeline.</p> </div> <h2 id="central-package-management-system">Central Package Management System</h2> <p>This project's NuGet packages versions are organized centrally. You shouldn't assign a package version in your project file. In exceptional cases, you can use a version override. Actual versions are defined in <a href="Directory.Packages.props">src/Directory.Packages.props</a>.</p> <p>For more information on central package management, visit <a href="https://learn.microsoft.com/en-us/nuget/consume-packages/Central-Package-Management">here</a>.</p> <h2 id="directory-based-build">Directory-Based Build</h2> <p>Some build aspects of all .NET projects are defined in <a href="Directory.Build.props">src/Directory.Build.props</a>. Learn more <a href="https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-directory?view=vs-2022">here</a>.</p> <h2 id="creating-solution-file-from-traversal-project-file">Creating Solution File from Traversal Project File</h2> <p>You will find several traversal <code>*.proj</code> files. These are used in the CI/CD process in place of solution <code>*.sln</code> files. To create solution files from traversal files, use:</p> <pre><code>dotnet slngen [traversal-project-name].proj -o [output-solution-file].sln --folders true --launch false </code></pre> <div class="IMPORTANT"> <h5>Important</h5> <p>Re-create your solution whenever the repository changes to refresh newly added, removed, or modified projects.</p> </div> <p>You can then open the solution file in Visual Studio as needed.</p> <!-- ## Creating a New Library from Template ### Use script Run the following script from the repository root folder: ```PowerShell .\scripts\create_template_library.ps1 -OutputDirectory OutputFolder -ProjectNamespace Project.Namespace ``` For example: ```PowerShell .\scripts\create_template_library.ps1 -OutputDirectory components.elements -ProjectNamespace AXOpen.Components.Elements ``` ### Manual create 1. Navigate to the `src/` folder of this repository. 2. Run the following command to update the library template: ```PowerShell dotnet new install .\template.axolibrary\ --force ``` 3. Create a library template using: ```PowerShell dotnet new axolibrary -o OutputFolder -p ProjectName ``` For example: ```PowerShell dotnet new axolibrary -o components.elements -p AXOpen.Components.Elements ``` > [!NOTE] > Make sure you run `apax install` and `apax build` after new library is created. > [!IMPORTANT] > Ensure you run all commands from the `src` folder of the repository. The `-o OutputFolder` parameter must be within the `src` folder. > [!IMPORTANT] > The `-p ProjectName` parameter must contain ONLY alphanumeric characters and dots. Otherwise, inconsistencies may occur. --> </article> <div class="contribution d-print-none"> <a href="https://github.com/Inxton/AXOpen/blob/dev/src/README.md/#L1" class="edit-link">Edit this page</a> </div> <div class="next-article d-print-none border-top" id="nextArticle"></div> </div> <div class="affix"> <nav id="affix"></nav> </div> </main> <div class="container-xxl search-results" id="search-results"></div> <footer class="border-top"> <div class="container-xxl"> <div class="flex-fill"> Generated by DocFx. © 2023 MTS spol. s r.o., and awesome contributors </div> </div> </footer> </body> </html>