-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
create basis docs for developing with oqtane
- Loading branch information
1 parent
f9a5c86
commit c2e3a15
Showing
34 changed files
with
710 additions
and
30 deletions.
There are no files selected for viewing
147 changes: 147 additions & 0 deletions
147
docs/guides/dev/best-practices/create-solutions-for-each-extension.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>Oqtane Dev Best Practices: Separate Solutions for Each Extension | Oqtane Docs - APIs and more for the Modular Blazor Application Framework </title> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<meta name="title" content="Oqtane Dev Best Practices: Separate Solutions for Each Extension | Oqtane Docs - APIs and more for the Modular Blazor Application Framework "> | ||
|
||
<link rel="icon" href="../../../layout/images/favicon.png"> | ||
<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="../../../pages/guides/toc.html"> | ||
|
||
<meta name="docfx:rel" content="../../../"> | ||
|
||
|
||
<meta name="docfx:docurl" content="https://github.com/oqtane/oqtane.docs/blob/master/src/pages/guides/dev/best-practices/create-solutions-for-each-extension.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"> | ||
<meta name="loc:downloadPdf" content="Download PDF"> | ||
</head> | ||
|
||
<script type="module" src="./../../../public/docfx.min.js"></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="../../../layout/images/logo-white-50.png" 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="Guides.Dev.BestPractice.SeparateSolutions.Index"> | ||
<h1 id="oqtane-dev-best-practices-separate-solutions-for-each-extension">Oqtane Dev Best Practices: Separate Solutions for Each Extension</h1> | ||
|
||
<p>To create custom themes and modules, | ||
you will typically create them in a separate solution. | ||
This has benefits such as:</p> | ||
<ul> | ||
<li>Your code base and the git-repos are small and focused.</li> | ||
<li>It helps keep your code organized and makes it easier to share your work with others.</li> | ||
<li>It allows you to more easily update the Oqtane runtime without affecting your custom code.</li> | ||
<li>It ensures your extensions actually work in a vanilla Oqtane.</li> | ||
</ul> | ||
<p>Typically these projects and solutions will have the following folder structure:</p> | ||
<pre><code class="lang-text">/parent | ||
/oqtane.framework | ||
/SomeTheme | ||
/SomeModule | ||
/SomeOtherModule | ||
</code></pre> | ||
<p>This structure allows the modules to easily deploy the build output to the <code>oqtane.framework</code> folder, | ||
so it can be run in the Oqtane after every build.</p> | ||
<img src="../../../pages/guides/dev/best-practices/assets/visual-studio-theme-with-oqtane-framework-startup.jpg" width="100%"> | ||
<div class="TIP"> | ||
<h5>Tip</h5> | ||
<p>Oqtane has built in assistants to generate template modules and themes. | ||
These will follow the above convention and also generate | ||
build-projects which will deploy the output to the <code>oqtane.framework</code> folder.</p> | ||
</div> | ||
<div class="TIP"> | ||
<h5>Tip</h5> | ||
<p>As you get more experienced, you can then adjust these automatic mechanisms | ||
to better suit your own workflow.</p> | ||
</div> | ||
<p>In this setup, most Oqtane Modules/Themes will also reference | ||
the Oqtane framework project - but only to make it easier to run and debug directly from Visual Studio.</p> | ||
|
||
</article> | ||
|
||
<div class="contribution d-print-none"> | ||
<a href="https://github.com/oqtane/oqtane.docs/blob/master/src/pages/guides/dev/best-practices/create-solutions-for-each-extension.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 text-secondary"> | ||
<div class="container-xxl"> | ||
<div class="flex-fill"> | ||
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span> | ||
</div> | ||
</div> | ||
</footer> | ||
</body> | ||
</html> |
125 changes: 125 additions & 0 deletions
125
docs/guides/dev/best-practices/use-nuget-for-dependencies.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>Oqtane Dev Best Practices: Use NuGet for Oqtane Dependencies | Oqtane Docs - APIs and more for the Modular Blazor Application Framework </title> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<meta name="title" content="Oqtane Dev Best Practices: Use NuGet for Oqtane Dependencies | Oqtane Docs - APIs and more for the Modular Blazor Application Framework "> | ||
|
||
<link rel="icon" href="../../../layout/images/favicon.png"> | ||
<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="../../../pages/guides/toc.html"> | ||
|
||
<meta name="docfx:rel" content="../../../"> | ||
|
||
|
||
<meta name="docfx:docurl" content="https://github.com/oqtane/oqtane.docs/blob/master/src/pages/guides/dev/best-practices/use-nuget-for-dependencies.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"> | ||
<meta name="loc:downloadPdf" content="Download PDF"> | ||
</head> | ||
|
||
<script type="module" src="./../../../public/docfx.min.js"></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="../../../layout/images/logo-white-50.png" 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="oqtane-dev-best-practices-use-nuget-for-oqtane-dependencies">Oqtane Dev Best Practices: Use NuGet for Oqtane Dependencies</h1> | ||
|
||
<div class="IMPORTANT"> | ||
<h5>Important</h5> | ||
<p>The <a href="create-solutions-for-each-extension.html">recommended structure</a> | ||
may imply that the add-on solutions such as the themes | ||
should reference the <code>oqtane.framework</code> project or output DLLs. | ||
This is not recommended, as it will make your add-ons less portable and harder to maintain.</p> | ||
</div> | ||
<p>Instead, you should use NuGet packages to reference | ||
the Oqtane framework in the version you currently target.</p> | ||
<img src="../../../pages/guides/dev/best-practices/assets/visual-studio-showing-oqtane-nuget-packages.jpg" width="100%"> | ||
|
||
</article> | ||
|
||
<div class="contribution d-print-none"> | ||
<a href="https://github.com/oqtane/oqtane.docs/blob/master/src/pages/guides/dev/best-practices/use-nuget-for-dependencies.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 text-secondary"> | ||
<div class="container-xxl"> | ||
<div class="flex-fill"> | ||
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span> | ||
</div> | ||
</div> | ||
</footer> | ||
</body> | ||
</html> |
Oops, something went wrong.