[
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\non:\n  push:\n    branches:\n      - main\n\njobs:\n\n  markdown-link-check:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@master\n    - uses: gaurav-nelson/github-action-markdown-link-check@v1\n    \n  build:\n    name: Deploy docs\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout main\n        uses: actions/checkout@v2\n        \n      - name: Make executeable\n        run: chmod +x ./moveFiles.sh\n      - name: move md files\n        run:  ./moveFiles.sh\n\n      - name: Deploy MkDocs\n        uses: mhausenblas/mkdocs-deploy-gh-pages@1.24\n        env:\n          GITHUB_TOKEN: ${{ secrets.PERSONAL_TOKEN }}"
  },
  {
    "path": ".gitignore",
    "content": "site/\nnode_modules/\n"
  },
  {
    "path": "LICENSE",
    "content": "Creative Commons Legal Code\n\nCC0 1.0 Universal\n\n    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\n    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN\n    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS\n    INFORMATION ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES\n    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS\n    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM\n    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED\n    HEREUNDER.\n\nStatement of Purpose\n\nThe laws of most jurisdictions throughout the world automatically confer\nexclusive Copyright and Related Rights (defined below upon the creator\nand subsequent owner(s (each and all, an \"owner\" of an original work of\nauthorship and/or a database (each, a \"Work\".\n\nCertain owners wish to permanently relinquish those rights to a Work for\nthe purpose of contributing to a commons of creative, cultural and\nscientific works (\"Commons\" that the public can reliably and without fear\nof later claims of infringement build upon, modify, incorporate in other\nworks, reuse and redistribute as freely as possible in any form whatsoever\nand for any purposes, including without limitation commercial purposes.\nThese owners may contribute to the Commons to promote the ideal of a free\nculture and the further production of creative, cultural and scientific\nworks, or to gain reputation or greater distribution for their Work in\npart through the use and efforts of others.\n\nFor these and/or other purposes and motivations, and without any\nexpectation of additional consideration or compensation, the person\nassociating CC0 with a Work (the \"Affirmer\", to the extent that he or she\nis an owner of Copyright and Related Rights in the Work, voluntarily\nelects to apply CC0 to the Work and publicly distribute the Work under its\nterms, with knowledge of his or her Copyright and Related Rights in the\nWork and the meaning and intended legal effect of CC0 on those rights.\n\n1. Copyright and Related Rights. A Work made available under CC0 may be\nprotected by copyright and related or neighboring rights (\"Copyright and\nRelated Rights\". Copyright and Related Rights include, but are not\nlimited to, the following:\n\n  i. the right to reproduce, adapt, distribute, perform, display,\n     communicate, and translate a Work;\n ii. moral rights retained by the original author(s and/or performer(s;\niii. publicity and privacy rights pertaining to a person's image or\n     likeness depicted in a Work;\n iv. rights protecting against unfair competition in regards to a Work,\n     subject to the limitations in paragraph 4(a, below;\n  v. rights protecting the extraction, dissemination, use and reuse of data\n     in a Work;\n vi. database rights (such as those arising under Directive 96/9/EC of the\n     European Parliament and of the Council of 11 March 1996 on the legal\n     protection of databases, and under any national implementation\n     thereof, including any amended or successor version of such\n     directive; and\nvii. other similar, equivalent or corresponding rights throughout the\n     world based on applicable law or treaty, and any national\n     implementations thereof.\n\n2. Waiver. To the greatest extent permitted by, but not in contravention\nof, applicable law, Affirmer hereby overtly, fully, permanently,\nirrevocably and unconditionally waives, abandons, and surrenders all of\nAffirmer's Copyright and Related Rights and associated claims and causes\nof action, whether now known or unknown (including existing as well as\nfuture claims and causes of action, in the Work (i in all territories\nworldwide, (ii for the maximum duration provided by applicable law or\ntreaty (including future time extensions, (iii in any current or future\nmedium and for any number of copies, and (iv for any purpose whatsoever,\nincluding without limitation commercial, advertising or promotional\npurposes (the \"Waiver\". Affirmer makes the Waiver for the benefit of each\nmember of the public at large and to the detriment of Affirmer's heirs and\nsuccessors, fully intending that such Waiver shall not be subject to\nrevocation, rescission, cancellation, termination, or any other legal or\nequitable action to disrupt the quiet enjoyment of the Work by the public\nas contemplated by Affirmer's express Statement of Purpose.\n\n3. Public License Fallback. Should any part of the Waiver for any reason\nbe judged legally invalid or ineffective under applicable law, then the\nWaiver shall be preserved to the maximum extent permitted taking into\naccount Affirmer's express Statement of Purpose. In addition, to the\nextent the Waiver is so judged Affirmer hereby grants to each affected\nperson a royalty-free, non transferable, non sublicensable, non exclusive,\nirrevocable and unconditional license to exercise Affirmer's Copyright and\nRelated Rights in the Work (i in all territories worldwide, (ii for the\nmaximum duration provided by applicable law or treaty (including future\ntime extensions, (iii in any current or future medium and for any number\nof copies, and (iv for any purpose whatsoever, including without\nlimitation commercial, advertising or promotional purposes (the\n\"License\". The License shall be deemed effective as of the date CC0 was\napplied by Affirmer to the Work. Should any part of the License for any\nreason be judged legally invalid or ineffective under applicable law, such\npartial invalidity or ineffectiveness shall not invalidate the remainder\nof the License, and in such case Affirmer hereby affirms that he or she\nwill not (i exercise any of his or her remaining Copyright and Related\nRights in the Work or (ii assert any associated claims and causes of\naction with respect to the Work, in either case contrary to Affirmer's\nexpress Statement of Purpose.\n\n4. Limitations and Disclaimers.\n\n a. No trademark or patent rights held by Affirmer are waived, abandoned,\n    surrendered, licensed or otherwise affected by this document.\n b. Affirmer offers the Work as-is and makes no representations or\n    warranties of any kind concerning the Work, express, implied,\n    statutory or otherwise, including without limitation warranties of\n    title, merchantability, fitness for a particular purpose, non\n    infringement, or the absence of latent or other defects, accuracy, or\n    the present or absence of errors, whether or not discoverable, all to\n    the greatest extent permissible under applicable law.\n c. Affirmer disclaims responsibility for clearing rights of other persons\n    that may apply to the Work or any use thereof, including without\n    limitation any person's Copyright and Related Rights in the Work.\n    Further, Affirmer disclaims responsibility for obtaining any necessary\n    consents, permissions or other rights required for any use of the\n    Work.\n d. Affirmer understands and acknowledges that Creative Commons is not a\n    party to this document and has no duty or obligation with respect to\n    this CC0 or use of the Work.\n"
  },
  {
    "path": "Program.cs",
    "content": "using System;\n\nnamespace Awesome_Dot_Net_Core_Education\n{\n    internal class Program\n    {\n        private static void Main(string[] args)\n        {\n            Console.WriteLine(\"This is a C# repository.\");\n        }\n    }\n}"
  },
  {
    "path": "README.md",
    "content": "# 🎨 Awesome .Net Core Education [![Awesome](https://awesome.re/badge-flat2.svg)](https://awesome.re)\n\n[![License: CC0-1.0](https://img.shields.io/badge/License-CC0_1.0-lightgrey.svg)](http://creativecommons.org/publicdomain/zero/1.0/)\n\n\n> Curated list of awesome articles and resources for learning and practicing about .Net Core and its related technologies, this repository will update continuously.\n\nI created this repository to share a set of links that I found valuable and inspiring and I share them with others to improve our knowledge together ✌️. \n\n**🚀 This awesome list is available in this link:**\n**[https://mehdihadeli.github.io/awesome-dotnet-core-education](https://mehdihadeli.github.io/awesome-dotnet-core-education/)**\n\n\n<a href=\"https://mehdihadeli.github.io/awesome-dotnet-core-education\"> ![home page](./assets/home.png) </a>\n\n[![Sparkline](https://stars.medv.io/mehdihadeli/awesome-dotnet-core-education.svg)](https://stars.medv.io/mehdihadeli/awesome-dotnet-core-education)\n\n## 🙏 Special Thanks\n\nThanks to the authors of the links for their valuable content, I gather them in one place to find topics to read easier.\n\n## Support ⭐\n\nStar this repository and we will be happy together :)\n\nThanks a bunch for supporting me!\n\n## Contribution\n\nContributions are always welcome! Please take a look at the [contribution guidelines](https://github.com/mehdihadeli/awesome-dotnet-core-education/blob/master/contributing.md) pages first.\n\nThanks to all [contributors](https://github.com/mehdihadeli/awesome-dotnet-core-education/graphs/contributors), you're awesome and wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources.\n\n<a href=\"https://github.com/mehdihadeli/awesome-dotnet-core-education/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=mehdihadeli/awesome-dotnet-core-education\" />\n</a>\n\n# Contact\nIf you have any questions, let me know. You can reach me here:\n\n<!-- markdown-link-check-disable-next-line -->\n[![Linkedin Badge](https://img.shields.io/badge/Mehdi%20Hadeli-0077B5?style=flat&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mehdihadeli/)\n[![Twitter URL](https://img.shields.io/badge/-@mehdi_hadeli-%231DA1F2?style=flat-square&logo=twitter&logoColor=ffffff)](https://twitter.com/mehdi_hadeli)\n[![Github Badge](https://img.shields.io/badge/mehdihadeli-100000?style=flate&logo=github&logoColor=white)](https://github.com/mehdihadeli/)\n[![Blog Badge](https://img.shields.io/badge/dotnetuniversity-FFA500?style=flat&logo=rss&logoColor=white)](https://dotnetuniversity.com/)\n"
  },
  {
    "path": "_config.yml",
    "content": "plugins:\n  - jekyll-relative-links\nrelative_links:\n  enabled: true\n  collections: true\ninclude:\n  - contributing.md\n  - README.md\n  - LICENSE\ntheme: jekyll-theme-cayman"
  },
  {
    "path": "contributing.md",
    "content": "# Contribution Guidelines\n\n## New entry format\n\n* Use the following format: **(LINK) | (LIBRARY) | (GitHub-UserName/GitHub-RepositoryName) - DESCRIPTION**\n* The link should be the name of the package or project or article and they must be added to `corresponding md file` in the [docs](./docs) folder.\n* Keep descriptions concise, clear and simple\n* New categories, or improvements to the existing ones are also welcome\n* If you add new category you should create a new `md file` for this category in the [docs](./docs) folder.\n* If you add new category don't forget to add it to [mkdocs.yml](mkdocs.yml) file in root of this project.\n* Your links will check for ensuring quality.\n## Pull requests workflow\n\n* **For adding some links in each category create a separate pull request.** If you want to add several links in each category, you should create PR for changing in that category, creating separate pull request for each category make review process easier (each category has a separate md file). \n* **Meaningful description.** Pull request should have meaningful description what this project do, why do you want to add it to the list and any other info which might be useful. This will help maintainers with the review process.\n\n## Research projects\n\nIf you are to include a research or academic project, please use the `**[Research]**` tag.\n\nThanks to all contributors(https://github.com/mehdihadeli/awesome-dotnet-core-education/graphs/contributors, you're awesome and wouldn't be possible without you!\n"
  },
  {
    "path": "docs/action-filters.md",
    "content": "\n# Action Filters\n\n## 📝 Articles\n- [ASP.NET Core in Action - Filters](https://andrewlock.net/asp-net-core-in-action-filters/)\n- [Exploring Middleware as MVC Filters in ASP.NET Core 1.1](https://andrewlock.net/exploring-middleware-as-mvc-filters-in-asp-net-core-1-1/)"
  },
  {
    "path": "docs/ai.md",
    "content": "# AI\n\n## Samples\n- [codebytes/build-with-aspire](https://github.com/codebytes/build-with-aspire)\n- [Azure-Samples/aspire-semantic-kernel-basic-chat-app](https://github.com/Azure-Samples/aspire-semantic-kernel-basic-chat-app)\n- [mehmetozkaya/eshop-distributed](https://github.com/mehmetozkaya/eshop-distributed)\n- [vicperdana/AspireShopWithSemanticKernel](https://github.com/vicperdana/AspireShopWithSemanticKernel)"
  },
  {
    "path": "docs/api-versioning.md",
    "content": "# API Versioning\n\n## 📝 Articles\n\n- [Web API Versioning in ASP.NET Core Detailed Guide](https://procodeguide.com/programming/asp-net-core-web-api-versioning/)\n- [ASP.NET Core RESTful Web API versioning made easy](https://www.hanselman.com/blog/aspnet-core-restful-web-api-versioning-made-easy)\n- [How To Support Multiple Versions of ASP.NET Core Web API](https://www.ezzylearning.net/tutorial/how-to-support-multiple-versions-of-asp-net-core-web-api)\n- [Advanced versioning in ASP.NET Core Web API](https://dejanstojanovic.net/aspnet/2018/june/advanced-versioning-in-aspnet-core-web-api/)\n- [ASP.NET Core Web API versioning](https://dejanstojanovic.net/aspnet/2017/may/aspnet-core-web-api-versioning/)\n- [Generating Swagger example requests with Swashbuckle](https://mattfrear.com/2016/01/25/generating-swagger-example-requests-with-swashbuckle/)\n- [Add an authorization header to your swagger-ui with Swashbuckle (revisited)](https://mattfrear.com/2018/07/21/add-an-authorization-header-to-your-swagger-ui-with-swashbuckle-revisited/)\n- [Your guide to REST API versioning in ASP.NET Core](https://www.daveabrock.com/2021/06/16/rest-api-versioning-aspnet-core/)\n- [API Versioning in ASP.NET Core 3.1 – Best Practices](https://codewithmukesh.com/blog/api-versioning-in-aspnet-core-3-1/)\n- [Overview of API Versioning in ASP.NET Core 3.0+](https://exceptionnotfound.net/overview-of-api-versioning-in-asp-net-core-3-0/)\n- [Versioning an ASP.NET Core API](https://www.meziantou.net/versioning-an-asp-net-core-api.htm)\n- [All about Web API Versioning in ASP.NET Core](https://www.dotnetnakama.com/blog/all-about-web-api-versioning-in-asp-dotnet-core/)\n- [Asp.Net Core 5 - API Versioning](https://dev.to/moe23/asp-net-core-5-api-versioning-3jnp)\n- [OpenAPI support in minimal APIs - ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi)\n- [API Versioning with ASP.NET Core 6.0 Minimal APIs](https://dotnetthoughts.net/aspnetcore-api-versioning-with-net-6-minimal-apis/)\n- [ASP.NET Core Versioning: MVC APIs](https://im5tu.io/article/2022/09/asp.net-core-versioning-mvc-apis/)\n- [ASP.NET Core Versioning: Minimal APIs](https://im5tu.io/article/2022/10/asp.net-core-versioning-minimal-apis/)\n- [How to configure API Versioning in .NET 8](https://dev.to/iamrule/comprehensive-guide-to-api-versioning-in-net-8-1i9j)\n\n## 📹 Videos\n- [Elegant API Versioning in ASP.NET Core (Web API)](https://www.youtube.com/watch?v=iVHtKG0eU_s)\n- [Implementing versioning | ASP.NET Core 5 REST API Tutorial 2](https://www.youtube.com/watch?v=WFEE5yVJwGU)\n- [Versioning ASP.NET Core MVC & Minimal APIs](https://www.youtube.com/watch?v=YRJGKyzjFlY)\n\n## Libraries\n- [mattfrear/Swashbuckle.AspNetCore.Filters](https://github.com/mattfrear/Swashbuckle.AspNetCore.Filters) - A bunch of useful filters for Swashbuckle.AspNetCore\n- [dotnet/aspnet-api-versioning/examples](https://github.com/dotnet/aspnet-api-versioning) - Provides a set of libraries which add service API versioning to ASP.NET Web API, OData with ASP.NET Web API, and \n\n## Samples\n- [dotnet/aspnet-api-versioning/examples](https://github.com/dotnet/aspnet-api-versioning/tree/main/examples)\n- [dotnet/aspnet-api-versioning/WebApi/MinimalOpenApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/MinimalOpenApiExample)\n- [dotnet/aspnet-api-versioning/WebApi/OpenApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/OpenApiExample)\n- [dotnet/aspnet-api-versioning/WebApi/MinimalApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/MinimalApiExample)\n- [dotnet/aspnet-api-versioning/WebApi/BasicExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/BasicExample)\n"
  },
  {
    "path": "docs/asp/asp-net-6.md",
    "content": "## ASP.NET Core 6\n\n## Resources\n- [Migration to ASP.NET Core in .NET 6](https://gist.github.com/davidfowl/0e0372c3c1d895c3ce195ba983b1e03d)\n- [Minimal APIs at a glance](https://gist.github.com/davidfowl/ff1addd02d239d2d26f4648a06158727)\n## Articles\n- [What's new in ASP.NET Core 6.0](https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-6.0?view=aspnetcore-6.0)\n- [ASP.NET Core updates in .NET 6 Preview 1](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-1/)\n- [ASP.NET Core updates in .NET 6 Preview 2](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-2/)\n- [ASP.NET Core updates in .NET 6 Preview 3](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-3/)\n- [ASP.NET Core updates in .NET 6 Preview 4](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-4)\n- [ASP.NET Core updates in .NET 6 Preview 5](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-5/)\n- [ASP.NET Core updates in .NET 6 Preview 6](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-6/)\n- [ASP.NET Core updates in .NET 6 Preview 7](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-7/)\n- [ASP.​NET Core in .NET 6 - Overview](https://asp.net-hacker.rocks/2021/02/22/aspnetcore6-01.html)\n- [ASP.​NET Core in .NET 6 - Update on dotnet watch](https://asp.net-hacker.rocks/2021/03/25/aspnetcore6-02-dotnetwhatch.html)\n- [ASP.​NET Core in .NET 6 - Support for IAsyncDisposable in MVC](https://asp.net-hacker.rocks/2021/03/29/aspnetcore6-03-iasyncdisposable.html)\n- [ASP.​NET Core in .NET 6 - Nullable Reference Type Annotations](https://asp.net-hacker.rocks/2021/04/22/aspnetcore6-06-nullable-annotations.html)\n- [ASP.​NET Core in .NET 6 - Hot Reload](https://asp.net-hacker.rocks/2021/07/12/aspnetcore6-hot-reload.html)\n- [ASP.​NET Core in .NET 6 - Shadow-copying in IIS](https://asp.net-hacker.rocks/2021/07/19/aspnetcore6-shaddow-copy-iis.html)\n- [ASP.​NET Core in .NET 6 - Hot Reload](https://asp.net-hacker.rocks/2021/07/12/aspnetcore6-hot-reload.html)\n- [Series: Exploring .NET Core 6](https://andrewlock.net/series/exploring-dotnet-6/)\n- [Part 1 - Looking inside ConfigurationManager in .NET 6](https://andrewlock.net/exploring-dotnet-6-part-1-looking-inside-configurationmanager-in-dotnet-6/)\n- [Part 2 - Comparing WebApplicationBuilder to the Generic Host](https://andrewlock.net/exploring-dotnet-6-part-2-comparing-webapplicationbuilder-to-the-generic-host/)\n- [Part 3 - Exploring the code behind WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-3-exploring-the-code-behind-webapplicationbuilder/)\n- [Part 4 - Building a middleware pipeline with WebApplication](https://andrewlock.net/exploring-dotnet-6-part-4-building-a-middleware-pipeline-with-webapplication/)\n- [Part 5 - Supporting EF Core migrations with WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-5-supporting-ef-core-tools-with-webapplicationbuilder/)\n- [Part 6 - Supporting integration tests with WebApplicationFactory in .NET 6](https://andrewlock.net/exploring-dotnet-6-part-6-supporting-integration-tests-with-webapplicationfactory-in-dotnet-6/)\n- [Part 7 - Analyzers for ASP.NET Core in .NET 6 ](https://andrewlock.net/exploring-dotnet-6-part-7-analyzers-for-minimal-apis/)\n- [Part 8 - Improving logging performance with source generators](https://andrewlock.net/exploring-dotnet-6-part-8-improving-logging-performance-with-source-generators/)\n- [Part 9 - Source generator updates: incremental generators ](https://andrewlock.net/exploring-dotnet-6-part-9-source-generator-updates-incremental-generators/)\n- [Part 10 - New dependency injection features in .NET 6 ](https://andrewlock.net/exploring-dotnet-6-part-10-new-dependency-injection-features-in-dotnet-6/)\n- [Part 11 - [CallerArgumentExpression] and throw helpers](https://andrewlock.net/exploring-dotnet-6-part-11-callerargumentexpression-and-throw-helpers/)\n- [Part 12 - Upgrading a .NET 5 \"Startup-based\" app to .NET 6](https://andrewlock.net/exploring-dotnet-6-part-12-upgrading-a-dotnet-5-startup-based-app-to-dotnet-6/)\n- [Waiting for your ASP.NET Core app to be ready from an IHostedService in .NET 6](https://andrewlock.net/finding-the-urls-of-an-aspnetcore-app-from-a-hosted-service-in-dotnet-6/)\n- [Cancelling await calls in .NET 6 with Task.WaitAsync()](https://andrewlock.net/cancelling-await-calls-in-dotnet-6-with-task-waitasync/)\n- [Performance improvements in ASP.NET Core 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-6/)\n\n## Videos\n- [ASP.NET Community Standup - ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=Mot8qAWEnj8)\n- [The future of modern application development with .NET](https://www.youtube.com/watch?v=2Ky28Et3gy0)\n- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)\n- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)\n- [ASP.NET Community Standup - ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=Mot8qAWEnj8)\n- [Migrating to .NET 6 from .NET Core 3.1 | ASP.NET Core WebAPI](https://www.youtube.com/watch?v=LON-PTi2AC0)\n- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)\n- [ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=D5xcUtPCG2s)\n\n## Samples\n- [dodyg/practical-aspnetcore/tree/net5.0/projects/net6](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)"
  },
  {
    "path": "docs/asp/asp-net-7.md",
    "content": "# ASP.NET Core 7\n\n## Articles\n- [ASP.NET Core Roadmap for .NET 7](https://github.com/dotnet/aspnetcore/issues/39504)\n- [ASP.NET Core updates in .NET 7 Preview 1](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-7-preview-1/)\n- [ASP.NET Core updates in .NET 7 Preview 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-2/)\n- [ASP.NET Core updates in .NET 7 Preview 3](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-3/)\n- [ASP.NET Core updates in .NET 7 Preview 4](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-4/)\n- [ASP.NET Core updates in .NET 7 Preview 5](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-5/)\n- [ASP.NET Core updates in .NET 7 Preview 6](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-6/)\n- [ASP.NET Core updates in .NET 7 Preview 7](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-7/)\n- [ASP.NET Core updates in .NET 7 Release Candidate 1](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-rc-1/)\n- [ASP.NET Core updates in .NET 7 Release Candidate 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-rc-2/)\n- [Exploring the new output caching middleware](https://dev.to/this-is-learning/exploring-the-new-output-caching-middleware-4no1)\n- [ASP.NET Core on .NET 7.0 - Output caching](https://asp.net-hacker.rocks/2022/07/26/aspnetcore7-outputcaching.html)\n- [Performance improvements in ASP.NET Core 7](https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-7/)\n- [Announcing ASP.NET Core in .NET 7](https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-7/)\n- [What's new in ASP.NET Core 7.0](https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-7.0)\n- [Problem Details responses everywhere with ASP.NET Core and .NET 7](https://www.strathweb.com/2022/08/problem-details-responses-everywhere-with-asp-net-core-and-net-7/)\n\n## Videos\n- [ASP.NET Core in .NET 7 Preview 1 - What you need to know](https://www.youtube.com/watch?v=VgmsFck3RWU)\n- [ASP.NET Community Standup - Controller Binding Updates in .NET 7](https://www.youtube.com/watch?v=TTpH9GjwY34)"
  },
  {
    "path": "docs/asp/asp-net-8.md",
    "content": "# ASP.NET 8\n\n## Articles\n- [Announcing ASP.NET Core in .NET 8](https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-8/)\n- [ASP.NET Core updates in .NET 8 Preview 1](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-1/)\n- [ASP.NET Core updates in .NET 8 Preview 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-2/)\n- [ASP.NET Core Route Tooling Enhancements in .NET 8](https://devblogs.microsoft.com/dotnet/aspnet-core-route-tooling-dotnet-8/)\n- [ASP.NET Core updates in .NET 8 Preview 3](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-3/)\n- [ASP.NET Core updates in .NET 8 Preview 4](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-4/)\n- [ASP.NET Core updates in .NET 8 Preview 5](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-5/)\n- [ASP.NET Core updates in .NET 8 Preview 6](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-6/)\n- [ASP.NET Core updates in .NET 8 Preview 7](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-7/)\n- [ASP.NET Core updates in .NET 8 Release Candidate 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-rc-2/)\n- [Improvements to auth and identity in ASP.NET Core 8](https://devblogs.microsoft.com/dotnet/improvements-auth-identity-aspnetcore-8/)\n"
  },
  {
    "path": "docs/asp/asp-net.md",
    "content": "# ASP.NET Core\n\n## Resources\n- [ASP.NET Core: From 0 to overkill](https://www.youtube.com/playlist?list=PLN0oN9Azm_MMAjk3nhRnmHdr1l0160Dhs)\n- [ASP.NET Core 2.2 & 3 REST API Tutorial - Nick Chapsass](https://www.youtube.com/playlist?list=PLUOequmGnXxOgmSDWU7Tl6iQTsOtyjtwU)\n- [ASP.NET Core General Tutorial - Nick Chapsass](https://www.youtube.com/playlist?list=PLUOequmGnXxOFPJv8H7DNIappcta9brtN)\n- [ASP.NET Core - Codewrinkles](https://www.youtube.com/playlist?list=PL2E-vlKoo_v1dfQPJX3PuzT4B1ZJulQ-p)\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore)\n## Articles\n- [Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage)\n- [Microsoft.AspNetCore.App for ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app)\n- [Use ASP.NET Core APIs in a class library](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore)\n- [Waiting for your ASP.NET Core app to be ready from an IHostedService in .NET 6](https://andrewlock.net/finding-the-urls-of-an-aspnetcore-app-from-a-hosted-service-in-dotnet-6/)\n- [Cancelling await calls in .NET 6 with Task.WaitAsync()](https://andrewlock.net/cancelling-await-calls-in-dotnet-6-with-task-waitasync/)\n- [Using IActionConstraints in ASP.NET Core MVC](https://www.strathweb.com/2017/06/using-iactionconstraints-in-asp-net-core-mvc/)\n- [Select action method based on header value - ASP.NET Core](https://josef.codes/select-action-method-based-on-header-value-asp-net-core/)\n- [Request Features And ASP.NET Core 3](https://khalidabuhakmeh.com/request-features-aspnet-core-3)\n- [Request Features in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/request-features)\n- [Running async tasks on app startup in ASP.NET Core - Part 1](https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-part-1/)\n- [Running async tasks on app startup in ASP.NET Core - Part 2](https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-part-2/)\n- [Understanding PathBase in ASP.NET Core](https://andrewlock.net/understanding-pathbase-in-aspnetcore/)\n- [Reducing initial request latency by pre-building services in a startup task in ASP.NET Core](https://andrewlock.net/reducing-latency-by-pre-building-singletons-in-asp-net-core/)\n- [Using PathBase with .NET 6's WebApplicationBuilder](https://andrewlock.net/using-pathbase-with-dotnet-6-webapplicationbuilder/)\n- [How fast is really ASP.NET Core?](https://dusted.codes/how-fast-is-really-aspnet-core)\n## Videos\n- [ASP.NET Community Standup - Contributing to ASP.NET Core](https://www.youtube.com/watch?v=hVdwb41FPvU)\n- [What's the point of async/await in an ASP.NET Core application?](https://www.youtube.com/watch?v=COeg6UoPe_Q)\n- [Episode 010 - Async all the things - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=CGi1bQgaqwg)#"
  },
  {
    "path": "docs/aspire.md",
    "content": "# Aspire\n\n## Aticles\n- [Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8](https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/)\n- [How to include an Angular Project within .NET Aspire](https://timdeschryver.dev/blog/how-to-include-an-angular-project-within-net-aspire)\n\n## Samples\n- [dotnet/aspire-samples](https://github.com/dotnet/aspire-samples)"
  },
  {
    "path": "docs/background-tasks.md",
    "content": "# Background Tasks\n\n## 📝 Articles\n- [Background tasks with hosted services in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services)\n- [Background Tasks in .NET](https://codeopinion.com/background-tasks/) \n- [Mediator Pattern with Hangfire](https://codeopinion.com/mediator-pattern-hangfire/) \n- [Processing commands with Hangfire and MediatR](http://www.kamilgrzybek.com/design/processing-commands-with-hangfire-and-mediatr/) \n- [Use Quartz.Net for background and recurring jobs within an ASP.NET Core 3.0 applicati](https://blog.vfrz.fr/quartz-asp-net-core-3-0/)\n- [How to run Background Tasks in ASP.NET](https://www.hanselman.com/blog/how-to-run-background-tasks-in-aspnet)\n- [Using Quartz.NET with ASP.NET Core and worker services](https://andrewlock.net/using-quartz-net-with-asp-net-core-and-worker-services/)\n- [Creating a Quartz.NET hosted service with ASP.NET Core](https://andrewlock.net/creating-a-quartz-net-hosted-service-with-asp-net-core/)\n- [Using scoped services inside a Quartz.NET hosted service with ASP.NET Core](https://andrewlock.net/using-scoped-services-inside-a-quartz-net-hosted-service-with-asp-net-core/)\n- [Mediator Pattern with Hangfire](https://codeopinion.com/mediator-pattern-hangfire/)\n- [Using Hangfire and MediatR as a Message Dispatcher](https://codeopinion.com/using-hangfire-and-mediatr-as-a-message-dispatcher/)\n- [Background Commands with MediatR and Hangfire](https://codeopinion.com/background-commands-mediatr-hangfire/)\n- [A poor person’s scheduler using .NET Background service](https://ankitvijay.net/2021/02/22/a-poor-mans-scheduler-using-net-background-serivce/)\n- [Hangfire with ASP.NET Core](https://code-maze.com/hangfire-with-asp-net-core/)\n- [Active-Passive Background Service In .Net 6](https://itnext.io/active-passive-background-service-in-net-6-952f3aebd1b7)\n- [Securing Hangfire Dashboard using an OpenID Connect server (IdentityServer 4)](https://lurumad.github.io/securing-hangfire-dashboard-using-an-openid-connect-server-identityserver-4)\n- [Waiting for your ASP.NET Core app to be ready from an IHostedService in .NET 6](https://andrewlock.net/finding-the-urls-of-an-aspnetcore-app-from-a-hosted-service-in-dotnet-6/)\n- [CONCURRENT HOSTED SERVICE START AND STOP IN .NET 8](https://www.stevejgordon.co.uk/concurrent-hosted-service-start-and-stop-in-dotnet-8)\n- [INTRODUCING THE NEW IHOSTEDLIFECYCLESERVICE INTERFACE IN .NET 8](https://www.stevejgordon.co.uk/introducing-the-new-ihostedlifecycleservice-interface-in-dotnet-8)\n\n## Videos\n- [Background Tasks Are Finally Fixed in .NET 8](https://www.youtube.com/watch?v=XA_3CZmD9y0)"
  },
  {
    "path": "docs/benchmarking.md",
    "content": "# Benchmarking\n\n## 📕 Articles\n- [Profiling .Net Code with BenchmarkDotNet](https://adamsitnik.com/ETW-Profiler/)\n- [Measuring Performance using BenchmarkDotNet](https://thecodeblogger.com/2022/05/05/measuring-performance-using-benchmarkdotnet/)\n\n## 📦 Libraries\n- [dotnet/BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet) - Powerful .NET library for benchmarking\n- [dotnet/crank](https://github.com/dotnet/crank) - Benchmarking infrastructure for applications\n\n## 📹 Videos\n- [Benchmarking C# code using BenchmarkDotNet](https://www.youtube.com/watch?v=EWmufbVF2A4)\n- [Analyzing performance with BenchmarkDotNet - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=8JOC8kN_WbU)\n- [Intro to Benchmark.net - How To Benchmark C# Code](https://www.youtube.com/watch?v=mmza9x3QxYE)"
  },
  {
    "path": "docs/blazor.md",
    "content": "# Blazor\n\n## Resources\n- [dotnet-presentations/blazor-workshop/](https://github.com/dotnet-presentations/blazor-workshop/) - Blazor workshop\n\n## Articles\n- [Blazor in .NET 8: Full stack Web UI](https://chrissainty.com/blazor-in-dotnet-8-full-stack-web-ui/)\n- [Blazor in .NET 8: Server-side and Streaming Rendering](https://chrissainty.com/blazor-in-dotnet-8-server-side-and-streaming-rendering/)\n\n## 📺 Videos\n- [Modern Web Dev with Blazor and .NET 6 with Jason Taylor](https://www.youtube.com/watch?v=aPDJkl8TNFA)\n- [Blazor API Client using REST & GraphQL APIs - Full Course](https://www.youtube.com/watch?v=agIJTnpfFGA)\n- [Blazor Course - Use ASP.NET Core to Build Full-Stack C# Web Apps (8 Hours Full Course)](https://www.youtube.com/watch?v=KRJFEpIJeUI)\n- [Let's Learn .NET - Blazor](https://www.youtube.com/watch?v=4Xzx7Cm9ykg)\n- [On .NET Live - Building Reactive UIs with Blazor](https://www.youtube.com/watch?v=EUOimtP78jQ)\n- [Fluxor + C#9 - Redux Pattern in Blazor WebAssembly](https://www.youtube.com/watch?v=sAyH-O0dFaI)\n- [Managing Blazor state using Redux | Blazor Tutorial 11](https://www.youtube.com/watch?v=k_c-ErPaYa8)\n- [Blazor Fundamentals Tutorial Playlist - Nick Chapsas](https://www.youtube.com/playlist?list=PLUOequmGnXxPrY79JGnF72e1Pba8z93zo)\n- [Modern Web Dev with Blazor and .NET 6 with Jason Taylor](https://www.youtube.com/watch?v=lRYrhj9lwQk)\n- [Blazor Tutorial Playlist - Frank Liu](https://www.youtube.com/playlist?list=PLgRlicSxjeMOwJyqendhcntDqEjCBncci)\n- [Enterprise-grade Blazor apps with .NET 6](https://www.youtube.com/watch?v=GKu-vRxOWr8)\n- [ASP.NET Community Standup - Exploring MudBlazor](https://www.youtube.com/watch?v=GtLIpITqznA)\n- [The .NET Docs Show - Micro frontends with Blazor](https://www.youtube.com/watch?v=8Ac2QMdusrs)\n\n## 🚀 Samples\n- [thbst16/BlazorCrud](https://github.com/thbst16/BlazorCrud) - Demo application built with the Blazor client-side hosting model (WebAssembly) and .NET Core REST APIs secured by a JWT service.\n- [lucent-sea/Remotely](https://github.com/lucent-sea/Remotely) - A remote control and remote scripting solution, built with .NET 5, Blazor, SignalR Core, and WebRTC.\n- [CuriousDrive/BlazingChat](https://github.com/CuriousDrive/BlazingChat) - BlazingChat is a Blazor WebAssembly app developed by CuriousDrive for the community. This is a sample application for developers who are just getting started with Blazor.\n- [jasontaylordev/ModernWebDevWithBlazorWasm](https://github.com/jasontaylordev/ModernWebDevWithBlazorWasm) - The sample code from my presentation Modern Web Dev with Blazor WebAsembly and ASP.NET Core 6.\n- [fullstackhero/blazor-wasm-boilerplate](https://github.com/fullstackhero/blazor-wasm-boilerplate) - Blazor WebAssembly Boilerplate for .NET 6.0 using FSH API as the backend.\n## Libraries\n- [mrpmorris/Fluxor](https://github.com/mrpmorris/Fluxor) - Fluxor is a zero boilerplate Flux/Redux library for Microsoft .NET and Blazor.\n- [enkodellc/blazorboilerplate](https://github.com/enkodellc/blazorboilerplate) - Blazor Boilerplate / Starter Template with MatBlazor\n- [Garderoben/MudBlazor](https://github.com/Garderoben/MudBlazor) - Blazor Component Library based on Material design. The goal is to do more with Blazor, utilizing CSS and keeping Javascript to a bare minimum.\n- [servicetitan/Stl.Fusion](https://github.com/servicetitan/Stl.Fusion) - Build real-time apps (Blazor included) with less than 1% of extra code responsible for real-time updates. Host 10-1000x faster APIs relying on transparent and nearly 100% consistent caching. We call it DREAM, or Distributed REActive Memoization, and it's here to turn real-time on!\n- [SteveSandersonMS/dotnet-wasi-sdk](https://github.com/SteveSandersonMS/dotnet-wasi-sdk) - Packages for building .NET projects as standalone WASI-compliant modules"
  },
  {
    "path": "docs/caching.md",
    "content": "\n# Caching\n\n## 📕 Articles\n- [Response caching in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/response)\n- [Cache in-memory in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory)\n- [Distributed caching in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed)\n- [Simple In-Memory Caching in .Net Core with IMemoryCache](https://sahansera.dev/in-memory-caching-aspcore-dotnet/)\n- [4 Microservices Caching Patterns at Wix](https://medium.com/wix-engineering/4-microservices-caching-patterns-at-wix-b4dfee1ae22f)\n- [REDIS VS MEMCACHED: WHICH ONE TO CHOOSE?](https://www.imaginarycloud.com/blog/redis-vs-memcached)\n- [Redis vs. Memcached: In-Memory Data Storage Systems](https://alibaba-cloud.medium.com/redis-vs-memcached-in-memory-data-storage-systems-3395279b0941)\n- [Difference Between Redis vs Memcached](https://www.educba.com/redis-vs-memcached/)\n- [Response caching in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/response)\n- [Caching Best Practices](https://docs.microsoft.com/en-us/azure/architecture/best-practices/caching)\n- [How to Improve ASP.NET App Performance in Web Farm with Caching](https://www.toptal.com/dot-net/caching-in-a-distributed-web-farm-using-asp-net)\n- [Redis as Backplane to scale your Blazor applications](https://blexin.com/en/blog-en/redis-as-backplane-to-scale-your-blazor-applications/)\n- [“Red(e)isign” Publish/Subscribe with Redis](https://blexin.com/en/blog-en/redeisign-publish-subscribe-with-redis/)\n- [Hybrid Caching](https://github.com/dotnetcore/EasyCaching/blob/master/docs/Hybrid.md)\n- [ASP.NET Core Memory Cache - Is the GetOrCreate method thread-safe?](https://blog.novanet.no/asp-net-core-memory-cache-is-get-or-create-thread-safe/)\n- [Cache Implementations in C# .NET](https://michaelscodingspot.com/cache-implementations-in-csharp-net/)\n- [Scalable and Performant ASP.NET Core Web APIs: Server Caching](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-server-caching/)\n- [Scalable and Performant ASP.NET Core Web APIs: Client Caching](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-client-caching/)\n- [HOW TO USE IN-MEMORY CACHING FOR .NET CORE WEB APIS](https://thecodeblogger.com/2021/06/07/how-to-use-in-memory-caching-for-net-core-web-apis/)\n- [DISTRIBUTED CACHING AND DISTRIBUTED MEMORY CACHE IN .NET CORE](https://thecodeblogger.com/2021/06/08/distributed-caching-and-distributed-memory-cache-in-net-core/)\n- [USE DISTRIBUTED SQL SERVER CACHE WITH .NET CORE WEB APIS](https://thecodeblogger.com/2021/06/09/use-distributed-sql-server-cache-with-net-core-web-apis/)\n- [Redis Caching in ASP.NET Core – Distributed Caching Detailed](https://codewithmukesh.com/blog/redis-caching-in-aspnet-core/)\n- [In-Memory Caching in ASP.NET Core – Detailed Guide](https://codewithmukesh.com/blog/in-memory-caching-in-aspnet-core/)\n- [Response Caching with MediatR in ASP.NET Core – Powerful Pipeline Behavior](https://codewithmukesh.com/blog/caching-with-mediatr-in-aspnet-core/)\n- [How to publish and subscribe with redis by. Net core](https://developpaper.com/how-to-publish-and-subscribe-with-redis-by-net-core/)\n- [Redis for .NET Developers – Redis Pub Sub](http://taswar.zeytinsoft.com/redis-pub-sub/)\n- [Intro to Redis for .NET Developers – Installing Redis on Windows](http://taswar.zeytinsoft.com/intro-to-redis-for-net-developers/)\n- [Redis for .NET Developer – Connecting with C#](http://taswar.zeytinsoft.com/redis-for-net-developer-connecting-with-c/)\n- [Redis for .NET Developer – String Datatype](http://taswar.zeytinsoft.com/redis-for-net-developer-string-datatype/)\n- [Redis for .NET Developer – Redis String Datatype part 2](http://taswar.zeytinsoft.com/redis-net-developer-redis-string-datatype-part-2/)\n- [Redis for .NET Developer – Redis Hash Datatype](http://taswar.zeytinsoft.com/redis-hash-datatype/)\n- [Redis for .NET Developers – Redis running in Docker](http://taswar.zeytinsoft.com/redis-running-in-docker/)\n- [Redis for .NET Developers – Redis running in Azure](http://taswar.zeytinsoft.com/redis-running-in-azure/)\n- [Redis for .NET Developers – Redis Password](http://taswar.zeytinsoft.com/redis-password/)\n- [Redis for .NET Developers – Redis List Datatype](http://taswar.zeytinsoft.com/redis-list/)\n- [Redis for .NET Developers – Redis Sets Datatype](http://taswar.zeytinsoft.com/redis-sets-datatype/)\n- [Redis for .NET Developers – Redis Sorted Sets Datatype](http://taswar.zeytinsoft.com/redis-sorted-sets-datatype/)\n- [Redis for .NET Developers – Redis HyperLogLog Datatype](http://taswar.zeytinsoft.com/redis-hyperloglog/)\n- [Redis for .NET Developers – Redis Pub Sub](http://taswar.zeytinsoft.com/redis-pub-sub/)\n- [Redis for .NET Developers – Redis Pipeline Batching](http://taswar.zeytinsoft.com/redis-pipeline-batching/)\n- [Redis for .NET Developer – Redis Transactions](http://taswar.zeytinsoft.com/redis-transactions/)\n- [Redis for .NET Developers – Redis GeoSpatial](http://taswar.zeytinsoft.com/redis-geospatial/)\n- [Redis for .NET Developers – Redis Sentinel](http://taswar.zeytinsoft.com/redis-sentinel/)\n- [Redis for .NET Developers | Redis with AspNetCore WebAPI](http://taswar.zeytinsoft.com/redis-for-net-developers-redis-with-aspnetcore-webapi/)\n- [Pub/Sub](https://redis.io/topics/pubsub)\n- [Publish Subscribe](https://sodocumentation.net/stackexchange-redis/topic/1610/publish-subscribe)\n- [How to use Redis and Lua Scripts in a C# ASP.NET Core Microservice Architecture](https://itnext.io/how-to-use-redis-and-lua-scripts-in-a-c-asp-net-core-microservice-architecture-e12dc8846707)\n- [Caching in ASP.NET Core with LazyCache](https://lukelowrey.com/caching-in-aspnet-core-with-lazycache/)\n- [Caching behavior with MediatR](https://fredrikronnehag.netlify.app/caching-mediatr/)\n- [Cross-Cutting Concerns with MediatR Pipeline Behaviors](https://anderly.com/2019/12/12/cross-cutting-concerns-with-mediatr-pipeline-behaviors/)\n- [Exploring the new output caching middleware](https://dev.to/this-is-learning/exploring-the-new-output-caching-middleware-4no1)\n- [Redis Explained - Architecture Notes](https://architecturenotes.co/redis/) \n- [Delete Single or multiple or All keys in Redis .NET – Guidelines](https://www.thecodebuzz.com/delete-keys-all-keys-redis-cache-cluster-net-csharp-net-core/)\n- [Redis-Dependency Injection of the ConnectionMultiplexer – Best Practices](https://www.thecodebuzz.com/redis-dependency-injection-connectionmultiplexer-redis-cache-netcore-csharp/)\n- [Redis Distributed Cache in C#.NET with Examples](https://www.thecodebuzz.com/redis-distributed-cache-asp-net-core-csharp-redis-examples/)\n- [Get all keys from Redis Cache in C#.NET](https://www.thecodebuzz.com/get-all-keys-from-redis-cache-in-c-net/)\n## Use Cases\n\n- [Messaging](https://redislabs.com/solutions/use-cases/messaging/)\n- [Real-Time Inventory Management](https://redislabs.com/solutions/use-cases/real-time-inventory/)\n- [Caching](https://redislabs.com/solutions/use-cases/caching/)\n- [Leaderboards](https://redislabs.com/solutions/use-cases/leaderboards/)\n\n## 📺 Videos\n- [Software Architecture Introduction (part 3): Cache explained](https://www.youtube.com/watch?v=QBMTGngjWdU)\n- [Response caching using Redis | ASP.NET Core 5 REST API Tutorial 25](https://www.youtube.com/watch?v=KboCpJGa9ag)\n- [How to effectively use Redis Cache in .NET Core (Framework, Standard)](https://www.youtube.com/watch?v=jwek4w6als4)\n- [Redis Crash Course - the What, Why and How to use Redis as your primary database](https://www.youtube.com/watch?v=OqCK95AS-YE)\n- [Can Redis be used as a Primary database?](https://www.youtube.com/watch?v=VLTPqImLapM)\n- [Caching Architectures | Microservices Caching Patterns | System Design Primer | Tech Primers](https://www.youtube.com/watch?v=0x-ZV_vP73k)\n- [Redis Crash Course](https://www.youtube.com/watch?v=jgpVdJB2sKQ)\n- [Redis Stack: The Complete Redis for All Developers](https://www.youtube.com/watch?v=9JeAu--liMk)\n## 🚀 Samples\n- [taswar/RedisForNetDevelopers](https://github.com/taswar/RedisForNetDevelopers) - Source code for blog post on Redis for .NET Developer Series\n- [SorenZ/Alamut.MediatR.Caching](https://github.com/SorenZ/Alamut.MediatR.Caching)\n## Libraries\n- [StackExchange/StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) - General purpose redis client\n- [ServiceStack/ServiceStack.Redis](https://github.com/ServiceStack/ServiceStack.Redis) - .NET's leading C# Redis Client\n- [alastairtree/LazyCache](https://github.com/alastairtree/LazyCache) - An easy to use thread safe in-memory caching service with a simple developer friendly API for c#\n- [Foundatio.Redis](https://github.com/FoundatioFx/Foundatio.Redis) - Foundatio Redis\n- [MichaCo/CacheManager](https://github.com/MichaCo/CacheManager) - CacheManager is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features.\n- [dotnetcore/EasyCaching](https://github.com/dotnetcore/EasyCaching) - EasyCaching is an open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier!\n- [mjebrahimi/EasyCompressor](https://github.com/mjebrahimi/EasyCompressor) - ⚡ A compression library that implements many compression algorithms such as LZ4, Zstd, LZMA, Snappy, Brotli, GZip, and Deflate. It helps you to improve performance by reducing Memory Usage and Network Traffic for caching.\n- [VahidN/EFCoreSecondLevelCacheInterceptor](https://github.com/VahidN/EFCoreSecondLevelCacheInterceptor) - EF Core Second Level Cache Interceptor\n- [marcoCasamento/Hangfire.Redis.StackExchange](https://github.com/marcoCasamento/Hangfire.Redis.StackExchange) - HangFire Redis storage based on original (and now unsupported) Hangfire.Redis but using lovely StackExchange.Redis client\n- [beetlex-io/BeetleX.Redis](https://github.com/beetlex-io/BeetleX.Redis) - A high-performance async/non-blocking redis client components for dotnet core,default data formater json protobuf and messagepack,support ssl"
  },
  {
    "path": "docs/code-generation.md",
    "content": "# Code Generation\n\n## Libraries\n- [CodegenCS/CodegenCS](https://github.com/CodegenCS/CodegenCS) - C# Library for Code Generation"
  },
  {
    "path": "docs/configuration-secrets.md",
    "content": "# Configuration & Secrets Management\n\n## 📝 Articles\n\n- [Configure ASP.NET Core MVC](https://www.programmingwithwolfgang.com/configure-asp-net-core-mvc/)\n- [Configuration in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration)\n- [Configuration providers in .NET](https://docs.microsoft.com/en-us/dotnet/core/extensions/configuration-providers)\n- [Options pattern in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options)\n- [ASP. NET Core - Customize Configuration](https://girishgodage.in/blog/customize-configuration)\n- [Creating a custom ConfigurationProvider in ASP.NET Core to parse YAML](https://andrewlock.net/creating-a-custom-iconfigurationprovider-in-asp-net-core-to-parse-yaml/)\n- [Customizing ASP.​NET Core Part 02: Configuration](https://asp.net-hacker.rocks/2018/09/24/customizing-aspnetcore-02-configuration.html)\n- [How to use configuration with C# 9 top-level programs](https://daveabrock.com/2021/01/19/config-top-level-programs)\n- [The dangers and gotchas of using scoped services in IConfigureOptions](https://andrewlock.net/the-dangers-and-gotchas-of-using-scoped-services-when-configuring-options-in-asp-net-core/)\n- [Debugging configuration values in ASP.NET Core](https://andrewlock.net/debugging-configuration-values-in-aspnetcore/)\n- [Viewing app configuration using Oakton's Describe command and Spectre.Console](https://andrewlock.net/viewing-application-configuration-using-oaktons-describe-command/)\n- [Viewing overwritten configuration values in ASP.NET Core](https://andrewlock.net/viewing-overriden-configuration-values-in-aspnetcore/)\n- [Strongly Typed Configuration Settings in ASP.NET Core](https://weblog.west-wind.com/posts/2016/may/23/strongly-typed-configuration-settings-in-aspnet-core)\n- [Easy Configuration Binding in ASP.NET Core - revisited](https://weblog.west-wind.com/posts/2017/Dec/12/Easy-Configuration-Binding-in-ASPNET-Core-revisited)\n- [Keeping Configuration Settings in Memory](https://visualstudiomagazine.com/Blogs/Tool-Tracker/2019/03/Keeping-Configuration-Settings.aspx)\n- [Using Memory Configuration Provider In .NET Applications](https://thecodeblogger.com/2021/04/18/using-memory-configuration-provider-in-net-applications/)\n- [Testing and Configuration in .NET Core](https://joestead.codes/posts/testing-with-configuration-dotnet/)\n- [Adding validation to strongly typed configuration objects in ASP.NET Core](https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-in-asp-net-core/)\n- [Reloading strongly typed Options on file changes in ASP.NET Core RC2](https://andrewlock.net/reloading-strongly-typed-options-when-appsettings-change-in-asp-net-core-rc2/)\n- [Working with Options pattern in ASP.NET Core (.NET 5) - The Complete Guide](https://referbruv.com/blog/posts/working-with-options-pattern-in-aspnet-core-the-complete-guide)\n- [Looking inside ConfigurationManager in .NET 6](https://andrewlock.net/exploring-dotnet-6-part-1-looking-inside-configurationmanager-in-dotnet-6/)\n- [Accessing Configuration in .NET Core Test Projects](https://weblog.west-wind.com/posts/2018/Feb/18/Accessing-Configuration-in-NET-Core-Test-Projects)\n- [Read appsettings JSON in .NET Core Test Project](https://www.thecodebuzz.com/read-appsettings-json-in-net-core-test-project-xunit-mstest/)\n- [C# teamwork: share project config with common Nuget Build Asset Packages](https://endjin.com/blog/2020/04/dotnet-csharp-teamwork-share-project-config-with-common-nuget-build-asset-packages)\n- [Provide default configuration to your .NET applications](https://www.twilio.com/blog/provide-default-configuration-to-dotnet-applications)\n- [How to better configure C# and .NET applications for Twilio](https://www.twilio.com/blog/better-configuration-csharp-dotnet-for-twilio)\n- [Auto Refresh Settings Changes in ASP.NET Core Runtime](https://edi.wang/post/2019/1/5/auto-refresh-settings-changes-in-aspnet-core-runtime)\n- [Adding validation to strongly typed configuration objects in .NET 6](https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-in-dotnet-6/)\n- [Adding validation to strongly typed configuration objects using FluentValidation](https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-using-flentvalidation/)\n- [Azure Key Vault configuration provider in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/key-vault-configuration)\n- [Safe storage of app secrets in development in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets)\n- [Using User Secrets Configuration In .NET](https://dotnetcoretutorials.com/2022/04/28/using-user-secrets-configuration-in-net/)\n- [Secret Management in ASP.Net 5.0 Web APIs](https://technologyleads.io/blog/asp-net-5-web-api-secret-management)\n- [Secrets Management in .NET Applications](https://auth0.com/blog/secret-management-in-dotnet-applications/)\n- [The dangers and gotchas of using scoped services in OptionsBuild](https://andrewlock.net/the-dangers-and-gotchas-of-using-scoped-services-when-configuring-options-with-options-builder/)\n- [Overriding configuration in ASP.NET Core integration tests](https://blog.markvincze.com/overriding-configuration-in-asp-net-core-integration-tests/)\n- [ASP.NET Core - Lost in configuration](https://www.techwatching.dev/posts/lost-in-configuration)\n- [Multiple Ways To Access Configurations In .NET Applications](https://thecodeblogger.com/2021/04/20/multiple-ways-to-access-configurations-in-net-applications/)\n- [Options Pattern In .NET – IOptions, IOptionsSnapshot, IOptionsMonitor](https://thecodeblogger.com/2021/04/21/options-pattern-in-net-ioptions-ioptionssnapshot-ioptionsmonitor/)\n- [IOptionsMonitor Demo – Reload Configurations In .NET Applications](https://thecodeblogger.com/2021/04/22/ioptionsmonitor-demo-reload-configurations-in-net-applications/)\n- [Read data from appsettings.json in asp.net core](https://dotnetdocs.ir/Post/41/خواندن-دیتاها-از-appsettings.json-در-asp.net-core)\n- [Difference between IOptions, IOptionsSnapshot and IOptionsMonitor](https://dotnetdocs.ir/Post/42/difference-between-ioptions-ioptionssnapshot-and-ioptionsmonitor)\n- [ASP.NET Core Configuration – Basic Concepts](https://code-maze.com/aspnet-configuration-basic-concepts/)\n- [ASP.NET Core Configuration – Options Pattern](https://code-maze.com/aspnet-configuration-options/)\n- [ASP.NET Core Configuration – Options Validation](https://code-maze.com/aspnet-configuration-options-validation/)\n- [Validating .NET Configuration](https://chris-ayers.com/2022/12/03/validating-dotnet-configuration)\n- [Using .env in .NET](https://dusted.codes/dotenv-in-dotnet) ⭐\n## Videos\n- [Managing your .NET app configuration like a pro](https://www.youtube.com/watch?v=J0EVd5HbtUY)\n- [AZURE APP CONFIGURATION | Central Store For Application Configuration | ASP.NET Core Series](https://www.youtube.com/watch?v=VEjYW14WKRM&t=3s)\n- [FEATURE FLAGS in ASP NET Core | Azure App Configuration | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=qtp90IYMRh8&)\n- [ENVIRONMENT SPECIFIC APP CONFIGURATION - 5 Ways To Manage For ASP NET on AZURE | ASP.NET Core Series](https://www.youtube.com/watch?v=wTSu2aCoR7Y&)\n- [Feature flags with .NET and Azure App Configuration](https://www.youtube.com/watch?v=CcbUqdh8Xw8)\n- [CONFIGURATION in ASP.NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=5GlgHV_12-k)\n- [SECRET MANAGER In ASP NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=PkLLP2tcd28)\n- [How to manage user secrets in dot net core](https://www.youtube.com/watch?v=8zcqGaPwDW0)\n- [Secretless apps with .NET and Azure Key Vault](https://www.youtube.com/watch?v=f8Hf-YUrC10)\n- [How to use Azure Key Vault + .NET Core easily | Secrets, Keys and Certificates - English](https://www.youtube.com/watch?v=RTq72C10x88)\n## 📦 Libraries\n- [NetEscapades.Configuration](https://github.com/andrewlock/NetEscapades.Configuration)\n- [bolorundurowb/dotenv.net](https://github.com/bolorundurowb/dotenv.net) - A library to read .env files in a .NET Core environment\n- [tonerdo/dotnet-env](https://github.com/tonerdo/dotnet-env) - A .NET library to load environment variables from .env files\n## 🔖 Samples\n- [Codebytes/dotnet-configuration-in-depth](https://github.com/Codebytes/dotnet-configuration-in-depth)\n- [WolfgangOfner/MVC-Core-Configure](https://github.com/WolfgangOfner/MVC-Core-Configure)\n- [hashicorp/hello-vault-dotnet](https://github.com/hashicorp/hello-vault-dotnet) - Runnable C# examples of how to integrate an application with HashiCorp Vault.\n- [auth0-blog/dotnet-secrets-management](https://github.com/auth0-blog/dotnet-secrets-management)\n\n"
  },
  {
    "path": "docs/correlationId.md",
    "content": "# CorrelationID\n\n## Articles\n- [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/)\n- [.NET Core Log Correlation - Request Id](https://www.frakkingsweet.com/net-core-log-correlation-request-id/)\n- [.NET Core Log Correlation - Arbitrary Log Properties](https://www.frakkingsweet.com/net-core-log-correlation-arbitrary-log-properties/)\n- [.NET Core Log Correlation - Easy Access to the Correlation Id](https://www.frakkingsweet.com/net-core-log-correlation-easy-access-to-headers/)\n- [.NET Core Log Correlation - HttpClient and default headers](https://www.frakkingsweet.com/net-core-log-correlation-httpclient-and-default-headers/)\n- [Passing correlation id across requests](https://ankitvijay.net/2020/11/24/passing-correlation-id-across-requests/)\n- [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/)\n- [Request Tracing And Logging Between Multiple MicroService With Correlation Id Using Serilog In .NET Core](https://www.c-sharpcorner.com/article/logging-and-tracing-in-multiple-microservice-with-correlation-using-net-core/)\n- [ASP.NET 5 and Log Correlation by Request Id](https://www.tugberkugurlu.com/archive/asp-net-5-and-log-correlation-by-request-id)\n- [How to propagate HTTP Headers (and Correlation IDs) using HttpClients in C#](https://www.code4it.dev/blog/propagate-httpheader-and-correlation-id)\n- [Capturing and forwarding correlation IDs in ASP.NET Core, the easy way](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore-version-2/)\n- [ASP.NET CORE CORRELATION IDS](https://www.stevejgordon.co.uk/asp-net-core-correlation-ids)\n- [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/)\n- [A consistent approach to track correlation IDs through microservices](https://theburningmonk.com/2015/05/a-consistent-approach-to-track-correlation-ids-through-microservices/)\n- [Capturing and forwarding correlation IDs in ASP.NET Core](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore/)\n- [Header propagation using ASP.NET Core](https://craftbakery.dev/http-header-propagation-aspnet-core/)\n- [Request Header Propagation In .NET Core Web Applications](https://thecodeblogger.com/2021/05/25/request-header-propagation-in-net-core-web-applications/)\n## Libraries\n- [Microsoft.AspNetCore.HeaderPropagation](https://www.nuget.org/packages/Microsoft.AspNetCore.HeaderPropagation/)"
  },
  {
    "path": "docs/csharp/async/analyzers.md",
    "content": "# Analyzers \n\n## Articles\n- [Async code smells and how to track them down with analyzers - Part I](https://cezarypiatek.github.io/post/async-analyzers-p1/)\n- [Async code smells and how to track them down with analyzers - Part II](https://cezarypiatek.github.io/post/async-analyzers-p2/)\n- [Detecting Sync over Async Code in ASP.NET Core](https://codeopinion.com/detecting-sync-over-async-code-in-asp-net-core/)\n\n## Libraries\n- [dotnet/roslyn-analyzers](https://github.com/dotnet/roslyn-analyzers)\n- [Microsoft/vs-threading](https://github.com/Microsoft/vs-threading) - The Microsoft.VisualStudio.Threading is a xplat library that provides many threading and synchronization primitives used in Visual Studio and other applications.\n- [semihokur/AsyncFixer](https://github.com/semihokur/AsyncFixer) - Advanced async/await Diagnostics and CodeFixes for C#\n- [meziantou/Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) - A Roslyn analyzer to enforce some good practices in C#.\n- [JosefPihrt/Roslynator](https://github.com/JosefPihrt/Roslynator)  - A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.\n- [hvanbakel/Asyncify-CSharp](https://github.com/hvanbakel/Asyncify-CSharp) - Visual Studio analyzer to check for potential use of Task Asynchronous Pattern"
  },
  {
    "path": "docs/csharp/async/async-and-await.md",
    "content": "# Async and Await\n\n## 📘 Resources\n- [Links about async/await in C#](https://www.meziantou.net/links-async-await-csharp.htm)\n- [Stephen Cleary Blog](https://blog.stephencleary.com/)\n- [Stephen Toub Blog](https://devblogs.microsoft.com/pfxteam/author/toub/)\n- [Task-Based Asynchronous Pattern - Whitepaper](http://www.microsoft.com/en-us/download/details.aspx?id=19957)\n\n## 📝 Articles\n- [Async Overview](https://docs.microsoft.com/en-us/dotnet/standard/async)\n- [Asynchronous programming patterns](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/)\n- [Asynchronous programming](https://docs.microsoft.com/en-us/dotnet/csharp/async)\n- [Task-based asynchronous pattern - TAP](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap)\n- [Event-based Asynchronous Pattern - EAP](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/event-based-asynchronous-pattern-eap)\n- [Asynchronous Programming Model - APM](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/asynchronous-programming-model-apm)\n- [Task asynchronous programming model](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/task-asynchronous-programming-model)\n- [Async return types (C#)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/async-return-types)\n- [When to Use Async and Await and How it Works](https://hamidmosalla.com/2018/03/30/when-to-use-async-and-await-and-how-it-works/)\n- [Asynchrony in C# 5 Part Six: Whither async?](https://docs.microsoft.com/en-us/archive/blogs/ericlippert/asynchrony-in-c-5-part-six-whither-async)\n- [Exploring the async/await State Machine – Series Overview](https://vkontech.com/exploring-the-async-await-state-machine-series-overview/)\n- [Exploring the async/await State Machine – The Awaitable Pattern](https://vkontech.com/exploring-the-async-await-state-machine-the-awaitable-pattern/)\n- [Exploring the async/await State Machine – Main Workflow and State Transitions](https://vkontech.com/exploring-the-async-await-state-machine-main-workflow-and-state-transitions/)\n- [Exploring the async/await State Machine – Conceptual Implementation](https://vkontech.com/exploring-the-async-await-state-machine-conceptual-implementation/)\n- [Dissecting the async methods in C#](https://devblogs.microsoft.com/premier-developer/dissecting-the-async-methods-in-c/)\n- [Extending the async methods in C#](https://devblogs.microsoft.com/premier-developer/extending-the-async-methods-in-c/)\n- [The performance characteristics of the async methods in C#](https://devblogs.microsoft.com/premier-developer/the-performance-characteristics-of-async-methods/)\n- [Understanding async/await State Machine in .NET](https://mykkon.work/async-state-machine/)\n- [Fixing the Sync over Async antipattern](https://makolyte.com/fixing-the-sync-over-async-antipattern/)\n- [Parallel Programming BY examples](http://diranieh.com/NETCSharp/ParallelWithExamples.htm)\n- [Async/Await FAQ](https://devblogs.microsoft.com/pfxteam/asyncawait-faq/)\n- [Are deadlocks still possible with await?](https://devblogs.microsoft.com/pfxteam/are-deadlocks-still-possible-with-await/)\n- [The Ultimate Guide to Async and Await in C# and ASP.NET](https://exceptionnotfound.net/async-await-in-asp-net-csharp-ultimate-guide/)\n- [Explaining Async and Await in ASP.NET](https://exceptionnotfound.net/using-async-and-await-in-asp-net-what-do-these-keywords-mean/)\n- [A Practical Example Of Asynchronous Programming in C# and ASP.NET](https://exceptionnotfound.net/asynchronous-programming-asp-net-csharp-practical-guide-refactoring/)\n- [The Ultimate Guide to Async and Await in C# and ASP.NET](https://exceptionnotfound.net/async-await-in-asp-net-csharp-ultimate-guide/)\n- [ConfigureAwait FAQ - Stephen Toub](https://devblogs.microsoft.com/dotnet/configureawait-faq/)\n- [Async/Await Calls Gotcha with the CSharp ? Null Propagator](https://weblog.west-wind.com/posts/2021/May/15/Async-Await-with-the-Null-Propagator)\n- [Asynchronous C#: Making a simple Cup of Tea](https://dev.to/paulafahmy/asynchronous-c-making-a-simple-cup-of-tea-13i)\n- [Asynchronous C#: Making a simple Cup of Tea (Part 2)](https://dev.to/paulafahmy/asynchronous-c-making-a-simple-cup-of-tea-part-2-1jcj)\n- [Asynchronous Programming with Async and Await in ASP.NET Core](https://code-maze.com/asynchronous-programming-with-async-and-await-in-asp-net-core/)\n- [Introducing AsyncUtilities](http://blog.i3arnon.com/2018/02/05/async-utilities/)\n- [Detecting Sync over Async Code in ASP.NET Core](https://codeopinion.com/detecting-sync-over-async-code-in-asp-net-core/)\n- [Removing async void](https://johnthiriet.com/removing-async-void/)\n- [Avoid async void methods](https://haacked.com/archive/2014/11/11/async-void-methods/)\n- [Awaiting an async void method in .NET](https://www.meziantou.net/awaiting-an-async-void-method-in-dotnet.htm)\n- [Eliding Async and Await](https://blog.stephencleary.com/2016/12/eliding-async-await.html)\n- [A Tour of Task, Part 6: Results](https://blog.stephencleary.com/2014/12/a-tour-of-task-part-6-results.html)\n- [Don't Block on Async Code](https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html)\n- [Task.Run Etiquette and Proper Usage](https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html)\n- [Task.Run Etiquette Examples: Don't Use Task.Run for the Wrong Thing](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-using.html)\n- [Task.Run Etiquette Examples: Don't Use Task.Run in the Implementation](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-dont-use.html)\n- [Should I expose synchronous wrappers for asynchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-synchronous-wrappers-for-asynchronous-methods/)\n- [Should I expose asynchronous wrappers for synchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-asynchronous-wrappers-for-synchronous-methods/)\n- [Why you shouldn’t create asynchronous wrappers with Task.Run()](https://www.ben-morris.com/why-you-shouldnt-create-asynchronous-wrappers-with-task-run/)\n- [Using Task.Run in Conjunction with Async/Await](https://www.pluralsight.com/guides/using-task-run-async-await)\n- [Advanced Tips for Using Task.Run With Async/Await](https://www.pluralsight.com/guides/advanced-tips-using-task-run-async-wait)\n- [Scalable and Performant ASP.NET Core Web APIs: Asynchronous Code](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-asynchronous-operations/)\n- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)\n- [There Is No Thread](https://blog.stephencleary.com/2013/11/there-is-no-thread.html)\n- [Top 7 Common Async Mistakes](https://hamidmosalla.com/2018/04/21/top-7-common-async-mistakes/)\n- [What Is SynchronizationContext](https://hamidmosalla.com/2018/06/24/what-is-synchronizationcontext/)\n- [ASP.NET Core SynchronizationContext](https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html)\n- [Using Task.WhenAny And Task.WhenAll](https://hamidmosalla.com/2018/04/27/using-task-whenany-and-task-whenall/)\n- [Async Programming : Introduction to Async/Await on ASP.NET](https://docs.microsoft.com/en-us/archive/msdn-magazine/2014/october/async-programming-introduction-to-async-await-on-asp-net)\n- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/Article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)\n- [A deep-dive into the new Task.WaitAsync() API in .NET 6](https://andrewlock.net/a-deep-dive-into-the-new-task-waitasync-api-in-dotnet-6/)\n- [Keeping up with .NET: learning about new features and APIs](https://andrewlock.net/keeping-up-with-dotnet-learning-about-new-features-and-apis/)\n- [C# async await explained](https://blog.ndepend.com/c-async-await-explained/)\n- [ASP.NET Core - Why async await is useful](https://steven-giesel.com/blogPost/b925c8c1-03ba-4eb6-9b81-f09df56e0158)\n- [No, No, No - Tasks are not threads and they are not for performance!](https://steven-giesel.com/blogPost/d095383f-7ea9-4419-96b8-889c6981cce0)\n- [Asynchronous Programming Patterns in .NET](https://code-maze.com/asynchronous-programming-patterns-dotnet/)\n- [How Async/Await Really Works in C#](https://devblogs.microsoft.com/dotnet/how-async-await-really-works/)\n- [C# async await Explained](https://blog.ndepend.com/c-async-await-explained/) ⭐\n\n## 📹 Videos\n- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q&ab_channel=FrankLiu)\n- [Best Practices for Using async and await, by Damir Arh](https://www.youtube.com/watch?v=4JHwBX_qQE0)\n- [Making async code run faster in C#](https://www.youtube.com/watch?v=gW19LaAYczI)\n- [Why is Async Code Hard to Debug?](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Why-is-Async-Code-Hard-to-Debug)\n- [Async Debugging Part 2](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Async-Debugging-Part-2)\n- [Async vs Thread | C# Interview Questions with Answers | Csharp Interview Questions](https://www.youtube.com/watch?v=G3tz9rxts8E)\n- [What are Async and Await ( .NET 4.5 Interview question with answers)?](https://www.youtube.com/watch?v=V2sMXJnDEjM)\n- [C# Async/Await/Task Explained (Deep Dive)](https://www.youtube.com/watch?v=il9gl8MH17s)\n- [Asynchronous Programming in C# Explained (Task.Run, Task.WaitAll, Async and Await)](https://www.youtube.com/watch?v=CrUrvVatAxo)\n- [Better C# - Parallelization (with Dataflow)](https://www.youtube.com/watch?v=zdD7o8Z6MMY)\n- [Best Practices - When to use async void | The Xamarin Show](https://www.youtube.com/watch?v=xxifTwQaA0s)\n- [Why is async void bad and how do I await a Task in an object constructor in C#?](https://www.youtube.com/watch?v=O1Tx-k4Vao0)\n- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q&t=923s)\n- [What's the point of async/await in an ASP.NET Core application?](https://www.youtube.com/watch?v=COeg6UoPe_Q)\n- [Episode 010 - Async all the things - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=CGi1bQgaqwg)\n- [C# async and await from zero to hero](https://www.youtube.com/watch?v=88e9uMlLCf8)\n- [Stephen Cleary — Asynchronous streams](https://www.youtube.com/watch?v=-Tq4wLyen7Q)\n\n## Libraries\n- [Nito.AsyncEx](https://github.com/StephenCleary/AsyncEx) - A helper library for the Task-Based Asynchronous Pattern (TAP).\n- [AsyncEnumerator](https://github.com/Dasync/AsyncEnumerable) - Introduces `IAsyncEnumerable`, `IAsyncEnumerator`, `ForEachAsync()`, and `ParallelForEachAsync()` and other useful stuff to use with async-await \n- [AsyncIO.DotNet](https://github.com/firenero/AsyncIO) - Easy-to-use library for common async IO file system operations. \n- [NeoSmart.AsyncLock](https://github.com/neosmart/AsyncLock) - A C# lock replacement for async/await, supporting recursion/re-entrance and asynchronous waits. \n- [Open-NET-Libraries/Open.ChannelExtensions](https://github.com/Open-NET-Libraries/Open.ChannelExtensions) - A set of extensions for optimizing/simplifying System.Threading.Channels usage.\n- [timonkrebs/MemoizR](https://github.com/timonkrebs/MemoizR) - Declarative Structured Concurrency for C#"
  },
  {
    "path": "docs/csharp/async/async-best-practice.md",
    "content": "# Async Best Practice\n\n## 📘 Resources\n- [davidfowl/AspNetCoreDiagnosticScenarios](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios) - This repository has examples of broken patterns in ASP.NET Core applications\n\n ## 📕 Articles\n- [Async Guidance](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md)\n- [Async and Await: Here be dragons](https://gist.github.com/ghuntley/e5b5642ecc4428255e61185bb79856e4)\n- [Top 7 Common Async Mistakes](https://hamidmosalla.com/2018/04/21/top-7-common-async-mistakes/)\n- [Async/Await - Best Practices in Asynchronous Programming](https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming)\n- [Common C# async and await misconceptions](https://saebamini.com/common-async-and-await-misconceptions/)\n- [Cancel Asynchronous Operation In Csharp](https://b2n.ir/n06328) - John Thiriet\n- [C# Async Tips and Tricks](https://cpratt.co/async-tips-tricks/) - Chris Pratt\n- [Eliding Async and Await](https://blog.stephencleary.com/2016/12/eliding-async-await.html) - Stephen Cleary\n- [Async code smells and how to track them down with analyzers - Part I](https://cezarypiatek.github.io/post/async-analyzers-p1/)\n- [Async code smells and how to track them down with analyzers - Part II](https://cezarypiatek.github.io/post/async-analyzers-p2/)\n- [Two Ways to Do Async/Await in ASP.NET Wrong (and How to Fix Them)](https://exceptionnotfound.net/two-ways-to-do-async-await-in-asp-net-wrong-and-how-to-fix-them/)\n- [Asynchronous C#: Cherry on the top 🍒 (Tips and Tricks)](https://dev.to/paulafahmy/asynchronous-c-cherry-on-the-top-tips-and-tricks-4eod)\n- []()\n## 📺 Videos\n\n- [Is awaiting a Task instead of returning it directly in C# actually slower?](https://www.youtube.com/watch?v=Q2zDatDVnO0)\n- [Best Practices for Using async and await, by Damir Arh](https://www.youtube.com/watch?v=4JHwBX_qQE0)\n- [Brandon Minnick - Async/Await Best Practices](https://docs.microsoft.com/en-us/shows/on-net/brandon-minnick-asyncawait-best-practices)\n- [Best Practices for Using async and await - Damir Arh](https://www.jetbrains.com/dotnet/guide/tutorials/dotnet-days-online-2021/best-practices-for-using-async-and-await/)\n- [Best Practices - When to use async void | The Xamarin Show](https://www.youtube.com/watch?v=xxifTwQaA0s)\n- [Why is async void bad and how do I await a Task in an object constructor in C#?](https://www.youtube.com/watch?v=O1Tx-k4Vao0)"
  },
  {
    "path": "docs/csharp/async/async-collections/async-collections.md",
    "content": "# Async Collections"
  },
  {
    "path": "docs/csharp/async/async-collections/async-stream-and-iEnumerableAsync.md",
    "content": "# Async Stream And IEnumerableAsync\n\n## 📝 Articles\n\n- [Use streaming in ASP.NET Core SignalR](https://docs.microsoft.com/en-us/aspnet/core/signalr/streaming?view=aspnetcore-5.0)\n- [Async Streams](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/async-streams)\n- [Iterating with Async Enumerables in C# 8](https://docs.microsoft.com/en-us/archive/msdn-magazine/2019/november/csharp-iterating-with-async-enumerables-in-csharp-8)\n- [Async Streams with IAsyncEnumerable in .NET Core 3](https://anthonychu.ca/post/async-streams-dotnet-core-3-iasyncenumerable/)\n- [IAsyncEnumerable Is Your Friend, Even In .NET Core 2.x](https://btburnett.com/csharp/2019/12/01/iasyncenumerable-is-your-friend.html)\n- [Asynchronous streams in C# 8.0](https://dev.to/mbernard/asynchronous-streams-in-c-8-0-33la)\n- [gRPC and C# 8 Async stream](https://laurentkempe.com/2019/09/18/gRPC-and-csharp-8-Async-stream/)\n- [gRPC and C# 8 Async stream cancellation](https://laurentkempe.com/2019/09/25/gRPC-and-csharp-8-Async-stream-cancellation/)\n- [IAsyncEnumerable with yield in C#](https://code-maze.com/csharp-async-enumerable-yield/)\n- [ASP.NET Core 6 and IAsyncEnumerable - Async Streamed JSON vs NDJSON](https://www.tpeczek.com/2021/07/aspnet-core-6-and-iasyncenumerable.html)\n- [.NET Application Controller Actions Now Support Asynchronous Streaming Response .NET6](https://www.learmoreseekmore.com/2021/11/dotnet6-feature-controllers-acitons-now-support-asynchronous-streaming-response.html)\n- [Async Enumerable in C# (Part 1)](https://markheath.net/post/async-enumerable-1)\n- [Consuming JSON Objects Stream (NDJSON) With HttpClient](https://www.tpeczek.com/2020/10/consuming-json-objects-stream-ndjson.html)\n## 📺 Videos\n- [C# Async Yield Return: IAsyncEnumerable will change your life!!!](https://www.youtube.com/watch?v=w3hc7nxXxf4)\n- [Is Parallel.For/ForEach in C# actually worth it? (and how to modernize it)](https://www.youtube.com/watch?v=lHuyl_WTpME)\n\n## Libraries\n- [tpeczek/Ndjson.AsyncStreams](https://github.com/tpeczek/Ndjson.AsyncStreams) - Ndjson.AsyncStreams is a solution for working with asynchronous streaming data sources over HTTP using NDJSON (Newline Delimited JSON)."
  },
  {
    "path": "docs/csharp/async/async-collections/blocking-collection.md",
    "content": "# BlockingCollection \n\n## 📝 Articles\n\n- [BlockingCollection Overview](https://docs.microsoft.com/en-us/dotnet/standard/collections/thread-safe/blockingcollection-overview) \n- [Event-driven .NET: Concurrent Producer/Consumer using BlockingCollection](https://makolyte.com/event-driven-dotnet-concurrent-producer-consumer-using-blockingcollection/)\n- [An introduction to BlockingCollection](https://weblogs.asp.net/morteza/an-introduction-to-blockingcollection)\n\n\n"
  },
  {
    "path": "docs/csharp/async/async-collections/iterators.md",
    "content": "# Iterators\n\n## 📝 Articles\n\n- [Iterators](https://bettersolutions.com/csharp/collections/iterators.htm)\n- [Iterators (C#)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/iterators)\n- [yield (C# Reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield)\n- [Iterators, iterator blocks and data pipelines](https://csharpindepth.com/articles/StreamingAndIterators)\n- [IEnumerator Interface](https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerator?view=net-5.0)\n- [IEnumerableT Interface](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1?view=net-5.0)\n\n## 📺 Videos\n- [C# Yield Return: What is it and how does it work?](https://www.youtube.com/watch?v=HRXkeaeImGs)"
  },
  {
    "path": "docs/csharp/async/async-collections/lazy-initialization.md",
    "content": "# Lazy Initialization\n\n## 📝 Articles\n- [Lazy Initialization](https://docs.microsoft.com/en-us/dotnet/framework/performance/lazy-initialization)"
  },
  {
    "path": "docs/csharp/async/asynchronous-messaging.md",
    "content": "# Asynchronous Messaging\n\n## 📝 Articles\n\n- [Asynchronous Messaging, Part 1: Basic Distributed Architecture](https://blog.stephencleary.com/2021/01/asynchronous-messaging-1-basic-distributed-architecture.html)\n- [Asynchronous Messaging, Part 2: Durable Queues](https://blog.stephencleary.com/2021/01/asynchronous-messaging-2-durable-queues.html)\n- [Asynchronous Messaging, Part 3: Backend Service](https://blog.stephencleary.com/2021/01/asynchronous-messaging-3-backend-processor.html)\n"
  },
  {
    "path": "docs/csharp/async/asynclocal.md",
    "content": "# AsyncLocal\n\n## 📝 Articles\n- [AsyncLocalT in .NET 4.6](https://www.tabsoverspaces.com/233526-asynclocal-t-in-net-46)\n- [Implicit Async Context (\"AsyncLocal\")](https://blog.stephencleary.com/2013/04/implicit-async-context-asynclocal.html)\n- [Multithreaded shared variables and AsyncLocal](https://programmer.help/blogs/multithreaded-shared-variables-and-asynclocal.html)\n- [Share data across the lifetime of an HTTP request](https://github.com/edumserrano/dotnet-guides/blob/main/docs/guides/share-data-with-async-local.md)\n- [Storing Context Data in C# using AsyncLocal](https://vainolo.com/2022/02/23/storing-context-data-in-c-using-asynclocal/)"
  },
  {
    "path": "docs/csharp/async/awaiter.md",
    "content": "# Awaiter\n\n## 📝 Articles\n\n- [A Tour of Task, Part 6: Results](https://blog.stephencleary.com/2014/12/a-tour-of-task-part-6-results.html)\n- [Task.Wait() Vs Task.GetAwaiter().GetResult()](https://jaliyaudagedara.blogspot.com/2019/06/taskwait-vs-taskgetawaitergetresult.html)\n- [Avoid GetAwaiter().GetResult() at all cost](https://gsferreira.com/archive/2020/08/avoid-getawaiter-getresult-at-all-cost/)\n- [Understanding C# async / await (2) The Awaitable-Awaiter Pattern](https://weblogs.asp.net/dixin/understanding-c-sharp-async-await-2-awaitable-awaiter-pattern)\n"
  },
  {
    "path": "docs/csharp/async/cancellation.md",
    "content": "# Cancellation\n\n## 📝 Articles\n- [Task cancellation in C# and things you should know about it](https://binary-studio.com/2015/10/23/task-cancellation-in-c-and-things-you-should-know-about-it)\n- [Cancel asynchronous operation in csharp](https://johnthiriet.com/cancel-asynchronous-operation-in-csharp/)\n- [Aborting Thread Vs Cancelling Task](https://www.c-sharpcorner.com/article/aborting-thread-vs-cancelling-task/)\n- [Task cancellation](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-cancellation)\n- [Cancellation in Managed Threads](https://docs.microsoft.com/en-us/dotnet/standard/threading/cancellation-in-managed-threads)\n- [Destroying threads](https://docs.microsoft.com/en-us/dotnet/standard/threading/destroying-threads)\n- [How to: Cancel a Task and Its Children](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-cancel-a-task-and-its-children)\n- [Using CancellationTokens in ASP.NET Core MVC controllers](https://andrewlock.net/using-cancellationtokens-in-asp-net-core-mvc-controllers/)\n- [Canceling HTTP Requests in ASP.NET Core with CancellationToken](https://code-maze.com/canceling-http-requests-in-asp-net-core-with-cancellationtoken/)\n- [Recommended patterns for CancellationToken](https://devblogs.microsoft.com/premier-developer/recommended-patterns-for-cancellationtoken/)\n- [Task cancellation in C# and things you should know about it](https://binary-studio.com/2015/10/23/task-cancellation-in-c-and-things-you-should-know-about-it/)\n- [Cancellation, Part 1: Overview](https://blog.stephencleary.com/2022/02/cancellation-1-overview.html)\n- [Cancellation, Part 2: Requesting Cancellation](https://blog.stephencleary.com/2022/03/cancellation-2-requesting-cancellation.html)\n- [Cancellation, Part 3: Detecting Cancellation](https://blog.stephencleary.com/2022/03/cancellation-3-detecting-cancellation.html)\n- [Patterns & Practices for efficiently handling C# async/await cancel processing and timeouts](https://neuecc.medium.com/patterns-practices-for-efficiently-handling-c-async-await-cancel-processing-and-timeouts-b419ce5f69a4)\n## 📺 Videos\n- [Stop wasting server resources by properly using CancellationToken in .NET](https://www.youtube.com/watch?v=b5dyPJ3zyRg)\n- [How to Cancel Tasks in C# - Using CancellationTokenSource and CancellationToken](https://www.youtube.com/watch?v=TKc5A3exKBQ&list=PLG8rj6Rr0BU9NXQX3YXtQhVXBD2co2HUQ&index=14)\n## 🔖 Samples\n- [johnthiriet/AsyncTips](https://github.com/johnthiriet/AsyncTips)"
  },
  {
    "path": "docs/csharp/async/channels.md",
    "content": "\n# Channels\n\n## 📝 Articles\n- [An Introduction to System.Threading.Channels - Stephen Toub](https://devblogs.microsoft.com/dotnet/an-introduction-to-system-threading-channels/)\n- [Using Channels In C# .NET Core – Part 1 – Getting Started](https://dotnetcoretutorials.com/2020/11/24/using-channels-in-net-core-part-1-getting-started/)\n- [Using Channels In C# .NET Core – Part 2 – Advanced Channels](https://dotnetcoretutorials.com/2020/11/24/using-channels-in-net-core-part-2-advanced-channels/)\n- [Using Channels In C# .NET Core – Part 3 – Understanding Back Pressure](https://dotnetcoretutorials.com/2020/11/24/using-channels-in-net-core-part-3-understanding-back-pressure/)\n- [AN INTRODUCTION TO SYSTEM.THREADING.CHANNELS](https://www.stevejgordon.co.uk/an-introduction-to-system-threading-channels)\n- [Producer/consumer pipelines with System.Threading.Channels](https://blog.maartenballiauw.be/post/2020/08/26/producer-consumer-pipelines-with-system-threading-channels.html)\n- [C# Channels - Publish / Subscribe Workflows](https://deniskyashif.com/2019/12/08/csharp-channels-part-1/)\n- [C# Channels - Timeout and Cancellation](https://deniskyashif.com/2019/12/11/csharp-channels-part-2/)\n- [C# Channels - Async Data Pipelines](https://deniskyashif.com/2020/01/07/csharp-channels-part-3/)\n- [How to implement Producer/Consumer with System.Threading.Channels](https://www.davideguida.com/how-to-implement-producer-consumer-with-system-threading-channels/)\n- [How to implement Producer/Consumer with System.Threading.Channels](https://www.davideguida.com/consuming-message-queues-using-net-core-background-workers-part-4-adding-system-threading-channels/)\n- [What's the Difference between Channel and ConcurrentQueue in C#?](https://jeremybytes.blogspot.com/2021/02/whats-difference-between-channel-and.html)\n- [Producer/consumer pipelines with System.Threading.Channels](https://blog.maartenballiauw.be/post/2020/08/26/producer-consumer-pipelines-with-system-threading-channels.html)\n- [Consuming message queues using .net core background workers – part 4: adding System.Threading.Channels](https://www.davidguida.net/consuming-message-queues-using-net-core-background-workers-part-4-adding-system-threading-channels/)\n- [C# Job Queue Implementations in Depth – Part 1](https://michaelscodingspot.com/c-job-queues/)\n- [C# Job Queues (part 2) with Reactive Extensions and Channels](https://michaelscodingspot.com/c-job-queues-with-reactive-extensions-and-channels/)\n- [Implement asynchronous-friendly producer-consumer (Pub / Sub) patterns in System.Threading.Channels](https://sourceexample.com/implement-asynchronous-friendly-producer-consumer-(pub-sub)-patterns-in-system.threading.channels-99360/)\n- [Building pipelines with System.Threading.Channels](https://nikiforovall.github.io/dotnet/async/2024/04/21/channels-composition.html)\n\n## 📹 Videos\n- [C# Channels Explained (System.Threading.Channels)](https://www.youtube.com/watch?v=E0Ld7ZgE4oY)\n- [Working with Channels in .NET](https://channel9.msdn.com/Shows/On-NET/Working-with-Channels-in-NET)\n- [Better Parallel Code with C# Channels With Jeremy Clark | Hampton Roads .NET Users Group](https://www.youtube.com/watch?v=VtP31OUJqbY)\n\n## Libraries\n- [Open-NET-Libraries/Open.ChannelExtensions](https://github.com/Open-NET-Libraries/Open.ChannelExtensions) - A set of extensions for optimizing/simplifying System.Threading.Channels usage.\n\n## 🔖 Samples\n- [deniskyashif/trydotnet-channels](https://github.com/deniskyashif/trydotnet-channels) - Interactive examples of common C# concurrency patterns using channels.\n- [NikiforovAll/channels-composition-and-otel](https://github.com/NikiforovAll/channels-composition-and-otel)"
  },
  {
    "path": "docs/csharp/async/concurrency -vs-parallelism.md",
    "content": "# Concurrency Vs Parallelism\n\n## 📝 Articles\n\n- [Concurrency Vs Parallelism](https://hamidmosalla.com/2018/03/16/concurrency-vs-parallelism/)\n- [Concurrency, part 1: Parallelism, Asynchrony, and Multi-threading Explained](https://blog.slaks.net/2014-12-23/parallelism-async-threading-explained/)\n- [Serial vs Parallel task execution](https://www.davidguida.net/serial-vs-parallel-task-execution/)\n- [Difference between Concurrency and Parallelism](https://www.geeksforgeeks.org/difference-between-concurrency-and-parallelism/)\n- [Concurrency vs. Parallelism](http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html)\n- [Concurrency vs. Parallelism — A brief view](https://medium.com/@itIsMadhavan/concurrency-vs-parallelism-a-brief-review-b337c8dac350) ⭐\n- [How to use Multithreading and Multiprocessing - A Beginner's guide to parallel and concurrent programming](https://www.mineiros.io/blog/guide-to-multihreading-and-multiprocessing)\n- [What is the difference between asynchronous programming and multithreading?](https://stackoverflow.com/questions/34680985/what-is-the-difference-between-asynchronous-programming-and-multithreading/34681101#34681101)\n- [Inside the Concurrent Collections](https://www.red-gate.com/simple-talk/blogs/inside-the-concurrent-collections/)\n- [Inside the Concurrent Collections: ConcurrentDictionary](https://www.red-gate.com/simple-talk/blogs/inside-the-concurrent-collections-concurrentdictionary/)\n- [Difference Between Asynchronous Programming and Multithreading in C#](https://code-maze.com/csharp-async-vs-multithreading/)\n- [What is the difference between concurrency, parallelism and asynchronous methods?](https://stackoverflow.com/a/61225458/581476) ⭐\n- [Concurrency vs Parallelism](https://www.baeldung.com/cs/concurrency-vs-parallelism)\n- [Concurrency vs Parallelism](https://freecontent.manning.com/concurrency-vs-parallelism/) ⭐\n- [Asynchronous programming with async and await](https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/) ⭐\n\n## Videos\n- [Concurrency vs Parallelism](https://www.youtube.com/watch?v=FChZP09Ba4E)\n- [Concurrency vs Parallelism | C# Interview Questions | Csharp Interview Questions and Answers](https://www.youtube.com/watch?v=8Je1W82vwYM)\n- [Asynchronous vs Multithreading and Multiprocessing Programming (The Main Difference)](https://www.youtube.com/watch?v=0vFgKr5bjWI)"
  },
  {
    "path": "docs/csharp/async/configure-await.md",
    "content": "# Configure Await\n\n## 📝 Articles\n- [Using ConfigureAwait to improve your application](https://johnthiriet.com/configure-await/)\n- [ConfigureAwait FAQ - Stephen Toub](https://devblogs.microsoft.com/dotnet/configureawait-faq/)\n- [Which do I use, ConfigureAwait True or False?](https://brianlagunas.com/which-do-i-use-configureawait-true-or-false/)\n- [ASP.NET Core SynchronizationContext](https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html)\n- [Async, Await, and ConfigureAwait – Oh My!](https://corebts.com/blog/async-await-configureawait/)\n- [ConfigureAwait in .NET 8](https://blog.stephencleary.com/2023/11/configureawait-in-net-8.html)\n\n## 📺 Videos\n- [Which do I use, ConfigureAwait True or False?](https://www.youtube.com/watch?v=F9_8MJbsnzg)\n- [Understanding ConfigureAwait](https://www.youtube.com/watch?v=avhLfcgIwbg)"
  },
  {
    "path": "docs/csharp/async/continuations.md",
    "content": "# Continuations\n\n## 📝 Articles\n\n- [A Tour of Task, Part 7: Continuations](https://blog.stephencleary.com/2015/01/a-tour-of-task-part-7-continuations.html)\n- [Chaining tasks using continuation tasks](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/chaining-tasks-by-using-continuation-tasks)"
  },
  {
    "path": "docs/csharp/async/cpu-bound.md",
    "content": "# Cpu-Bound\n\n## 📝 Articles\n- [Compute-bound tasks](https://b2n.ir/481224)\n- [Task.Run Etiquette and Proper Usage](https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html)\n- [Should I expose asynchronous wrappers for synchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-asynchronous-wrappers-for-synchronous-methods/)\n- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://b2n.ir/489838)\n- [Task.Run vs Task.Factory.StartNew](https://devblogs.microsoft.com/pfxteam/task-run-vs-task-factory-startnew/)\n- [Implementing the Task-based Asynchronous Pattern](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern)\n- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)"
  },
  {
    "path": "docs/csharp/async/exception-handling.md",
    "content": "# Exception Handling\n\n## 📝 Articles\n\n- [Exception Handling In Asynchronous Code](https://hamidmosalla.com/2018/06/19/exception-handling-in-asynchronous-code/)\n- [Exception Handling in C# Asynchronous Programming](https://www.c-sharpcorner.com/UploadFile/dacca2/asynchronous-programming-in-C-Sharp-5-0-part-4-exception-handlin/)\n- [Exception handling (Task Parallel Library)](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/exception-handling-task-parallel-library)\n- [Asynchrony in C# 5, Part Seven: Exceptions](https://docs.microsoft.com/en-us/archive/blogs/ericlippert/asynchronous-programming-in-c-5-0-part-two-whence-await)\n- [Extreme programming meets systematic testing using Coyote](https://cloudblogs.microsoft.com/opensource/2020/07/14/extreme-programming-meets-systematic-testing-using-coyote/?WT.mc_id=DT-MVP-5003978)\n- [Finding concurrency bugs in a .NET application using Coyote](https://www.meziantou.net/finding-concurrency-bugs-in-a-dotnet-application-using-coyote.htm)\n- [Why exceptions in async methods are “dangerous” in C#](https://medium.com/@alexandre.malavasi/why-exceptions-in-async-methods-are-dangerous-in-c-fda7d382b0ff)\n- [Handling Async Await Exceptions](https://codeopinion.com/handling-async-await-exceptions/)\n- [A Tour of Task, Part 6: Results](https://blog.stephencleary.com/2014/12/a-tour-of-task-part-6-results.html)\n- [.NET 7's ProblemDetailsService](https://seekatar.github.io/2023/01/06/problem-details.html)\n- [Handling Web API Exceptions with ProblemDetails middleware](https://andrewlock.net/handling-web-api-exceptions-with-problemdetails-middleware/)"
  },
  {
    "path": "docs/csharp/async/index.md",
    "content": "- [.Net Async](index.md)\n  - [Async And Await](async-and-await.md)\n  - [Async Best Practice](async-best-practice.md)\n  - [Async Collections](async-collections.md)\n    - [Async Stream And IEnumerableAsync](async-collections/async-stream-and-ienumerableasync.md)\n    - [Blocking Collection](async-collections/blocking-collection.md)\n\n    - [Iterators](async-collections/iterators.md)\n    - [Lazy Initialization](async-collections/lazy-initialization.md)\n  - [Asynchronous Messaging](asynchronous-messaging.md)\n  - [Async Local](asynclocal.md)\n  - [Awaiter](awaiter.md)\n  - [Cancellation](cancellation.md)\n  - [Channels](channels.md)\n  - [Concurrency Vs Parallelism](concurrency-vs-parallelism)\n  - [Configure Await](configure-await.md)\n  - [Continuations.md](continuations.md)\n  - [Cpu Bound](cpu-bound.md)\n  - [Exception Handling](exception-handling)\n  - [Io Bound](io-bound.md)\n  - [Synchronization Context](synchronization-context.md)\n  - [State Machine](state-machine.md)\n  - [TaskCompletionSource](task-completion-source.md)\n  - [Task](task.md)\n  - [ThreadPool](thread-pool.md)\n  - [Thread Safty](thread-safty.md)\n  - [Thread](thread.md)\n  - [ValueTask](valuetask.md)\n  - [Recources](resources.md)"
  },
  {
    "path": "docs/csharp/async/io-bound.md",
    "content": "# Io-Bound\n\n## 📝 Articles\n\n- [Deeper Dive into Tasks for an I/O-Bound Operation](http://docs.microsoft.com/en-us/dotnet/standard/async-in-depth#deeper-dive-into-tasks-for-an-io-bound-operation)\n- [I/O-bound tasks](http://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern#io-bound-tasks)\n- [Why you should not create asynchronous wrappers with Task.Run()](https://www.ben-morris.com/why-you-shouldnt-create-asynchronous-wrappers-with-task-run/)\n- [Asynchronous file access (C#)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/using-async-for-file-access)\n- [C# : TASK PARALLEL LIBRARY (TPL) WITH ASYNC AWAIT AND TASKCOMPLETIONSOURCE FOR ASYNC I/O OPERATIONS](https://b2n.ir/686253)\n- [There Is No Thread](https://blog.stephencleary.com/2013/11/there-is-no-thread.html)\n- [Wrapping Other Asynchronous Patterns in Awaitable Tasks](http://www.damirscorner.com/blog/posts/20130722-WrappingOtherAsynchronousPatternsInAwaitableTasks.html)\n- [Task.Factory.StartNew vs Task.Factory.FromAsync](https://stackoverflow.com/questions/17432306/task-factory-startnew-vs-task-factory-fromasync)\n- [Task.Run vs Task.Factory.StartNew](https://devblogs.microsoft.com/pfxteam/task-run-vs-task-factory-startnew/)\n- [Implementing the Task-based Asynchronous Pattern](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern)\n- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)"
  },
  {
    "path": "docs/csharp/async/parallel-for-foreach.md",
    "content": "# Parallel For & Foreach\n\n## Articles\n- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)\n- [Parallel Foreach async in C#](https://scatteredcode.net/parallel-foreach-async-in-c/)\n- [Parallel.ForEachAsync in .NET 6](https://www.hanselman.com/blog/parallelforeachasync-in-net-6)\n- [Parallel For in C#](https://dotnettutorials.net/lesson/parallel-for-method-csharp/)\n- [Parallel Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel)\n- [Parallel.For Method](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.for)\n- [Parallel.ForEach Method](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.foreach)\n- [Parallel.ForEachAsync Method](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.foreachasync)\n\n## Videos\n- [Is Parallel.For/ForEach in C# actually worth it? (and how to modernize it)](https://www.youtube.com/watch?v=lHuyl_WTpME)\n- [4 new useful APIs in .NET 6](https://www.youtube.com/watch?v=3YCdSvDXGJA)"
  },
  {
    "path": "docs/csharp/async/recources.md",
    "content": "# Resources\n\n- [Stephen Toub Blog](https://devblogs.microsoft.com/pfxteam/author/toub/)\n- [Links about async/await in C#](https://www.meziantou.net/links-async-await-csharp.htm)\n- [Marc Gravell Blog](https://blog.marcgravell.com/)\n\n## Books\n- [Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming 2nd Edition](https://www.amazon.com/Concurrency-Cookbook-Asynchronous-Multithreaded-Programming/dp/149205450X/ref=sr_1_9)\n- [High-Performance Programming in C# and .NET: Understand the nuts and bolts of developing robust, faster, and resilient applications in C# 10.0 and .NET 6](https://www.amazon.com/Mastering-High-Performance-9-0-NET/dp/1800564716)\n- [Pro Asynchronous Programming with .NET 1st ed. Edition](https://www.amazon.com/Asynchronous-Programming-NET-Richard-Blewett-ebook/dp/B00I01FWGS/ref=sr_1_10)\n- [C# 10 in a Nutshell: The Definitive Reference](https://www.amazon.com/C-10-Nutshell-Definitive-Reference/dp/1098121953/ref=d_pd_sbs_sccl_2_5/136-7088342-5443961)\n- [C# in Depth: Fourth Edition 4th Edition](https://www.amazon.com/C-Depth-Jon-Skeet/dp/1617294535/ref=sr_1_13)"
  },
  {
    "path": "docs/csharp/async/semaphoreslim.md",
    "content": "# SemaphoreSlim\n\n## Articles\n- [Using SemaphoreSlim to Make Parallel HTTP Requests in .NET Core](https://mustafatulun.com/using-semaphoreslim-to-make-parallel-http-requests-in-net-core/)\n- [SemaphoreSlim Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphoreslim)\n- [C# – Use SemaphoreSlim for throttling threads](https://makolyte.com/csharp-use-semaphoreslim-for-throttling-threads/)\n- [C# – How to make concurrent requests with HttpClient](https://makolyte.com/csharp-how-to-make-concurrent-requests-with-httpclient/)\n- [Thread synchronisation with SemaphoreSlim and async delegate calls](https://blog.georgekosmidis.net/thread-synchronisation-with-semaphoreslim-and-async-await.html)\n- [Using SemaphoreSlim and HttpClient](https://talkdotnet.wordpress.com/2019/04/16/using-semaphoreslim-and-httpclient/)"
  },
  {
    "path": "docs/csharp/async/state-machine.md",
    "content": "# State Machine\n\n## 📕 Articles\n- [Exploring the async/await State Machine – The Awaitable Pattern](https://vkontech.com/exploring-the-async-await-state-machine-the-awaitable-pattern/)\n- [Exploring the async/await State Machine – Main Workflow and State Transitions](https://vkontech.com/exploring-the-async-await-state-machine-main-workflow-and-state-transitions/)\n- [Exploring the async/await State Machine – Conceptual Implementation](https://vkontech.com/exploring-the-async-await-state-machine-conceptual-implementation/)\n- [Exploring the async/await State Machine – Concrete Implementation](https://vkontech.com/exploring-the-async-await-state-machine-concrete-implementation/)\n- [Exploring the async/await State Machine – Series Overview](https://vkontech.com/exploring-the-async-await-state-machine-series-overview/)\n- [Exploring the async/await State Machine – Synchronization Context](https://vkontech.com/exploring-the-async-await-state-machine-synchronization-context/)\n- [Dissecting the async methods in C#](https://devblogs.microsoft.com/premier-developer/dissecting-the-async-methods-in-c/)\n- [Understanding async/await State Machine in .NET](https://mykkon.work/async-state-machine/)"
  },
  {
    "path": "docs/csharp/async/sync-over-async.md",
    "content": "# Sync Over Async\n\n## Articles\n- [Should I expose synchronous wrappers for asynchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-synchronous-wrappers-for-asynchronous-methods/)\n- [Should I expose asynchronous wrappers for synchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-asynchronous-wrappers-for-synchronous-methods/)\n- [Why you shouldn’t create asynchronous wrappers with Task.Run()](https://www.ben-morris.com/why-you-shouldnt-create-asynchronous-wrappers-with-task-run/)\n- [Task.Run Etiquette and Proper Usage](https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html)\n- [Task.Run Etiquette Examples: Don't Use Task.Run for the Wrong Thing](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-using.html)\n- [Task.Run Etiquette Examples: Don't Use Task.Run in the Implementation](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-dont-use.html)\n## Videos\n- [Fixing sync over async issues in .NET / C# with Visual Studio 2022](https://www.youtube.com/watch?v=Yvt83lPRCys)"
  },
  {
    "path": "docs/csharp/async/synchronization-context.md",
    "content": "# Synchronization Context\n\n## 📝 Articles\n- [Await, SynchronizationContext, and Console Apps](https://devblogs.microsoft.com/pfxteam/await-synchronizationcontext-and-console-apps/)\n- [ASP.NET Core SynchronizationContext](https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html)\n- [What Is SynchronizationContext](https://hamidmosalla.com/2018/06/24/what-is-synchronizationcontext/)\n- [Exploring the async/await State Machine – Synchronization Context](https://vkontech.com/exploring-the-async-await-state-machine-synchronization-context/)\n- [ExecutionContext vs SynchronizationContext](https://devblogs.microsoft.com/pfxteam/executioncontext-vs-synchronizationcontext/)"
  },
  {
    "path": "docs/csharp/async/task-completion-source.md",
    "content": "# TaskCompletionSource\n\n## 📝 Articles\n- [Should I expose asynchronous wrappers for synchronous methods?](https://b2n.ir/959223)\n- [Using TaskCompletionSource to change the semantics of async calls](http://vannevel.net/posts/using-taskcompletionsource-to-change-the-semantics-of-async-calls/)\n- [TaskCompletionSource in real life (part 1 of 2)](https://www.fmork.net/software/writing/2012/TaskCompletionSource-in-real-life-(part-1-of-2).htm)\n- [TaskCompletionSource in real life (part 2 of 2)](https://www.fmork.net/software/writing/2012/TaskCompletionSource-in-real-life-(part-2-of-2).htm)\n- [C# : TASK PARALLEL LIBRARY (TPL) WITH ASYNC AWAIT AND TASKCOMPLETIONSOURCE FOR ASYNC I/O OPERATIONS](https://www.techblogcity.com/2019/06/05/task-parallel-library-with-async-await-and-taskcompletionsource/)\n- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)\n- [The Nature of TaskCompletionSource](https://devblogs.microsoft.com/pfxteam/the-nature-of-taskcompletionsourcetresult/) - Stephen Toub\n- [When should TaskCompletionSourceT be used?](https://stackoverflow.com/questions/15316613/when-should-taskcompletionsourcet-be-used)\n- [Instance of Task class (Task.Factory.StartNew or TaskCompletionSource)](https://stackoverflow.com/questions/5674895/instance-of-task-class-task-factory-startnew-or-taskcompletionsource)\n- [Wrapping Other Asynchronous Patterns in Awaitable Tasks](https://b2n.ir/871581)\n- [The danger of TaskCompletionSource class](https://devblogs.microsoft.com/premier-developer/the-danger-of-taskcompletionsourcet-class/)\n- [Mechanisms for Creating Tasks](https://devblogs.microsoft.com/pfxteam/mechanisms-for-creating-tasks/)\n- [Wrap Event based functions into awaitable Tasks - Meet TaskCompletionSource](https://steven-giesel.com/blogPost/9ad214ff-1f32-4ed0-a5ac-1b996e1e9a68)\n\n## Videos\n- [When and how you can use TaskCompletionSource in Async?](https://www.youtube.com/watch?v=OOPOHTEhiUg)"
  },
  {
    "path": "docs/csharp/async/thread-pool.md",
    "content": "# ThreadPool\n\n## 📕 Articles\n- [Thread Pooling Step By Step](https://www.learncsharptutorial.com/threadpooling-csharp-example.php)\n- [Asynchronous Programming with Async and Await in ASP.NET Core](https://code-maze.com/asynchronous-programming-with-async-and-await-in-asp-net-core/)\n- [The Thread Pool and Asynchronous Methods](https://jonskeet.uk/csharp/threads/threadpool.html)\n- [The managed thread pool](https://docs.microsoft.com/en-us/dotnet/standard/threading/the-managed-thread-pool)\n- [Thread Pooling in C#](https://dotnettutorials.net/lesson/thread-pooling/)\n- [C# Threadpool](https://codewithshadman.com/thread-pool-in-csharp/)\n## 📺 Videos\n- [Diagnosing thread pool exhaustion issues in .NET Core apps](https://www.youtube.com/watch?v=isK8Cel3HP0)\n- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q&t=923s)"
  },
  {
    "path": "docs/csharp/async/thread.md",
    "content": "# Thread\n\n## 📝 Articles\n- [Threading in C#: GETTING STARTED](https://www.albahari.com/threading/)\n- [Multithreading Basics](http://diranieh.com/NETThreading/MultithreadingBasics.htm)\n- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/Article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)\n- [.NET ThreadPool starvation, and how queuing makes it worse](https://techblog.criteo.com/net-threadpool-starvation-and-how-queuing-makes-it-worse-512c8d570527)\n\n## Videos\n- [C# Threading Training | C# Interview Questions | Csharp Thread Step by Step | C# Threading Tutorial](https://www.youtube.com/watch?v=tphdNUTwk9U)\n- [C#/.NET Fundamentals Training | C# Tutorial | Threads in C# | Async & Await in C# | C# for Beginners](https://www.youtube.com/watch?v=j3cNlZM9kgo)\n- [Async vs Thread | C# Interview Questions with Answers | Csharp Interview Questions](https://www.youtube.com/watch?v=G3tz9rxts8E)"
  },
  {
    "path": "docs/csharp/async/tpl-tap.md",
    "content": "# TPL & TAP\n\n## 📕 Articles\n- [Task-based asynchronous programming](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-based-asynchronous-programming)\n- [Task Parallel Library (TPL)](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-parallel-library-tpl)\n- [Implementing the Task-based Asynchronous Pattern](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern)\n- [Mechanisms for Creating Tasks](https://devblogs.microsoft.com/pfxteam/mechanisms-for-creating-tasks/)\n- [Task Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task)\n- [New Task APIs in .NET 4.6](https://devblogs.microsoft.com/pfxteam/new-task-apis-in-net-4-6/) \n- [Tasks, Monads, and LINQ](https://devblogs.microsoft.com/pfxteam/tasks-monads-and-linq/)\n- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/Article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)\n## Videos\n- [What is TPL ( Task Parallel Library) and how it differs from threads (c# interview questions) ?](https://www.youtube.com/watch?v=No7QqSc5cl8)"
  },
  {
    "path": "docs/csharp/async/valuetask.md",
    "content": "# ValueTask\n\n## 📝 Articles\n- [ValueTask Struct](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.valuetask)\n- [Understanding the Whys, Whats, and Whens of ValueTask](https://devblogs.microsoft.com/dotnet/understanding-the-whys-whats-and-whens-of-valuetask/)\n- [ValueTask Restrictions - Stephen Cleary](https://blog.stephencleary.com/2020/03/valuetask.html)\n- [How to use ValueTask in C#](https://morioh.com/p/da3a36ccbe3b)\n- [Task, Async Await, ValueTask, IValueTaskSource and how to keep your sanity in modern .NET world](https://blog.scooletz.com/2018/05/14/task-async-await-valuetask-ivaluetasksource-and-how-to-keep-your-sanity-in-modern-net-world/)\n- [.NET 5 and pooling for ValueTasks - Scooletz](https://blog.scooletz.com/2020/06/01/pooling-for-value-tasks-in-net5)\n\n## 📹 Videos\n- [Understanding how to use Task and ValueTask](https://www.youtube.com/watch?v=fj-LVS8hqIE)\n- [When to use ValueTask instead of Task and save precious memory in C#](https://www.youtube.com/watch?v=mEhkelf0K6g)\n- [Task vs ValueTask: When Should I use ValueTask?](https://www.youtube.com/watch?v=dCj7-KvaIJ0)\n- [C# Language Highlights ValueTask](https://www.youtube.com/watch?v=IN4dRdKlISI)"
  },
  {
    "path": "docs/csharp/boxing.md",
    "content": "# Boxing\n\n## 📺 Videos\n- [What is Boxing in C# and how it affects memory and speed](https://www.youtube.com/watch?v=GVJ5EUhWQBc)"
  },
  {
    "path": "docs/csharp/closure.md",
    "content": "# Closure\n\n## 📕 Articles\n- [Delegates, Lambda Expressions & Closures in C#](https://www.alanzucconi.com/2021/03/13/delegates-lambda-closures/)\n- [Understanding Closures in C#](https://codinghelmet.com/articles/understanding-closures-in-cs)\n- [A Simple Explanation of C# Closures](https://www.simplethread.com/c-closures-explained/)\n- [Understanding C# Features (6) Closure](https://weblogs.asp.net/dixin/understanding-csharp-features-6-closure)\n- [The Intuitive Guide to Understanding Closures in C#](https://vkontech.com/the-intuitive-guide-to-understanding-closures-in-c/)\n- [C# – Closures capture variables, not values](https://makolyte.com/csharp-closures-capture-variables-not-values/)\n- [Closures and the Lambdas](https://app.pluralsight.com/guides/closures-and-lambdas-csharp)\n- [What's In A Closure?](https://web.archive.org/web/20150707082707/http://diditwith.net/PermaLink,guid,235646ae-3476-4893-899d-105e4d48c25b.aspx)\n## 📺 Videos\n- [What are Closures in C# and why you NEED to know about them](https://www.youtube.com/watch?v=h3MsnBRqzcY)\n"
  },
  {
    "path": "docs/csharp/collections/collection-data-structure.md",
    "content": "# Collections & Data Structures\n\n## 📘 Resources\n- [An overview of c# collections - RIP Tutorial](https://riptutorial.com/csharp/topic/2344/an-overview-of-csharp-collections)\n\n## 📕 Articles\n- [Collections and Data Structures](https://docs.microsoft.com/en-us/dotnet/standard/collections/)\n- [Selecting a Collection Class](https://docs.microsoft.com/en-us/dotnet/standard/collections/selecting-a-collection-class)\n- [Know your data structures – List vs Dictionary vs HashSet](https://www.davidguida.net/know-your-data-structures-list-vs-dictionary-vs-hashset/)\n- [Thread-Safe Collections](https://docs.microsoft.com/en-us/dotnet/standard/collections/thread-safe/)\n- [Fastest way to enumerate a List<T>](https://www.meziantou.net/fastest-way-to-enumerate-a-list-t.htm)\n- [The .NET Dictionary](https://www.red-gate.com/simple-talk/blogs/the-net-dictionary/)\n- [5 C# Collections that Every C# Developer Must Know](https://programmingwithmosh.com/net/csharp-collections/)\n- [Return the most specific type, accept the most generic type](https://enterprisecraftsmanship.com/posts/return-the-most-specific-type/)\n- [IEnumerable interface in .NET and LSP](https://enterprisecraftsmanship.com/posts/ienumerable-interface-in-net-and-lsp/)\n- [IEnumerable vs IReadOnlyList](https://enterprisecraftsmanship.com/posts/ienumerable-vs-ireadonlylist/)\n- [What types should I use to pass collections in C#?](https://markheath.net/post/passing-collections-csharp)\n- [What types should I use to pass collections in C#?](https://markheath.net/post/passing-collections-csharp)\n- [Guidelines for Collections](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/guidelines-for-collections)\n- [Array, List, Collection, Set, ReadOnlyList - what? A comprehensive and exhaustive list of collection-like types](https://steven-giesel.com/blogPost/f11aadf5-5a55-4742-b046-28dddd0b3ebf)\n## Libraries\n- [dadhi/ImTools](https://github.com/dadhi/ImTools) - Fast and memory-efficient immutable collections and helper data structures\n- [NetFabric/NetFabric.Hyperlinq](https://github.com/NetFabric/NetFabric.Hyperlinq) - High performance LINQ implementation with minimal heap allocations. Supports enumerables, async enumerables, arrays and Span<T>."
  },
  {
    "path": "docs/csharp/collections/enumerable.md",
    "content": "# Enumerable\n\n## 📕 Articles\n- [Enumeration in .NET](https://blog.usejournal.com/enumeration-in-net-d5674921512e)\n- [Enumeration in .NET II — Count()](https://antao-almada.medium.com/enumeration-in-net-ii-9fd8e72cf83f)\n- [Enumeration in .NET III — Enumerable.Empty<T>()](https://antao-almada.medium.com/enumeration-in-net-iii-enumerable-empty-t-1bfcd53739a7)\n- [Enumeration in .NET IV — Finding an item](https://antao-almada.medium.com/enumeration-iv-finding-an-item-ff1dc4a7467d)\n- [Enumeration in .NET V ToList() or not ToList()?](https://antao-almada.medium.com/enumeration-in-net-v-tolist-and-toarray-395ce615ecfd)\n- [Array iteration performance in C# — Branching and parallelization](https://antao-almada.medium.com/array-iteration-performance-in-c-branching-and-parallelization-d0705adbf425)\n- [Array iteration performance in C#](https://antao-almada.medium.com/array-iteration-performance-in-c-f9801a2c7a3c)\n- [Fastest way to enumerate a List<T>](https://www.meziantou.net/fastest-way-to-enumerate-a-list-t.htm)\n- [Return the most specific type, accept the most generic type](https://enterprisecraftsmanship.com/posts/return-the-most-specific-type/)\n- [What types should I use to pass collections in C#?](https://markheath.net/post/passing-collections-csharp)\n- [IEnumerable<> vs List<> as a parameter](https://stackoverflow.com/questions/65570281/ienumerable-vs-list-as-a-parameter/65570426#65570426)\n- [ITERATE, DAMN YOU!](https://codeblog.jonskeet.uk/2010/07/27/iterate-damn-you/)\n- [Generic types are for arguments, specific types are for return values](https://enterprisecraftsmanship.com/posts/generic-types-arguments-specific-types-return-values/)"
  },
  {
    "path": "docs/csharp/collections/hashset.md",
    "content": "# HashSet"
  },
  {
    "path": "docs/csharp/compiler-lowering.md",
    "content": "# Compiler & Lowering\n\n## Articles\n- [Lowering in the C# Compiler (and what happens when you misuse it)](https://mattwarren.org/2017/05/25/Lowering-in-the-C-Compiler/)\n- ['Lowering' in the C# Compiler (and what happens when you misuse it)](https://dev.to/mattwarren/lowering-in-the-c-compiler-and-what-happens-when-you-misuse-it)\n- [Lowering in C# (JIT)](https://libredd.it/r/csharp/comments/l3glbk/lowering_in_c_jit/)\n- [Lowering in language design, part one](https://ericlippert.com/2014/04/28/lowering-in-language-design-part-one/)\n- [Lowering in language design, part two](https://ericlippert.com/2014/05/01/lowering-in-language-design-part-two/)\n- [C# Lowering](https://steven-giesel.com/blogPost/69dc05d1-9c8a-4002-9d0a-faf4d2375bce)\n- [What is the difference between C#, .NET, IL and JIT?](https://steven-giesel.com/blogPost/aa23a1c9-8ab2-4b05-9bd2-52624af7b684)\n\n## Videos\n- [Lowering in C#: What's really going on in your code? - David Wengier](https://www.youtube.com/watch?v=pxDczZYe6F8)\n- [Lowering in C# and the ability to predict code performance](https://www.youtube.com/watch?v=3oGBMGDRXVw)\n- [Lowering in the C# Compiler](https://www.youtube.com/watch?v=1n_C30t363U)"
  },
  {
    "path": "docs/csharp/conditional-compilation-assert.md",
    "content": "# Conditional Compilation && Assert\n\n## Videos\n- [Write safer C# with conditional compilation](https://www.youtube.com/watch?v=ErrABoJ9HZw)\n- [Debug.Assert Everyone!](https://lowleveldesign.org/2018/02/01/debug-assert-everyone/)"
  },
  {
    "path": "docs/csharp/conditional-compilation.md",
    "content": "# Conditional Compilation & Assert\n\n## Videos\n- [Write safer C# with conditional compilation](https://www.youtube.com/watch?v=ErrABoJ9HZw)\n- [Debug.Assert Everyone!](https://lowleveldesign.org/2018/02/01/debug-assert-everyone/)"
  },
  {
    "path": "docs/csharp/constant.md",
    "content": "# Constant\n\n## 📕 Articles\n- [Group Your Constants and Enums](https://ardalis.com/group-your-constants-and-enums/?utm_sq=gkum31ably)"
  },
  {
    "path": "docs/csharp/covariance.md",
    "content": "# Covariance\n\n## Articles\n- [Covariance and Contravariance in .NET C#](https://levelup.gitconnected.com/covariance-and-contravariance-in-net-c-c2b8576b2155)"
  },
  {
    "path": "docs/csharp/csharp.md",
    "content": "# C#\n\n## Resources\n- [Learn to code C#](https://dotnet.microsoft.com/en-us/learntocode)\n\n## 📕 Articles\n- [Introducing The .NET Coding Pack for VS Code - Getting Started with C# for Beginners](https://www.hanselman.com/blog/introducing-the-net-coding-pack-for-vs-code-getting-started-with-c-for-beginners)\n- [CREATING, INSPECTING AND DECOMPILING THE WORLD’S SMALLEST C# PROGRAM](https://www.stevejgordon.co.uk/creating-inspecting-decompiling-the-worlds-smallest-csharp-program)\n- [What is the difference between C#, .NET, IL and JIT?](https://steven-giesel.com/blogPost/aa23a1c9-8ab2-4b05-9bd2-52624af7b684)\n\n## Videos\n- [Get Started Quick with the .NET Coding Pack for VS Code](https://www.youtube.com/watch?v=gmMCAyNcB3Q)\n\n## Samples\n- [dotnet/csharp-notebooks](https://github.com/dotnet/csharp-notebooks) - Get started learning C# with C# notebooks powered by .NET Interactive and VS Code."
  },
  {
    "path": "docs/csharp/deconstruction.md",
    "content": "# Deconstruction\n\n## Articles\n- [Deconstructing tuples and other types](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/deconstruct)\n- [Great new features in C# for a returning .NET dev, deconstruct, pattern matching and records](https://softchris.github.io/pages/dotnet-csharp-news.html#references)\n- [Deconstructors for non-tuple types in C# 7.0](https://andrewlock.net/deconstructors-for-non-tuple-types-in-c-7-0/)\n- [Deconstructing in record types](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/deconstruct#record-types)"
  },
  {
    "path": "docs/csharp/enum.md",
    "content": "# Enum\n\n## 📕 Articles\n- [Smart enums / Type-safe enums in .NET](https://www.meziantou.net/smart-enums-type-safe-enums-in-dotnet.htm)\n- [Series: Enumeration Classes – DDD and beyond](https://ankitvijay.net/2020/06/12/series-enumeration-classes-ddd-and-beyond/)\n- [Enumeration classes](https://lostechies.com/jimmybogard/2008/08/12/enumeration-classes/)\n- [Use enumeration classes instead of enum types](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/enumeration-classes-over-enum-types)\n- [Introduction to Enumeration Classes](https://ankitvijay.net/2020/05/21/introduction-enumeration-class/)\n- [Enumeration class and JSON Serialization](https://ankitvijay.net/2020/06/01/enumeration-class-serialization/)\n- [Reference data as code](https://enterprisecraftsmanship.com/posts/reference-data-as-code/)\n- [Enum Alternatives in C#](https://ardalis.com/enum-alternatives-in-c/)\n- [Listing Strongly Typed Enum Options in C#](https://ardalis.com/listing-strongly-typed-enum-options-in-c/)\n\n## 📦 Libraries\n- [ardalis/SmartEnum](https://github.com/ardalis/SmartEnum) - A base class for quickly and easily creating strongly typed enum replacements in C#.\n"
  },
  {
    "path": "docs/csharp/extension-methods.md",
    "content": "# Extension Methods\n\n## 📕 Articles\n- [Extension Methods Best Practices (Extension Methods Part 6)](https://devblogs.microsoft.com/vbteam/extension-methods-best-practices-extension-methods-part-6/)\n- [Extension Methods Guidelines in C# .NET](https://michaelscodingspot.com/extension-methods/)\n- [EXTENSION METHOD NAMING CONVENTIONS BEST PRACTICES](https://www.hack-the-planet.net/2010/01/13/extension-method-naming-conventions-best-practices/)\n- [The 6 best practices for writing LINQ extension methods](http://firstclassthoughts.co.uk/Articles/Design/LINQExtensionMethodsBestPractices.html)"
  },
  {
    "path": "docs/csharp/generic.md",
    "content": "# Generic\n\n## 📕 Articles\n- [Difference between IsGenericType and IsGenericTypeDefinition](https://stackoverflow.com/questions/31772922/difference-between-isgenerictype-and-isgenerictypedefinition)\n- [Open and Closed Generic Types in C#](https://www.pluralsight.com/guides/open-and-closed-generic-types-in-c)\n- [Reflection and Generic Types](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/reflection-and-generic-types)\n- [How to: Examine and Instantiate Generic Types with Reflection](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/how-to-examine-and-instantiate-generic-types-with-reflection)\n- [Open Generics in ASPNET Core Dependency Injection -Part2](https://www.codeguru.co.in/2021/05/open-generics-in-aspnet-core-dependency_30.html)\n- [What exactly is an “open generic type” in .NET?](https://stackoverflow.com/questions/2173107/what-exactly-is-an-open-generic-type-in-net)\n- [Partially closed generic types](https://lostechies.com/jimmybogard/2009/09/01/partially-closed-generic-types/)\n- [Generics: open vs closed types](https://blogs.msmvps.com/luisabreu/blog/2011/03/14/generics-open-vs-closed-types/)\n- [Detect if a generic type is open?](https://stackoverflow.com/questions/25811514/detect-if-a-generic-type-is-open)\n- [Fluent Generics in C#](https://tyrrrz.me/blog/fluent-generics)\n"
  },
  {
    "path": "docs/csharp/implicit-explicit-operators.md",
    "content": "# Implicit & Explicit Operators\n\n## 📺 Videos\n- [Automatic type conversion with Implicit and Explicit operators in C#](https://www.youtube.com/watch?v=-6NpI15erqY&ab_channel=NickChapsas)"
  },
  {
    "path": "docs/csharp/index.md",
    "content": "- [C#](csharp.md)\n  - [Closure](closure.md)\n  - [Collections & Data Structures](collection-data-structure.md)\n  - [Constant](constant.md)\n  - [Versions](versions/versioning.md)\n\t  - [C# 7](versions/7.md)\n\t  - [C# 8](versions/8.md)\n\t  - [C# 9](versions/9.md)\n  - [Reflection](reflection.md)\n  - [LINQ](linq.md)\n  - [Boxing](boxing.md)\n  - [Null Check](null-check.md)\n  - [Implicit & Explicit Operators](implicit-explicit-operators.md)\n  - [Types](types.md)"
  },
  {
    "path": "docs/csharp/linq.md",
    "content": "# LINQ\n\n## Resources\n- [EDULINQ – THE E-BOOK](https://codeblog.jonskeet.uk/category/edulinq/)\n\n## 📕 Articles\n- [Monadic Comprehension Syntax via LINQ in C#](https://tyrrrz.me/blog/monadic-comprehension-via-linq)\n- [Evolution of An Async LINQ operator](http://blog.i3arnon.com/2021/07/12/async-linq-operator/)\n- [Calling functions in LINQ queries](http://tomasp.net/blog/linq-expand.aspx/)\n- [LINQ: Building an IQueryable provider series](https://docs.microsoft.com/en-us/archive/blogs/mattwar/linq-building-an-iqueryable-provider-series)\n- [LINQ explained with sketches](https://steven-giesel.com/blogPost/d65c5411-a69b-489f-b73f-18ce0ed8678d)\n## 📺 Videos\n- [When LINQ is not LINQ](https://www.youtube.com/watch?v=t2NA1hHT1JE)\n\n## Libraries\n- [NetFabric/NetFabric.Hyperlinq](https://github.com/NetFabric/NetFabric.Hyperlinq) - High performance LINQ implementation with minimal heap allocations. Supports enumerables, async enumerables, arrays and Span<T>.\n- [dotnet/reactive](https://github.com/dotnet/reactive) - The Reactive Extensions for .NET\n- [reegeek/StructLinq](https://github.com/reegeek/StructLinq) - Implementation in C# of LINQ concept with struct\n- [nessos/Streams](https://github.com/nessos/Streams) - A lightweight F#/C# library for efficient functional-style pipelines on streams of data.\n- [YairHalberstadt/SpanLinq](https://github.com/YairHalberstadt/SpanLinq) - Linq for Span<T> using SourceGenerators\n- [kevin-montrose/LinqAF](https://github.com/kevin-montrose/LinqAF) - Low allocation re-implementation of LINQ-to-Objects\n- [Zaczero/LinqFasterer](https://github.com/Zaczero/LinqFasterer) - Set of fast LINQ-like extension methods for arrays and lists. Fine-tune your code for the maximum performance.\n- [jackmott/LinqFaster](https://github.com/jackmott/LinqFaster) - Linq-like extension functions for Arrays, Span<T>, and List<T> that are faster and allocate less.\n- [manofstick/Cistern.ValueLinq](https://github.com/manofstick/Cistern.ValueLinq)\n- [mattwar/iqtoolkit](https://github.com/mattwar/iqtoolkit) - A Toolkit for building LINQ IQueryable providers. This is the official move of my IQToolkit project from CodePlex.\n- [i3arnon/MoreAsyncLINQ](https://github.com/i3arnon/MoreAsyncLINQ) - Additional async LINQ to objects operators for IAsyncEnumerable<T>\n## 🚀 Samples\n- [NetFabric/LinqBenchmarks](https://github.com/NetFabric/LinqBenchmarks) - Benchmarking LINQ and alternative implementations"
  },
  {
    "path": "docs/csharp/locking/lock.md",
    "content": "# Lock\n\n## Articles\n- [Thread Synchronization Using Locking in C#](https://dotnettutorials.net/lesson/locking-in-multithreading/)\n- [BASIC SYNCHRONIZATION: Locking](https://www.albahari.com/threading/part2.aspx#_Locking)\n- [lock statement (C# reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/statements/lock)\n- [Async Waiting inside C# Locks](https://blog.cdemi.io/async-waiting-inside-c-sharp-locks/)"
  },
  {
    "path": "docs/csharp/locking/monitor.md",
    "content": "# Monitor\n\n## Articles\n- [Monitor Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.monitor)\n- [BASIC SYNCHRONIZATION - Locking](https://www.albahari.com/threading/part2.aspx#_Locking)"
  },
  {
    "path": "docs/csharp/locking/mutex.md",
    "content": "# Mutex\n\n## Articles\n- [Mutex Class in C#](https://dotnettutorials.net/lesson/mutex-in-multithreading/)\n- [Mutex Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.mutex)\n- [BASIC SYNCHRONIZATION - Mutex](https://www.albahari.com/threading/part2.aspx#_Mutex)"
  },
  {
    "path": "docs/csharp/locking/semaphore.md",
    "content": "# Semaphore \n\n## Articles\n- [Semaphore Class in C#](https://dotnettutorials.net/lesson/semaphore-in-multithreading/)\n- [Semaphore Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphore)\n- [SemaphoreSlim Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphoreslim)\n- [C# Semaphore](https://dotnetpattern.com/threading-semaphore)\n- [BASIC SYNCHRONIZATION - Semaphore](https://www.albahari.com/threading/part2.aspx#_Semaphore)\n- [C# – Use SemaphoreSlim for throttling threads](https://makolyte.com/csharp-use-semaphoreslim-for-throttling-threads/)\n- [C# – How to make concurrent requests with HttpClient](https://makolyte.com/csharp-how-to-make-concurrent-requests-with-httpclient/)\n- [C# – Use SemaphoreSlim for throttling threads](https://makolyte.com/csharp-use-semaphoreslim-for-throttling-threads/)\n- [Async Waiting inside C# Locks](https://blog.cdemi.io/async-waiting-inside-c-sharp-locks/)\n- [What are the practical uses of semaphores?](https://stackoverflow.com/questions/21736741/what-are-the-practical-uses-of-semaphores)\n\n## Videos\n- [Semaphore Explained C#](https://www.youtube.com/watch?v=GKjM4AX8NME)"
  },
  {
    "path": "docs/csharp/locking/thread-safty.md",
    "content": "# Thread Safey\n\n## 📝 Articles\n\n- [Thread Safety](https://hamidmosalla.com/2018/07/09/thread-safety/)\n- [What is this thing you call \"thread safe\"?](https://blogs.msdn.microsoft.com/ericlippert/2009/10/19/what-is-this-thing-you-call-thread-safe/)\n- [A guide to writing real-life thread-safe code](https://www.educative.io/answers/a-guide-to-writing-real-life-thread-safe-code)\n- [Making the calculator thread-safe](https://andrewlock.net/creating-a-simple-moving-average-calculator-in-csharp-2-making-the-calculator-thread-safe/)\n- [BASIC SYNCHRONIZATION: Thread Safety](https://www.albahari.com/threading/part2.aspx#_Thread_Safety)\n- [What is this thing you call \"thread safe\"?](https://docs.microsoft.com/en-us/archive/blogs/ericlippert/what-is-this-thing-you-call-thread-safe)\n- [The no-lock deadlock](https://ericlippert.com/2013/01/31/the-no-lock-deadlock/)\n## Videos\n- [c# (Csharp) and .NET :- Multithreading and thread safe objects.](https://www.youtube.com/watch?v=J-jNcUhi9xw)"
  },
  {
    "path": "docs/csharp/null-check.md",
    "content": "# Null Check\n\n## Articles\n- [What's new in C# 8.0](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8)\n- [The 8 most missing features in C#](https://tooslowexception.com/the-8-most-missing-features-in-c/)\n- [Nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references)\n- [Tutorial: Migrate existing code with nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/upgrade-to-nullable-references)\n- [How Do C#’s Nullable Reference Types Work?](https://www.cloudsavvyit.com/6649/how-do-cs-nullable-reference-types-work/)\n- [Nullable Reference types in C# – Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)\n- [C# 8.0 nullable references: non-nullable is the new default](https://endjin.com/blog/2020/04/dotnet-csharp-8-nullable-references-non-nullable-is-the-new-default)\n- [C# 8.0 nullable references: transcending the type system with AllowNull](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-transcending-the-type-system-with-allownull)\n- [C# 8.0 nullable references: get better results with nullability attributes](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-get-better-results-with-nullability-attributes)\n- [C# 8.0 nullable references: transcending the type system with Allow](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-transcending-the-type-system-with-allownull)\n- [C# 8.0 nullable references: NotNull](https://endjin.com/blog/2020/06/dotnet-csharp-8-nullable-references-notnull)\n- [C# 8.0 nullable references: conditional post-conditions](https://endjin.com/blog/2020/07/dotnet-csharp-8-nullable-references-conditional-post-conditions)\n- [C# 11.0 Preview: Parameter Null Checking](https://jaliyaudagedara.blogspot.com/2022/03/c-110-preview-parameter-null-checking.html)\n- [Bite-Size C# 10 - Null Parameter Checking](https://exceptionnotfound.net/bite-size-csharp-10-null-parameter-checking/)\n- [What’s New in C# 10: Simplify Argument Null Checking Code](http://dontcodetired.com/blog/post/Whats-New-in-C-10-Simplify-Argument-Null-Checking-Code)\n- [C# 11.0 preview: parameter null checking](https://endjin.com/blog/2022/02/csharp-11-preview-parameter-null-checking)\n- [C# 10.0 improves handling of nullable references in generic types - no more AllowNull](https://endjin.com/blog/2022/02/csharp-10-generics-nullable-references-improvements-allownull)\n- [C#: Different ways to Check for Null](https://www.thomasclaudiushuber.com/2020/03/12/c-different-ways-to-check-for-null/)\n## Videos\n- [No more null exceptions in C# with null-coalescing, ?? and ??= operators](https://www.youtube.com/watch?v=7KJmdE93HkI)\n- [How null checks have changed in C#](https://www.youtube.com/watch?v=lRUfRlp5BXc)"
  },
  {
    "path": "docs/csharp/nullable-reference-types.md",
    "content": "# Nullable Reference Types \n\n## 📕 Articles\n- [C#: Different ways to Check for Null](https://www.thomasclaudiushuber.com/2020/03/12/c-different-ways-to-check-for-null/)\n- [Different ways to check if a value is null in C#](https://www.meziantou.net/null-check-in-csharp.htm)\n- [Nullable Reference types in C# - Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)\n- [Nullable reference types (C# reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-reference-types)\n- [Tutorial: Express your design intent more clearly with nullable and non-nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/nullable-reference-types)\n- [How Do C#’s Nullable Reference Types Work?](https://www.cloudsavvyit.com/6649/how-do-cs-nullable-reference-types-work/)\n- [Nullable Reference types in C# – Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)\n- [C# 8: Nullable Reference Types](https://www.meziantou.net/csharp-8-nullable-reference-types.htm)\n- [How to use Nullable Reference Types in .NET Standard 2.0 and .NET Framework](https://www.meziantou.net/how-to-use-nullable-reference-types-in-dotnet-standard-2-0-and-dotnet-.htm)\n- [How to use C# 8 Indices and Ranges in .NET Standard 2.0 and .NET Framework](https://www.meziantou.net/how-to-use-csharp-8-indices-and-ranges-in-dotnet-standard-2-0-and-dotn.htm)\n- [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/)\n- [C# 8.0 nullable references: transcending the type system with AllowNull](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-transcending-the-type-system-with-allownull)\n- [C# 8.0 nullable references: non-nullable is the new default](https://endjin.com/blog/2020/04/dotnet-csharp-8-nullable-references-non-nullable-is-the-new-default)\n- [C# 8.0 nullable references: inferred (non-)nullness](https://endjin.com/blog/2020/04/dotnet-csharp-8-nullable-references-inferred-non-nullness)\n- [C# 8.0 nullable references: getting started in an existing codebase](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-getting-started-in-an-existing-codebase)\n- [C# 8.0 nullable references: get better results with nullability attributes](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-get-better-results-with-nullability-attributes)\n- [C# 8.0 nullable references: transcending the type system with Allow](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-transcending-the-type-system-with-allownull)\n- [C# 8.0 nullable references: NotNull](https://endjin.com/blog/2020/06/dotnet-csharp-8-nullable-references-notnull)\n- [C# 8.0 nullable references: conditional post-conditions](https://endjin.com/blog/2020/07/dotnet-csharp-8-nullable-references-conditional-post-conditions)\n- [Nullable reference types in C# - Migrating to nullable reference types - Part 1](https://blog.maartenballiauw.be/post/2022/04/11/nullable-reference-types-in-csharp-migrating-to-nullable-reference-types-part-1.html)\n- [Internals of C# nullable reference types - Migrating to nullable reference types - Part 2](https://blog.maartenballiauw.be/post/2022/04/19/internals-of-csharp-nullable-reference-types-migrating-to-nullable-reference-types-part-2.html)\n- [Annotating your C# code - Migrating to nullable reference types - Part 3](https://blog.maartenballiauw.be/post/2022/04/25/annotating-your-csharp-code-migrating-to-nullable-reference-types-part-3.html)\n- [Techniques and tools to update your C# project - Migrating to nullable reference types - Part 4](https://blog.maartenballiauw.be/post/2022/05/03/techniques-and-tools-to-update-your-csharp-project-migrating-to-nullable-reference-types-part-4.html)\n- [Getting Started on Nullable Reference Types](https://thecodeblogger.com/2022/05/26/getting-started-on-nullable-reference-types/)\n- [Approaches for Resolving Nullable Warnings on Existing Codebase](https://thecodeblogger.com/2022/05/31/approaches-for-resolving-nullable-warnings-on-existing-codebase/)\n- [Tips for Estimating the Null Reference Migrations](https://thecodeblogger.com/2022/06/09/tips-for-estimating-the-null-reference-migrations/)\n- [Nullable Reference Migration – How to decide the nullability ?](https://thecodeblogger.com/2022/08/16/nullable-reference-migration-how-to-decide-the-nullability/)\n## Videos\n- [C# Nullable reference types – No more null reference exceptions!](https://www.youtube.com/watch?v=NDweaZZZcbc)"
  },
  {
    "path": "docs/csharp/pattern-matching.md",
    "content": "# Pattern Matching\n\n## Videos\n- [C# 9.0: Pattern Matching](https://www.youtube.com/watch?v=9lvx6mzCAE4)"
  },
  {
    "path": "docs/csharp/record.md",
    "content": "# Record\n\n## 📕 Articles\n- [Create record types](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/records)\n- [Records (C# reference)](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/record)\n- [C# 9.0 on the record](https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/)\n- [C# 9 Deep Dive: Records](https://www.daveabrock.com/2020/07/06/c-sharp-9-deep-dive-records/)\n- [Avoid C# 9 Record Gotchas](https://khalidabuhakmeh.com/avoid-csharp-9-record-gotchas)\n- [C# 9.0: Records – Work With Immutable Data Classes](https://www.thomasclaudiushuber.com/2020/09/01/c-9-0-records-work-with-immutable-data-classes/)\n- [Record Types in C# 9.0](https://lukemerrett.com/record-types-in-c-9-0/)\n- [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/)\n- [Explicit validation in C# just got simpler!](https://event-driven.io/en/explicit_validation_in_csharp_just_got_simpler/)\n- [Introducing C# 10: Record struct](https://anthonygiretti.com/2021/08/03/introducing-c-10-record-struct/)\n- [ASP.NET Core 5 Model Binding to C# 9 Record Types](https://www.davidhayden.me/blog/asp-net-core-5-model-binding-to-csharp-9-record-types)\n- [Are C# 9 records immutable by default?](https://www.daveabrock.com/2020/11/02/csharp-9-records-immutable-default/)\n- [Using records when implementing the builder pattern in C#](https://josef.codes/using-records-when-implementing-the-builder-pattern-in-c-sharp/)\n- [Deconstructing a C# record with properties](https://alexanderzeitler.com/articles/deconstructing-a-csharp-record-with-properties/)\n- [C# Record Explained](https://blog.ndepend.com/c-record-explained/)\n\n## 📺 Videos\n- [C# 9.0: Record types](https://www.youtube.com/watch?v=oSQDZ7GpKwg)\n- [What are record types in C# and how they ACTUALLY work](https://www.youtube.com/watch?v=9v6RENPk5iM)\n- [Records Deep Dive: What, Why and How - David Wengier - NDC Melbourne 2021](https://www.youtube.com/watch?v=lxwNcg2q1-Y)"
  },
  {
    "path": "docs/csharp/reflection.md",
    "content": "# Reflection & Assemblies\n\n## 📘 Resources\n- [Reflection - RIP Tutorial](https://riptutorial.com/csharp/topic/28/reflection)\n\n## 📕 Articles\n- [Dynamic Programming in the .NET Framework](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/)\n- [Reflection in .NET](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/reflection)\n- [Reflection and Generic Types](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/reflection-and-generic-types)\n- [How to: Examine and Instantiate Generic Types with Reflection](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/how-to-examine-and-instantiate-generic-types-with-reflection)\n- [Dynamically Loading and Using Types](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamically-loading-and-using-types)\n- [Emitting Dynamic Methods and Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/emitting-dynamic-methods-and-assemblies)\n- [Walkthrough: Emitting Code in Partial Trust Scenarios](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/walkthrough-emitting-code-in-partial-trust-scenarios)\n- [How to: Define a Generic Type with Reflection Emit](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/how-to-define-a-generic-type-with-reflection-emit?redirectedfrom=MSDN)\n- [How to: Define a Generic Method with Reflection Emit](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/how-to-define-a-generic-method-with-reflection-emit)\n- [How to: Define and Execute Dynamic Methods](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/how-to-define-and-execute-dynamic-methods)\n- [Compile and generate dynamic source cod](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamic-source-code-generation-and-compilation)\n- [Using the CodeDOM](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/using-the-codedom)\n- [Generating and Compiling Source Code from a CodeDOM Graph](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/generating-and-compiling-source-code-from-a-codedom-graph)\n- [How to: Create a Class Using CodeDOM](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/how-to-create-a-class-using-codedom)\n- [Dynamic Language Runtime Overview](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamic-language-runtime-overview)\n- [Is the era of reflection-heavy C# libraries at an end?](https://blog.marcgravell.com/2021/05/is-era-of-reflection-heavy-c-libraries.html)\n- [.NET, REFLECTION AND MULTIPLE ASSEMBLIES](https://cephas.net/blog/2004/01/14/net-reflection-and-multiple-assemblies/)\n- [Dynamically Loading Types in .NET Core with a Custom Assembly Load Context](https://jeremybytes.blogspot.com/2020/01/dynamically-loading-types-in-net-core.html)\n- [Using Type.GetType with .NET Core / Dynamically Loading .NET Standard Assemblies in .NET Core](https://jeremybytes.blogspot.com/2020/01/using-typegettype-with-net-core.html)\n- [Collectible assemblies in .NET Core 3.0](https://www.strathweb.com/2019/01/collectible-assemblies-in-net-core-3-0/)\n- [DLR using Reflection.Emit (In Depth) Part 1](http://www.abhisheksur.com/2010/10/dlr-using-reflectionemit-in-depth-part.html)\n- [DLR using Reflection.Emit (In Depth) Part 2](http://www.abhisheksur.com/2010/10/dlr-using-reflectionemit-in-depth-part_24.html)\n- [Dynamically loading types from assembly files in .NET Core and Standard](https://siderite.dev/blog/dynamically-loading-types-from-assembly.html/)\n- [Dynamically compile and run code using .NET Core 3.0](https://laurentkempe.com/2019/02/18/dynamically-compile-and-run-code-using-dotNET-Core-3.0/)\n- [.NET Core Plugins - Nate McMaster](https://natemcmaster.com/blog/2018/07/25/netcore-plugins/)\n- [Understanding System.Runtime.Loader.AssemblyLoadContext](https://docs.microsoft.com/en-us/dotnet/core/dependency-loading/understanding-assemblyloadcontext)\n- [Create a .NET Core application with plugins](https://docs.microsoft.com/en-us/dotnet/core/tutorials/creating-app-with-plugin-support)\n- [Instantiating a C# object from a string using Activator.CreateInstance in .NET](https://jeremylindsayni.wordpress.com/2019/02/11/instantiating-a-c-object-from-a-string-using-activator-createinstance-in-net/)\n- [AssemblyBuilder Class](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.assemblybuilder)\n- [System.Reflection.Emit Namespace](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit)\n- [Reflection and Reflection.Emit in C#](https://www.c-sharpcorner.com/uploadfile/puranindia/reflection-and-reflection-emit-in-C-Sharp/)\n- [Chapter 5. Generating code with Reflection.Emit](https://livebook.manning.com/book/metaprogramming-in-dot-net/chapter-5/)\n- [Reflection Part 1: Discovery and Execution](https://www.codemag.com/article/0211161/Reflection-Part-1-Discovery-and-Execution)\n- [Reflection Part 2: Emit](https://www.codemag.com/article/0301051/Reflection-Part-2-Emit)\n- [Benchmarking 4 reflection methods for calling a constructor in .NET](https://andrewlock.net/benchmarking-4-reflection-methods-for-calling-a-constructor-in-dotnet/)\n- [Get All C# Classes Implementing an Interface](https://garywoodfine.com/get-c-classes-implementing-interface/)\n- [Create an instance of a Generic Type and invoke it's method](https://riptutorial.com/csharp/example/14275/create-an-instance-of-a-generic-type-and-invoke-it-s-method)\n- [Get a generic method and invoke it](https://riptutorial.com/csharp/example/10206/get-a-generic-method-and-invoke-it)\n- [Instantiating classes that implement an interface (e.g. plugin activation)](https://riptutorial.com/csharp/example/14824/instantiating-classes-that-implement-an-interface--e-g--plugin-activation-)\n- [IL Generation in .NET with Sigil](https://www.infoq.com/news/2016/01/sigil-intermediate-language/)\n- [How to: Define a Generic Method with Reflection Emit](https://www.crystalnet-tech.com/RuntimeLibrary/Help/html/scr/How_to__Define_a_Generic_Method_with_Reflection_Emit.html)\n- [How do I use reflection to call a generic method?](https://stackoverflow.com/questions/232535/how-do-i-use-reflection-to-call-a-generic-method/27870198)\n- [How to call a generic async method using reflection](https://stackoverflow.com/questions/39674988/how-to-call-a-generic-async-method-using-reflection/39679855)\n- [Dynamic method invocation with .NET Core](https://www.davidguida.net/dynamic-method-invocation-with-net-core/)\n- [Using .NET Generics with a type derived at runtime](https://www.thereformedprogrammer.net/using-net-generics-with-a-type-derived-at-runtime/)\n- [How to call a generic extension method with reflection?](https://stackoverflow.com/questions/15927028/how-to-call-a-generic-extension-method-with-reflection)\n- [Using reflection to invoke generic method passing lambda expression](https://stackoverflow.com/questions/19302513/using-reflection-to-invoke-generic-method-passing-lambda-expression)\n- [Using Type.GetType with .NET Core / Dynamically Loading .NET Standard Assemblies in .NET Core](https://jeremybytes.blogspot.com/2020/01/using-typegettype-with-net-core.html)\n- [Get All Types in an Assembly](https://haacked.com/archive/2012/07/23/get-all-types-in-an-assembly.aspx/) ⭐\n- [Getting Assemblies Is Harder Than You Think In C#](https://dotnetcoretutorials.com/2020/07/03/getting-assemblies-is-harder-than-you-think-in-c/) ⭐⭐\n- [C# Reflection: Get *all* active assemblies in a solution?](https://stackoverflow.com/questions/851248/c-sharp-reflection-get-all-active-assemblies-in-a-solution) ⭐\n- [.NET How-Tos: find all application Assemblies](https://www.davidguida.net/how-to-find-all-application-assemblies) ⭐⭐\n- [How to prevent ReflectionTypeLoadException when calling Assembly.GetTypes()](https://stackoverflow.com/questions/7889228/how-to-prevent-reflectiontypeloadexception-when-calling-assembly-gettypes) ⭐\n- [GetReferencedAssemblies not returning all referenced assemblies](https://mihalech.com/2016/03/22/getreferencedassemblies-not-returning-all-referenced-assemblies/) ⭐⭐\n- [Best Practices for Assembly Loading](https://learn.microsoft.com/en-us/dotnet/framework/deployment/best-practices-for-assembly-loading) ⭐\n- [Application domains](https://learn.microsoft.com/en-us/dotnet/framework/app-domains/application-domains) ⭐\n- [AssemblyLoadContext Class](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.loader.assemblyloadcontext?view=net-7.0)\n- [Back to Basics: When does a .NET Assembly Dependency get loaded](https://weblog.west-wind.com/posts/2012/Nov/03/Back-to-Basics-When-does-a-NET-Assembly-Dependency-get-loaded) ⭐⭐⭐\n- [Assembly.GetExecutingAssembly()](https://johnlnelson.com/tag/assembly-getexecutingassembly/)\n- [Is there a way to force all referenced assemblies to be loaded into the app domain?](https://stackoverflow.com/questions/2384592/is-there-a-way-to-force-all-referenced-assemblies-to-be-loaded-into-the-app-doma) ⭐\n- [Assembly Loadcontext](https://github.com/dotnet/runtime/blob/main/docs/design/features/assemblyloadcontext.md) ⭐\n- [Create a .NET Core application with plugins](https://learn.microsoft.com/en-us/dotnet/core/tutorials/creating-app-with-plugin-support)\n- [Understanding How Assemblies Load in C# .NET](https://michaelscodingspot.com/assemblies-load-in-dotnet/) ⭐⭐\n- [How to resolve .NET reference and NuGet package version conflicts](https://michaelscodingspot.com/how-to-resolve-net-reference-and-nuget-package-version-conflicts/)\n- [How the Runtime Locates Assemblies](https://learn.microsoft.com/en-us/dotnet/framework/deployment/how-the-runtime-locates-assemblies) ⭐\n- [MONO.CECIL (PART I): OVERVIEW](http://www.swat4net.com/mono-cecil-overview-part-i/)\n- [MONO.CECIL (PART II): BASIC OPERATIONS](http://www.swat4net.com/mono-cecil-part-ii-basic-operations/)\n- [BUILDING A .NET BYTE CODE INSPECTOR](https://21-lessons.com/building-a-net-byte-code-inspector/)\n## 📺 Videos\n- [Achieving compile-time performance with Reflection in C#](https://www.youtube.com/watch?v=er9nD-usM1A)\n- [Dynamically invoking a generic method with Reflection in .NET C#](https://www.youtube.com/watch?v=ZfS4WnITx08)\n- [C# Reflection Explained (Claim generation example)](https://www.youtube.com/watch?v=cdG2JxuZvNI)\n- [.NET IL Weaving Demo with Mono.Cecil](https://www.youtube.com/watch?v=L-RQmSPy7Qo)\n\n## Tools\n- [Process Explorer](https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer)\n\n## Libraries\n- [natemcmaster/DotNetCorePlugins](https://github.com/natemcmaster/DotNetCorePlugins) - .NET Core library for dynamically loading code\n- [kevin-montrose/Sigil](https://github.com/kevin-montrose/Sigil) - A fail-fast validating helper for .NET CIL generation\n- [skbkontur/gremit](https://github.com/skbkontur/gremit) - .NET Reflection.Emit extensions\n- [ekonbenefits/dynamitey](https://github.com/ekonbenefits/dynamitey) - (pronounced dyna-mighty) flexes DLR muscle to do meta-mazing things in .net\n- [ReflectionMagic/ReflectionMagic](https://github.com/ReflectionMagic/ReflectionMagic) - Framework to drastically simplify your private reflection code using C# dynamic\n- [jbevain/mono.reflection](https://github.com/jbevain/mono.reflection) - Some useful reflection helpers, including an IL disassembler.\n- [buunguyen/fasterflect](https://github.com/buunguyen/fasterflect) - .NET Reflection Made Fast and Simple ⛺\n- [RicoSuter/Namotion.Reflection](https://github.com/RicoSuter/Namotion.Reflection) - .NET library with advanced reflection APIs.\n- [osoykan/FluentAssemblyScanner](https://github.com/osoykan/FluentAssemblyScanner) - Fluent assembly and type scanner 🔍 for .Net\n- [devlooped/ThisAssembly](https://github.com/devlooped/ThisAssembly) - Exposes project and assembly level information as constants in the ThisAssembly class using source generators powered by Roslyn.\n- [jbevain/cecil](https://github.com/jbevain/cecil) - Cecil is a library to inspect, modify and create .NET programs and libraries\n- [adrianoc/cecilifier](https://github.com/adrianoc/cecilifier) - A tool aiming to make it a little bit easier to learn Mono.Cecil\n\n## Samples\n- [jbevain/cecil.samples](https://github.com/jbevain/cecil.samples) - Samples for Cecil\n\n## 📚 Books\n- [MetaProgramming in .Net](https://livebook.manning.com/book/metaprogramming-in-dot-net/)"
  },
  {
    "path": "docs/csharp/required.md",
    "content": "# Required\n\n## Articles\n- [required modifier (C# Reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/required)\n- [Working with Nullable Reference Types](https://learn.microsoft.com/en-us/ef/core/miscellaneous/nullable-reference-types)\n- [C# 11 required members](https://blog.ndepend.com/c-11-required-members/)\n"
  },
  {
    "path": "docs/csharp/span.md",
    "content": "# Span\n\n## 📺 Videos\n- [What is Span in C# and why you should be using it](https://www.youtube.com/watch?v=FM5dpxJMULY)"
  },
  {
    "path": "docs/csharp/types.md",
    "content": "# Types\n\n## 📕 Articles\n\n## 📺 Videos\n- [Where are types allocated in .NET and why people get it so wrong](https://www.youtube.com/watch?v=jONSIhMST9E)"
  },
  {
    "path": "docs/csharp/versions/10.md",
    "content": "# C# 10\n\n## Resources\n- [C# 10.0 - .NET 6 and Visual Studio 2022 version 17.0](https://github.com/dotnet/csharplang/blob/main/Language-Version-History.md#c-100---net-6-and-visual-studio-2022-version-170)\n\n## 📕 Articles\n- [What's new in C# 10](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-10)\n- [C# 10.0: Introducing Global Usings](https://jaliyaudagedara.blogspot.com/2021/05/c-100-introducing-global-usings.html)\n- [A Closer Look at 5 New Features in C# 10](https://medium.com/young-coder/a-closer-look-at-5-new-features-in-c-10-f99738b0158e)\n- [Introducing C# 10](https://kenbonny.net/introducing-csharp-10)\n- [Introducing C# 10: Record struct](https://anthonygiretti.com/2021/08/03/introducing-c-10-record-struct/)\n- [A quick review of C# 10 new language features](https://thomaslevesque.com/2021/11/04/a-quick-review-of-csharp-10-new-language-features/)\n- [File-Scoped Namespaces – A Look at New Language Features in C# 10](https://blog.jetbrains.com/dotnet/2021/10/28/file-scoped-namespaces-in-csharp-10/)\n- [File Scoped Namespaces In C# 10](https://dotnetcoretutorials.com/2021/09/20/file-scoped-namespaces-in-c-10/)\n- [Global Using Statements In C#10](https://dotnetcoretutorials.com/2021/08/19/global-using-statements-in-c10)\n- [String Interpolation in C# 10 and .NET 6](https://devblogs.microsoft.com/dotnet/string-interpolation-in-c-10-and-net-6/)\n- [What's new in .NET 6 and C# 10. Everything you wanted to know.](https://nikiforovall.github.io/dotnet/csharp/coding-stories/2021/10/29/whats-new-in-dotnet6.html)\n- [Static Abstract Members In C# 10 Interfaces](https://khalidabuhakmeh.com/static-abstract-members-in-csharp-10-interfaces)\n- [Bite-Size C# 10 - Null Parameter Checking](https://exceptionnotfound.net/bite-size-csharp-10-null-parameter-checking/)\n- [What’s New in C# 10: Simplify Argument Null Checking Code](http://dontcodetired.com/blog/post/Whats-New-in-C-10-Simplify-Argument-Null-Checking-Code)\n- [C# 10.0 improves handling of nullable references in generic types - no more AllowNull](https://endjin.com/blog/2022/02/csharp-10-generics-nullable-references-improvements-allownull)\n- [Caller Argument Expressions – A Look at New Language Features in C# 10](https://blog.jetbrains.com/dotnet/2021/11/04/caller-argument-expressions-in-csharp-10/)\n- [CallerArgumentExpression Attribute In C# 10](https://www.ilkayilknur.com/CallerArgumentExpression-attribute-in-csharp-10)\n- [C# 10 new feature CallerArgumentExpression, argument check and more](https://weblogs.asp.net/dixin/csharp-10-new-feature-callerargumentexpression-argument-check-and-more)\n- [[CallerArgumentExpression] and throw helpers](https://andrewlock.net/exploring-dotnet-6-part-11-callerargumentexpression-and-throw-helpers/)\n- [Global Usings – A Look at New Language Features in C# 1](https://blog.jetbrains.com/dotnet/2021/11/18/global-usings-in-csharp-10/)\n## Videos\n- [Every feature added in C# 10 with examples](https://www.youtube.com/watch?v=Vft4QDUpyWY)\n\n## 🚀 Samples\n- [okyrylchuk/dotnet6_features](https://github.com/okyrylchuk/dotnet6_features)\n- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)\n- [NikiforovAll/whats-new-in-dotnet6](https://github.com/NikiforovAll/whats-new-in-dotnet6)\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)\n- [khalidabuhakmeh/CsharpTenFeatures](https://github.com/khalidabuhakmeh/CsharpTenFeatures) - C# 10 Features in one console application\n"
  },
  {
    "path": "docs/csharp/versions/11.md",
    "content": "# C# 11\n\n## 📝 Articles\n- [What's new in C# 11](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-11)\n- [Early peek at C# 11 features](https://devblogs.microsoft.com/dotnet/early-peek-at-csharp-11-features/)\n- [C# 11.0 Preview: Parameter Null Checking](https://jaliyaudagedara.blogspot.com/2022/03/c-110-preview-parameter-null-checking.html)\n- [C# 11.0 preview: parameter null checking](https://endjin.com/blog/2022/02/csharp-11-preview-parameter-null-checking)\n- [A Mostly Complete Guide to C# 11’s Future Features](https://medium.com/young-coder/a-mostly-complete-guide-to-c-11s-future-features-5658ce32f0fa)\n- [C# 11 – Top 5 Features in the new C# Version](https://rubikscode.net/2022/06/20/c-11-top-5-features-in-the-new-c-version/)\n- [Members, the imperfectly awesome feature](https://gsferreira.com/archive/2022/csharp-11-required-members-the-imperfectly-awesome-feature/)\n- [Refactor code to use new C# language features](https://blog.jetbrains.com/dotnet/2022/08/30/refactor-code-to-use-new-c-language-features/)\n- [C# 11 required members](https://blog.ndepend.com/c-11-required-members/)\n- [Twelve C# 11 Features](https://blog.okyrylchuk.dev/twelve-csharp-11-features)\n## Videos\n- [C# 11’s new List Patterns are a bit too powerful](https://www.youtube.com/watch?v=z7bW83Xr1R0)\n- [C# 11: The Highlights | .NET Conf: Focus on MAUI](https://www.youtube.com/watch?v=1K44Nu9_7U8)\n- [C# 11 Required Members - Exciting or not?](https://www.youtube.com/watch?v=OE0McfZ64Z4)\n\n## Samples\n- [okyrylchuk/dotnet7_features](https://github.com/okyrylchuk/dotnet7_features)\n- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)"
  },
  {
    "path": "docs/csharp/versions/12.md",
    "content": "# C# 12\n\n## Articles\n- [What's new in C# 12](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-12)\n- [Announcing C# 12](https://devblogs.microsoft.com/dotnet/announcing-csharp-12/)\n- [Check out new C# 12 preview features!](https://devblogs.microsoft.com/dotnet/check-out-csharp-12-preview\n- [New C# 12 preview features](https://devblogs.microsoft.com/dotnet/new-csharp-12-preview-features/)"
  },
  {
    "path": "docs/csharp/versions/13.md",
    "content": "# C# 13\n\n## Articles\n- [What's new in C# 13](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-13)"
  },
  {
    "path": "docs/csharp/versions/7.md",
    "content": "# C# 7\n\n## Resources\n- [C# 7.3 - Visual Studio 2017 version 15.7](https://github.com/dotnet/csharplang/blob/main/Language-Version-History.md#c-73---visual-studio-2017-version-157)\n- [C# 7.2 - Visual Studio 2017 version 15.5](https://blogs.msdn.microsoft.com/dotnet/2017/11/15/welcome-to-c-7-2-and-span/)\n- [C# 7.1 - Visual Studio 2017 version 15.3](https://github.com/dotnet/csharplang/blob/main/Language-Version-History.md#c-71---visual-studio-2017-version-153)\n- [C# 7.0 - Visual Studio 2017](https://github.com/dotnet/csharplang/blob/main/Language-Version-History.md#c-70---visual-studio-2017)\n## 📝 Articles\n- [What’s New in C# 7.0](https://devblogs.microsoft.com/dotnet/whats-new-in-csharp-7-0/)\n- [New Features in C# 7.0](https://devblogs.microsoft.com/dotnet/new-features-in-c-7-0/)\n- [What's new in C# 7.0 through C# 7.3](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7)\n- [Pattern Matching for C# 7](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.0/pattern-matching)\n- [AN INTRODUCTION TO OPTIMISING CODE USING SPAN<T>](https://www.stevejgordon.co.uk/an-introduction-to-optimising-code-using-span-t)\n- [How to use Span<T> and Memory<T>](https://antao-almada.medium.com/how-to-use-span-t-and-memory-t-c0b126aae652)\n\n## 📺 Videos\n- [Connect; 2017 C# 7 2 Understanding Span](https://www.youtube.com/watch?v=mbLIplmHzdk)\n- [A (brief) overview of Span≤T≥ - David Wengier](https://www.youtube.com/watch?v=byvoPD15CXs)\n- [Jeffrey Richter «Efficient Buffer Manipulation using C# 7.2's Span»](https://www.youtube.com/watch?v=gWcyXGIbRDI)\n"
  },
  {
    "path": "docs/csharp/versions/8.md",
    "content": "# C# 8\n\n## Resources\n- [C# 8.0 - .NET Core 3.0 and Visual Studio 2019 version 16.3](https://github.com/dotnet/csharplang/blob/main/Language-Version-History.md#c-80---net-core-30-and-visual-studio-2019-version-163)\n\n## 📝 Articles\n- [What's new in C# 8.0](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8)\n- [The 8 most missing features in C#](https://tooslowexception.com/the-8-most-missing-features-in-c/)\n- [Nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references)\n- [Tutorial: Migrate existing code with nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/upgrade-to-nullable-references)\n- [How Do C#’s Nullable Reference Types Work?](https://www.cloudsavvyit.com/6649/how-do-cs-nullable-reference-types-work/)\n- [Nullable Reference types in C# – Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)\n- [C# 8.0 nullable references: non-nullable is the new default](https://endjin.com/blog/2020/04/dotnet-csharp-8-nullable-references-non-nullable-is-the-new-default)\n- [C# 8.0 nullable references: transcending the type system with AllowNull](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-transcending-the-type-system-with-allownull)\n- [C# 8.0 nullable references: get better results with nullability attributes](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-get-better-results-with-nullability-attributes)\n- [C# 8.0 nullable references: transcending the type system with Allow](https://endjin.com/blog/2020/05/dotnet-csharp-8-nullable-references-transcending-the-type-system-with-allownull)\n- [C# 8.0 nullable references: NotNull](https://endjin.com/blog/2020/06/dotnet-csharp-8-nullable-references-notnull)\n- [C# 8.0 nullable references: conditional post-conditions](https://endjin.com/blog/2020/07/dotnet-csharp-8-nullable-references-conditional-post-conditions)\n\n## 📺 Videos\n- [C# Nullable reference types – No more null reference exceptions!](https://www.youtube.com/watch?v=NDweaZZZcbc)\n\n## Samples\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)\n- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)"
  },
  {
    "path": "docs/csharp/versions/9.md",
    "content": "\n# C# 9\n\n## Resources\n- [C# 9.0 - .NET 5 and Visual Studio 2019 version 16.8](https://github.com/dotnet/csharplang/blob/main/Language-Version-History.md#c-90---net-5-and-visual-studio-2019-version-168)\n\n## 📝 Articles\n- [What's new in C# 9.0](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9)\n- [Top-level programs in C# 9.0](https://gunnarpeipman.com/csharp-top-level-programs/)\n- [Explore ideas using top-level statements to build code as you learn](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/top-level-statements) - Microsoft\n- [PLAYING WITH C#9 TOP-LEVEL PROGRAMS, RECORDS AND ELASTICSEARCH.NET](https://www.stevejgordon.co.uk/playing-with-csharp-9-top-level-programs-records-and-elasticsearch-dotnet)\n- [Using Tuples in C# to Initialize Properties in the Constructor and to Deconstruct Your Object](https://www.thomasclaudiushuber.com/2021/03/25/csharp-using-tuples-to-initialize-properties/)\n- [C# 9 new features for methods and functions](https://developers.redhat.com/blog/2021/04/13/c-9-new-features-for-methods-and-functions/)\n- [How to use configuration with C# 9 top-level programs](https://www.daveabrock.com/2021/01/19/config-top-level-programs/)\n- [C# 9 Deep Dive: Top-Level Programs](https://www.daveabrock.com/2020/07/09/c-sharp-9-top-level-programs/)\n- [C# 9 Deep Dive: Pattern Matching](https://www.daveabrock.com/2020/07/06/c-sharp-9-pattern-matching/)\n- [C# 9 Deep Dive: Records](https://www.daveabrock.com/2020/07/06/c-sharp-9-deep-dive-records/)\n- [C# 9 Deep Dive: Init-only features](https://www.daveabrock.com/2020/06/29/c-sharp-9-deep-dive-inits/)\n- [C# 9 Deep Dive: Target Typing and Covariant Returns](https://www.daveabrock.com/2020/07/14/c-sharp-9-target-typing-covariants/)\n- [Avoid C# 9 Record Gotchas](https://khalidabuhakmeh.com/avoid-csharp-9-record-gotchas)\n- [C# 9.0 on the record](https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/)\n- [C# 9.0 Features and Expectations of C# 10](https://dev.to/dotnetsafer/c-9-0-features-and-expectations-of-c-10-n7c)\n- [C# 9.0: Init-only Properties – Create Immutable Properties Without Constructor Boilerplate](https://www.thomasclaudiushuber.com/2020/08/25/c-9-0-init-only-properties/)\n- [C# 9.0: Top-level Statements. Or Should I Say: Hey, Where’s the Main Method?](https://www.thomasclaudiushuber.com/2020/08/18/c-9-top-level-statements-or-should-i-say-hey-wheres-the-main-method/)\n- [C# 9.0: Covariant Return Types – Specify More Specific Return Types in Overridden Methods and Properties](https://www.thomasclaudiushuber.com/2021/03/11/c-9-0-covariant-return-types/)\n- [C# 9.0: Pattern Matching in Switch Expressions](https://www.thomasclaudiushuber.com/2021/02/25/c-9-0-pattern-matching-in-switch-expressions/)\n- [C# 9.0: Target-typed New Expressions – Make Your Initialization Code Less Verbose](https://www.thomasclaudiushuber.com/2020/09/08/c-9-0-target-typed-new-expressions/)\n- [C# 9.0: Records – Work With Immutable Data Classes](https://www.thomasclaudiushuber.com/2020/09/01/c-9-0-records-work-with-immutable-data-classes/)\n- [C# 9.0: Improved Pattern Matching](https://www.thomasclaudiushuber.com/2021/02/18/c-9-0-improved-pattern-matching/)\n- [C# 9.0: Init-only properties](https://blog.miguelbernard.com/c-9-0-init-only-properties)\n- [ICYMI C# 9 New Features: Top-level Statements](http://dontcodetired.com/blog/post/ICYMI-C-9-New-Features-Top-level-Statements)\n- [Pattern-matching changes for C# 9.0](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/patterns3)\n- [Record Types in C# 9.0](https://lukemerrett.com/record-types-in-c-9-0/)\n## 📺 Videos\n- [The Top 10 Best New Features in C# Version 6 to 9, by Chris Klug](https://www.youtube.com/watch?v=Iy6WS4mWlx4) \n- [C# 9 New Features - Top level code, Records, Init Setters](https://www.youtube.com/watch?v=EU2zcrbBi4s)\n- [C# 9.0: Record types](https://www.youtube.com/watch?v=oSQDZ7GpKwg)\n- [C# 9 Language Highlights](https://www.youtube.com/watch?v=G2q3j9cwqYI&ab_channel=MohamadLawand)\n- [The top 10 best new features in C# version 6 to 9 - Chris Klug](https://www.youtube.com/watch?v=hIQa7SsWYUE)\n- [What's new in .NET 5 and C# 9](https://www.youtube.com/watch?v=K32WV452o5c)\n- [C# 9.0: Pattern Matching](https://www.youtube.com/watch?v=9lvx6mzCAE4)\n\n## Samples\n- [okyrylchuk/csharp9_features](https://github.com/okyrylchuk/csharp9_features)\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)"
  },
  {
    "path": "docs/csharp/versions/index.md",
    "content": "# [C#](index.md)\n  - [C# 7](c7.md)\n  - [C# 8](c8.md)\n  - [C# 9](c9.md)\n  - [C# 10](c10.md)"
  },
  {
    "path": "docs/dapper.md",
    "content": "# Dapper\n\n## Resources\n- [LearnDapper](https://www.learndapper.com/)\n\n## Articles\n- [Using Dapper with ASP.NET Core Web API](https://code-maze.com/using-dapper-with-asp-net-core-web-api/)\n- [A Practical Guide to Dapper](https://www.red-gate.com/simple-talk/development/dotnet-development/a-practical-guide-to-dapper/)\n\n## Videos\n- [Learn Dapper in an Hour! (.NET Core 5)](https://www.youtube.com/watch?v=IVsN0WlufWc)\n\n## Samples\n- [beautifulcoder/practical-dapper](https://github.com/beautifulcoder/practical-dapper)"
  },
  {
    "path": "docs/debugging.md",
    "content": "# Debugging\n\n## 📕 Articles\n- [Simplify debugging with DebuggerDisplay attribute dotNET](https://www.code4it.dev/blog/debuggerdisplay-attribute)\n- [Debugging NuGet Packages: Understanding Debugging Symbols and Using Source Link](https://endjin.com/blog/2022/05/debugging-nuget-packages-understanding-debugging-symbols-and-using-source-link.html)\n- [Debugging Enhancements in .NET 8](https://devblogs.microsoft.com/dotnet/debugging-enhancements-in-dotnet-8/)"
  },
  {
    "path": "docs/dependency-injection.md",
    "content": "\n# Dependency Injection\n\n## 📝 Articles\n- [Dependency injection guidelines](https://docs.microsoft.com/en-us/dotnet/core/extensions/dependency-injection-guidelines)\n- [Dependency injection in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection)\n- [.NET Core Dependency Injection: Everything You Ought To Know](https://www.blog.jamesmichaelhickey.com/NET-Core-Dependency-Injection/)\n- [ASP.NET CORE DEPENDENCY INJECTION AND SERVICE LIFETIMES](https://peakup.org/blog/asp-net-core-dependency-injection-and-service-lifetimes/)\n- [Dependency Resolving Mastery in ASP.NET Core Apps](https://levelup.gitconnected.com/dependency-resolving-mastery-in-asp-net-core-apps-f3515ab40fd2) ⭐⭐⭐\n- [Top Misconceptions About Dependency Injection in ASP.NET Core](https://levelup.gitconnected.com/top-misconceptions-about-dependency-injection-in-asp-net-core-c6a7afd14eb4) ⭐⭐⭐\n- [Advanced Dependency Injection Techniques in ASP.NET Core](https://medium.com/geekculture/advanced-dependency-injection-techniques-in-asp-net-core-3e6e9e0c541a) ⭐⭐⭐\n- [Captive Dependency](https://blog.ploeh.dk/2014/06/02/captive-dependency/)\n- [Inversion of Control Containers and the Dependency Injection pattern](https://martinfowler.com/articles/injection.html)\n- [Having Fun with Microsoft IoC Container for .NET Core](https://sahansera.dev/dotnet-core-ioc-container/)\n- [ASP. NET Core - Dependency-injection](https://girishgodage.in/blog/customize-dependency-injection)\n- [Customizing ASP.​NET Core Part 03: Dependency Injection](https://asp.net-hacker.rocks/2018/09/27/customizing-aspnetcore-03-dependency-injection.html)\n- [ASP.NET CORE DEPENDENCY INJECTION – REGISTERING MULTIPLE IMPLEMENTATIONS OF AN INTERFACE](https://www.stevejgordon.co.uk/asp-net-core-dependency-injection-registering-multiple-implementations-interface)\n- [ASP.NET CORE DEPENDENCY INJECTION – HOW TO REGISTER GENERIC TYPES](https://www.stevejgordon.co.uk/asp-net-core-dependency-injection-how-to-register-generic-types)\n- [ASP.NET CORE DEPENDENCY INJECTION – REGISTERING IMPLEMENTATIONS USING DELEGATES](https://www.stevejgordon.co.uk/asp-net-core-dependency-injection-registering-implementations-using-delegates)\n- [Choosing a ServiceLifetime](https://jimmybogard.com/choosing-a-servicelifetime/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+GrabBagOfT+%28Jimmy+Bogard%29)\n- [ASP.NET Core and the Strategy Pattern](https://adamstorr.azurewebsites.net/blog/aspnetcore-and-the-strategy-pattern)\n- [6 Ways To Implement The Strategy Pattern In C# (Basic To Advanced)](https://www.blog.jamesmichaelhickey.com/strategy-pattern-implementations/)\n- [Dependency Injection in ASP.NET Core 3.1](https://procodeguide.com/programming/dependency-injection-in-asp-net-core-3/)\n- [Understanding Disposables In .NET Dependency Injection – Part 2](http://stevetalkscode.co.uk/disposables-in-di-part-2)\n- [Understanding Disposables In .NET Dependency Injection – Part 1](https://stevetalkscode.co.uk/disposables-in-di-part-1)\n- [Should I be Checking Injected Dependencies for Null?](http://stevetalkscode.co.uk/null-injection)\n- [Getting Dependencies by Name or Key using the .NET Core Container (Part 1)](http://stevetalkscode.co.uk/named-dependencies-part-1#comment-750)\n- [ASP.NET CORE DEPENDENCY INJECTION WHAT IS THE ISERVICECOLLECTION?](https://www.stevejgordon.co.uk/aspnet-core-dependency-injection-what-is-the-iservicecollection) \n- [Avoiding Startup service injection in ASP.NET Core 3](https://andrewlock.net/avoiding-startup-service-injection-in-asp-net-core-3/)\n- [What are the costs and possible side effects of calling BuildServiceProvider() in ConfigureServices()](https://stackoverflow.com/questions/56042989/what-are-the-costs-and-possible-side-effects-of-calling-buildserviceprovider-i)\n- [Resolve and Initialize the Instances within ConfigServices of ASP.NET Core](https://www.thecodebuzz.com/resolve-instances-within-configservices-method-asp-net-core/)\n- [How to Resolve Instance Inside ConfigureServices in ASP.NET Core](https://stackoverflow.com/questions/31863981/how-to-resolve-instance-inside-configureservices-in-asp-net-core)\n- [Access services inside ConfigureServices using IConfigureOptions in ASP.NET Core](https://andrewlock.net/access-services-inside-options-and-startup-using-configureoptions/)\n- [Using dependency injection while configuring services](https://benjamincollins.com/blog/using-dependency-injection-while-configuring-services/)\n- [ASP.NET CORE DEPENDENCY INJECTION: WHAT IS THE ISERVICEPROVIDER AND HOW IS IT BUILT?](https://www.stevejgordon.co.uk/aspnet-core-dependency-injection-what-is-the-iserviceprovider-and-how-is-it-built) \n- [How to register a service with multiple interfaces in ASP.NET Core DI](https://andrewlock.net/how-to-register-a-service-with-multiple-interfaces-for-in-asp-net-core-di/)\n- [A .NET Core ServiceProvider that allows adding of services after it was created](https://siderite.dev/blog/a-net-core-serviceprovider-that-allows.html/)\n- [The difference between GetService() and GetRequiredService() in ASP.NET Core](https://andrewlock.net/the-difference-between-getservice-and-getrquiredservice-in-asp-net-core/)\n- [Resolve Services In ASP.NET Core Startup](https://khalidabuhakmeh.com/resolve-services-in-aspnet-core-startup)\n- [Automatic factory with Microsoft.Extensions.DependencyInjection and Castle DynamicProxy](https://thomaslevesque.com/2020/09/27/automatic-factory-with-microsoft-extensions-dependencyinjection-and-castle-dynamicproxy/)\n- [Singleton vs Dependency Injection](https://enterprisecraftsmanship.com/posts/singleton-vs-dependency-injection/)\n- [Don’t Call Constructors Unless You Have No Choice, And You Always Have a Choice](https://scotthannen.org/blog/2018/04/03/tame-your-dependency-injection-registration.html)\n- [ASP.NET Core Dependency Injection Best Practices, Tips & Tricks](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96)\n- [Exploring ASP.NET Core Fundamentals - Understanding Singleton Transient and Scoped Service Lifetimes](https://referbruv.com/blog/posts/exploring-aspnet-core-fundamentals-understanding-singleton-transient-and-scoped-service-lifetimes)\n- [Using Scrutor to automatically register your services with the ASP.NET Core DI container](https://andrewlock.net/using-scrutor-to-automatically-register-your-services-with-the-asp-net-core-di-container/)\n- [Dependency Injection lifetimes in .NET - my epiphany](https://www.code4it.dev/blog/dependency-injection-lifetimes)\n- [SOLID Wash Tunnel - IoC Container](https://www.ledjonbehluli.com/posts/wash-tunnel/ioc_container/)\n- [SOLID Wash Tunnel - Dependency Injection](https://www.ledjonbehluli.com/posts/wash-tunnel/dependency_injection/)\n- [Service Lifetimes in ASP.NET Core DI Explained](https://referbruv.com/blog/posts/exploring-aspnet-core-fundamentals-understanding-singleton-transient-and-scoped-service-lifetimes)\n- [Cannot Consume Scoped Service From Singleton – A Lesson In ASP.NET Core DI Scopes](https://dotnetcoretutorials.com/2018/03/20/cannot-consume-scoped-service-from-singleton-a-lesson-in-asp-net-core-di-scopes/)\n- [Two gotchas with scoped and singleton dependencies in ASP.NET Core](https://blog.markvincze.com/two-gotchas-with-scoped-and-singleton-dependencies-in-asp-net-core/)\n- [Using scoped services inside singletons](https://samwalpole.com/using-scoped-services-inside-singletons)\n- [Resolving instances with ASP.NET Core DI from within ConfigureServices](https://stackoverflow.com/questions/32459670/resolving-instances-with-asp-net-core-di-from-within-configureservices)\n- [Resolving instances with ASP.NET Core DI in static classes](https://www.davidezoccarato.cloud/resolving-instances-with-asp-net-core-di-in-static-classes/)\n- [Accessing ASP.NET Core DI Container From Static Factory Class](https://stackoverflow.com/questions/40611683/accessing-asp-net-core-di-container-from-static-factory-class)\n- [ASP.NET Core Dependency Injection – Cannot consume scoped service](https://codingblast.com/asp-net-core-dependency-injection-cannot-consume-scoped-service/)\n- [Introducing Scrutor - Convention based registration for Microsoft.Extensions.DependencyInjection](https://kristian.hellang.com/introducing-scrutor/)\n- [Constrained Open Generics Support Merged in .NET Core DI Container](https://jimmybogard.com/constrained-open-generics-support-merged-in-net-core-di-container/)\n- [Captive Dependency with ASP.NET Core](https://medium.com/dotnet-hub/captive-dependency-with-asp-net-core-what-is-captive-dependency-8698b588e048)\n- [.NET Core and DI – Beware of Captive Dependency](https://ankitvijay.net/2020/03/17/net-core-and-di-beware-of-captive-dependency/)\n- [Top Misconceptions About Dependency Injection in ASP.NET Core](https://levelup.gitconnected.com/top-misconceptions-about-dependency-injection-in-asp-net-core-c6a7afd14eb4)\n- [Configure Dependency Injection for .NET 5 Console Applications](https://www.programmingwithwolfgang.com/configure-dependency-injection-for-net-5-console-applications/)\n- [New dependency injection features in .NET 6 ](https://andrewlock.net/exploring-dotnet-6-part-10-new-dependency-injection-features-in-dotnet-6/)\n- [Dependency Injection Lifetimes in ASP.NET Core](https://code-maze.com/dependency-injection-lifetimes-aspnet-core/)\n- [Advanced Dependency Injection Techniques in ASP.NET Core](https://medium.com/geekculture/advanced-dependency-injection-techniques-in-asp-net-core-3e6e9e0c541a)\n- [Four ways to dispose IDisposables in ASP.NET Core](https://andrewlock.net/four-ways-to-dispose-idisposables-in-asp-net-core/)\n- [Composition Root](https://blog.ploeh.dk/2011/07/28/CompositionRoot/)\n- [Dependency Injection Composition Root: Are We Just Moving the Coupling?](https://jeremybytes.blogspot.com/2013/03/dependency-injection-composition-root.html)\n- [Understanding the Composition Root](https://freecontent.manning.com/dependency-injection-in-net-2nd-edition-understanding-the-composition-root/)\n- [Configuring environment specific services for dependency injection in ASP.NET Core](https://andrewlock.net/configuring-environment-specific-services-in-asp-net-core/)\n- [Is Dependency Injection dead? - Part 1](https://www.davidguida.net/is-dependency-injection-dead-part-1)\n- [Is Dependency Injection dead? - Part 2: Service Lifetimes](https://www.davidguida.net/is-dependency-injection-dead-part-2-service-lifetimes)\n- [Is Dependency Injection dead? - Part 3: Anti-Patterns](https://www.davidguida.net/is-dependency-injection-dead-part-3-anti-patterns)\n- [Controller activation and dependency injection in ASP.NET Core MVC](https://andrewlock.net/controller-activation-and-dependency-injection-in-asp-net-core-mvc/)\n- [New in ASP.NET Core 3: Service provider validation](https://andrewlock.net/new-in-asp-net-core-3-service-provider-validation/) ⭐⭐\n- [The dangers and gotchas of using scoped services in IConfigureOptions](https://andrewlock.net/the-dangers-and-gotchas-of-using-scoped-services-when-configuring-options-in-asp-net-core/)\n- [Injecting services into ValidationAttributes in ASP.NET Core](https://andrewlock.net/injecting-services-into-validationattributes-in-asp-net-core/)\n- [Structure and order your DI container](https://steven-giesel.com/blogPost/f557493c-0919-44fc-8073-40b4fb90d53e)\n- [Building a Console App with .NET Generic Host](https://dfederm.com/building-a-console-app-with-.net-generic-host/)\n- [How To Enable Logging In .NET Console Applications](https://thecodeblogger.com/2021/05/11/how-to-enable-logging-in-net-console-applications/)\n- [USING HOSTBUILDER AND THE GENERIC HOST IN .NET CORE MICROSERVICES](https://www.stevejgordon.co.uk/using-generic-host-in-dotnet-core-console-based-microservices)\n- [How to run .NET Core Console app using generic host builder](https://stackoverflow.com/questions/68392429/how-to-run-net-core-console-app-using-generic-host-builder)\n- [Verifying your DI Container](https://steven-giesel.com/blogPost/ce948083-974a-4c16-877f-246b8909fa6d)\n- [ASP.NET CORE DEPENDENCY INJECTION: WHAT IS THE ISERVICEPROVIDER AND HOW IS IT BUILT?](https://www.stevejgordon.co.uk/aspnet-core-dependency-injection-what-is-the-iserviceprovider-and-how-is-it-built) ⭐⭐\n- [Dependency injection guidelines](https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection-guidelines)\n- [Keyed Services in .NET8's Dependency Injection](https://dev.to/xelit3/keyed-services-in-net8s-dependency-injection-2gni)\n- [How to configure true dependency injection in System.CommandLine](https://anthonysimmon.com/true-dependency-injection-with-system-commandline/)\n\n## 📺 Videos\n- [.NET Core Dependency Injection – The Booster Jab - Steve Collins - NDC London 2021](https://www.youtube.com/watch?v=JwVtscL9H9k)\n- [Dependency Injection Explained](https://www.youtube.com/watch?v=ASDmrUaO5cE)\n- [.NET Core Dependency Injection - The Booster Jab - with Steve Collins](https://www.youtube.com/watch?v=99Gp9khfgiY)\n- [Asp.Net Core - Dependency Injection - Deep Dive](https://www.youtube.com/watch?v=ORAfsRukNc4)\n- [Dependency Injection in ASP.NET Core 6 - Pluralsight](https://www.pluralsight.com/courses/dependency-injection-asp-dot-net-core-6)\n- [Validate your dependencies correctly in .NET](https://www.youtube.com/watch?v=8JkHgymp2R4)\n## Libraries\n- [khellang/Scrutor](https://github.com/khellang/Scrutor) - Assembly scanning and decoration extensions for Microsoft.Extensions.DependencyInjection\n- [AnthonyGiretti/calzolari-dependencyinjection-extensions](https://github.com/AnthonyGiretti/calzolari-dependencyinjection-extensions) - Extensions for ASP.NET Core dependency injection\n- [YairHalberstadt/stronginject](https://github.com/YairHalberstadt/stronginject) - compile time dependency injection for .NET\n- [pakrym/jab](https://github.com/pakrym/jab) - C# Source Generator based dependency injection container implementation.\n- [sefacan/Scrutor.AspNetCore](https://github.com/sefacan/Scrutor.AspNetCore) - ASP.NET Core Scrutor extension for automatic registration of classes inherited from IScopedLifetime, ISelfScopedLifetime, ITransientLifetime, ISelfTransientLifetime, ISingletonLifetime, ISelfSingletonLifetime\n- [castleproject/Core](https://github.com/castleproject/Core) - Castle Core, including Castle DynamicProxy, Logging Services and DictionaryAdapter\n- [devlooped/DependencyInjection.Attributed](https://github.com/devlooped/DependencyInjection.Attributed) - Provides compile-time discovery and code generation of service registrations from attributed types"
  },
  {
    "path": "docs/diagnostics.md",
    "content": "# Diagnostics\n\n## 📕 Articles\n- [DiagnosticSource User's Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md)\n- [Activity User Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md)\n- [Diagnostic Source in.Net Core](https://www.fatalerrors.org/a/diagnostic-source-in.net-core.html)\n- [Improve Activity API usability and OpenTelemetry integration](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements.md)\n- [Improve Activity API usability and OpenTelemetry integration (Part 2)](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements-2.md)\n- [What diagnostic tools are available in .NET Core?](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/)\n- [.NET distributed tracing concepts](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-concepts)\n- [Adding distributed tracing instrumentation](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs)\n- [Collect a distributed trace](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs)\n- [Activity Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activity)\n- [ActivityListener Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitylistener)\n- [ActivitySource Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitysource)\n- [ActivityLink Struct](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitylink)\n- [EventListener Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventlistener)\n- [EventSource Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventsource)\n- [Introducing diagnostics improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/introducing-diagnostics-improvements-in-net-core-3-0/)\n- [Diagnostics improvements in .NET 5](https://devblogs.microsoft.com/dotnet/diagnostics-improvements-in-net-5/)\n- [Logging using DiagnosticSource in ASP.NET Core](https://andrewlock.net/logging-using-diagnosticsource-in-asp-net-core/)\n- [Using the DiagnosticSource in .NET Core: Theory](https://sudonull.com/post/3671-Using-the-DiagnosticSource-in-NET-Core-Theory)\n- [Dumps](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dumps)\n- [EventCounters in .NET Core](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/event-counters)\n- [.NET Core logging and tracing](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing)\n- [.NET Diagnostics Tools: dump vs. gcdump](https://www.stefangeiger.ch/2020/04/21/dotnet-diagnostics-tools-gcdump-vs-dump.html)\n- [Diagnostics in .Net Core 3: Listening to outbound HTTP requests](https://im5tu.io/article/2020/06/diagnostics-in-.net-core-3-listening-to-outbound-http-requests/)\n- [.NET Tip: Performance Counters for MemoryCache](https://www.stefangeiger.ch/2019/11/25/dotnet-tip-memorycache-perfcounter.html)\n- [Investigate performance counters (dotnet-counters)](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-counters)\n- [Use Performance Counters in .NET to measure Memory, CPU, and Everything – Full Guide](https://michaelscodingspot.com/performance-counters/)\n- [Reporting Metrics Using .Net (Core) EventSource and EventCounte](https://dev.to/expecho/reporting-metrics-using-net-core-eventsource-and-eventcounter-23dn)\n- [Creating a Custom ETW EventSource for Debugging High-Performance Code in C#](https://aaronstannard.com/creating-your-own-ETW-source/)\n- [Tracing with EventSource in .NET 4.5](http://dev.goshoom.net/2013/04/tracing-with-eventsource/)\n- [Exploring EventSource Activity (correlation and causation) Features](https://docs.microsoft.com/en-us/archive/blogs/vancem/exploring-eventsource-activity-correlation-and-causation-features)\n- [DiagnosticSource User's Guide](https://github.com/dotnet/runtime/blob/main/src/libraries/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md)\n- [Output Diagnostic Source to Event Source](https://sourceexample.com/output-diagnostic-source-to-event-source-84888/)\n- [MassTransit DiagnosticSource](https://masstransit-project.com/advanced/monitoring/diagnostic-source.html)\n- [MassTransit Performance counters](https://masstransit-project.com/advanced/monitoring/perfcounters.html)\n- [Introducing Ukadc.Diagnostics](http://www.thejoyofcode.com/Introducing_Ukadc_Diagnostics.aspx)\n- [From zero to logging with System.Diagnostics in 15 minutes](http://www.thejoyofcode.com/From_zero_to_logging_with_System_Diagnostics_in_15_minutes.aspx)\n- [Cross-platform diagnostic tools for .NET Core](https://www.hanselman.com/blog/crossplatform-diagnostic-tools-for-net-core)\n- [Observing .NET Core Counters (in CloudWatch)](https://www.nocture.dk/2020/05/16/observing-.net-core-counters-in-cloudwatch/)\n- [A Lap Around ActivitySource and ActivityListener in .NET 5](https://jimmybogard.com/activitysource-and-listener-in-net-5/)\n- [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/)\n- [Add SkyWalking + SkyApm-dotnet distributed link tracking system to the microservice framework Demo.MicroServer](https://www.programmersought.com/article/76773716203/)\n- [Using System.Diagnostic.DiagnosticSource to intercept database requests](https://bartwullems.blogspot.com/2021/01/using-systemdiagnosticdiagnosticsource.html)\n- [Diagnostic log Diagnosticsource in .NET CORE](https://www.programmersought.com/article/68718725762/)\n- [EventSource? DiagnosticSource? Both?](https://github.com/dotnet/aspnetcore/issues/2312)\n- [.NET Core 2.2: Runtime Events](https://jaliyaudagedara.blogspot.com/2019/01/net-core-22-runtime-events.html)\n- [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps/)\n- [OpenTelemetry .NET API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md)\n- [OpenTelemetry in .NET](https://lightstep.com/blog/opentelemetry-net-all-you-need-to-know/)\n- [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/)\n- [Monitoring background task](https://rafaelldi.blog/posts/monitoring-background-task/)\n- [Profiling a .NET6 app running in a linux container with dotnet-trace, dotnet-dump, dotnet-counters, dotnet-gcdump and Visual Studio](https://www.mytechramblings.com/posts/profiling-a-net-app-with-dotnet-cli-diagnostic-tools/)\n- [A brief introduction to DiagnosticSource](https://andrewlock.net/a-brief-introduction-to-diagnostic-source/)\n- [Consuming anonymous types with DiagnosticListener in .NET 6](https://andrewlock.net/consuming-anonymous-types-with-diagnosticlistener-in-dotnet6/)\n\n## 📺 Videos\n- [Diagnostics Improvements in .NET Core 3.0](https://www.youtube.com/watch?v=fkjetdIdcyg)\n- [Introducing the Diagnostics Client Library for .NET Core](https://www.youtube.com/watch?v=Rei6d9nKaFQ)\n- [Cool things you can do with .NET Core 3 Tooling - Jonathan Mezach](https://www.youtube.com/watch?v=MSCRzPiGKr8)\n- [DiagnosticSource and Activity, Tracing in .NET Part 1 - .NET Concept of the Week - Episode 18](https://www.youtube.com/watch?v=y52l8XR3XK4)\n- [.NET Design Review: System.Diagnostics.Activity](https://www.youtube.com/watch?v=a3xPdYi6jYU)\n- [Diagnosing .NET 6 issues from sidecar containers using dotnet-monitor](https://www.youtube.com/watch?v=oCY9BsAw5oU)\n- [dotnet-monitor Fundamentals - Accessing .NET Diagnostics Easier](https://www.youtube.com/watch?v=pG0t19bEYJw)\n- [dotnet-monitor: Enabling a diagnostics sidecar in AKS](https://www.youtube.com/watch?v=3nzZO34nUFQ)\n## 🚀 Samples\n- [gregkalapos/DiagnosticSource](https://github.com/gregkalapos/DotNetConceptOfTheWeek/tree/master/18_DiagnosticSource)\n- [aspnet/AspNetCore/blob/master/src/Hosting/Hosting/src/Internal/HostingEventSource.cs](https://github.com/aspnet/AspNetCore/blob/master/src/Hosting/Hosting/src/Internal/HostingEventSource.cs)\n- [aspnet/AspNetCore/blob/master/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelEventSource.cs](https://github.com/aspnet/AspNetCore/blob/master/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelEventSource.cs)\n- [SkyAPM-dotnet/SkyApm.Diagnostics.AspNetCore/HostingDiagnosticProcessor](https://github.com/SkyAPM/SkyAPM-dotnet/blob/master/src/SkyApm.Diagnostics.AspNetCore/HostingDiagnosticProcessor.cs)\n- [dotnet/runtime/DiagnosticsHandler](https://github.com/dotnet/runtime/blob/4f9ae42d861fcb4be2fcd5d3d55d5f227d30e723/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs#L98)\n- [dotnet/aspnetcore/HostingApplicationDiagnostics](https://github.com/dotnet/aspnetcore/blob/master/src/Hosting/Hosting/src/Internal/HostingApplicationDiagnostics.cs#L314)\n- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.StackExchangeRedis](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis/README.md)\n- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.SqlClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.SqlClient)\n- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore)\n- [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http)\n- [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient)\n- [jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry)\n- [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources)\n## Libraries\n- [open-telemetry/opentelemetry-dotnet](https://github.com/open-telemetry/opentelemetry-dotnet) - The OpenTelemetry .NET Client\n- [Azure/diagnostics-eventflow](https://github.com/Azure/diagnostics-eventflow) - Microsoft Diagnostics EventFlow\n- [bluekiri/bluekiri-diagnostics-prometheus](https://github.com/bluekiri/bluekiri-diagnostics-prometheus) - Exposes Diagnostic Source events as prometheus metrics using prometheus-net underneath\n- [sgryphon/essential-diagnostics](https://github.com/sgryphon/essential-diagnostics) - Essential.Diagnostics contains additional trace listeners, filters and utility classes for the .NET Framework System.Diagnostics trace logging. Included are colored console, SQL database, rolling file, Seq logging server, and in-memory trace listeners, expression filters, activity and logical operation scopes, and configuration file monitoring.\n- [SkyAPM/SkyAPM-dotnet](https://github.com/SkyAPM/SkyAPM-dotnet)\n- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.StackExchangeRedis](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis/README.md)\n- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.SqlClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.SqlClient)\n- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore)\n- [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http)\n- [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient)\n- [jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry)\n- [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources) - extends the core MongoDB C# driver to expose telemetry information via System.Diagnostics.\n- [spectreconsole/errata](https://github.com/spectreconsole/errata) - A library that makes it easy to create and display diagnostics of different kinds.\n"
  },
  {
    "path": "docs/distributed-tracing.md",
    "content": "# Distributed Tracing\n\n## 📕 Articles\n- [Collect a distributed trace](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs)\n- [NET distributed tracing concepts](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-concepts)\n- [Adding distributed tracing instrumentation](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs)\n- [Using W3C Trace Context standard in distributed tracing](https://dev.to/luizhlelis/using-w3c-trace-context-standard-in-distributed-tracing-3743)\n- [Building End-to-End Diagnostics and Tracing: An Intro](https://jimmybogard.com/building-end-to-end-diagnostics-and-tracing-a-primer/)\n- [Distributed Tracing in ASP.NET Core with Jaeger and Tye Part 1 - Distributed Tracing](https://thecloudblog.net/post/distributed-tracing-in-asp.net-core-with-jaeger-and-tye-part-1-distributed-tracing/)\n- [Distributed Tracing in ASP.NET Core with Jaeger and Tye Part 2 - Project Tye](https://thecloudblog.net/post/distributed-tracing-in-asp.net-core-with-jaeger-and-tye-part-2-project-tye/)\n- [Getting Started with OpenTelemetry .NET C#](https://opentelemetry.lightstep.com/csharp/)\n- [OpenTelemetry .NET reaches v1.0](https://devblogs.microsoft.com/dotnet/opentelemetry-net-reaches-v1-0/)\n- [Deep Dive into Open Telemetry for .NET](https://rehansaeed.com/deep-dive-into-open-telemetry-for-net/)\n- [Open Telemetry for ASP.NET Core](https://rehansaeed.com/open-telemetry-for-asp-net-core/)\n- [Exporting Open Telemetry Data to Jaeger](https://rehansaeed.com/exporting-open-telemetry-data-to-jaeger/)\n- [OpenTracing and C#](https://www.olivercoding.com/2018-12-14-jaeger-csharp/)\n- [OpenTracing and C#: part 2](https://www.olivercoding.com/2018-12-30-jaeger-csharp-2/)\n- [Getting started with OpenTelemetry and distributed tracing in .NET Core](https://www.mytechramblings.com/posts/getting-started-with-opentelemetry-and-dotnet-core/)\n- [Distributed Tracing with OpenTracing API of .NET Core Applications on Kubernetes](https://www.gokhan-gokalp.com/en/distributed-tracing-with-opentracing-api-of-net-core-applications-on-kubernetes/)\n- [How Distributed Tracing Solves One of the Worst Microservices Problems](https://petabridge.com/blog/why-use-distributed-tracing/)\n- [Why You Should be Paying Attention to OpenTracing](https://petabridge.com/blog/why-use-opentracing/)\n- [The Current State of OpenTelemetry in .NET](https://petabridge.com/blog/state-opentelemetry-dotnet/)\n- [Improvements in .NET Core 3.0 for troubleshooting and monitoring distributed apps](https://devblogs.microsoft.com/aspnet/improvements-in-net-core-3-0-for-troubleshooting-and-monitoring-distributed-apps/)\n- [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps/#adding-tracing-to-a-net-core-application)\n- [A Step by Step Guide to Logging in ASP.NET Core 5](https://www.ezzylearning.net/tutorial/a-step-by-step-guide-to-logging-in-asp-net-core-5)\n- [Capturing and forwarding correlation IDs in ASP.NET Core](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore/)\n- [Capturing and forwarding correlation IDs in ASP.NET Core, the easy way](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore-version-2/)\n- [ASP.NET CORE CORRELATION IDS](https://www.stevejgordon.co.uk/asp-net-core-correlation-ids)\n- [Diagnostics in .Net Core 3: Listening to outbound HTTP requests](https://im5tu.io/article/2020/06/diagnostics-in-.net-core-3-listening-to-outbound-http-requests/)\n- [A consistent approach to track correlation IDs through microservices](https://theburningmonk.com/2015/05/a-consistent-approach-to-track-correlation-ids-through-microservices/)\n- [Trace Context](https://www.w3.org/TR/trace-context)\n- [Propagation format for distributed trace context: Baggage](https://w3c.github.io/baggage/)\n- [Using Jaeger and OpenTelemetry SDKs in a mixed environment with W3C Trace-Context](https://medium.com/jaegertracing/jaeger-clients-and-w3c-trace-context-c2ce1b9dc390)\n- [Distributed Tracing In .NET](https://dashdevs.com/blog/quick-and-efficient-distributed-tracing-in.net/)\n- [Diagnostics Improvements in .NET Core 3.0](https://www.youtube.com/watch?v=fkjetdIdcyg)\n- [Distributed Tracing with gRPC and OpenTelemetry](https://blog.ladeak.net/posts/grpc-distributed-tracing)\n- [Introducing diagnostics improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/introducing-diagnostics-improvements-in-net-core-3-0/)\n- [Using the DiagnosticSource in .NET Core: Theory](https://sudonull.com/post/3671-Using-the-DiagnosticSource-in-NET-Core-Theory)\n- [Add SkyWalking + SkyApm-dotnet distributed link tracking system to the microservice framework Demo.MicroServer](https://www.programmersought.com/article/76773716203/)\n- [Asp.Net Core uses Skywalking to implement distributed link tracking](https://www.programmersought.com/article/64607508135/)\n- [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps/)\n- [OpenTelemetry .NET API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md)\n- [OpenTelemetry .NET SDK](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry)\n- [OpenTelemetry in .NET](https://lightstep.com/blog/opentelemetry-net-all-you-need-to-know/)\n- [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/)\n- [Monitoring a .NET application using OpenTelemetry](https://www.meziantou.net/monitoring-a-dotnet-application-using-opentelemetry.htm)\n- [OpenTelemetry in .NET](https://rafaelldi.blog/posts/open-telemetry-in-dotnet/)\n- [Distributed tracing for messaging application](https://rafaelldi.blog/posts/distributed-tracing-for-messaging-application/)\n- [Distributed application with Project Tye](https://rafaelldi.blog/posts/distributed-application-with-project-tye/)\n- [Tracing for messaging application](https://rafaelldi.blog/posts/tracing-for-messaging-application/)\n- [Optimally Configuring Open Telemetry Tracing for ASP.NET Core](https://rehansaeed.com/optimally-configuring-open-telemetry-tracing-for-asp-net-core/)\n- [Request Tracing And Logging Between Multiple MicroService With Correlation Id Using Serilog In .NET Core](https://www.c-sharpcorner.com/article/logging-and-tracing-in-multiple-microservice-with-correlation-using-net-core/)\n- [Instrumenting .NET Apps with OpenTelemetry](https://www.thorsten-hans.com/instrumenting-dotnet-apps-with-opentelemetry/)\n- [Observability with Grafana Cloud and OpenTelemetry in .net microservices](https://dev.to/dbolotov/observability-with-grafana-cloud-and-opentelemetry-in-net-microservices-448c)\n- [Automatic Instrumentation of Containerized .NET Applications With OpenTelemetry](https://www.twilio.com/blog/automatic-instrumentation-of-containerized-dotnet-applications-with-opentelemetry)\n\n## 📺 Videos\n- [Jimmy Bogard - Distributed Tracing Made Easy with .NET Core and OpenTelemetry](https://www.youtube.com/watch?v=s9UNr1oEMl4)\n- [On .NET Live - Cloud Native Patterns for .NET Developers](https://www.youtube.com/watch?v=PDdHa0ushJ0)\n- [Distributed Tracing Made Easy with .NET Core - Jimmy Bogard](https://www.youtube.com/watch?v=kfyCHtqk-Ts)\n- [Distributed Tracing Made Easy with .NET 5, with Jimmy Bogard](https://www.youtube.com/watch?v=N0r5NSY3ZIQ)\n- [Distributed Tracing with .NET 5](https://www.youtube.com/watch?v=cgfIX9Y7AsQ)\n- [ASP.NET Core Series: Tracing](https://www.youtube.com/watch?v=G_C1RGOYZk8)\n- [Distributed Tracing with Jaeger [Microservices .NET]](https://www.youtube.com/watch?v=toXFRBtv4fg)\n- [Application Diagnostics in .NET Core 3.1 - Damian Edwards & David Fowler](https://www.youtube.com/watch?v=p6CjlnwPhHQ)\n- [DiagnosticSource and Activity, Tracing in .NET Part 1 - .NET Concept of the Week - Episode 18](https://www.youtube.com/watch?v=y52l8XR3XK4)\n- [Tracing with Jaeger and Kubernetes](https://www.youtube.com/watch?v=FikF0DtxZno)\n- [Exploring distributed tracing with ASP NET Core 6](https://www.youtube.com/watch?v=l1_i8p2hVlE)\n- [OpenTelemetry with Minimal APIs in .NET 6](https://www.youtube.com/watch?v=djLCqEzf72o)\n- [OpenTelemetry will save your day and night - Alexey Zimarev - NDC Oslo 2021](https://www.youtube.com/watch?v=pz4bNmlss3w)\n- [Practical OpenTelemetry for .NET - Martin Thwaites - NDC Oslo 2023](https://www.youtube.com/watch?v=c4AJlZeX2fE)\n\n## 📦 Libraries\n- [SkyAPM/SkyAPM-dotnet](https://github.com/SkyAPM/SkyAPM-dotnet) - The .NET/.NET Core instrument agent for Apache SkyWalking\n- [opentracing-contrib/csharp-netcore](https://github.com/opentracing-contrib/csharp-netcore) - OpenTracing instrumentation for .NET Core & .NET 5 apps\n- [jaegertracing/jaeger-client-csharp](https://github.com/jaegertracing/jaeger-client-csharp) - C# client (tracer) for Jaeger\n- [open-telemetry/opentelemetry-dotnet](https://github.com/open-telemetry/opentelemetry-dotnet) - The OpenTelemetry .NET Client\n- [SkyAPM/SkyAPM-dotnet](https://github.com/SkyAPM/SkyAPM-dotnet) - The .NET/.NET Core instrument agent for Apache SkyWalking\n- [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources) - extends the core MongoDB C# driver to expose telemetry information via System.Diagnostics.\n- [jbogard/NServiceBus.Extensions.Diagnostics.OpenTelemetry](https://github.com/jbogard/NServiceBus.Extensions.Diagnostics.OpenTelemetry)\n- [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources)\n- [open-telemetry/opentelemetry-dotnet-contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) - This repository contains set of components extending functionality of the OpenTelemetry .NET SDK. Instrumentation libraries, exporters, and other components can find their home here.\n\n## 🚀 Samples\n- [karlospn/opentelemetry-tracing-demo](https://github.com/karlospn/opentelemetry-tracing-demo) \n- [jbogard/nsb-diagnostics-poc](https://github.com/jbogard/nsb-diagnostics-poc)\n- [open-telemetry/opentelemetry-dotnet/examples](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/examples)\n- [damikun/trouble-training](https://github.com/damikun/trouble-training)\n- [andreatosato/Photobook](https://github.com/andreatosato/Photobook)\n- [james-world/oxford-otel-demo](https://github.com/james-world/oxford-otel-demo)\n- [joaofbantunes/ExploringDistributedTracingWithAspNet](https://github.com/joaofbantunes/ExploringDistributedTracingWithAspNet)\n- [oskardudycz/EventSourcing.NetCore](https://github.com/oskardudycz/EventSourcing.NetCore/pull/181)\n- [Eventuous/eventuous](https://github.com/Eventuous/eventuous)\n- [kimcuhoang/practical-net-otelcollector](https://github.com/kimcuhoang/practical-net-otelcollector) ⭐ - Practical .NET Observability with OpenTelemetry Collector\n- [cecilphillip/grafana-otel-dotnet](https://github.com/cecilphillip/grafana-otel-dotnet) ⭐ - Sample setup showing ASP.NET Core observability with Prometheus, Loki, Grafana, Opentelemetry Collector\n"
  },
  {
    "path": "docs/documentation.md",
    "content": "# Documentation\n\n## 📕 Articles\n- [C# Comments: A Complete Guide, Including Examples](https://blog.submain.com/c-comments-complete-guide/)\n- [C# Documentation: A Start to Finish Guide](https://blog.submain.com/c-documentation-start-finish-guide/)\n- [How to Document Code: 5 Ways to Help Maintenance Programmers](https://blog.submain.com/how-to-document-code/)\n- [Elements of Helpful Code Documentation](https://blog.submain.com/elements-of-helpful-code-documentation/)\n- [A Field Guide to Code Comments](https://blog.submain.com/field-guide-code-comments/)\n- [10 Best Practices for Code Commenting](https://samirbehara.com/2016/02/25/10-best-practices-for-code-commenting/)\n- [Clean code tips - comments and formatting](https://www.code4it.dev/blog/clean-code-comments-and-formatting)\n- [Best practices for writing code comments](https://stackoverflow.blog/2021/07/05/best-practices-for-writing-code-comments/)\n- [Recommended XML tags for C# documentation comments](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/recommended-tags)\n- [Inherit XML Documentation Comments in C#](https://improveandrepeat.com/2021/04/inherit-xml-documentation-comments-in-c/)\n\n## 📺 Videos\n- [Are comments in code actually a bad practice?](https://www.youtube.com/watch?v=GjZ1GsQPcg4)\n\n## Libraries\n- [Chase-William/.Docs](https://github.com/Chase-William/.Docs) - DotDocs is an intuitive & reliable documentation generator library for C# projects. Currently it produces markdown files as documentation and support for website generation is planned.\n"
  },
  {
    "path": "docs/dotnet/build.md",
    "content": "# .Net Build\n\n## Articles\n- [Setting up a build with NUKE](https://blog.codingmilitia.com/2020/10/24/2020-10-24-setting-up-a-build-with-nuke/)\n- [Cross-platform Build Automation with Nuke](https://dev.to/damikun/the-cross-platform-build-automation-with-nuke-1kmc)\n- [damikun/trouble-training/Doc/BuildSystem.md](https://github.com/damikun/trouble-training/blob/main/Doc/BuildSystem.md)\n- [Quick Wins for .NET build pipelines](https://gsferreira.com/archive/2022/quick-wins-for-dotnet-build-pipelines/)\n- [Automate your .NET project builds with NUKE a cross-platform build automation solution](https://laurentkempe.com/2022/02/02/automate-your-dotnet-project-builds-with-nuke-a-cross-platform-build-automation-solution/)\n## Videos\n- [MS Build: Things You Should Know About Project Files - .NET Oxford - January 2020](https://www.youtube.com/watch?v=5HEbsyU5E1g\n- [Build Automation with NUKE](https://www.youtube.com/watch?v=PuItTaThE6c)\n- [Setting up a build with NUKE](https://www.youtube.com/watch?v=xdvpqvOMeyc\n- [10 Ingredients for an AKEless Build System. Matthias Koch .NET Fest 2019](https://www.youtube.com/watch?v=SVD70QYvQ6I)\n\n## Libraries\n- [nuke-build/nuke](https://github.com/nuke-build/nuke) - The AKEless Build System for C#/.NET\n- [Fody/Fody](https://github.com/Fody/Fody) - Extensible tool for weaving .net assemblies\n- [fsprojects/Paket](https://github.com/fsprojects/Paket) - A dependency manager for .NET with support for NuGet packages and Git repositories.\n\n## Samples\n- [damikun/trouble-training/blob/main/Doc/BuildSystem.md](https://github.com/damikun/trouble-training/blob/main/Doc/BuildSystem.md)\n\n## Tools\n- [Sharplab IO](https://sharplab.io/)\n"
  },
  {
    "path": "docs/dotnet/dotnet-core-architecture.md",
    "content": "\n# DotNet Core Architecture\n\n## 📝 Articles\n\n- [ASP.NET CORE ANATOMY – HOW DOES USESTARTUP WORK?](https://www.stevejgordon.co.uk/aspnet-core-anatomy-how-does-usestartup-work)\n- [ASP.NET CORE ANATOMY (PART 2) – ADDMVC](https://www.stevejgordon.co.uk/asp-net-core-anatomy-part-2-addmvc)\n- [ASP.NET CORE ANATOMY (PART 3) – USEMVC](https://www.stevejgordon.co.uk/asp-net-core-anatomy-part-3-addmvc)\n- [ASP.NET CORE ANATOMY (PART 4) – INVOKING THE MVC MIDDLEWARE](https://www.stevejgordon.co.uk/invoking-mvc-middleware-asp-net-core-anatomy-part-4)\n- [Deep-dive into .NET Core primitives: deps.json, runtimeconfig.json, and dll's](https://natemcmaster.com/blog/2017/12/21/netcore-primitives/)\n- [Deep-dive into .NET Core primitives, part 2: the shared framework](https://natemcmaster.com/blog/2018/08/29/netcore-primitives-2/)\n- [Deep-dive into .NET Core primitives, part 3: runtimeconfig.json in depth](https://natemcmaster.com/blog/2019/01/09/netcore-primitives-3/)\n\n## 📹 Videos\n\n- [ASP.NET Community Standup - ASP.NET Core Architecture with David Fowler](https://www.youtube.com/watch?v=d9Bjg31VuHw)\n- [ASP.NET Core Architecture: Part 3](https://www.youtube.com/watch?v=OTpxQFXxKPs)\n- [ASP.NET Community Standup - ASP.NET Core Architecture: Part 2](www.youtube.com/watch?v=x_AXKLfG8o0)\n- [Munich .NET Meetup: Anatomy of ASP.NET Core Requests by Steve Gordon](https://www.youtube.com/watch?v=zMU_LGbTsCQ)\n- [.NET Architects Panel | .NET Conf 2022](https://www.youtube.com/watch?v=x_JsCQCci_Q)"
  },
  {
    "path": "docs/dotnet/dotnet-core-tips.md",
    "content": "\n# .Net Core Tips\n\n## 📝 Articles\n\n- [davidfowl/AspNetCoreGuidance](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AspNetCoreGuidance.md)\n\n## 🔖 Samples\n\n- [davidfowl/AspNetCoreDiagnosticScenarios](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios) \n  > This repository has examples of broken patterns in ASP.NET Core applications\n \n- [davidfowl/DotNetCodingPatterns](https://github.com/davidfowl/DotNetCodingPatterns)\n  > A collection of coding patterns in no particular order\n"
  },
  {
    "path": "docs/dotnet/dotnet-core.md",
    "content": "# ASP.Net Core\n\n## 📘 Resources\n\n- [ASP.NET Core Application Architecture](https://dotnet.microsoft.com/learn/aspnet/architecture)\n- [ASP.NET Core architecture e-book](https://dotnet.microsoft.com/download/e-book/aspnet/pdf)\n- [Porting existing ASP.NET Apps to .NET Core e-book](https://dotnet.microsoft.com/download/e-book/porting-aspnet-apps/pdf)\n\n## 📝 Articles\n\n- [What's new in ASP.NET Core 2.1](https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-2.1)\n- [What's new in ASP.NET Core 2.2](https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-2.2)\n- [What's new in ASP.NET Core 3.0](https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-3.0)\n- [What's new in ASP.NET Core 3.1](https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-3.1)\n- [What's new in ASP.NET Core 5.0](https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0)\n- [Migrate from ASP.NET Core 2.2 to 3.0](https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30)\n- [Migrate from ASP.NET Core 3.0 to 3.1](https://docs.microsoft.com/en-us/aspnet/core/migration/30-to-31)\n- [Migrate from ASP.NET Core 3.1 to 5.0](https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50)\n- [Performance Improvements in .NET Core](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core/)\n- [Performance Improvements in .NET Core 2.1](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-2-1/)\n- [Performance Improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/)\n- [.NET Core Transitive Dependencies and how to block them](https://curia.me/net-core-transitive-references-and-how-to-block-them/)\n- [What is a Transitive dependency in .NET Core](https://www.thecodebuzz.com/transitive-dependency-in-net-core/)\n- [Framework Reference](https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-5.0&tabs=visual-studio#framework-reference)\n- [Deep-dive into .NET Core primitives: deps.json, runtimeconfig.json, and dll's](https://natemcmaster.com/blog/2017/12/21/netcore-primitives/)\n- [Deep-dive into .NET Core primitives, part 2: the shared framework](https://natemcmaster.com/blog/2018/08/29/netcore-primitives-2/)\n- [Deep-dive into .NET Core primitives, part 3: runtimeconfig.json in depth](https://natemcmaster.com/blog/2019/01/09/netcore-primitives-3/)\n- [When ASP.NET Core can't find your controller: debugging application parts](https://andrewlock.net/when-asp-net-core-cant-find-your-controller-debugging-application-parts/)\n- [Share controllers, views, Razor Pages and more with Application Parts](https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/app-parts)\n- [Work with the application model in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/application-model)\n- [ASP.NET CORE MVC ANATOMY (PART 1) – ADDMVCCORE](https://www.stevejgordon.co.uk/asp-net-core-mvc-anatomy-addmvccore)\n\n## 📹 Videos\n- [Migrating to .NET Core 3 | ASP.NET Core 2.2 & 3 REST API Tutorial 16](https://www.youtube.com/watch?v=gYy5XJRJkOo)\n- [Upgrading to .NET Core 3.1 (Real Life Project)](https://www.youtube.com/watch?v=afyCeCkec4c)\n- [Cleanup Transitive Dependencies in .NET with Snitch- CodeWithStu](https://www.youtube.com/watch?v=ZdCn6kpGBhI)\n- [The next 5 years of ASP.NET Core - Ryan Nowak](https://www.youtube.com/watch?v=7dJBmV_psW0)\n## 🚀 Samples\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore) - Practical samples of ASP.NET Core 2.1, 2.2, 3.1, 5.0 and 6.0 Preview 5 projects you can use. Readme contains explanations on all projects.\n\n## 📦 Libraries\n- [dotnet/try-convert](https://github.com/dotnet/try-convert) - Helping .NET developers port their projects to .NET Core!\n"
  },
  {
    "path": "docs/dotnet/dotnet-standard.md",
    "content": "# .Net Standard\n\n## 📝 Articles\n- [.NET Standard - Microsoft](https://learn.microsoft.com/en-us/dotnet/standard/net-standard)\n- [Understanding the .NET ecosystem: The introduction of .NET Standard](https://andrewlock.net/understanding-the-dotnet-ecosystem-the-introduction-of-dotnet-standard/)\n\n## 📹 Videos\n- [Big Changes in .NET 5, C# 9, and Visual Studio 2019 - IAmTimCorey](https://www.youtube.com/watch?v=zjVgQNfAEOs)\n"
  },
  {
    "path": "docs/dotnet/dotnet-template.md",
    "content": "# .Net Template\n\n## Resources\n- [.Net Template Engine GitHub](https://github.com/dotnet/templating)\n\n## 📕 Articles\n- [Custom templates for dotnet new](https://docs.microsoft.com/en-us/dotnet/core/tools/custom-templates)\n- [HOW TO CREATE NEW MICROSERVICES EASILY WITH DOTNET CUSTOM TEMPLATES](https://kristhecodingunicorn.com/post/dotnet_custom_templates/)\n- [How to create your own templates for dotnet new](https://devblogs.microsoft.com/dotnet/how-to-create-your-own-templates-for-dotnet-new/) ⭐\n- [Reference for template.json](https://github.com/dotnet/templating/wiki/Reference-for-template.json)\n- [How to create your .NET project template to use with .NET CLI and Visual Studio](https://auth0.com/blog/create-dotnet-project-template/)\n- [Make your own custom .NET Core templates](https://craftbakery.dev/make-your-own-custom-netcore-template/)\n- [Creating .NET Project Templates](https://code-maze.com/dotnet-project-templates-creation/) ⭐\n- [Tutorial: Create an item template](https://learn.microsoft.com/en-us/dotnet/core/tutorials/cli-templates-create-item-template)\n- [Tutorial: Create a project template](https://learn.microsoft.com/en-us/dotnet/core/tutorials/cli-templates-create-project-template) ⭐\n- [Tutorial: Create a template package](https://learn.microsoft.com/en-us/dotnet/core/tutorials/cli-templates-create-template-package)\n- [Custom templates for dotnet new](https://learn.microsoft.com/en-us/dotnet/core/tools/custom-templates) ⭐⭐\n- [Reference for template.json](https://github.com/dotnet/templating/wiki/Reference-for-template.json) ⭐⭐\n- [Custom Project Templates Using dotnet new](https://rehansaeed.com/custom-project-templates-using-dotnet-new/)\n- [dotnet new Feature Selection](https://rehansaeed.com/dotnet-new-feature-selection/)\n- [Unit Testing dotnet new Templates](https://rehansaeed.com/unit-testing-dotnet-new-templates/)\n- [An opinionated list of tips for building .NET 8 app templates](https://www.mytechramblings.com/posts/an-opinionated-list-of-tips-for-building-a-dotnet-8-template/)\n\n## 📺 Videos\n- [On .NET Live - Creating your own .NET Project Templates](https://www.youtube.com/watch?v=H_pqfeRgTYw)\n- [How to create your own project templates in .NET](https://www.youtube.com/watch?v=rdWZo5PD9Ek) ⭐\n- [Create a .NET Core Project Template](https://www.youtube.com/watch?v=GDNcxU0_OuE)\n- [Create a .NET Core Project Template for Visual Studio](https://www.youtube.com/watch?v=2hpNFrY_faI)\n\n## Templates\n- [pereiren/dotnet-template-onion](https://github.com/pereiren/dotnet-template-onion) - Onion Architecture with .NET 5/.NET Core and CQRS/Event Sourcing following a DDD approach\n- [Dotnet-Boxed/Framework](https://github.com/Dotnet-Boxed/Framework) - .NET Core Extensions and Helper NuGet packages.\n- [Dotnet-Boxed/Templates](https://github.com/Dotnet-Boxed/Templates) - .NET project templates with batteries included, providing the minimum amount of code required to get you going faster.\n- [blazorhero/CleanArchitecture](https://github.com/blazorhero/CleanArchitecture) - Clean Architecture Template for Blazor WebAssembly Built with MudBlazor Components.\n- [iammukeshm/OnionArchitecture](https://github.com/iammukeshm/OnionArchitecture) - The onion architecture, introduced by Jeffrey Palermo, overcomes the issues of the layered architecture with great ease. With Onion Architecture, the game-changer is that the Domain Layer (Entities and Validation Rules that are common to the business case ) is at the Core of the Entire Application. This means higher flexibility and lesser coupling\n- [iammukeshm/CleanArchitecture.WebApi](https://github.com/iammukeshm/CleanArchitecture.WebApi) - An implementation of Clean Architecture for ASP.NET Core 3.1 WebAPI. Built with loosely coupled architecture and clean-code practices in mind.\n- [ardalis/CleanArchitecture](https://github.com/ardalis/CleanArchitecture) - A starting point for Clean Architecture with ASP.NET Core\n- [Amitpnk/Clean-Architecture-ASP.NET-Core](https://github.com/Amitpnk/Clean-Architecture-ASP.NET-Core) - Complete solution template which is built on Clean Architecture with all essential feature, CI/CD, best practice, testing Strategy using the testing pyramid and documentation using .NET 5!\n- [Amitpnk/Onion-architecture-ASP.NET-Core](https://github.com/Amitpnk/Onion-architecture-ASP.NET-Core) - WhiteApp API solution template which is built on Onion Architecture with all essential feature using .NET 5!\n- [jasontaylordev/CleanArchitecture](https://github.com/jasontaylordev/CleanArchitecture) - Clean Architecture Solution Template for Angular 10 and .NET 5\n- [aspnet-core-react-template](https://github.com/bradymholt/aspnet-core-react-template) - ASP.NET Core 3.1 / React SPA Template App\n- [NickMaev/react-core-boilerplate](https://github.com/NickMaev/react-core-boilerplate) - Powerful ASP.NET Core 3 templates with React, true server-side rendering and Docker support\n- [CodAffection/React-CRUD-with-Asp.Net-Core-Web-API](https://github.com/CodAffection/React-CRUD-with-Asp.Net-Core-Web-API) - Full Stack React js CRUD with Asp.Net Core Web\n- [microsoft/AspNetCore-React-WebApp](https://github.com/microsoft/AspNetCore-React-WebApp) - ASP.NET Core backend + React frontend + Entity Framework Core + automated testing\n- [based-ghost/aspnet-core-react-redux-playground-template](https://github.com/based-ghost/aspnet-core-react-redux-playground-template) - SPA template built with ASP.NET Core 5.0 + React + Redux + TypeScript + Hot Module Replacement (HMR)\n- [NetCoreTemplates/react-spa](https://github.com/NetCoreTemplates/react-spa) - .NET 5.0 React Create App CLI Bootstrap App\n- [TrilonIO/aspnetcore-Vue-starter](https://github.com/TrilonIO/aspnetcore-Vue-starter) - Asp.net Core & Vue.js (ES6) SPA Starter kit - Vuex, webpack, Web API, Docker, and more!\n- [SoftwareAteliers/asp-net-core-vue-starter](https://github.com/SoftwareAteliers/asp-net-core-vue-starter) - ASP.NET Core + Vue.js starter project\n- [danijelh/aspnetcore-vue-typescript-template](https://github.com/danijelh/aspnetcore-vue-typescript-template) - Template AspNetCore with Vue, Vue router, Vuex, TypeScript, Bulma, Sass and Jest\n- [NetCoreTemplates/vue-spa](https://github.com/NetCoreTemplates/vue-spa) - .NET 5.0 Vue CLI Bootstrap App\n- [damienbod/AspNetCoreMvcVueJs](https://github.com/damienbod/AspNetCoreMvcVueJs) - ASP.NET Core with Vue.js\n- [based-ghost/aspnet-core-vue-vuex-playground-template](https://github.com/based-ghost/aspnet-core-vue-vuex-playground-template) - SPA template built with ASP.NET Core 5.0 + Vue + Vuex + TypeScript + Hot Module Replacement (HMR)\n- [TrilonIO/aspnetcore-angular-universal](https://github.com/TrilonIO/aspnetcore-angular-universal) - ASP.NET Core & Angular Universal advanced starter - PWA w/ server-side rendering for SEO, Bootstrap, i18n internationalization, TypeScript, unit testing, WebAPI REST setup, SignalR, Swagger docs, and more!\n- [emonney/QuickApp](https://github.com/emonney/QuickApp) - ASP.NET Core 3.1 / Angular 9 startup project template with complete login, user and role management. Plus other useful services for Quick Application Development\n- [FabianGosebrink/ASPNETCore-Angular-Ngrx](FabianGosebrink/ASPNETCore-Angular-Ngrx) - An ASP.NET Core WebAPI Demo with an Angular Client using Ngrx store and effects and Signalr\n- [jasontaylordev/SecureSpa](https://github.com/jasontaylordev/SecureSpa) - ASP.NET Core 3 + Angular 8 + ASP.NET Identity generated using .NET Core SDK\n- [DanWahlin/AngularCLI-ASPNET-Core-CustomersService](https://github.com/DanWahlin/AngularCLI-ASPNET-Core-CustomersService) - Example of integrating Angular with ASP.NET Core RESTful Services\n- [NetCoreTemplates/angular-spa](https://github.com/NetCoreTemplates/angular-spa) - .NET 5.0 Angular 9 CLI Bootstrap App\n- [dotnet/aspire/Aspire.ProjectTemplates](https://github.com/dotnet/aspire/tree/main/src/Aspire.ProjectTemplates)\n"
  },
  {
    "path": "docs/dotnet/dotnet.md",
    "content": "# .NET\n\n## 📘 Resources \n- [Introducing The .NET Coding Pack for VS Code - Getting Started with C# for Beginners](https://www.hanselman.com/blog/introducing-the-net-coding-pack-for-vs-code-getting-started-with-c-for-beginners)\n- [.NET Source Browser](https://source.dot.net/)\n- [Learn to code C#](https://dotnet.microsoft.com/en-us/learntocode)\n- [Dotnet Developer References](https://github.com/hgmauri/references-for-dotnet-developers)\n- [Favourite .NET Content Creators](https://github.com/matthiasjost/dotnet-content-creators)\n## 📝 Articles\n- [What is .NET, and why should you choose it?](https://devblogs.microsoft.com/dotnet/why-dotnet/)\n- [The Many Flavors of .NET - Sean Killeen](https://flavorsof.net)\n- [.NET Basics](https://dusted.codes/dotnet-basics)\n- [Introducing The .NET Coding Pack for VS Code - Getting Started with C# for Beginners](https://www.hanselman.com/blog/introducing-the-net-coding-pack-for-vs-code-getting-started-with-c-for-beginners)\n## 📹 Videos\n- [What is .NET? What's C# and F#? What's the .NET Ecosystem? .NET Core Explained, what can .NET build?](https://www.youtube.com/watch?v=bEfBfBQq7EE)\n- [.NET Hot Reload; Update Code While Running](https://www.youtube.com/watch?v=eccKPXt9-pE)\n- [Get Started Quick with the .NET Coding Pack for VS Code](https://www.youtube.com/watch?v=gmMCAyNcB3Q)\n- [David Fowler - Don’t need to understand the details of .NET. Until you do (Dotnetos Conference 2021)](https://www.youtube.com/watch?v=Uyg4_4TZINE)\n## Samples\n- [TGrannen/dotnet-samples](https://github.com/TGrannen/dotnet-samples) - Repository to showcase common dotnet patterns and packages"
  },
  {
    "path": "docs/dotnet/dotnet10.md",
    "content": "# .Net 10\n\n## Articles\n\n- [.NET 10 Preview 1 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-10-preview-1/)\n- [.NET 10 Preview 2 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-10-preview-2/)\n- [.NET 10 Preview 3 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-10-preview-3/)\n- [.NET 10 Preview 4 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-10-preview-4/)\n- [.NET 10 Preview 5 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-10-preview-5/)\n- [.NET 10 Preview 6 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-10-preview-6/)\n- [Exploring the features of dotnet run app.cs - Exploring the .NET 10 preview - Part 1](https://andrewlock.net/exploring-dotnet-10-preview-features-1-exploring-the-dotnet-run-app.cs/)\n- [Behind the scenes of dotnet run app.cs - Exploring the .NET 10 preview - Part 2](https://andrewlock.net/exploring-dotnet-10-preview-features-2-behind-the-scenes-of-dotnet-run-app.cs/)\n- [C# 14 extension members; AKA extension everything - Exploring the .NET 10 preview - Part 3](https://andrewlock.net/exploring-dotnet-10-preview-features-3-csharp-14-extensions-members/)\n- [Solving the source generator 'marker attribute' problem in .NET 10 - Exploring the .NET 10 preview - Part 4](https://andrewlock.net/exploring-dotnet-10-preview-features-4-solving-the-source-generator-marker-attribute-problem-in-dotnet-10/)"
  },
  {
    "path": "docs/dotnet/dotnet5.md",
    "content": "# .Net 5\n\n## 📝 Articles\n\n- [Announcing .NET 5.0 - DevBlogs](https://devblogs.microsoft.com/dotnet/announcing-net-5-0/)\n- [What's new in ASP.NET Core 5.0](https://docs.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0)\n- [Announcing ASP.NET Core in .NET 5](https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/)\n- [Migrate from ASP.NET Core 3.1 to 5.0](https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50)\n- [What's new in .NET 5 - Microsoft](https://docs.microsoft.com/en-us/dotnet/core/dotnet-five)\n- [Performance Improvements in .NET 5 - DevBlogs](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/)\n- [Astonishing Performance of .NET 5](https://alexyakunin.medium.com/astonishing-performance-of-net-5-7803d69dae2e)\n- [.NET 5 Networking Improvements](https://devblogs.microsoft.com/dotnet/net-5-new-networking-improvements/)\n- [Understanding cross platform .NET, and why .NET 5 is important](https://www.fearofoblivion.com/understanding-cross-platform-NET-and-why-NET-5-is-important)\n## 📺 Videos\n- [What's new in .NET 5 and C# 9](https://www.youtube.com/watch?v=K32WV452o5c)\n- [Upgrading to .NET 5.0 RC w/ C# 9.0](https://www.youtube.com/watch?v=afyCeCkec4c)\n- [Migrate from .NET 3.1 to .NET 5 in 2021](https://www.youtube.com/watch?v=LLeN-IwqEOE)\n"
  },
  {
    "path": "docs/dotnet/dotnet6.md",
    "content": "# .Net 6\n\n## Resources\n- [Migration to ASP.NET Core in .NET 6](https://gist.github.com/davidfowl/0e0372c3c1d895c3ce195ba983b1e03d)\n- [Migrate from ASP.NET Core 5.0 to 6.0](https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60)\n## 📕 Articles\n- [Date, Time, and Time Zone Enhancements in .NET 6](https://devblogs.microsoft.com/dotnet/date-time-and-time-zone-enhancements-in-net-6/)\n- [.NET 6: Collections Improvements](https://www.infoq.com/news/2021/06/Net6-Collections/)\n- [Performance Improvements in .NET 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/)\n- [Performance improvements in ASP.NET Core 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-6/)\n- [Announcing .NET 6 Preview 4](https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-4/?WT.mc_id=DOP-MVP-5003880)\n- [Announcing .NET 6 Preview 5](https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-5/)\n- [Part 1 - Looking inside ConfigurationManager in .NET 6](https://andrewlock.net/exploring-dotnet-6-part-1-looking-inside-configurationmanager-in-dotnet-6/)\n- [Part 2 - Comparing WebApplicationBuilder to the Generic Host ](https://andrewlock.net/exploring-dotnet-6-part-2-comparing-webapplicationbuilder-to-the-generic-host/)\n- [Part 3 - Exploring the code behind WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-3-exploring-the-code-behind-webapplicationbuilder/)\n- [Hot Reload for .NET 6 in Rider 2021.3](https://blog.jetbrains.com/dotnet/2021/10/25/hot-reload-for-net-6-in-rider-2021-3/)\n- [Announcing .NET 6 — The Fastest .NET Yet](https://devblogs.microsoft.com/dotnet/announcing-net-6/?WT.mc_id=DT-MVP-5002040)\n- [.NET 6 vs .NET 5: up to 40% speedup!](https://alexyakunin.medium.com/net-6-vs-net-5-up-to-40-speedup-ceca9112d298)\n- [File-Scoped Namespaces – A Look at New Language Features in C# 10](https://blog.jetbrains.com/dotnet/2021/10/28/file-scoped-namespaces-in-csharp-10/)\n- [Implicit Using Statements In .NET 6](https://dotnetcoretutorials.com/2021/08/31/implicit-using-statements-in-net-6)\n- [IEnumerable Chunk In .NET 6](https://dotnetcoretutorials.com/2021/08/12/ienumerable-chunk-in-net-6)\n- [Don't Do That, Do This: The .NET 6 Edition](https://www.daveabrock.com/2021/12/08/do-this-not-that-the-net-6-edition/)\n- [20 New APIs in .NET 6](https://blog.okyrylchuk.dev/20-new-apis-in-net-6)\n- [.NET 6 Networking Improvements](https://devblogs.microsoft.com/dotnet/dotnet-6-networking-improvements/)\n- [What’s new for gRPC in .NET 6](https://devblogs.microsoft.com/dotnet/grpc-in-dotnet-6/)\n- [String Interpolation in C# 10 and .NET 6](https://devblogs.microsoft.com/dotnet/string-interpolation-in-c-10-and-net-6/)\n- [LINQ improvements in .NET 6](https://blog.okyrylchuk.dev/linq-improvements-in-net-6)\n- [.NET 6 Has Arrived: Here Are A Few of My Favorite Things](https://www.daveabrock.com/2021/12/03/dotnet-6-favorite-things/)\n- [What's new in .NET 6 and C# 10. Everything you wanted to know.](https://nikiforovall.github.io/dotnet/csharp/coding-stories/2021/10/29/whats-new-in-dotnet6.html)\n- [.Net 6: What’s new in LINQ at a glance!](http://damienvdk.com/index.php/2021/12/12/net-6-the-news-of-linq-in-a-wink/)\n- [.NET 6 is now in Ubuntu 22.04](https://devblogs.microsoft.com/dotnet/dotnet-6-is-now-in-ubuntu-2204/)\n## 📺 Videos\n- [ASP.NET Community Standup - ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=Mot8qAWEnj8)\n- [The future of modern application development with .NET](https://www.youtube.com/watch?v=2Ky28Et3gy0)\n- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)\n- [Languages & Runtime Community Standup - Breaking changes & .NET 6 Preview 6 and 7](https://www.youtube.com/watch?v=J0LTqwTojlA)\n- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)\n- [ASP.NET Community Standup - ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=Mot8qAWEnj8)\n- [Migrating to .NET 6 from .NET Core 3.1 | ASP.NET Core WebAPI](https://www.youtube.com/watch?v=LON-PTi2AC0)\n- [Upgrading from .NET Framework to .NET 6](https://www.youtube.com/watch?v=cOHXt_0VDRI)\n- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)\n- [ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=D5xcUtPCG2s)\n- [4 new useful APIs in .NET 6](https://www.youtube.com/watch?v=3YCdSvDXGJA)\n## 🚀 Samples\n- [okyrylchuk/dotnet6_features](https://github.com/okyrylchuk/dotnet6_features)\n- [NikiforovAll/whats-new-in-dotnet6](https://github.com/NikiforovAll/whats-new-in-dotnet6)\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)\n- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)"
  },
  {
    "path": "docs/dotnet/dotnet7.md",
    "content": "# .Net 7\n\n## Articles\n- [ASP.NET Core updates in .NET 7 Preview 1](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-7-preview-1/)\n- [ASP.NET Core on .NET 7.0 - Roadmap, preview 1 and file upload in minimal APIs](https://asp.net-hacker.rocks/2022/02/21/aspnetcore7.html)\n- [Announcing .NET 7 Preview 1](https://devblogs.microsoft.com/dotnet/announcing-net-7-preview-1/)\n- [Announcing .NET 7 Preview 2 – The New, ‘New’ Experience](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-2/)\n- [Announcing .NET 7 Preview 3](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-3/)\n- [Announcing .NET 7 Preview 4](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-4/)\n- [Announcing .NET 7 Preview 5](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-5/)\n- [Announcing .NET 7 Preview 6](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-6/)\n- [Announcing .NET 7 Preview 7](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-7/)\n- [Announcing .NET 7 Release Candidate 1](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-1/)\n- [Announcing .NET 7 Release Candidate 2](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-rc-2/)\n- [.NET 7 Preview 5 – Generic Math](https://devblogs.microsoft.com/dotnet/dotnet-7-generic-math/)\n- [What's new in .NET 7](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-7)\n- [.NET 7 SDK built-in container support and Ubuntu Chiseled](https://laurentkempe.com/2022/11/14/dotnet-7-sdk-built-in-container-support-and-ubuntu-chiseled/)\n- [Announcing built-in container support for the .NET SDK](https://devblogs.microsoft.com/dotnet/announcing-builtin-container-support-for-the-dotnet-sdk/)\n- [.NET 7 Networking Improvements](https://devblogs.microsoft.com/dotnet/dotnet-7-networking-improvements/)\n- [.NET 7 is Available Today](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/)\n- [Understanding the .NET ecosystem: The evolution of .NET into .NET 7](https://andrewlock.net/understanding-the-dotnet-ecosystem-the-evolution-of-dotnet-into-dotnet-7/)\n- [Understanding the .NET ecosystem: The introduction of .NET Standard](https://andrewlock.net/understanding-the-dotnet-ecosystem-the-introduction-of-dotnet-standard/)\n\n\n## Videos\n- [Hidden gems and live coding with .NET 7 ](https://ignite.microsoft.com/en-US/sessions/639d9c8d-e826-4a51-9e75-4c2c402b410a)\n\n## Samples\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore)\n- [okyrylchuk/dotnet7_features](https://github.com/okyrylchuk/dotnet7_features)\n- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)"
  },
  {
    "path": "docs/dotnet/dotnet8.md",
    "content": "# .Net 8\n\n## Articles\n- [Announcing .NET 8](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/)\n- [What's new in .NET 8](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/overview)\n- [What's new in the .NET 8 runtime](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/runtime)\n- [What's new in the SDK and tooling for .NET 8](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/sdk)\n- [What's new in containers for .NET 8](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/containers)\n- [Announcing .NET 8 Preview 1](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-1/)\n- [Announcing .NET 8 Preview 2](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-2/)\n- [Announcing .NET 8 Preview 3](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-3/)\n- [https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-4/](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-4/)\n- [Announcing .NET 8 Preview 5](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-5/)\n- [Announcing .NET 8 Preview 6](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-6/)\n- [Announcing .NET 8 Preview 7](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-7/)\n- [Using the new configuration binder source generator - Exploring the .NET 8 preview - Part 1](https://andrewlock.net/exploring-the-dotnet-8-preview-using-the-new-configuration-binder-source-generator/)\n- [The minimal API AOT compilation template - Exploring the .NET 8 preview - Part 2](https://andrewlock.net/exploring-the-dotnet-8-preview-the-minimal-api-aot-template/)\n- [Comparing WebApplication.CreateBuilder() to the new CreateSlimBuilder() method - Exploring the .NET 8 preview - Part 3](https://andrewlock.net/exploring-the-dotnet-8-preview-comparing-createbuilder-to-the-new-createslimbuilder-method/)\n- [Exploring the new minimal API source generator - Exploring the .NET 8 preview - Part 4](https://andrewlock.net/exploring-the-dotnet-8-preview-exploring-the-new-minimal-api-source-generator/)\n- [Replacing method calls with Interceptors - Exploring the .NET 8 preview - Part 5](https://andrewlock.net/exploring-the-dotnet-8-preview-changing-method-calls-with-interceptors/)\n- [Keyed Services in .NET8's Dependency Injection - Exploring the .NET 8 preview - Part 6](https://dev.to/xelit3/keyed-services-in-net8s-dependency-injection-2gni)\n- [Form binding in minimal APIs Exploring the .NET 8 preview - Part 7](https://andrewlock.net/exploring-the-dotnet-8-preview-form-binding-in-minimal-apis/)\n- [Introducing the Identity API endpoints Exploring the .NET 8 preview - Part 8](https://andrewlock.net/exploring-the-dotnet-8-preview-introducing-the-identity-api-endpoints/)\n- [Should you use the .NET 8 Identity API endpoints?](https://andrewlock.net/should-you-use-the-dotnet-8-identity-api-endpoints/)\n- [ASP.NET Core 8.0 Preview: All New Identity Endpoints](https://jaliyaudagedara.blogspot.com/2023/08/aspnet-core-80-preview-all-new-identity.html)\n- [What’s new in System.Text.Json in .NET 8](https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-8/)\n- [Debugging Enhancements in .NET 8](https://devblogs.microsoft.com/dotnet/debugging-enhancements-in-dotnet-8/)\n- [.NET 8 Top 10 New Features](https://blog.ndepend.com/net-8-top-10-new-features/)\n- [.NET 8 Top 10 New Features](https://blog.ndepend.com/net-8-top-10-new-features/)"
  },
  {
    "path": "docs/dotnet/dotnet9.md",
    "content": "# .Net 9\n\n## Articles\n- [Announcing .NET 9](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/)\n- [What's new in .NET 9](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/overview)\n- [What's new in the .NET 9 runtime](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/runtime)\n- [What's new in .NET libraries for .NET 9](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/libraries)\n- [What's new in the SDK for .NET 9](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/sdk)\n- [.NET 9 Preview 6 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-9-preview-6/)\n- [.NET 9 Preview 7 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-9-preview-7/)\n- [Performance Improvements in .NET 9](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-9/)\n- [What’s new in System.Text.Json in .NET 9](https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-9/)\n"
  },
  {
    "path": "docs/dotnet/global-json.md",
    "content": "# global.json File\n\n## Articles\n- [global.json overview](https://learn.microsoft.com/en-us/dotnet/core/tools/global-json)\n- [Exploring the new rollForward and allowPrerelease settings in global.json](https://andrewlock.net/exploring-the-new-rollforward-and-allowprerelease-settings-in-global-json/)"
  },
  {
    "path": "docs/dotnet/il.md",
    "content": "# .Net IL\n\n## 📕 Articles\n- [.NET IL Generation - Writing DeepCopy](https://reubenbond.github.io/posts/codegen-2-il-boogaloo)\n- [[C#] How method calling works](http://www.levibotelho.com/development/how-method-calling-works/)\n\n## Tools\n- [SharpLab](https://sharplab.io)\n- [DotPeek](https://www.jetbrains.com/decompiler/)\n\n## Libraries\n- [kevin-montrose/Sigil](https://github.com/kevin-montrose/Sigil) - A fail-fast validating helper for .NET CIL generation"
  },
  {
    "path": "docs/dotnet/metapack.md",
    "content": "\n# MetaPack\n\n## 📝 Articles\n\n- [Microsoft.AspNetCore.App for ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app)\n- [Microsoft.AspNetCore.App for ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app)\n- [Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage)\n- [Deep-dive into .NET Core primitives, part 2: the shared framework](https://b2n.ir/083540)\n- [Framework Reference](https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-5.0&tabs=visual-studio#framework-reference)\n- [Deep-dive into .NET Core primitives: deps.json, runtimeconfig.json, and dll's](https://natemcmaster.com/blog/2017/12/21/netcore-primitives/)\n- [Deep-dive into .NET Core primitives, part 2: the shared framework](https://natemcmaster.com/blog/2018/08/29/netcore-primitives-2/)\n- [Deep-dive into .NET Core primitives, part 3: runtimeconfig.json in depth](https://natemcmaster.com/blog/2019/01/09/netcore-primitives-3/)\n- [Use ASP.NET Core APIs in a class library](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore)"
  },
  {
    "path": "docs/dotnet/multi-target.md",
    "content": "# Multi Target\n\n## Articles\n- [Support multiple .NET Framework versions in your project file](https://learn.microsoft.com/en-us/nuget/create-packages/multiple-target-frameworks-project-file)\n- [Polyfills in .NET to ease multi-targeting](https://www.meziantou.net/polyfills-in-dotnet-to-ease-multi-targeting.htm)\n- [Multi-targeting your nuget packages](https://josef.codes/multi-targeting-your-nuget-packages/)"
  },
  {
    "path": "docs/dotnet/package-management.md",
    "content": "# .Net Package Management\n\n## Articles\n- [Directory.Build.props: C# 9 for all your projects](https://blog.johnnyreilly.com/2021/07/14/directory-build-props-c-sharp-9-for-all/)\n- [Common MSBuild properties and items with Directory.Build.props](https://thomaslevesque.com/2017/09/18/common-msbuild-properties-and-items-with-directory-build-props/)\n- [How to centrally manage NuGet package versions within your solution](https://www.mytechramblings.com/posts/centrally-manage-nuget-versions/)\n- [Managing Package Versions Centrally](https://stu.dev/managing-package-versions-centrally/)\n- [Directory.Packages.props, a solution to unify your NuGet package versions](https://timdeschryver.dev/blog/directorypackagesprops-a-solution-to-unify-your-nuget-package-versions)\n- [Getting Started with Paket – Part 1](https://cockneycoder.wordpress.com/2017/08/07/getting-started-with-paket-part-1/)\n- [Adding the Directory.Build.props](https://gsferreira.com/archive/2018/06/versioning-net-core-applications-using-cake/)\n- [Customize your build](https://docs.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2022)\n- [Introducing Central Package Management](https://devblogs.microsoft.com/nuget/introducing-central-package-management/)\n- [Directory.Build.props - Centralize your builds](https://steven-giesel.com/blogPost/f3f46814-06c9-41b7-84fa-09ebb3305ed0)\n- [Set C# Language Version for All the Projects in a Solution](https://code-maze.com/set-csharp-language-version-all-projects-in-solution/)\n- [How to centrally manage NuGet package versions within your solution](https://www.mytechramblings.com/posts/centrally-manage-nuget-versions/)\n- [How to manage nuget packages globally for all projects in a solution using Visual Studio 2022?](https://stackoverflow.com/questions/70952225/how-to-manage-nuget-packages-globally-for-all-projects-in-a-solution-using-visua)\n- [Announcing NuGet 6.3 – Transitive Dependencies, Floating Versions, and Re-enabling Signed Package Verification](https://devblogs.microsoft.com/nuget/announcing-nuget-6-3-transitive-dependencies-floating-versions-and-re-enabling-signed-package-verification/)\n- [Transitive NuGet dependencies: .NET Core’s got your back](https://www.erikheemskerk.nl/transitive-nuget-dependencies-net-core-got-your-back/)\n- [What is a Transitive dependency in .NET Core](https://www.thecodebuzz.com/transitive-dependency-in-net-core/)\n- [Finding .NET Transitive Dependencies and Tidying Up Your Project](https://gsferreira.com/archive/2022/finding-dotnet-transitive-dependencies-and-tidying-up-your-project/)\n- [Package Source Mapping](https://docs.microsoft.com/en-us/nuget/consume-packages/package-source-mapping)\n- [Finding transitive dependencies using dotnet core](https://joeblogs.technology/2021/03/finding-transitive-dependencies-using-dotnet-core/)\n- [NuGet Central Package Management Comes To JetBrains Rider](https://blog.jetbrains.com/dotnet/2022/11/07/nuget-central-package-management-comes-to-jetbrains-rider/)\n- [Ensuring best practices for NuGet packages](https://www.meziantou.net/ensuring-best-practices-for-nuget-packages.htm)\n- [Package authoring best practices](https://learn.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices)\n- [The .editorconfig files for .NET developers](https://blog.ndepend.com/the-editorconfig-files-for-net-developers/)\n- [Understand Directory.Build.props: Centralizing .NET Project Configurations](https://blog.ndepend.com/directory-build-props/)\n\n## Videos\n- [PM on the NuGet team at Microsoft - Claire Novotny - NDC London 2022](https://youtu.be/C_2BStepVKw?t=3102)\n- [NuGet PackageReference Versions SOLUTION Wide](https://www.youtube.com/watch?v=GolKKJmqxoc)\n- [Distribute your csproj settings via NuGet - CodeWithStu](https://www.youtube.com/watch?v=V5wJeN3Ntqc)\n- [5 things Microsoft needs to do to make Central Package Management widely used](https://www.youtube.com/watch?v=rTYjbEnVlc0)\n- [Tidy up your .NET dependencies with Snitch](https://www.youtube.com/watch?v=sKWX8_7mjaY)\n- [Secure your NuGet packages with Package Source Mapping](https://www.youtube.com/watch?v=G6P38Dn69Ro)\n## Libraries\n- [Webreaper/CentralisedPackageConverter](https://github.com/Webreaper/CentralisedPackageConverter) - Converts a project to use Centralised Package Management\n- [spectresystems/snitch](https://github.com/spectresystems/snitch) - A tool that help you find duplicate transitive package references."
  },
  {
    "path": "docs/dotnet/source-links.md",
    "content": "# Source Links\n\n## Articles\n- [Go To Definition improvements for external source in Roslyn](https://devblogs.microsoft.com/dotnet/go-to-definition-improvements-for-external-source-in-roslyn/)\n- [Introducing links to source code for .NET API Docs](https://devblogs.microsoft.com/dotnet/dotnet-docs-link-to-source-code/)"
  },
  {
    "path": "docs/dotnet-cli/dotnet-cli.md",
    "content": "\n# .Net CLI\n\n## 📝 Articles\n\n- [.NET CLI overview](https://docs.microsoft.com/en-us/dotnet/core/tools/)\n- [Custom templates for dotnet new](https://docs.microsoft.com/en-us/dotnet/core/tools/custom-templates)\n- [How to enable TAB completion for the .NET CLI](https://docs.microsoft.com/en-us/dotnet/core/tools/enable-tab-autocomplete)\n- [Enable tab completion for the .NET CLI in your terminal](https://anthonysimmon.com/enable-dotnet-cli-tab-completion-terminal/)\n- [How to enable tab completion for the .NET CLI](https://learn.microsoft.com/en-us/dotnet/core/tools/enable-tab-autocomplete)\n- [How to configure true dependency injection in System.CommandLine](https://anthonysimmon.com/true-dependency-injection-with-system-commandline/)\n- [Get started with System.CommandLine](https://learn.microsoft.com/en-us/dotnet/standard/commandline/get-started-tutorial)\n- [Crafting beautiful interactive console apps with System.CommandLine and Spectre.Console](https://anthonysimmon.com/beautiful-interactive-console-apps-with-system-commandline-and-spectre-console/)\n\n## Tools\n- [dotnet/command-line-api](https://github.com/dotnet/command-line-api) - Command line parsing, invocation, and rendering of terminal output.\n- [spectreconsole/spectre.console](https://github.com/spectreconsole/spectre.console) - A .NET library that makes it easier to create beautiful console applications.\n- [Cysharp/ConsoleAppFramework](https://github.com/Cysharp/ConsoleAppFramework) - Zero Dependency, Zero Overhead, Zero Reflection, Zero Allocation, AOT Safe CLI Framework powered by C# Source Generator."
  },
  {
    "path": "docs/dotnet-cli/dotnet-tools.md",
    "content": "\n# .Net Tools\n\n## 📝 Articles\n\n- [Using .NET Core Tools to Create Reusable and Shareable Tools & Apps](https://weblog.west-wind.com/posts/2020/Aug/05/Using-NET-Core-Tools-to-Create-Reusable-and-Shareable-Tools-Apps)\n- [How to manage .NET tools](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools)\n- [dotnet tool search](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-search)\n- [dotnet tool install](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-install)\n- [dotnet tool list](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-list)\n- [Tutorial: Create a .NET tool using the .NET CLI](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools-how-to-create)\n- [Collect diagnostics in containers](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/diagnostics-in-containers)\n- [New in .NET Core 3.0: local tools](https://andrewlock.net/new-in-net-core-3-local-tools/)\n- [.NET Core 3 Local Tools](https://stu.dev/dotnet-core-3-local-tools/)\n## 📦 Libraries\n\n- [dotnet-tools](https://github.com/natemcmaster/dotnet-tools) - A list of tools to extend the .NET Core command line (dotnet)\n- [Investigate performance counters (dotnet-counters)](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-counters) - .NET Core Performance Counter Tool\n- [lowleveldesign/dotnet-wtrace](https://github.com/lowleveldesign/dotnet-wtrace) - A command-line tool for live tracing .NET applications, based on Event Pipes.\n- [bjorkstromm/depends](https://github.com/bjorkstromm/depends) - Tool for generating dependency trees for .NET projects\n"
  },
  {
    "path": "docs/dotnet-cli/dotnet-watch.md",
    "content": "# .Net Watch\n\n## 📕 Articles\n- [watch for ASP .NET Core projects](https://dev.to/juxant/auto-refresh-with-dotnet-watch-for-asp-net-core-projects-20no)\n- [Introducing the .NET Hot Reload experience for editing code at runtime](https://devblogs.microsoft.com/dotnet/introducing-net-hot-reload/)\n- [Live Coding In .NET Core Using “dotnet watch”](https://dotnetcoretutorials.com/2020/01/01/live-coding-net-core-using-dotnet-watch/)\n- [Watching More Files With Dotnet Watch For Static Sites](https://khalidabuhakmeh.com/watching-more-files-with-dotnet-watch-for-static-sites)\n- [Using dotnet watch run with JetBrains Rider](https://scottsauber.com/2021/01/24/using-dotnet-watch-run-with-jetbrains-rider/)"
  },
  {
    "path": "docs/dotnet-cli/upgrade-assistant.md",
    "content": "# Upgrade Assistant\n\n## 📕 Articles\n- [Overview of the .NET Upgrade Assistant](https://docs.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview)\n- [Meet the .NET Upgrade Assistant, Your .NET 5 Moving Company](https://www.telerik.com/blogs/meet-dotnet-upgrade-assistant-your-dotnet-5-moving-company)\n- [.NET Upgrade Assistant](https://dotnet.microsoft.com/platform/upgrade-assistant)\n- [.NET Upgrade Assistant - Get Started](https://dotnet.microsoft.com/platform/upgrade-assistant/tutorial/install-sdk)\n- [How to Upgrade a Codebase from .NET Framework to .NET 6](https://christianfindlay.com/2021/12/12/upgrade-to-net-6/)"
  },
  {
    "path": "docs/ef-core/change-tracking.md",
    "content": "# Change Tracking\n\n## Articles\n- [Change Tracking in EF Core](https://docs.microsoft.com/en-us/ef/core/change-tracking/)\n- [Explicitly Tracking Entities](https://docs.microsoft.com/en-us/ef/core/change-tracking/explicit-tracking)\n- [Change Detection and Notifications](https://docs.microsoft.com/en-us/ef/core/change-tracking/change-detection)\n- [ChangeTracker in Entity Framework Core](https://www.entityframeworktutorial.net/efcore/changetracker-in-ef-core.aspx)\n- [It’s here! Trackable Entities for EF Core!](https://blog.tonysneed.com/2017/10/01/trackable-entities-for-ef-core/)\n- [CHANGE TRACKING OPTIMIZATION IN ENTITY FRAMEWORK](https://www.diwebsity.com/2016/01/05/change-tracking-optimization/)\n- [Secrets of DetectChanges Part 1: What does DetectChanges do?](https://blog.oneunicorn.com/2012/03/10/secrets-of-detectchanges-part-1-what-does-detectchanges-do/)\n- [Secrets of DetectChanges Part 2: When is DetectChanges called automatically?](https://blog.oneunicorn.com/2012/03/11/secrets-of-detectchanges-part-2-when-is-detectchanges-called-automatically/)\n- [Secrets of DetectChanges Part 3: Switching off automatic DetectChanges](https://blog.oneunicorn.com/2012/03/12/secrets-of-detectchanges-part-3-switching-off-automatic-detectchanges/)\n- [Secrets of DetectChanges Part 4: Binary properties and complex types](https://blog.oneunicorn.com/2012/03/13/secrets-of-detectchanges-part-4-binary-properties-and-complex-types/)\n- [Entity Framework .AsNoTracking() – why & how (EF and EF Core)](https://agirlamonggeeks.com/2019/05/06/entity-framework-asnotracking-why-how-ef-and-ef-core/) ⭐⭐\n- [Avoid AsNoTracking and Include when querying using Entity Framework in ASP.NET](https://www.devtrends.co.uk/blog/avoid-asnotracking-and-include-when-querying-using-entity-framework-in-asp.net) ⭐⭐"
  },
  {
    "path": "docs/ef-core/compiled-query.md",
    "content": "# Compiled Query\n\n## Articles\n- [Compiled queries (LINQ to Entities)](https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/ef/language-reference/compiled-queries-linq-to-entities)\n- [Improving EF Core performance with Compiled Queries](https://dotnetthoughts.net/improve-ef-core-performance-with-compiled-queries/)\n- [Compiled queries](https://learn.microsoft.com/en-us/ef/core/performance/advanced-performance-topics?tabs=with-di%2Cexpression-api-with-constant#compiled-queries)"
  },
  {
    "path": "docs/ef-core/eager-loading.md",
    "content": "# Eager Loading\n\n## Articles\n- [Eager Loading of Related Data](https://docs.microsoft.com/en-us/ef/core/querying/related-data/eager)\n- [Load related entities eagerly when possible](https://docs.microsoft.com/en-us/ef/core/performance/efficient-querying#load-related-entities-eagerly-when-possible)"
  },
  {
    "path": "docs/ef-core/ef-core.md",
    "content": "\n# EF Core\n\n## 📝 Articles\n\n- [Entity Framework Core health check](https://www.michalbialecki.com/2020/03/13/entity-framework-core-health-check/)\n- [Entity Framework Core 3.0: A Foundation for the Future](https://codemag.com/Article/1911062/Entity-Framework-Core-3.0-A-Foundation-for-the-Future)\n- [How to call stored procedures with OUTPUT parameters with FromSqlRaw in EF Core](https://erikej.github.io/efcore/2020/08/03/ef-core-call-stored-procedures-out-parameters.html)\n- [Query non-table classes using ad-hoc (raw) SQL with EF Core 3.1](https://erikej.github.io/efcore/2020/04/06/query-non-table-classes-raw-sql.html)\n- [Mapping and using SQL Server stored procedures with EF Core Power Tools](https://erikej.github.io/efcore/2020/08/10/ef-core-power-tools-stored-procedures.html)\n- [Avoiding SQL Server plan cache pollution with EF Core 3 and Enumerable.Contains](https://erikej.github.io/efcore/sqlserver/2020/03/30/ef-core-cache-pollution.html)\n- [How to pass a dynamic/variable list of values as SqlParameters with FromSqlRaw in EF Core](https://erikej.github.io/efcore/sqlserver/2020/04/20/use-dynamic-sqlparameters-with-fromsql.html)\n- [EF Core Power Tools database reverse engineering: renaming of entities and properties](https://erikej.github.io/efcore/2020/09/07/ef-core-power-tools-renaming-advanced.html)\n- [Change Tracking in EF Core](https://docs.microsoft.com/en-us/ef/core/change-tracking/)\n- [Expression and Projection Magic for Entity Framework Core](https://benjii.me/2018/01/expression-projection-magic-entity-framework-core/)\n- [Database Providers](https://docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli)\n- [Designing for Related Data without Foreign Keys](https://ardalis.com/related-data-without-foreign-keys/)\n- [Automate Database Deployments](https://www.programmingwithwolfgang.com/automate-database-deployments/)\n- [Efficient querying with LINQ, AutoMapper and Future queries](https://lostechies.com/jimmybogard/2014/03/11/efficient-querying-with-linq-automapper-and-future-queries/)\n- [CQRS with Entity Framework Core](https://www.edgesidesolutions.com/cqrs-with-entity-framework-core/)\n- [Entity Framework Exceptions](https://www.giorgi.dev/portfolio/entityframework-exceptions/)\n- [Triggers for Entity Framework Core](https://onthedrift.com/posts/efcore-triggered-part1/)\n- [A robust event-driven architecture for using with Entity Framework Core](https://www.thereformedprogrammer.net/a-robust-event-driven-architecture-for-using-with-entity-framework-core/)\n- [EfCore.GenericEventRunner: an event-driven library that works with EF Core](https://www.thereformedprogrammer.net/efcore-genericeventrunner-an-event-driven-library-that-works-with-ef-core/)\n- [How slow is LINQ?](https://lex45x.medium.com/how-slow-is-linq-c3ab4037d467)\n- [LINQ: Beware of deferred execution](https://dev.to/dr_sam_walpole/linq-beware-of-deferred-execution-59db)\n- [A Cleaner Way To Do Entity Configuration With EF Core](https://dotnetcoretutorials.com/2020/06/27/a-cleaner-way-to-do-entity-configuration-with-ef-core/)\n- [Fluent API Configuration](https://www.learnentityframeworkcore.com/configuration/fluent-api)\n- [Configuring DBContext in Entity framework ASP.NET Core – Best Practices](https://www.thecodebuzz.com/configure-dbcontext-entity-framework-efcore-asp-net-core/)\n- [EF Projections on computed properties and methods without a hassle!](https://onthedrift.com/posts/efcore-projectables/)\n- [EFCore.Projectables and the curious case of an unexpected performance boost](https://onthedrift.com/posts/efcore-projectables-perf/)\n- [Calling functions in LINQ queries](http://tomasp.net/blog/linq-expand.aspx/)\n- [LINQ: Building an IQueryable provider series](https://docs.microsoft.com/en-us/archive/blogs/mattwar/linq-building-an-iqueryable-provider-series)\n- [Entity types with constructors](https://docs.microsoft.com/en-us/ef/core/modeling/constructors)\n- [Get Better at EntityFramework Core — Best Practices](https://medium.com/analytics-vidhya/entityframework-core-dont-get-burnt-in-production-335ddfcfdfda)\n- [Value Conversions](https://docs.microsoft.com/en-us/ef/core/modeling/value-conversions?tabs=data-annotations)\n- [Entity Framework Core: Enums](https://medium.com/agilix/entity-framework-core-enums-ee0f8f4063f2)\n- [Entity Framework Enum Code First Lookup Table](https://codewithshadman.com/entity-framework-enum-code-first/)\n- [MongoDB Provider for Entity Framework Core Now Available in Public Preview](https://www.mongodb.com/blog/post/mongodb-provider-entity-framework-core-now-available-public-preview)\n- [Trying out MongoDB with EF Core using Testcontainers](https://devblogs.microsoft.com/dotnet/efcore-mongodb/)\n\n## 📹 Videos\n\n- [Typed Exceptions for Entity Framework Core](https://www.youtube.com/watch?v=aUl5QfswNU4) \n- [Entity Framework Community Standup - Performance Tuning an EF Core App](https://www.youtube.com/watch?v=VgNFFEqwZPU)\n- [Entity Framework Community Standup - Julie Lerman and EF Core Ask Me Anything (AMA)](https://www.youtube.com/watch?v=oZVsZrFKp48)\n- [Entity Framework Community Standup - Open Source Contributions: How to Add a Feature to EF Core](https://www.youtube.com/watch?v=9OMxy1wal1s)\n- [Entity Framework Community Standup - Triggers for EF Core](https://www.youtube.com/watch?v=Gjys0Yebobk)\n- [Entity Framework Community Standup - Introducing EF Core Compiled Models](https://www.youtube.com/watch?v=XdhX3iLXAPk)\n- [Entity Framework Core In-Depth Part 1](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Entity-Framework-Core-In-Depth-Part-1)\n- [Entity Framework Core In-Depth Part 2](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Entity-Framework-Core-In-Depth-Part-2)\n- [Entity Framework Core In-Depth Part 3](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Entity-Framework-Core-In-Depth-Part-3)\n- [Entity Framework Core In-Depth Part 4](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Entity-Framework-Core-In-Depth-Part-4)\n- [Entity Framework Community Standup - Visualizing database query plans](https://www.youtube.com/watch?v=Zhy5antRDJk)\n- [.NET Data Community Standup - Testing EF Core Apps](https://www.youtube.com/watch?v=KO2aFuLqGkc)\n- [.NET Data Community Standup - Database-first with T4 Templates in EF7: Early look](https://www.youtube.com/watch?v=x2nh1vZBsHE)\n- [Shay Rojansky - How Entity Framework translates LINQ all the way to SQL - Dotnetos Conference 2019](https://www.youtube.com/watch?v=r69ZxXgOIK4)\n- [.NET Data Community Standup - Database Pagination](https://www.youtube.com/watch?v=DIKH-q-gJNU)\n- [.NET Data Community Standup - EF Core Architecture: Internal Dependency Injection](https://www.youtube.com/watch?v=pYhe-Mt0HzI)\n- [.NET Data Community Standup - Introducing the MongoDB provider for EF Core](https://www.youtube.com/watch?v=Zat-ferrjro)\n## 📦 Libraries\n- [scottksmith95/LINQKit](https://github.com/scottksmith95/LINQKit) - LINQKit is a free set of extensions for LINQ to SQL and Entity Framework power users.\n- [linq2db.EntityFrameworkCore](https://github.com/linq2db/linq2db.EntityFrameworkCore) \n- [ErikEJ/EFCorePowerTools](https://github.com/ErikEJ/EFCorePowerTools) - reverse engineering, migrations and model visualization for EF Core\n- [EntityFramework.Exceptions](https://github.com/Giorgi/EntityFramework.Exceptions) - Handle database errors easily when working with Entity Framework Core. Supports SQLServer, PostgreSQL, SQLite, Oracle and MySql\n- [thepirat000/Audit.NET](https://github.com/thepirat000/Audit.NET) - An extensible framework to audit executing operations in .NET and .NET Core.\n- [NickStrupat/EntityFramework.Triggers](https://github.com/NickStrupat/EntityFramework.Triggers)- Adds events for entity inserting, inserted, updating, updated, deleting, and deleted\n- [koenbeuk/EntityFrameworkCore.Triggered](https://github.com/koenbeuk/EntityFrameworkCore.Triggered) - Triggers for EFCore. Respond to changes in your DbContext before and after they are committed to the database.\n- [koenbeuk/EntityFrameworkCore.Projections](https://github.com/koenbeuk/EntityFrameworkCore.Projections) - WIP: Project over properties and functions in your linq query\n- [EFCore.BulkExtensions](https://github.com/borisdj/EFCore.BulkExtensions) - Entity Framework Core Bulk Batch Extensions for Insert Update Delete and Read (CRUD) operations on SQL Server and SQLite\n- [DbUp](https://github.com/DbUp/DbUp) - .NET library that helps you to deploy changes to SQL Server databases. It tracks which SQL scripts have been run already, and runs the change scripts that are needed to get your database up to date.\n- [lecaillon/Evolve](https://github.com/lecaillon/Evolve) - Simple database migration tool that uses plain SQL scripts. Inspired by Flyway.\n- [ErikEJ/EFCorePowerTools](https://github.com/ErikEJ/EFCorePowerTools)  - Entity Framework Core Power Tools - reverse engineering, migrations and model visualization for EF Core.\n- [fluentmigrator/fluentmigrator](https://github.com/fluentmigrator/fluentmigrator) - Fluent migrations framework for .NET\n- [SharpRepository/SharpRepository](https://github.com/SharpRepository/SharpRepository) - C# Generic Repository for use with Entity Framework, RavenDB and more with built-in caching options.\n- [JonPSmith/EfCore.GenericEventRunner](https://github.com/JonPSmith/EfCore.GenericEventRunner) - A library to allow developer use events to update their database via Entity Framework Core (EF Core)\n- [Lex45x/QueryNinja](https://github.com/Lex45x/QueryNinja/wiki) - Framework for dynamic query building regardless of the source and target.\n- [jtheisen/reconciler](https://github.com/jtheisen/reconciler) - Update an entity graph in store to a given one by inserting, updating and removing the respective entities.\n- [koenbeuk/EntityFrameworkCore.Projectables](https://github.com/koenbeuk/EntityFrameworkCore.Projectables) - Project over properties and functions in your linq queries\n- [mattwar/iqtoolkit](https://github.com/mattwar/iqtoolkit) - A Toolkit for building LINQ IQueryable providers. This is the official move of my IQToolkit project from CodePlex.\n- [zzzprojects/EntityFramework-Plus](https://github.com/zzzprojects/EntityFramework-Plus) - Entity Framework Plus extends your DbContext with must-haves features: Include Filter, Auditing, Caching, Query Future, Batch Delete, Batch Update, and more\n- [ninjanye/SearchExtensions](https://github.com/ninjanye/SearchExtensions) - Library of IQueryable extension methods to perform searching\n- [efcore/EFCore.CheckConstraints](https://github.com/efcore/EFCore.CheckConstraints) - An Entity Framework Core plugin to automatically add check constraints in various situations\n- [npgsql/efcore.pg](https://github.com/npgsql/efcore.pg) - Entity Framework Core provider for PostgreSQL\n- [efcore/EFCore.NamingConventions](https://github.com/efcore/EFCore.NamingConventions) - Entity Framework Core plugin to apply naming conventions to table and column names (e.g. snake_case)\n"
  },
  {
    "path": "docs/ef-core/ef-core5.md",
    "content": "\n# EF Core 5\n\n## 📝 Articles\n\n- [Announcing the Release of EF Core 5.0](https://devblogs.microsoft.com/dotnet/announcing-the-release-of-ef-core-5-0/)\n- [Getting Started With Entity Framework Core 5](https://blog.jetbrains.com/dotnet/2020/11/25/getting-started-with-entity-framework-core-5/)\n- [Entity Framework Core 5 free resources](https://erikej.github.io/efcore/2021/01/05/efcore-5-resources.html)\n- [What is New in EF Core 5.0](https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/whatsnew?WT.mc_id=DT-MVP-4025156)\n- [Calling Stored Procedures with the Entity Framework in .NET 5](https://www.codemag.com/Article/2101031/Calling-Stored-Procedures-with-the-Entity-Framework-in-.NET-5)\n- [EF Core 5: Building on the Foundation](https://www.codemag.com/Article/2010042/EF-Core-5-Building-on-the-Foundation)\n- [Entity Framework Core 5 Resources I have Created Recently](https://thedatafarm.com/data-access/entity-framework-core-5-resources/)\n- [Entity Framework Core 5 vs SQLBulkCopy](https://www.michalbialecki.com/2020/05/03/entity-framework-core-5-vs-sqlbulkcopy-2/)\n- [Useful SQL statements when writing EF Core 5 migrations](https://www.michalbialecki.com/2021/01/07/useful-sql-statements-when-writing-ef-core-5-migrations/)\n- [Adding Entity Framework Core 5 migrations to .NET 5 project](https://www.michalbialecki.com/2020/07/20/adding-entity-framework-core-5-migrations-to-net-5-project/)\n- [Merging migrations in Entity Framework Core 5](https://www.michalbialecki.com/2020/07/24/merging-migrations-in-entity-framework-core-5/)\n- [Executing raw SQL with Entity Framework Core 5](https://www.michalbialecki.com/2020/09/14/executing-raw-sql-with-entity-framework-core-5/)\n- [PrimeHotel – adding Entity Framework Core 5 in .NET](https://www.michalbialecki.com/2020/07/10/primehotel-adding-entity-framework-core-5/)\n- [Working with views in Entity Framework Core 5](https://www.michalbialecki.com/2020/09/09/working-with-views-in-entity-framework-core-5/)\n- [Adding an Entity Framework Core 5 to an existing database](https://www.michalbialecki.com/2020/07/17/adding-an-entity-framework-core-5-to-an-existing-database/)\n- [How to configure relationships in Entity Framework Core 5](https://www.michalbialecki.com/2020/10/02/how-to-configure-relationships-in-entity-framework-core-5/)\n- [Entity Framework Core – is it fast?](https://www.michalbialecki.com/2021/01/10/entity-framework-core-is-it-fast/)\n- [Bulk copy with Entity Framework Core 5](https://www.michalbialecki.com/2021/01/21/bulk-copy-with-entity-framework-core-5/)\n- [Unit tests in Entity Framework Core 5](https://www.michalbialecki.com/2020/11/28/unit-tests-in-entity-framework-core-5/)\n- [How not to pass parameters in Entity Framework Core 5](https://www.michalbialecki.com/2020/09/26/how-not-to-pass-parameters-in-entity-framework-core-5/)\n- [Select data with a stored procedure with Entity Framework Core 5](https://www.michalbialecki.com/2020/09/03/select-data-with-a-stored-procedure-with-entity-framework-core-5/)\n- [Execute a stored procedure with Entity Framework Core 5](https://www.michalbialecki.com/2020/08/27/execute-a-stored-procedure-with-entity-framework-core-5/)\n- [Entity Framework Core 5 Value Converters](https://khalidabuhakmeh.com/entity-framework-core-5-value-converters)\n- [Entity Framework Core 5 — Table-per-Type and Table-per-Hierarchy](https://henriquesd.medium.com/entity-framework-core-5-table-per-type-and-table-per-hierarchy-215ff85e4ae8)\n- [Entity Framework Core 5.0 — Many-to-Many Relationships](https://henriquesd.medium.com/entity-framework-core-5-0-many-to-many-relationships-52c6c8b07b6e)\n- [Entity Framework Core 5 — Split Queries](https://henriquesd.medium.com/entity-framework-core-5-split-queries-2b7f6c729c8f)\n- [Split queries](https://docs.microsoft.com/en-us/ef/core/querying/single-split-queries)\n- [Entity Framework Core supports constructors with arguments](https://gunnarpeipman.com/ef-core-constructor-arguments/)\n\n## 📺 Videos\n- [Intro to Entity Framework Core 5 - New features](https://www.youtube.com/watch?v=hp298SGNFuw)\n## 📚 Books\n- [Entity Framework Core in Action, Second Edition](https://www.manning.com/books/entity-framework-core-in-action-second-edition)\n- [Beginning Entity Framework Core 5](https://www.apress.com/gp/book/9781484268810)\n\n\n <div align=\"right\">\n    <b><a href=\"#contents\">↥ Back To Top</a></b>\n  </div>\n"
  },
  {
    "path": "docs/ef-core/ef-core6.md",
    "content": "# EF Core 6\n\n## 📕 Articles\n- [Announcing Entity Framework Core 6.0 Preview 4: Performance Edition](https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-6-0-preview-4-performance-edition/)\n- [Announcing Entity Framework Core 6.0 Preview 5: Compiled Models](https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-6-0-preview-5-compiled-models/)\n- [Entity Framework Core 6 features - Part 1](https://blog.okyrylchuk.dev/entity-framework-core-6-features-part-1)\n- [Entity Framework Core 6 features - Part 2](https://blog.okyrylchuk.dev/entity-framework-core-6-features-part-2)\n- [Entity Framework Core 6 features - Part 3](https://blog.okyrylchuk.dev/entity-framework-core-6-features-part-3)\n- [Supporting EF Core migrations with WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-5-supporting-ef-core-tools-with-webapplicationbuilder/)\n"
  },
  {
    "path": "docs/ef-core/ef-core7.md",
    "content": "# EF Core 7\n\n## Articles\n- [Announcing Entity Framework 7 Preview 1](https://devblogs.microsoft.com/dotnet/announcing-entity-framework-7-preview-1/)\n- [Announcing Entity Framework Core 7 (EF7) Preview 3](https://devblogs.microsoft.com/dotnet/announcing-entity-framework-7-preview-3/)\n- [Announcing Entity Framework 7 Preview 4](https://devblogs.microsoft.com/dotnet/announcing-entity-framework-7-preview-4/)\n- [Announcing Entity Framework 7 Preview 5](https://devblogs.microsoft.com/dotnet/announcing-ef7-preview5/)\n- [Announcing Entity Framework Core 7 Preview 6: Performance Edition](https://devblogs.microsoft.com/dotnet/announcing-ef7-preview6/)\n- [Announcing Entity Framework 7 Preview 7: Interceptors!](https://devblogs.microsoft.com/dotnet/announcing-ef7-preview7-entity-framework/)\n- [Announcing Entity Framework 7 Release Candidate 1](https://devblogs.microsoft.com/dotnet/announcing-ef7-rc1/)\n- [Announcing Entity Framework Core 7 RC2: JSON Columns](https://devblogs.microsoft.com/dotnet/announcing-ef7-release-candidate-2/)\n- [Plan for Entity Framework Core 7.0](https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/plan)\n- [Bulk Operations with ExecuteDelete and ExecuteUpdate](https://dev.to/timdeschryver/new-in-entity-framework-7-bulk-operations-with-executedelete-and-executeupdate-1nh2)\n- [EF7 - Bulk updates and Bulk deletes](https://steven-giesel.com/blogPost/09dd41f9-a0ca-497b-90db-19a89b68b8a0)\n- [Entity Framework Core 7 (EF7) is available today](https://devblogs.microsoft.com/dotnet/announcing-ef7/?WT.mc_id=DT-MVP-5002040)\n- [What's New in EF Core 7.0](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-7.0/whatsnew)\n- [Entity Framework Core 7 (EF7) is available today](https://devblogs.microsoft.com/dotnet/announcing-ef7/)\n## Videos\n- [.NET Data Community Standup - Database-first with T4 Templates in EF7: Early look](https://www.youtube.com/watch?v=x2nh1vZBsHE)\n- [.NET 7 🚀 JSON Columns with Entity Framework 7 / EF 7](https://www.youtube.com/watch?v=C5AkBDp_YjI)"
  },
  {
    "path": "docs/ef-core/ef-core8.md",
    "content": "# EF Core 8\n\n## Articles\n- [EF Core 8 Preview 1: Raw, lazy, and on-time](https://devblogs.microsoft.com/dotnet/announcing-ef8-preview-1/)\n- [EF Core 8 Preview 2: Lite and familiar](https://devblogs.microsoft.com/dotnet/announcing-ef8-preview-2/)\n- [EF Core 8 Preview 4: Primitive collections and improved Contains](https://devblogs.microsoft.com/dotnet/announcing-ef8-preview-4/)\n- [EF Core 8 Release Candidate 2: Smaller features in EF8](https://devblogs.microsoft.com/dotnet/announcing-ef8-rc2/)\n- [What's New in EF Core 8](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew)\n- [Useful features in Entity Framework Core 8 for your application](https://www.dateo-software.de/blog/entity-framework-8)\n- [EF Core 8 RC1: Complex types as value objects](https://devblogs.microsoft.com/dotnet/announcing-ef8-rc1/)\n- [Domain-Driven Design With Entity Framework Core 8](https://thehonestcoder.com/ddd-ef-core-8/)\n- [EF Core 8 - Exploring Must-Know Key Features](https://www.dandoescode.com/blog/ef-core-8-exploring-mustknow-key-features)\n\n## Videos\n- [Entity Framework Core 8: Improved JSON, queryable collections , and more… | .NET Conf 2023](https://www.youtube.com/watch?v=_8iH5QnkIJo)"
  },
  {
    "path": "docs/ef-core/explicit-loading.md",
    "content": "# Explicit Loading\n\n## Articles\n- [Explicit Loading of Related Data](https://docs.microsoft.com/en-us/ef/core/querying/related-data/explicit)"
  },
  {
    "path": "docs/ef-core/expression-tree.md",
    "content": "# Expression Tree\n\n## 📕 Articles\n- [Expression Trees](https://docs.microsoft.com/en-us/dotnet/csharp/expression-trees)\n- [Inspect and Mutate IQueryable Expression Trees](https://blog.jeremylikness.com/blog/inspect-and-mutate-iqueryable-expression-trees/)\n- [Look Behind the IQueryable Curtain](https://blog.jeremylikness.com/blog/look-behind-the-iqueryable-curtain/)\n- [Dynamically Build LINQ Expressions](https://blog.jeremylikness.com/blog/dynamically-build-linq-expressions/)\n- [Expression and Projection Magic for Entity Framework Core](https://benjii.me/2018/01/expression-projection-magic-entity-framework-core/)\n- [Dynamic Queries with Expressions Trees in C#](https://michaelscodingspot.com/dynamic-queries/)\n- [Use of Expression Trees in .NET for Lambda Decomposition](http://www.abhisheksur.com/2010/09/use-of-expression-trees-in-lamda-c.html)\n- [Build dynamic Linq filters (aka. where() predicates)](https://laurentiu.codes/2021/06/04/build-a-dynamic-linq-filters-aka-where-predicates/)\n- [Working with Expression Trees in C#](https://tyrrrz.me/blog/expression-trees)\n\n## 📺 Videos\n- [When LINQ is not LINQ](https://www.youtube.com/watch?v=t2NA1hHT1JE)\n\n## 🚀 Samples\n\n- [davidfowl/QueryInterceptor](https://github.com/davidfowl/QueryInterceptor)\n\n## Libraries\n- [dbelmont/ExpressionBuilder](https://github.com/dbelmont/ExpressionBuilder) - A library that provides a simple way to create lambda expressions to filter lists and database queries.\n- [castle-it/dynamic-linq-query-builder](https://github.com/castle-it/dynamic-linq-query-builder) - A truly generic and dynamic linq query builder to compliment jQuery QueryBuilder and other dynamic linq query generation needs\n- [zzzprojects/System.Linq.Dynamic.Core](https://github.com/zzzprojects/System.Linq.Dynamic.Core) - The .NET Standard / .NET Core version from the System Linq Dynamic functionality.\n- [dynamicexpresso/DynamicExpresso](https://github.com/dynamicexpresso/DynamicExpresso) - C# expressions interpreter\n- [nreco/lambdaparser](https://github.com/nreco/lambdaparser) - Runtime parser for string expressions (formulas, method calls). Builds dynamic LINQ expression tree and compiles it to lambda delegate."
  },
  {
    "path": "docs/ef-core/interceptor.md",
    "content": "# Interceptor\n\n## Articles\n- [Entity Framework Core 5 Interceptors](https://khalidabuhakmeh.com/entity-framework-core-5-interceptors)\n- [Interceptors](https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/interceptors)\n- [A better way of resolving EF Core interceptors with dependency injection](https://mderriey.com/2020/09/12/resolve-ef-core-interceptors-with-dependency-injection/)"
  },
  {
    "path": "docs/ef-core/lazy-loading.md",
    "content": "# lazy Loading\n\n## Articles\n- [Lazy Loading of Related Data](https://docs.microsoft.com/en-us/ef/core/querying/related-data/lazy)\n- [Beware of lazy loading](https://docs.microsoft.com/en-us/ef/core/performance/efficient-querying#beware-of-lazy-loading)\n- [Avoid Lazy Loading in ASP.NET](https://wildermuth.com/2018/07/28/Avoid-Lazy-Loading-in-ASP-NET)\n- [Avoid Lazy Loading Entities in ASP.NET Applications](https://ardalis.com/avoid-lazy-loading-entities-in-asp-net-applications/)"
  },
  {
    "path": "docs/ef-core/own-types.md",
    "content": "# Own Types\n\n## Articles\n- [Owned Entity Types](https://learn.microsoft.com/en-us/ef/core/modeling/owned-entities)\n- [Support of unique Index with Owned types properties](https://github.com/dotnet/efcore/issues/12637)\n- [Fluent Api - Mapping an index over more than one column across entity types.](https://github.com/dotnet/efcore/issues/11336)\n- [Using Value Objects with Entity Framework Core](https://levelup.gitconnected.com/using-value-objects-with-entity-framework-core-5cead49dbf9c)\n- [Implement value objects](https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/implement-value-objects#additional-details-on-owned-entity-types)\n- [Simple value objects](https://learn.microsoft.com/en-us/ef/core/modeling/value-conversions?tabs=data-annotations#examples)"
  },
  {
    "path": "docs/ef-core/performance.md",
    "content": "# Performance\n\n## 📕 Articles\n- [Improve Entity Framework Core Performance](https://khalidabuhakmeh.com/improve-entity-framework-core-performance)\n- [Five levels of performance tuning for an EF Core query](https://www.thereformedprogrammer.net/five-levels-of-performance-tuning-for-an-ef-core-query/)\n- [Entity Framework Core – Projection Performance](https://eliottrobson.me/entity-framework-core-projection-performance/)\n- [Building high performance database queries using Entity Framework Core and AutoMapper](https://www.thereformedprogrammer.net/building-efficient-database-queries-using-entity-framework-core-and-automapper/)\n- [Efficient Querying](https://docs.microsoft.com/en-us/ef/core/performance/efficient-querying#beware-of-lazy-loading)\n- [Efficient Updating](https://docs.microsoft.com/en-us/ef/core/performance/efficient-updating)\n- [Asynchronous streams in C# 8.0](https://dev.to/mbernard/asynchronous-streams-in-c-8-0-33la)\n- [Advanced Performance Topics](https://learn.microsoft.com/en-us/ef/core/performance/advanced-performance-topics)\n- [Entity Framework 7 performance improvements due to less roundtrips](https://davecallan.com/entity-framework-7-performance-improvements/)\n- [Announcing Entity Framework Core 7 Preview 6: Performance Edition](https://devblogs.microsoft.com/dotnet/announcing-ef-core-7-preview6-performance-optimizations/)\n- [Performance improvements in ASP.NET Core 7](https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-7/)\n## Videos\n- [Common mistakes in EF Core - Jernej Kavka - NDC Sydney 2021](https://www.youtube.com/watch?v=iSWxny5MUY8)\n- [EF Core Performance - How to Optimize Database Updates?](https://www.youtube.com/watch?v=enpblqLhzzo)\n## Samples\n- [jernejk/EFCoreSamples.StabilityAndPerformance](https://github.com/jernejk/EFCoreSamples.StabilityAndPerformance) - Showing bad and good examples for EF Core that impacts stability and performance of the applications"
  },
  {
    "path": "docs/ef-core/projection.md",
    "content": "# Projection\n\n## Articles\n- [Expression and Projection Magic for Entity Framework Core](https://benjii.me/2018/01/expression-projection-magic-entity-framework-core/) ⭐⭐\n- [EF Core Projection Queries](https://www.tektutorialshub.com/entity-framework-core/projection-queries-in-ef-core/)\n- [EF Projections on computed properties and methods without a hassle!](https://onthedrift.com/posts/efcore-projectables/)\n- [Avoid AsNoTracking and Include when querying using Entity Framework in ASP.NET](https://www.devtrends.co.uk/blog/avoid-asnotracking-and-include-when-querying-using-entity-framework-in-asp.net) ⭐⭐\n\n## Libraries\n- [scottksmith95/LINQKit](https://github.com/scottksmith95/LINQKit) - LINQKit is a free set of extensions for LINQ to SQL and Entity Framework power users.\n- [koenbeuk/EntityFrameworkCore.Projectables](https://github.com/koenbeuk/EntityFrameworkCore.Projectables) - Project over properties and functions in your linq queries"
  },
  {
    "path": "docs/ef-core/query-filter.md",
    "content": "# Query Filters\n\n## Articles\n- [Global Query Filters](https://docs.microsoft.com/en-us/ef/core/querying/filters)\n- [Global Filter](https://entityframeworkcore.com/querying-data-global-filter)\n- [What are Global Query Filters in .NET EF Core ?](https://thecodeblogger.com/2021/07/23/what-are-global-query-filters-in-net-ef-core/)\n- [Filter user records using Global Query Filters](https://www.jerriepelser.com/blog/filter-user-records-using-global-query-filter/)\n- [Global query filters in Entity Framework Core 2.0](https://gunnarpeipman.com/ef-core-global-query-filters/)"
  },
  {
    "path": "docs/ef-core/reverse-engineering.md",
    "content": "# Reverse Engineering\n\n## Articles\n- [Reverse Engineering](https://learn.microsoft.com/en-us/ef/core/managing-schemas/scaffolding/?tabs=dotnet-core-cli)\n\n## Videos\n- [Get a Head Start with Entity Framework Core 5.0 with EF Core Power Tools](https://youtu.be/uph-AGyOd8c)\n\n## Libraries\n- [ErikEJ/EFCorePowerTools](https://github.com/ErikEJ/EFCorePowerTools)"
  },
  {
    "path": "docs/ef-core/seed.md",
    "content": "# Seed\n\n## Articles\n- [How to Create Bogus Data in C#](https://jackhiston.com/2017/10/1/how-to-create-bogus-data-in-c/)\n- [Seed Entity Framework Core With Bogus Data](https://khalidabuhakmeh.com/seed-entity-framework-core-with-bogus)\n\n## Samples\n- [bchavez/Bogus/Examples/EFCoreSeedDb/](https://github.com/bchavez/Bogus/blob/master/Examples/EFCoreSeedDb/)"
  },
  {
    "path": "docs/ef-core/soft-delete.md",
    "content": "# Soft Delete\n\n## Articles\n- [EF Core In depth – Soft deleting data with Global Query Filters](https://www.thereformedprogrammer.net/ef-core-in-depth-soft-deleting-data-with-global-query-filters/)\n- [Entity Framework Core: Soft Delete using Query Filters](https://www.meziantou.net/entity-framework-core-soft-delete-using-query-filters.htm)\n- [Introducing the EfCore.SoftDeleteServices library to automate soft deletes](https://www.thereformedprogrammer.net/introducing-the-efcore-softdeleteservices-library-to-automate-soft-deletes/)"
  },
  {
    "path": "docs/ef-core/split-query.md",
    "content": "# Split Query\n\n## Articles\n- [Split queries](https://learn.microsoft.com/en-us/ef/core/querying/single-split-queries)\n- [Entity Framework Core 5 — Split Queries](https://henriquesd.medium.com/entity-framework-core-5-split-queries-2b7f6c729c8f)\n- [EF Core 5.0: Split Queries](https://jaliyaudagedara.blogspot.com/2021/10/ef-core-50-split-queries.html)\n- [Using split queries in Entity Framework Core 5.0 to avoid the cartesian explosion problem](https://davecallan.com/using-split-queries-in-entity-framework-core-5-0-to-avoid-the-cartesian-explosion-problem/)"
  },
  {
    "path": "docs/ef-core/transaction.md",
    "content": "# Transaction\n\n## 📕 Articles\n- [Entity Framework Core and LINQ to Entities in Depth (7) Data Changes and Transactions](https://weblogs.asp.net/dixin/entity-framework-core-and-linq-to-entities-7-data-changes-and-transactions)\n- [Database Connection Resiliency in Entity Framework ASP.NET Core](https://www.thecodebuzz.com/database-connection-resiliency-entity-framework-asp-net-core/)\n- [Database Connection Resiliency in ASP.NET Core – Part II](https://www.thecodebuzz.com/database-connection-resiliency-entity-framework-transaction-asp-net-core/)\n- [Connection Resiliency](https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency)\n- [Execution strategies and explicit transactions using BeginTransaction and multiple DbContexts](https://dzfweb.gitbooks.io/microsoft-microservices-book/content/implement-resilient-applications/implement-resilient-entity-framework-core-sql-connections.html)\n- [Using Resilient Entity Framework Core Sql Connections and Transactions: Retries with Exponential Backoff](https://devblogs.microsoft.com/cesardelatorre/using-resilient-entity-framework-core-sql-connections-and-transactions-retries-with-exponential-backoff/)\n- [Using Transactions](https://docs.microsoft.com/en-us/ef/core/saving/transactions)\n- [Transaction in Entity Framework](https://www.entityframeworktutorial.net/entityframework6/transaction-in-entity-framework.aspx)\n- [EF Core Advanced Topics Transaction](https://riptutorial.com/ef-core-advanced-topics/learn/100015/transaction)\n- [Entity Framework Core - Use TransactionScope With Caution!](https://www.thinktecture.com/en/entity-framework-core/use-transactionscope-with-caution-in-2-1/)\n- [TransactionScope with multiple databases in C#](https://www.educative.io/answers/transactionscope-with-multiple-databases-in-c-sharp)\n- [Using Transactions](https://learn.microsoft.com/en-us/ef/core/saving/transactions)\n- [Saving Data](https://learn.microsoft.com/en-us/ef/core/saving/)"
  },
  {
    "path": "docs/elastic-search.md",
    "content": "# Elastic Search\n\n## Resources\n- [dzharii/awesome-elasticsearch](https://github.com/dzharii/awesome-elasticsearch)\n\n## 📕 Articles\n- [Elasticsearch: How to Add Full-Text Search to Your Database](https://mentormate.medium.com/elasticsearch-how-to-add-full-text-search-to-your-database-ee2f3ea4d3f3)\n- [Logging with ElasticSearch, Kibana, ASP.NET Core and Docker](https://www.humankode.com/asp-net-core/logging-with-elasticsearch-kibana-asp-net-core-and-docker)\n- [Elasticsearch 101: Fundamentals & Core Components](https://medium.com/velotio-perspectives/elasticsearch-101-fundamentals-core-components-a1fdc6090a5e)\n- [42 Elasticsearch Query Examples – Hands-on Tutorial](https://coralogix.com/blog/42-elasticsearch-query-examples-hands-on-tutorial/)\n- [Semantic Search with Elasticsearch in .NET](https://nikiforovall.github.io/dotnet/2024/10/19/semantic-search-via-elastic-dotnet.html)\n- [Querying and Filtering via Elastic.Clients.Elasticsearch in .NET](https://nikiforovall.github.io/dotnet/2024/10/20/querying-and-filtering-elastic-dotnet.html)\n- [Hybrid Search with Elasticsearch in .NET](https://nikiforovall.github.io/dotnet/2024/11/02/elastic-hybrid-search.html)\n\n## 📺 Videos\n- [Logging into Elasticsearch using Serilog and viewing logs in Kibana | .NET Core Tutorial](https://www.youtube.com/watch?v=0acSdHJfk64)\n- [The .NET Docs Show - Getting Started with Elasticsearch.NET](https://www.youtube.com/watch?v=Ll5yLL83W8M)\n- [How to use Elasticsearch from .NET](https://www.youtube.com/watch?v=tw9svKWq6tg)\n- [.Net 6 WebAPI - Intro to ElasticSearch - Step by Step](https://www.youtube.com/watch?v=oPxoQKdC8sI)\n\n## Courses\n- [Kibana Fundamentals](https://www.elastic.co/training/kibana-fundamentals)\n- [Elastic Observability Engineer](https://www.elastic.co/training/elastic-observability-engineer)\n- [Elasticsearch Engineer](https://www.elastic.co/training/elasticsearch-engineer)\n## Libraries\n- [elastic/elasticsearch-net](https://github.com/elastic/elasticsearch-net) - This strongly-typed, client library enables working with Elasticsearch. It is the official client maintained and supported by Elastic.\n- [Yegoroff/PlainElastic.Net](https://github.com/Yegoroff/PlainElastic.Net) - Plain .Net client for ElasticSearch\n\n## Samples\n- [mohamadlawand087/Net6-ELK](https://github.com/mohamadlawand087/Net6-ELK) - Use ElasticSearch and Kibana to your AspNetCore 6 API\n- [damikun/trouble-training](https://github.com/damikun/trouble-training/blob/main/Doc/Identity.md) - FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend.\n- [hgmauri/elasticsearch-with-nest](https://github.com/hgmauri/elasticsearch-with-nest)\n- [stevejgordon/elasticsearch-demo](https://github.com/stevejgordon/elasticsearch-demo) - Demo code (before and after) from my talk \"An introduction to Elasticsearch (for .NET developers)\".\n- [AntonioFalcaoJr/Dotnet5.Elasticsearch](https://github.com/AntonioFalcaoJr/Dotnet5.Elasticsearch)\n- [AntonioFalcaoJr/ElasticsearchQueryString](https://github.com/AntonioFalcaoJr/ElasticsearchQueryString)\n- [NikiforovAll/elasticsearch-dotnet-playground](https://github.com/NikiforovAll/elasticsearch-dotnet-playground) - This playground is a collection of notebooks that demonstrate how to use Elasticsearch.NET and NEST clients."
  },
  {
    "path": "docs/environment.md",
    "content": "# Environment\n\n## 📝 Articles\n- [Use multiple environments in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/environments)\n- [How to set the hosting environment in ASP.NET Core](https://andrewlock.net/how-to-set-the-hosting-environment-in-asp-net-core/)\n- [Configuring multiple ASP.NET Core hosting environment](https://procodeguide.com/programming/asp-net-core-hosting-environment/)\n- [Why you shouldn't use ENV variables for secret data](https://diogomonica.com/2017/03/27/why-you-shouldnt-use-env-variables-for-secret-data/)\n- [Different ways to set environment variable for .NET Core application](https://dejanstojanovic.net/aspnet/2018/july/different-ways-to-set-environment-for-net-core-application/)\n- [Naming of environment variables](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-6.0#naming-of-environment-variables)\n- [Secrets Management in .NET Applications](https://auth0.com/blog/secret-management-in-dotnet-applications/)\n- [Using .env in .NET](https://dusted.codes/dotenv-in-dotnet) ⭐\n## Videos\n- [ENVIRONMENTS in ASP NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=UPgHRiLw4is)\n- [ENVIRONMENT SPECIFIC APP CONFIGURATION - 5 Ways To Manage For ASP NET on AZURE | ASP.NET Core Series](https://www.youtube.com/watch?v=wTSu2aCoR7Y&)\n\n## Libraries\n- [bolorundurowb/dotenv.net](https://github.com/bolorundurowb/dotenv.net) - A library to read .env files in a .NET Core environment\n- [tonerdo/dotnet-env](https://github.com/tonerdo/dotnet-env) - A .NET library to load environment variables from .env files"
  },
  {
    "path": "docs/exception-validation.md",
    "content": "# Exception && Validation\n\n## 📝 Articles\n\n- [My take on the Result class](https://josef.codes/my-take-on-the-result-class-in-c-sharp/) \n- [Functional C# Handling failures, input errors](https://enterprisecraftsmanship.com/posts/functional-c-handling-failures-input-errors/) \n- [10 Exception handling best practices in C#](https://kumarashwinhubert.com/10-exception-handling-best-practices-in-csharp)\n- [Exception handling in C# - throw or throw ex](https://kumarashwinhubert.com/exception-handling-in-csharp-throw-or-throw-ex)\n- [Problem Details - The right way to specify errors in Web API responses](https://kumarashwinhubert.com/problem-details-the-right-way-to-specify-errors-in-web-api-responses)\n- [Handle Exceptions With ASP.NET Core ExceptionHandlerMiddleware](https://khalidabuhakmeh.com/handling-aspnet-core-exceptions-with-exceptionhandler-middleware)\n- [Error handling: Exception or Result?](https://enterprisecraftsmanship.com/posts/error-handling-exception-or-result/) \n- [Exceptions for flow control in C#](https://enterprisecraftsmanship.com/posts/exceptions-for-flow-control/) \n- [C# code contracts vs input validation](https://enterprisecraftsmanship.com/posts/code-contracts-vs-input-validation/) \n- [Fail Fast principle](https://enterprisecraftsmanship.com/posts/fail-fast-principle/) \n- [REST API response codes: 400 vs 500](https://enterprisecraftsmanship.com/posts/rest-api-response-codes-400-vs-500/)\n- [What is an exceptional situation in code?](https://enterprisecraftsmanship.com/posts/what-is-exceptional-situation/) \n- [Functional C# Handling failures, input errors](https://enterprisecraftsmanship.com/posts/functional-c-handling-failures-input-errors/) \n- [Prefer Custom Exceptions to Framework Exceptions](https://ardalis.com/prefer-custom-exceptions-to-framework-exceptions/)\n- [CQRS and exception handling](https://enterprisecraftsmanship.com/2019/04/15/cqrs-exception-handling/) \n- [Using the ProblemDetails Class in ASP.NET Core Web API](https://code-maze.com/using-the-problemdetails-class-in-asp-net-core-web-api/)\n- [Handling Web API Exceptions with ProblemDetails middleware](https://andrewlock.net/handling-web-api-exceptions-with-problemdetails-middleware/)\n- [Creating a custom ErrorHandlerMiddleware function](https://andrewlock.net/creating-a-custom-error-handler-middleware-function/)\n- [Clean code tips - Error handling](https://www.code4it.dev/blog/clean-code-error-handling)\n- [Exception Handling in ASP.NET Web API - A Guided Tour](https://exceptionnotfound.net/the-asp-net-web-api-exception-handling-pipeline-a-guided-tour/)\n- [Problem Details for Better REST HTTP API Errors](https://codeopinion.com/problem-details-for-better-rest-http-api-errors/)\n- [Global Exception Handling in ASP.NET Core – Ultimate Guide](https://codewithmukesh.com/blog/global-exception-handling-in-aspnet-core/)\n- [ASP.NET Core 3.1 - Global Error Handler Tutorial](https://jasonwatmore.com/post/2020/10/02/aspnet-core-31-global-error-handler-tutorial)\n- [Global Error Handling in ASP.NET Core Web API](https://code-maze.com/global-error-handling-aspnetcore/)\n- [Mapping exceptions to HTTP responses with .NET Core](https://jeroenhildering.com/2016/11/24/mapping-exceptions-to-http-responses-with-net-core/)\n- [Setting up an Exception Mapper in .NET Core 2.0](https://www.foreach.be/blog/setting-up-an-exception-mapper-in-net-core-2-0)\n- [Using Middleware to trap Exceptions in Asp.Net Core](https://docs.microsoft.com/en-us/archive/blogs/brandonh/using-middleware-to-trap-exceptions-in-asp-net-core)\n- [Cool validation with FluentValidation](https://www.code4it.dev/blog/fluentvalidation)\n- [Custom Validation in ASP.NET Web API with FluentValidation](https://exceptionnotfound.net/custom-validation-in-asp-net-web-api-with-fluentvalidation/)\n- [How to Use Fluent Validation in ASP.NET Core 3 – Powerful Validations](https://codewithmukesh.com/blog/fluent-validation-aspnet-core/)\n- [CQRS Validation Pipeline with MediatR and FluentValidation](https://code-maze.com/cqrs-mediatr-fluentvalidation/)\n- [Using Fluent Validation with ASP.NET MVC - Part 1: The Basics](https://www.jerriepelser.com/blog/using-fluent-validation-with-asp-net-mvc-part-1-the-basics/)\n- [Using Fluent Validation with ASP.NET MVC - Part 2: Unit Testing](https://www.jerriepelser.com/blog/using-fluent-validation-with-asp-net-mvc-part-2-unit-testing/)\n- [Minimal API Validation with FluentValidation](https://khalidabuhakmeh.com/minimal-api-validation-with-fluentvalidation)\n- [Centralized exception handling and request validation in ASP.NET Core](https://www.strathweb.com/2018/07/centralized-exception-handling-and-request-validation-in-asp-net-core/)\n- [Error Handling and ExceptionFilter Dependency Injection for ASP.NET Core APIs](https://weblog.west-wind.com/posts/2016/oct/16/error-handling-and-exceptionfilter-dependency-injection-for-aspnet-core-apis)\n- [Global Exception Handling in ASP.NET Core WEB API](https://www.talkingdotnet.com/global-exception-handling-in-aspnet-core-webapi/)\n- [Scaffold Your Clean DDD Web Application - Part 4: Global Exception Handling in ASP.NET Core and Angular](https://blog.jacobsdata.com/2020/11/12/scaffold-your-clean-ddd-web-application-part-4-global-exception-handling-in-aspnet-core-and-angular)\n- [An opinionated way to consistent Error Handling in ASP.NET Core](https://ankitvijay.net/2021/04/21/consistent-error-handling/)\n- [EXCEPTION HANDLING MIDDLEWARE IN .NET CORE WEB API](https://thecodeblogger.com/2021/05/30/exception-handling-middleware-in-net-core-web-api/?subscribe=success#blog_subscription-5)\n- [Cost of exceptions](https://gunnarpeipman.com/cost-of-exceptions/)\n- [The True Cost of .NET Exceptions -- Solution](https://docs.microsoft.com/en-us/archive/blogs/ricom/the-true-cost-of-net-exceptions-solution)\n- [Design Guidelines Update: Exception Throwing](https://docs.microsoft.com/en-us/archive/blogs/kcwalina/design-guidelines-update-exception-throwing)\n- [Why Exceptions should be Exceptional](https://mattwarren.org/2016/12/20/Why-Exceptions-should-be-Exceptional/)\n- [Exception Throwing](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/exception-throwing?redirectedfrom=MSDN)\n- [Using Standard Exception Types](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/using-standard-exception-types)\n- [Exceptions and Performance](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/exceptions-and-performance)\n- [Improving .NET Application Performance Part 10: Exception Management](https://blog.monitis.com/blog/improving-net-application-performance-part-10-exception-management/)\n- [Bad Data, Try/Catch, and Slow Performance](https://buildplease.com/pages/slow-exceptions/)\n- [Exceptions and Performance](https://jonskeet.uk/csharp/exceptions.html)\n- [CARE your Web APIs with Consistent and Structured Error Responses](https://www.dotnetnakama.com/blog/consistent-api-response-errors-care/)\n- [HTTP API Problem Details in ASP.NET Core](https://codeopinion.com/http-api-problem-details-in-asp-net-core/)\n- [Problem Details: A standard way of specifying errors in HTTP API responses](https://lurumad.github.io/problem-details-an-standard-way-for-specifying-errors-in-http-api-responses-asp.net-core)\n- [Avoid Using Exceptions to Determine API Status Codes and Responses](https://ardalis.com/avoid-using-exceptions-determine-api-status/)\n- [Stop throwing Exceptions! Start being Explicit](https://codeopinion.com/stop-throwing-exceptions-start-being-explicit/)\n- [Guard Clauses and Exceptions or Validation?](https://ardalis.com/guard-clauses-and-exceptions-or-validation/)\n- [Exception Handling and Logging in ASP.NET Core Web API](https://codingsonata.com/exception-handling-and-logging-in-asp-net-core-web-api/)\n- [The art of designing exceptions](https://cezarypiatek.github.io/post/the-art-of-designing-exceptions/)\n- [Exception usage analyzer](https://cezarypiatek.github.io/post/exceptions-usages-analyzer/)\n- [Rethrow Exceptions with ExceptionDispatchInfo](https://weblogs.asp.net/morteza/rethrow-exceptions-with-exceptiondispatchinfo)\n- [ExceptionDispatchInfo And Capturing Exceptions](https://khalidabuhakmeh.com/exceptiondispatchinfo-and-capturing-exceptions)\n- [Top 10 Dotnet Exception Anti-Patterns in C#](https://newdevsguide.com/2022/11/06/exception-anti-patterns-in-csharp/)\n- [How to validate business logic](https://event-driven.io/en/how_to_validate_business_logic/) ⭐\n- [Explicit validation in C# just got simpler!](https://event-driven.io/en/explicit_validation_in_csharp_just_got_simpler/) ⭐\n- [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/) ⭐\n- [ASP.NET Core 8: Improved exception handling with IExceptionHandler](https://anthonygiretti.com/2023/06/14/asp-net-core-8-improved-exception-handling-with-iexceptionhandler/)\n\n## 📹 Videos\n- [STOP throwing Exceptions! Start being Explicit](https://www.youtube.com/watch?v=4UEanbBaJy4)\n- [BEYOND Status Codes! Better REST HTTP API Error Responses](https://www.youtube.com/watch?v=MfTLob6teJE)\n- [The hidden cost of Exceptions in .NET](https://www.youtube.com/watch?v=2f2elFRmeLE)\n- [Handling HTTP API Errors with Problem Details](https://www.youtube.com/watch?v=uvTT_0hqhyY)\n\n## Libraries\n- [proudmonkey/AutoWrapper](https://github.com/proudmonkey/AutoWrapper)\n- [khellang/Middleware.ProblemDetails](https://github.com/khellang/Middleware/tree/master/src/ProblemDetails) - Various ASP.NET Core middleware\n- [ardalis/GuardClauses](https://github.com/ardalis/GuardClauses) - A simple package with guard clause extensions.\n- [JosephWoodward/GlobalExceptionHandlerDotNet](https://github.com/JosephWoodward/GlobalExceptionHandlerDotNet) - Exception handling as a convention in the ASP.NET Core request pipeline.\n- [safakgur/guard](https://github.com/safakgur/guard) - A high-performance, extensible argument validation library.\n- [FluentValidation/FluentValidation](https://github.com/FluentValidation/FluentValidation) - A popular .NET validation library for building strongly-typed validation rules.\n- [mcintyre321/OneOf](https://github.com/mcintyre321/OneOf) - Easy to use F#-like ~discriminated~ unions for C# with exhaustive compile time matching\n- [ardalis/Result](https://github.com/ardalis/Result) - A result abstraction that can be mapped to HTTP response codes if needed.\n- [altmann/FluentResults](https://github.com/altmann/FluentResults) - A generalised Result object implementation for .NET/C#\n- [ikyriak/ConsistentApiResponseErrors](https://github.com/ikyriak/ConsistentApiResponseErrors) - A .NET Core middleware that centralizes the handling of input-validation errors, application exceptions and unhandled exceptions.\n- [danielwertheim/Ensure.That](https://github.com/danielwertheim/Ensure.That) - Guard clause project for .NET\n- [mantinband/throw](https://github.com/mantinband/throw) - A simple, fluent, extensible, and fully customizable library for throwing exceptions using .NET 6+\n- [amantinband/error-or](https://github.com/amantinband/error-or) - A simple, fluent discriminated union of an error or a result.\n- [Fody/NullGuard](https://github.com/Fody/NullGuard) - Adds null argument checks to an assemblystrongly-typed validation rules."
  },
  {
    "path": "docs/feature-flags.md",
    "content": "\n# Feature Flags\n\n## 📝 Articles\n- [Use feature flags in an ASP.NET Core app](https://docs.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core5x)\n- [Adding feature flags to an ASP.NET Core app](https://dotnetthoughts.net/adding-feature-flags-to-an-asp-net-core-app-part1/)\n- [Working with Feature Flags in ASP.NET Core MVC application](https://dotnetthoughts.net/adding-feature-flags-to-an-asp-net-core-app-part2/)\n- [Introducing DevOps-friendly EF Core Migration Bundles](https://devblogs.microsoft.com/dotnet/introducing-devops-friendly-ef-core-migration-bundles/)\n- [Feature Flags in .NET, from simple to more advanced](https://dev.to/timdeschryver/feature-flags-in-net-from-simple-to-more-advanced-18og)\n- [Implementing a Feature Flag-based Endpoint Filter](https://timdeschryver.dev/blog/implementing-a-feature-flag-based-endpoint-filter)\n\n## Libraries\n- [bharatdwarkani/awesome-libraries-to-build-sass-application-dotnet-core](https://github.com/bharatdwarkani/awesome-libraries-to-build-sass-application-dotnet-core) - Microsoft.FeatureManagement provides standardized APIs for enabling feature flags within applications. Utilize this library to secure a consistent experience when developing applications that use patterns such as beta access, rollout, dark deployments, and more.\n- [valdisiljuconoks/FeatureSwitch](https://github.com/valdisiljuconoks/FeatureSwitch) - FeatureSwitch is library that should reduce amount of time and code required to implement feature switching in your projects.\n\n## Videos\n- [FEATURE FLAGS in ASP NET Core | Azure App Configuration | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=qtp90IYMRh8)\n- [Implement feature flags in a cloud-native ASP.NET Core microservices app](https://docs.microsoft.com/en-us/learn/modules/microservices-configuration-aspnet-core)"
  },
  {
    "path": "docs/formatting.md",
    "content": "# Formatting\n\n## Resources\n- [Cybermaxs/awesome-analyzers](https://github.com/Cybermaxs/awesome-analyzers) - A curated list of .NET Compiler Platform (\"Roslyn\") diagnostic analyzers and code fixes. Everyone can contrib\n- [RehanSaeed/EditorConfig](https://github.com/RehanSaeed/EditorConfig) - A very generic .editorconfig file supporting .NET, C#, VB and web technologies.\n\n## Articles\n- [dotnet-format: Prettier your CSharp with lint-staged and husky](https://blog.johnnyreilly.com/2020/12/22/prettier-your-csharp-with-dotnet-format-and-lint-staged/)\n- [Overview of .NET source code analysis](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/overview)\n- [Rule categories](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/categories)\n- [Configuration options for code analysis](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-options)\n- [C# Linting and Formatting Tools in 2021](https://dev.to/srmagura/c-linting-and-formatting-tools-in-2021-bna)\n- [Use Roslyn Analyzers](https://docs.microsoft.com/en-us/visualstudio/code-quality/use-roslyn-analyzers)\n- [Code style rule options](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/code-style-rule-options?view=vs-2022)\n- [How to configure your custom roslyn analyzer using an .editorconfig file](https://www.mytechramblings.com/posts/configure-roslyn-analyzers-using-editorconfig/)\n- [The Roslyn analyzers I use in my projects](https://www.meziantou.net/the-roslyn-analyzers-i-use.htm)\n- [Embedding dotnet format in your development cycle](https://gsferreira.com/archive/2022/embedding-dotnet-format-in-your-development-cycle/)\n- [EditorConfig properties - Jetbrain Rider](https://www.jetbrains.com/help/rider/EditorConfig_Properties.html)\n- [Dotnet, C#, code format on JetBrain IDE Rider](https://dev.to/tsotsi1/dotnet-c-code-format-on-jetbrain-ide-rider-504i)\n- [A Tyrant Guide to Code Quality Gates featuring CSharpier, Husky.NET, and SonarCloud](https://nikiforovall.github.io/dotnet/2024/09/14/quality-gates-dotnet.html)\n- [Pre-commit hooks with Husky.NET - build, format, and test your .NET application before a Git commit](https://www.code4it.dev/blog/husky-dotnet-precommit-hooks/)\n- [How to customize Conventional Commits in a .NET application using GitHooks](https://www.code4it.dev/blog/conventional-commit-with-githooks/)\n\n## Libraries\n- [dotnet/format](https://github.com/dotnet/format) - Home for the dotnet-format command\n- [belav/csharpier](https://github.com/belav/csharpier) - CSharpier is an opinionated code formatter for c#.\n- [DotNetAnalyzers/StyleCopAnalyzers](https://github.com/DotNetAnalyzers/StyleCopAnalyzers) - An implementation of StyleCop rules using the .NET Compiler Platform\n- [SonarLint](https://www.sonarlint.org/)\n- [meziantou/Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer/tree/main/docs) - A Roslyn analyzer to enforce some good practices in C#.\n- [JosefPihrt/Roslynator](https://github.com/JosefPihrt/Roslynator) - A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.\n\n## Samples\n- [NikiforovAll/quality-gateways-demo-dotnet](https://github.com/NikiforovAll/quality-gateways-demo-dotnet)"
  },
  {
    "path": "docs/generic-host.md",
    "content": "\n# Generic Host And Web Host\n\n## 📝 Articles\n\n- [ASP.NET Core Web Host](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/web-host)\n- [.NET Generic Host in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host)\n- [USING HOSTBUILDER AND THE GENERIC HOST IN .NET CORE MICROSERVICES](https://www.stevejgordon.co.uk/using-generic-host-in-dotnet-core-console-based-microservices)\n- [Generic Host Builder in ASP .NET Core 3.1](https://wakeupandcode.com/generic-host-builder-in-asp-net-core-3-1/)\n- [The ASP.NET Core Generic Host: namespace clashes and extension methods](https://andrewlock.net/the-asp-net-core-generic-host-namespace-clashes-and-extension-methods/)\n- [Avoiding Startup service injection in ASP.NET Core 3](https://andrewlock.net/avoiding-startup-service-injection-in-asp-net-core-3/)\n- [IHostingEnvironment vs IHostEnvironment - obsolete types in .NET Core 3.0](https://andrewlock.net/ihostingenvironment-vs-ihost-environment-obsolete-types-in-net-core-3/#asp-net-core-merges-with-the-generic-host)\n- [.NET Generic Host](https://docs.microsoft.com/en-us/dotnet/core/extensions/generic-host)\n- [Understanding .NET Generic Host Model](https://sahansera.dev/dotnet-core-generic-host/)\n- [Exploring the new project file, Program.cs, and the generic host](https://andrewlock.net/exploring-the-new-project-file-program-and-the-generic-host-in-asp-net-core-3/)\n- [Introducing IHostLifetime and untangling the Generic Host startup interactions](https://andrewlock.net/introducing-ihostlifetime-and-untangling-the-generic-host-startup-interactions/)\n- [Exploring Program.cs, Startup.cs and CreateDefaultBuilder in ASP.NET Core 2 preview 1](https://andrewlock.net/exploring-program-and-startup-in-asp-net-core-2-preview1-2/)\n- [WebHostBuilder](https://girishgodage.in/blog/customize-webhostbuilder)\n- [Customizing ASP.​NET Core Part 11: WebHostBuilder](https://asp.net-hacker.rocks/2019/01/30/customizing-aspnetcore-11-webhostbuilder.html)\n- [Working With .NET Console Host Lifetime Events](https://khalidabuhakmeh.com/working-with-dotnet-console-host-lifetime-events)\n- [Comparing WebApplicationBuilder to the Generic Host](https://andrewlock.net/exploring-dotnet-6-part-2-comparing-webapplicationbuilder-to-the-generic-host/)\n- [Exploring the code behind WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-3-exploring-the-code-behind-webapplicationbuilder/)\n- [USING HOSTBUILDER AND THE GENERIC HOST IN .NET CORE MICROSERVICES](https://www.stevejgordon.co.uk/using-generic-host-in-dotnet-core-console-based-microservices)\n- [Building a Console App with .NET Generic Host](https://dfederm.com/building-a-console-app-with-.net-generic-host/)\n- [How To Enable Logging In .NET Console Applications](https://thecodeblogger.com/2021/05/11/how-to-enable-logging-in-net-console-applications/)\n- [How to run .NET Core Console app using generic host builder](https://stackoverflow.com/questions/68392429/how-to-run-net-core-console-app-using-generic-host-builder)\n\n## 🔖 Samples\n\n- [updating-test-host-to-3-0](https://github.com/andrewlock/blog-examples/tree/master/updating-test-host-to-3-0)\n"
  },
  {
    "path": "docs/github/branches/branch.md",
    "content": "# Git Branch\n\n## Resources\n- [pcottle/learnGitBranching](https://github.com/pcottle/learnGitBranching) - An interactive git visualization and tutorial. \n\n## Articles\n- [Git Branch](https://www.atlassian.com/git/tutorials/using-branches)\n- [Branching in Git](https://www.gitkraken.com/learn/git/branch)"
  },
  {
    "path": "docs/github/branches/checkout.md",
    "content": "# Git Checkout\n\n## Articles\n- [Git Checkout](https://www.atlassian.com/git/tutorials/using-branches/git-checkout)"
  },
  {
    "path": "docs/github/branches/merge.md",
    "content": "# Git Merge\n\n## Articles\n- [Git Merge](https://www.atlassian.com/git/tutorials/using-branches/git-merge)\n- [Git merge conflicts](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts)\n- [Git Merge Strategy Options and Examples](https://www.atlassian.com/git/tutorials/using-branches/merge-strategy)\n- [How to merge a specific commit into another branch](https://dev.to/iamafro/how-to-merge-a-specific-commit-into-another-branch--oak)\n- [Strategies to resolve git conflicts using \"theirs\" and \"ours\"](https://amanexplains.com/git-merge-conflicts/)\n"
  },
  {
    "path": "docs/github/cherry-pick.md",
    "content": "# Git Cherry Pick\n\n## Articles\n- [Git Cherry Pick](https://www.atlassian.com/git/tutorials/cherry-pick)\n- [How to merge a specific commit into another branch](https://dev.to/iamafro/how-to-merge-a-specific-commit-into-another-branch--oak)"
  },
  {
    "path": "docs/github/conventional-commits.md",
    "content": "# Conventional Commits\n\n## Articles\n- [Automate Semantic Versioning with Conventional Commits](https://medium.com/@jsilvax/automate-semantic-versioning-with-conventional-commits-d76a9f45f2fa)\n- [New git guidelines: We have switched to Conventional Commits](https://dev.to/visuellverstehen/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c)\n- [SEMANTIC BRANCH NAMES AND COMMIT MESSAGES IN GIT](https://dev-tips.com/git/semantic-branch-names-and-commit-messages-in-git)\n- [Git workflow with conventional commits and semantic auto release](https://gist.github.com/vtenq/7a93687108cb876f884c3ce75a8a8023) ⭐⭐\n- [Ship It! (How Wilco Does CI/CD)](https://www.trywilco.com/post/wilco-ci-cd-github-heroku) ⭐⭐\n- [A Guide to Git(Hub) Flow and Commits](https://roalcantara.medium.com/a-guide-to-improve-the-git-hub-flow-and-commits-messages-b495461e1115) ⭐ \n- [Conventional Commit Messages](https://gist.github.com/qoomon/5dfcdf8eec66a051ecd85625518cfd13)\n- [Stop writing your changelogs manually](https://tiagomichaelsousa.dev/articles/stop-writing-your-changelogs-manually) ⭐⭐\n- [GitHub actions example for automatic release drafts and changelog.md creation](https://johanneskonings.dev/github/2021/02/28/github_automatic_releases_and-changelog/) ⭐\n- [Conventional Commits: A Better Way](https://medium.com/neudesic-innovation/conventional-commits-a-better-way-78d6785c2e08) ⭐⭐\n- [Conventional Commits - Human and machine readable commit messages](https://hemdan.hashnode.dev/conventional-commits) ⭐⭐\n- [Automating Releases of .NET SDKs using Semantic Release](https://medium.com/@gpanga/automating-releases-of-net-sdks-using-semantic-release-e3df46013876) ⭐\n- [Basic guide to Semantic Release](https://thecodinganalyst.github.io/knowledgebase/Basic-guide-to-Semantic-Release/) ⭐⭐\n- [How to Lint Commit Messages with Husky and CommitLint](https://betterprogramming.pub/how-to-lint-commit-messages-with-husky-and-commitlint-b51d20a5e514) ⭐⭐\n- [How to customize Conventional Commits in a .NET application using GitHooks](https://www.code4it.dev/blog/conventional-commit-with-githooks) ⭐⭐\n- [Pre-commit hooks with Husky.NET - build, format, and test your .NET application before a Git commit](https://www.code4it.dev/blog/husky-dotnet-precommit-hooks/) ⭐⭐\n\n## Videos\n- [How to Manage Releases with Semantic Versioning and Git Tags](https://www.youtube.com/watch?v=4wPjo5C-v8Y) ⭐⭐\n\n## Tools\n- [qoomon/git-conventional-commits](https://github.com/qoomon/git-conventional-commits) - Git Conventional Commits Util to generate Semantic Version and Markdown Change Log and Validate Commit Messag\n- [folke/devmoji](https://github.com/folke/devmoji) - 🤖 🚀 ✨ Emojify your conventional commits with Devmoji\n- [vivaxy/vscode-conventional-commits](https://github.com/vivaxy/vscode-conventional-commits) - 💬Conventional Commits for VSCode.\n- [lppedd/idea-conventional-commit](https://github.com/lppedd/idea-conventional-commit) - Intellij Context and template-based completion for conventional/semantic commits.\n- [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) - automated releases based on conventional commits\n- [compilerla/conventional-pre-commit](https://github.com/compilerla/conventional-pre-commit) - A pre-commit hook that checks commit messages for Conventional Commits formatting\n- [commitizen/cz-cli](https://github.com/commitizen/cz-cli) - The commitizen command line utility. ⭐\n- [commitizen/cz-conventional-changelog](https://github.com/commitizen/cz-conventional-changelog) - A commitizen adapter for the angular preset of\n- [streamich/git-cz](https://github.com/streamich/git-cz) - Semantic Git commits ⭐⭐\n- [cycjimmy/semantic-release-action](https://github.com/cycjimmy/semantic-release-action) - GitHub Action for Semantic Release ⭐⭐\n- [semantic-release/semantic-release](https://github.com/semantic-release/semantic-release) - Fully automated version management and package publishing\n- [semantic-release/exec](https://github.com/semantic-release/exec) - semantic-release plugin to execute custom shell commands\n- [semantic-release/release-notes-generator](https://github.com/semantic-release/release-notes-generator) - semantic-release plugin to generate changelog content with conventional-changelog\n- [conventional-changelog/conventional-changelog](https://github.com/conventional-changelog/conventional-changelog) - Generate changelogs and release notes from a project's commit messages and metadata ⭐⭐\n- [conventional-changelog/commitlint](https://github.com/conventional-changelog/commitlint) - Lint commit messages ⭐⭐\n## Samples\n- [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet) ⭐\n- [abap-observability-tools/abap-log-exporter](https://github.com/abap-observability-tools/abap-log-exporter)\n- [Gabrielpanga/dotnet-nuget-example](https://github.com/Gabrielpanga/dotnet-nuget-example)\n- [semantic-release/semantic-release](https://github.com/semantic-release/semantic-release) ⭐"
  },
  {
    "path": "docs/github/copilot.md",
    "content": "# Copilot\n\n## Refrences\n\n## Articles\n- [Getting Started with GitHub Copilot in JetBrains](https://github.com/github/copilot-docs/blob/main/docs/jetbrains/gettingstarted.md#getting-started-with-github-copilot-in-jetbrains)\n- [Configuring GitHub Copilot for JetBrains](https://github.com/github/copilot-docs/blob/main/docs/jetbrains/configuring.md)\n- [Getting Started with GitHub Copilot in Visual Studio Code](https://github.com/github/copilot-docs/blob/main/docs/visualstudiocode/gettingstarted.md#getting-started-with-github-copilot-in-visual-studio-code)\n- [Configuring GitHub Copilot for Visual Studio Code](https://github.com/github/copilot-docs/blob/main/docs/visualstudiocode/configuring.md)\n## Videos\n- [GitHub CoPilot: My First Impressions of the AI Pair Programmer](https://www.youtube.com/watch?v=_RfD12XAS_k)"
  },
  {
    "path": "docs/github/git.md",
    "content": "# Git\n\n## Resources\n- [Learn Git - GitKraken](https://www.gitkraken.com/learn/git)\n- [Git Tutorials - GitKraken](https://www.gitkraken.com/learn/git/tutorials)\n- [Git Best Practices - GitKraken](https://www.gitkraken.com/learn/git/best-practices)\n- [pcottle/learnGitBranching](https://github.com/pcottle/learnGitBranching) - An interactive git visualization and tutorial.\n- [fffaraz/awesome-github](https://github.com/fffaraz/awesome-github)\n- [gitimmersion.com](https://gitimmersion.com/) - A guided tour that walks through the fundamentals of Git.\n\n## 📕 Articles\n- [FORKING AND CLONING FROM GITHUB](https://www.stevejgordon.co.uk/forking-cloning-github)\n- [WORKING ON YOUR FIRST GITHUB ISSUE](https://www.stevejgordon.co.uk/working-on-your-first-github-issue)\n- [Five Key Git Concepts Explained the Hard Way](https://zwischenzugs.com/2018/03/14/five-key-git-concepts-explained-the-hard-way/)\n- [Remote Repositories](https://code.visualstudio.com/blogs/2021/06/10/remote-repositories)\n- [VS Code and GitHub Get Closer with Remote Repositories](https://medium.com/young-coder/remote-repositories-a-better-experience-for-github-in-vs-code-9edcc7d20a41)\n- [How to merge a specific commit into another branch](https://dev.to/iamafro/how-to-merge-a-specific-commit-into-another-branch--oak)\n- [Using Git in JetBrain Rider](https://www.jetbrains.com/help/rider/Using_Git_Integration.html)\n- [How does git work?](https://steven-giesel.com/blogPost/327faa1b-3802-4e48-bf39-8b06590da57b)\n- [Make advanced Git tasks simple with Lazygit](https://opensource.com/article/20/3/lazygit)\n- [Get up to speed with partial clone and shallow clone](https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/)\n\n## 📺 Videos\n- [Git and GitHub Tutorials for Beginners! Playlist - TheCodex](https://www.youtube.com/playlist?list=PLB5jA40tNf3v1wdyYfxQXgdjPgQvP7Xzg)\n- [Git and GitHub for Poets Playlist - The Coding Train](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZF9C0YMKuns9sLDzK6zoiV)\n- [Git Tutorials Playlist - thenewboston](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAKWClAD_iKpNC0bGHxGhcx)\n- [Git and GitHub Tutorials #5 - Understanding GitHub Issues](https://www.youtube.com/watch?v=TKJ4RdhyB5Y)\n- [1.4: GitHub Issues - Git and GitHub for Poets](https://www.youtube.com/watch?v=WMykv2ZMyEQ)\n- [Complete Guide to Open Source - How to Contribute](https://www.youtube.com/watch?v=yzeVMecydCE)\n- [How to Open Source Like a Pro](https://www.youtube.com/watch?v=MT6M_sqAuZo)\n- [Contributing to Open Source on GitHub for beginners](https://www.youtube.com/watch?v=k6KcaMffxac)\n- [Top Visual Studio Code Git Extensions in 2020](https://www.youtube.com/watch?v=N8L6RJ5uZoE)\n- [Git in Visual Studio Code](https://www.youtube.com/watch?v=wMqukSKYcvU)\n- [Git and Github: Working on an Issue](https://www.youtube.com/watch?v=2Y8AkBUbrNU)\n- [Contributing to Open Source for the first time](https://www.youtube.com/watch?v=c6b6B9oN4Vg)\n- [VS Code tips: 'Start working on issue' from the Github PR extension](https://www.youtube.com/watch?v=uZvrcugumKI)\n- [VS Code tips: The CodeTour extension](https://www.youtube.com/watch?v=cUoYQKZPZcg)\n- [Git 101 Basics - Computer Stuff They Didn't Teach You #4](https://www.youtube.com/watch?v=WBg9mlpzEYU&t=1078s)\n- [Git Pull Requests explained - Computer Stuff They Didn't Teach You #5](https://www.youtube.com/watch?v=Mfz8NQncwiQ)\n- [Git Rebase vs Merge explained - Computer Stuff They Didn't Teach You #6](https://www.youtube.com/watch?v=hae9zg0-sZY)\n- [Git Push --Force will destroy the timeline and kill us all - Computer Stuff They Didn't Teach You #7](https://www.youtube.com/watch?v=dgOpnebZkRo)\n- [git feature branch example](https://www.youtube.com/watch?v=IfD3PwpOz7U)\n- [Intro to git feature branch workflow](https://www.youtube.com/watch?v=Lj_jAFwofLs)\n- [Combining Git commits with squash](https://www.youtube.com/watch?v=V5KrD7CmO4o)\n- [A Better Git Workflow with Rebase](https://www.youtube.com/watch?v=f1wnYdLEpgI)\n- [git commands tutorials Playlist - Cameron McKenzie](https://www.youtube.com/playlist?list=PL_RrEj88onS-SAZOGnaUlexOzgRqWrOPR)\n- [GitHub tutorial Playlist - Cameron McKenzie](https://www.youtube.com/playlist?list=PL_RrEj88onS8-8OfcYMuLXnTfnSIGf37k)\n- [How do I Navigate GitHub Code?](https://www.youtube.com/watch?v=V1yvdQszBDM)\n- [What is GitHub Codespaces? (and github.dev)](https://www.youtube.com/watch?v=vDXPkAdqSyI)\n- [The .NET Docs Show - Complete the Developer Loop ⭕ with GitHub Codespaces](https://www.youtube.com/watch?v=vWzPYYoW0kM)\n- [Let's Learn .NET: Git & GitHub](https://www.youtube.com/watch?v=PDDAUtX6E7c)\n- [Git for Professionals Tutorial - Tools & Concepts for Mastering Version Control with Git](https://www.youtube.com/watch?v=Uszj_k0DGsg)\n- [Advanced Git Tutorial - Interactive Rebase, Cherry-Picking, Reflog, Submodules and more](https://www.youtube.com/watch?v=qsTthZi23VE)\n- [Version Control - Rider Essentials](https://www.youtube.com/watch?v=_fTwymtpg78)\n\n## Libraries\n- [nvie/git-toolbelt](https://github.com/nvie/git-toolbelt) - A suite of useful Git commands that aid with scripting or every day command line usage\n- [Bhupesh-V/ugit](https://github.com/Bhupesh-V/ugit) -  ugit helps undo git commands. Your damage control git buddy. Undo from 19+ git scenarios.\n- [unixorn/git-extra-commands](https://github.com/unixorn/git-extra-commands) - A collection of git utilities and useful extra git scripts.\n- [carloscuesta/gitmoji](https://github.com/carloscuesta/gitmoji) - An emoji guide for your commit messages. \n- [carloscuesta/gitmoji-cli](https://github.com/carloscuesta/gitmoji-cli) - A gitmoji interactive command line tool for using emojis on commits\n- [jesseduffield/lazygit](https://github.com/jesseduffield/lazygit) - simple terminal UI for git commands"
  },
  {
    "path": "docs/github/github.md",
    "content": "# GitHub\n\n## Articles\n- [Search on GitHub documentation](https://docs.github.com/en/search-github)\n- [Searching for repositories](https://docs.github.com/en/search-github/searching-on-github/searching-for-repositories)\n- [Understanding the search syntax](https://docs.github.com/en/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax)\n- [Understanding GitHub Code Search syntax](https://docs.github.com/en/search-github/github-code-search/understanding-github-code-search-syntax)\n- [Searching topics](https://docs.github.com/en/search-github/searching-on-github/searching-topics)\n- [Using GitHub Code Search](https://docs.github.com/en/search-github/github-code-search/using-github-code-search)\n- [Sorting search results](https://docs.github.com/en/search-github/getting-started-with-searching-on-github/sorting-search-results)\n"
  },
  {
    "path": "docs/github/inspect/status.md",
    "content": "# Git Status\n\n## Articles\n- [Git Status: Inspecting a repository](https://www.atlassian.com/git/tutorials/inspecting-a-repository)"
  },
  {
    "path": "docs/github/inspect/tag.md",
    "content": "# Git Tag\n\n## Articles\n- [git tag](https://www.atlassian.com/git/tutorials/inspecting-a-repository/git-tag)"
  },
  {
    "path": "docs/github/projects.md",
    "content": "# Projects\n\n## Articles\n- [About projects](https://docs.github.com/en/issues/trying-out-the-new-projects-experience/about-projects)\n- [Quickstart for projects (beta)](https://docs.github.com/en/issues/trying-out-the-new-projects-experience/quickstart)\n- [Creating a project](https://docs.github.com/en/issues/trying-out-the-new-projects-experience/creating-a-project)\n\n## Videos\n- [GitHub Project Management Tutorial - Setup GitHub Projects & Automations](https://www.youtube.com/watch?v=ff5cBkPg-bQ)\n- [Plan and track projects closer to your code #DemoDays](https://www.youtube.com/watch?v=SI1ra-XHWHM)\n- [Git Project Setup with Husky, Conventional Commits, and branching strategies.](https://www.youtube.com/watch?v=jNxDNoYEGVU)\n- [Introduction to GitHub Project Boards](https://www.youtube.com/watch?v=idZyqNIrt84)\n- [Adding Issues to GitHub Project Boards](https://www.youtube.com/watch?v=vxgd6TO4IfQ)\n- [Working with Issues on GitHub Project Boards](https://www.youtube.com/watch?v=de_lazvBioE)\n- [Adding Pull Requests to GitHub Project Boards](https://www.youtube.com/watch?v=NZG5Y51WRHo)"
  },
  {
    "path": "docs/github/pull-request.md",
    "content": "# Git Pull Request\n\n## Articles\n- [Making a Pull Request](https://www.atlassian.com/git/tutorials/making-a-pull-request)"
  },
  {
    "path": "docs/github/release-note.md",
    "content": "# Release Notes\n\n## Resources\n- [keep a changelog](https://keepachangelog.com/en/1.1.0/)\n\n## Articles\n- [A new public beta of GitHub Releases: How we’re improving the release experience](https://github.blog/2021-10-04-beta-github-releases-improving-release-experience/)\n- [About releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases)\n- [Managing releases in a repository](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository)\n- [Automatically generated release notes](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes)\n- [Generating release notes using Github Actions](https://lurumad.github.io/generating-release-notes-using-github-actions)\n- [Generate semantic-release notes with GitHub Actions](https://dev.to/github/generate-semantic-release-with-github-actions-2lll)\n- [Conventional Commits: A Better Way](https://medium.com/neudesic-innovation/conventional-commits-a-better-way-78d6785c2e08) ⭐⭐\n- [Git workflow with conventional commits and semantic auto release](https://gist.github.com/vtenq/7a93687108cb876f884c3ce75a8a8023) ⭐⭐\n- [Ship It! (How Wilco Does CI/CD)](https://www.trywilco.com/post/wilco-ci-cd-github-heroku) ⭐⭐\n- [A Guide to Git(Hub) Flow and Commits](https://roalcantara.medium.com/a-guide-to-improve-the-git-hub-flow-and-commits-messages-b495461e1115) ⭐ \n- [Conventional Commit Messages](https://gist.github.com/qoomon/5dfcdf8eec66a051ecd85625518cfd13)\n- [Stop writing your changelogs manually](https://tiagomichaelsousa.dev/articles/stop-writing-your-changelogs-manually) ⭐⭐\n- [GitHub actions example for automatic release drafts and changelog.md creation](https://johanneskonings.dev/github/2021/02/28/github_automatic_releases_and-changelog/) ⭐\n- [Automating Releases of .NET SDKs using Semantic Release](https://medium.com/@gpanga/automating-releases-of-net-sdks-using-semantic-release-e3df46013876) ⭐\n- [Basic guide to Semantic Release](https://thecodinganalyst.github.io/knowledgebase/Basic-guide-to-Semantic-Release/) ⭐⭐\n- [Release workflow guide](https://github.com/semantic-release/semantic-release/blob/master/docs/recipes/release-workflow/README.md) ⭐⭐⭐\n- [Fix git “tip of your current branch is behind its remote counterpart” - 4 real-world solutions](https://codewithhugo.com/fix-git-failed-to-push-updates-were-rejected/) ⭐\n\n## Videos\n- [AUTOMATED Release Notes - GitHub Checkout](https://www.youtube.com/watch?v=88FWrfHCIqo)\n- [How to Release Code With Github](https://www.youtube.com/watch?v=Ob9llA_QhQY)\n- [Automating Releases with GitHub Actions](https://www.youtube.com/watch?v=-0vWW-ymlfw)\n- [Version and Automate ⚡️ Releases like a Pro - Walkthrough and Demo](https://www.youtube.com/watch?v=q3qE2nJRuYM)\n- [Using semantic-release with GitHub Actions](https://www.youtube.com/watch?v=rCXq86FOlzQ)\n\n## Libraries\n- [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) - Drafts your next release notes as pull requests are merged into master. ⭐⭐\n- [semantic-release/semantic-release](https://github.com/semantic-release/semantic-release) - Fully automated version management and package publishing ⭐⭐\n- [semantic-release/release-notes-generator](https://github.com/semantic-release/release-notes-generator) - semantic-release plugin to generate changelog content with conventional-changelog\n- [semantic-release/exec](https://github.com/semantic-release/exec) - semantic-release plugin to execute custom shell commands\n- [semantic-release/git](https://github.com/semantic-release/git) - semantic-release plugin to commit release assets to the project's git repository\n- [felipecrs/semantic-release-export-data](https://github.com/felipecrs/semantic-release-export-data) - semantic-release plugin to export variables like the next release version\n- [cycjimmy/semantic-release-action](https://github.com/cycjimmy/semantic-release-action) - GitHub Action for Semantic Release ⭐⭐\n- [mikepenz/release-changelog-builder-action](https://github.com/mikepenz/release-changelog-builder-action) - A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.\n- [Decathlon/release-notes-generator-action](https://github.com/Decathlon/release-notes-generator-action) - Action to auto generate a release note based on your events\n- [github-changelog-generator/github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator) - Automatically generate change log from your tags, issues, labels and pull requests on GitHub.\n- [xoofx/dotnet-releaser](https://github.com/xoofx/dotnet-releaser) - Easily build, run tests and coverage, cross-compile, package and publish your .NET library or application to NuGet and GitHub.\n- [mikepenz/release-changelog-builder-action](https://github.com/mikepenz/release-changelog-builder-action) - A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.\n- [mindsers/changelog-reader-action](https://github.com/mindsers/changelog-reader-action) - A GitHub action to read and get data from the CHANGELOG.md file 🚀\n- [thomaseizinger/keep-a-changelog-new-release](https://github.com/thomaseizinger/keep-a-changelog-new-release) - Automatically update your CHANGELOG.md for a new release\n- [thomaseizinger/create-release](https://github.com/thomaseizinger/create-release) - A better GitHub action for creating a release.\n- [mikepenz/release-changelog-builder-action](https://github.com/mikepenz/release-changelog-builder-action) - A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.\n\n## Samples\n- [linkdotnet/deployment-template/create-release.yml](https://github.com/linkdotnet/deployment-template/blob/main/.github/workflows/create-release.yml)\n- [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet) ⭐\n- [abap-observability-tools/abap-log-exporter](https://github.com/abap-observability-tools/abap-log-exporter)\n- [semantic-release/semantic-release](https://github.com/semantic-release/semantic-release) ⭐\n- [semantic release yaml config](https://gist.github.com/ujlbu4/15a305f2e53cb487c39c9484e660903a) ⭐⭐"
  },
  {
    "path": "docs/github/save-changes/add.md",
    "content": "# Git Add (Save Changes)\n\n## Articles\n- [Saving changes](https://www.atlassian.com/git/tutorials/saving-changes)"
  },
  {
    "path": "docs/github/save-changes/commit.md",
    "content": "# Git Commit\n\n## Articles\n- [Git commit](https://www.atlassian.com/git/tutorials/saving-changes/git-commit)"
  },
  {
    "path": "docs/github/save-changes/diff.md",
    "content": "## Git Diff\n\n## Articles\n- [Git diff](https://www.atlassian.com/git/tutorials/saving-changes/git-diff)"
  },
  {
    "path": "docs/github/save-changes/stash.md",
    "content": "# Git Stash\n\n## Articles\n- [Git stash](https://www.atlassian.com/git/tutorials/saving-changes/git-stash)\n"
  },
  {
    "path": "docs/github/ssh.md",
    "content": "# SSH\n\n## Articles\n- [Generating a new SSH key and adding it to the ssh-agent](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)\n- [Adding a new SSH key to your GitHub account](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)\n- [Force git to use https:// instead of git://](https://gist.github.com/taoyuan/bfa3ff87e4b5611b5cbe)"
  },
  {
    "path": "docs/github/submodules.md",
    "content": "# Git SubModules\n\n## Articles\n- [Git submodules](https://www.atlassian.com/git/tutorials/git-submodule)\n- [Add a submodule which can't be removed from the index](https://stackoverflow.com/questions/12218420/add-a-submodule-which-cant-be-removed-from-the-index/39189599)\n- [Git: Removing submodule error](https://stackoverflow.com/questions/43789152/git-removing-submodule-error)\n- [Update Git submodule to latest commit on origin](https://stackoverflow.com/questions/5828324/update-git-submodule-to-latest-commit-on-origin)\n- [How can I specify a branch/tag when adding a Git submodule?](https://stackoverflow.com/questions/1777854/how-can-i-specify-a-branch-tag-when-adding-a-git-submodule)\n- [How To Add and Update Git Submodules](https://devconnected.com/how-to-add-and-update-git-submodules/)\n- [Updating a git submodule from a forked repo on GitHub](http://www.devops-blog.net/git/updating-a-git-submodule-from-a-forked-repo-on-github)\n- [private submodule checkout fails -n GitHub Actions](https://github.com/actions/checkout/issues/116#issuecomment-573880976)"
  },
  {
    "path": "docs/github/syncing/fetch.md",
    "content": "# Git Fetch\n\n## Articles\n- [git fetch](https://www.atlassian.com/git/tutorials/syncing/git-fetch)"
  },
  {
    "path": "docs/github/syncing/pull.md",
    "content": "# Git Pull\n\n## Articles\n- [git pull](https://www.atlassian.com/git/tutorials/syncing/git-pull)"
  },
  {
    "path": "docs/github/syncing/push.md",
    "content": "# Git Push\n\n## Articles\n- [git push](https://www.atlassian.com/git/tutorials/syncing/git-push)"
  },
  {
    "path": "docs/github/syncing/remote.md",
    "content": "# Git Remote\n\n## Articles\n- [git syncing](https://www.atlassian.com/git/tutorials/syncing)"
  },
  {
    "path": "docs/github/tools/lense.md",
    "content": "# Git Lense\n\n## Videos\n- [GitLens Extension in Visual Studio Code](https://www.youtube.com/watch?v=C6wMNoe78oc)\n- [10 things you didn't know about GitLens](https://www.youtube.com/watch?v=rxKGgSLwOnU)"
  },
  {
    "path": "docs/github/undo-changes/revet.md",
    "content": "# Git Revet\n\n## Articles\n- [Git Revert](https://www.atlassian.com/git/tutorials/undoing-changes/git-revert)"
  },
  {
    "path": "docs/github/workflow.md",
    "content": "# Git Workflow \n\n## Articles\n- [Comparing Workflows](https://www.atlassian.com/git/tutorials/comparing-workflows)\n- [Git Feature Branch Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow)\n- [Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)\n- [Forking Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow)\n- [git-flow cheatsheet](https://danielkummer.github.io/git-flow-cheatsheet/)\n- [Introducing GitFlow](https://datasift.github.io/gitflow/IntroducingGitFlow.html)\n- [Using GitFlow With GitHub](https://datasift.github.io/gitflow/GitFlowForGitHub.html)\n- [A successful Git branching model](https://nvie.com/posts/a-successful-git-branching-model/)\n- [Getting Started with GitFlow](https://www.red-gate.com/simple-talk/devops/tools/getting-started-with-gitflow/)\n- [Git Organized: A Better Git Flow](https://render.com/blog/git-organized-a-better-git-flow)\n- [Learn Git Flow](https://www.gitkraken.com/learn/git/git-flow)\n- [What is the best Git branch strategy?](https://www.gitkraken.com/learn/git/best-practices/git-branch-strategy)\n- [Git and workflow with GitFlow](https://levelup.gitconnected.com/git-and-workflow-with-gitflow-5f9f76530835)\n- [Git Organized: A Better Git Flow](https://render.com/blog/git-organized-a-better-git-flow)\n- [A successful Git branching model](https://nvie.com/posts/a-successful-git-branching-model/)\n- [Git-Flow, GitHub-Flow, Gitlab-Flow and Trunk Based Development explained](https://steven-giesel.com/blogPost/ff50f268-c0bf-44d8-a5b8-41554ab50ba8)\n- [New git guidelines: We have switched to Conventional Commits](https://dev.to/visuellverstehen/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c)\n- [SEMANTIC BRANCH NAMES AND COMMIT MESSAGES IN GIT](https://dev-tips.com/git/semantic-branch-names-and-commit-messages-in-git)\n- [Git workflow with conventional commits and semantic auto release](https://gist.github.com/vtenq/7a93687108cb876f884c3ce75a8a8023) ⭐⭐\n- [Ship It! (How Wilco Does CI/CD)](https://www.trywilco.com/post/wilco-ci-cd-github-heroku) ⭐⭐\n- [A Guide to Git(Hub) Flow and Commits](https://roalcantara.medium.com/a-guide-to-improve-the-git-hub-flow-and-commits-messages-b495461e1115) ⭐\n- [How to organize your git branches](https://dev.to/hardkoded/how-to-organize-your-git-branches-4dci) ⭐\n- [Stop writing your changelogs manually](https://tiagomichaelsousa.dev/articles/stop-writing-your-changelogs-manually) ⭐⭐\n- [GitHub actions example for automatic release drafts and changelog.md creation](https://johanneskonings.dev/github/2021/02/28/github_automatic_releases_and-changelog/) ⭐\n- [Managing a branch protection rule](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule)\n- [How to write great git commit messages|](https://bitspeicher.blog/how-to-be-a-good-commitizen/)\n- [Release workflow guide](https://github.com/semantic-release/semantic-release/blob/master/docs/recipes/release-workflow/README.md) ⭐⭐\n- [Semantic versioning with git flow and the marvelous way to go there](https://levelup.gitconnected.com/semantic-versioning-with-git-flow-and-the-marvelous-way-to-go-there-b9f97b90455c)\n- [Fix git “tip of your current branch is behind its remote counterpart” - 4 real-world solutions](https://codewithhugo.com/fix-git-failed-to-push-updates-were-rejected/) ⭐\n- [What Are the Best Git Branching Strategies](https://www.flagship.io/git-branching-strategies/) ⭐\n- [GitFlow considered harmful](https://www.endoflineblog.com/gitflow-considered-harmful)\n- [OneFlow – a Git branching model and workflow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow)\n- [Follow-up to 'GitFlow considered harmful'](https://www.endoflineblog.com/follow-up-to-gitflow-considered-harmful)\n\n## Videos\n- [Gitflow Tutorial Playlist - Cameron McKenzie](https://www.youtube.com/playlist?list=PL_RrEj88onS98ELS0mWqav1qTIYaChf41)\n- [GitKraken Tutorial: Intro to Gitflow](https://www.youtube.com/watch?v=eTOgjQ9o4vQ)\n- [Git Flow Like a Pro!](https://www.youtube.com/watch?v=BYrt6luynCI)\n- [Git, Gitflow and Pull Requests - {Pro}Coders Best Practice Series](https://www.youtube.com/watch?v=jFL228SfOmU)\n- [Branching Strategies Explained](https://www.youtube.com/watch?v=U_IFGpJDbeU&ab_channel=DevOpsToolkit)\n- [Auto Version Bumping and Deployments (SemVer, GitFlow, GitVersion, CI&CD)](https://www.youtube.com/watch?v=92EJlmyA3_k&ab_channel=GavinGreenwood) ⭐\n- [How to Manage Releases with Semantic Versioning and Git Tags](https://www.youtube.com/watch?v=4wPjo5C-v8Y) ⭐⭐\n- [A Professional Git Workflow: Trunk-Based Development Walkthrough](https://www.youtube.com/watch?v=rIcHdVcuPzw)\n- [Git Flow Is A Bad Idea](https://www.youtube.com/watch?v=_w6TwnLCFwA)\n- [Feature Toggles & Trunk Based Development | How To and How NOT To](https://www.youtube.com/watch?v=0jM2c16DjuA)\n- [The gitflow workflow - in less than 5 mins.](https://www.youtube.com/watch?v=1SXpE08hvGs) ⭐⭐\n- [Git Flow vs GitHub Flow: What You Need to Know](https://www.youtube.com/watch?v=hG_P6IRAjNQ) ⭐\n- [Feature Branches and Toggles in a Post-GitHub World • Sam Newman • GOTO 2017](https://www.youtube.com/watch?v=lqRQYEHAtpk&ab_channel=GOTOConferences)\n- [Trunk Based development and why you need to adapt it](https://www.youtube.com/watch?v=eBWQEvTzehg)\n- [Increasing Agility Through Continuous Delivery: Branching Strategy Edition](https://www.youtube.com/watch?v=y4yg7aT4NgM&ab_channel=MatKent)\n## Tools\n- [nvie/gitflow](https://github.com/nvie/gitflow) - Git extensions to provide high-level repository operations for Vincent Driessen's branching model.\n\n\n## Samples\n- [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet) ⭐\n- [semantic-release/semantic-release](https://github.com/semantic-release/semantic-release) ⭐"
  },
  {
    "path": "docs/graphql.md",
    "content": "# GraphQL\n\n## 📘 Resources\n- [chentsulin/awesome-graphql](https://github.com/chentsulin/awesome-graphql) - Awesome list of GraphQL & Relay\n- [GraphQL Guide](https://blog.graphql.guide)\n## 📝 Articles\n\n- [Hot Chocolate GraphQL Custom Authentication Series Using Pure Code First Technique - Part1 - User Registration](https://www.learmoreseekmore.com/2021/03/part1-hotchocolate-graphql-custom-authentication-series-using-pure-code-first-technique-user-registration.html)\n- [Hot Chocolate GraphQL Custom Authentication Series Using Pure Code First Technique - Part2 - Generating JWT(JSON Web Token) Access Token](https://www.learmoreseekmore.com/2021/03/part-2-hotchocolate-graphql-custom-authentication-series-using-purecodefirst-generating-jwt-access-token.html)\n- [Hot Chocolate GraphQL Custom Authentication Series Using Pure Code First Technique - Part4 - Refresh Token](https://www.learmoreseekmore.com/2021/03/part4-hotchocolate-graphql-custom-authentication-series-using-purecodefirst-refresh-token.html)\n- [Introducing GraphQLinq - Strongly Typed GraphQL Queries with LINQ to GraphQL.](https://www.giorgi.dev/dotnet/introducing-graphqlinq-strongly-typed-graphql-queries-with-linq-to-graphql/)\n- [GRAPHQL VS REST: WHICH ONE IS BETTER?](https://www.imaginarycloud.com/blog/graphql-vs-rest/)\n- [Building a GraphQL API with ASP.NET Core 2 and Entity Framework Core](https://fullstackmark.com/post/17/building-a-graphql-api-with-aspnet-core-2-and-entity-framework-core)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 1](https://fullstackmark.com/post/22/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-1)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 2](https://fullstackmark.com/post/23/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-2)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 3](https://fullstackmark.com/post/24/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-3)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 4](https://fullstackmark.com/post/25/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-4)\n- [Understanding the benefits and limitations of GraphQL versus REST](https://blog.mia-platform.eu/en/understanding-the-benefits-and-limitations-of-graphql-versus-rest-api)\n- [GraphQL for .NET Developers](https://blog.jeremylikness.com/blog/graphql-for-dotnet-developers/)\n- [Getting started with GraphQL in ASP.NET Core](https://dotnetthoughts.net/getting-started-with-graphql-aspnetcore/)\n- [GraphQL in ASP.NET Core with EF Core](https://dotnetthoughts.net/graphql-in-aspnetcore-with-efcore/)\n- [GraphQL Subscriptions in ASP.NET Core](https://dotnetthoughts.net/graphql-subscription-in-aspnetcore/)\n- [GraphQL Mutations in ASP.NET Core](https://dotnetthoughts.net/graphql-mutations-in-aspnetcore/)\n- [GraphQL multiple requests and EF Core DbContext](https://dotnetthoughts.net/graphql-multiple-operations-and-efcore/)\n- [GraphQL in ASP.NET Core with EF Core](https://dotnetthoughts.net/graphql-in-aspnetcore-with-efcore/)\n- [GraphQL with .NET Core (Part - I: Hello World)](https://fiyazhasan.me/graphql-with-net-core-part-i/)\n- [GraphQL with .NET Core (Part - II: Middleware)](https://fiyazhasan.me/graphql-with-net-core-part-ii-middleware/)\n- [GraphQL with .NET Core (Part - III: Dependency Injection)](https://fiyazhasan.me/graphql-with-net-core-part-iii-dependency-injection/)\n- [A Basic GraphQL CRUD Operation With .NET6 + Hot Chocolate(V 12) + SQL Database](https://www.learmoreseekmore.com/2022/01/basic-graphql-crud-operation-dotnet6-hotchocolate-v12-sqldatabase.html)\n\n## 📹 Videos\n- [.Net 5 with GraphQL - Step by Step](https://www.youtube.com/watch?v=IoLtrxw98So&t=2623s)\n- [GraphQL API with .NET 5 and Hot Chocolate](https://www.youtube.com/watch?v=HuN94qNwQmM)\n- [On .NET Live - Creating GraphQL APIs with a little Hot Chocolate](https://www.youtube.com/watch?v=LfPc0sitoR4)\n- [Hot Chocolate: An introduction to GraphQL on ASP.Net Core - Michael Staib](https://www.youtube.com/watch?v=x7oYYLgZgtY)\n- [.Net 5 with GraphQL - Step by Step](https://www.youtube.com/watch?v=IoLtrxw98So)\n- [Entity Framework Community Standup - Building Modern Apps with GraphQL](https://www.youtube.com/watch?v=4k3WzW2ZdXs)\n- [Nate Barbettini – API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg)\n- [.NET Data Community Standup - GraphQL and OData: An In-Depth Discussion](https://www.youtube.com/watch?v=t7nkdORzed4)\n- [On .NET Live - LINQ to GraphQL: Query GraphQL with LINQ syntax](https://www.youtube.com/watch?v=hGKecjAKAZI)\n\n## Libraries\n- [graphql-dotnet/graphql-client](https://github.com/graphql-dotnet/graphql-client) - A GraphQL Client for .NET Standard\n- [graphql-dotnet/graphql-dotnet](https://github.com/graphql-dotnet/graphql-dotnet) - GraphQL for .NET\n- [ChilliCream/hotchocolate](https://github.com/ChilliCream/hotchocolate) - Welcome to the home of the Hot Chocolate GraphQL server for .NET, the Strawberry Shake GraphQL client for .NET and Banana Cake Pop the awesome Monaco based GraphQL IDE.\n- [Giorgi/GraphQLinq](https://github.com/Giorgi/GraphQLinq/) - LINQ to GraphQL - Strongly typed GraphQL queries with LINQ query syntax. No more magic strings and runtime errors.\n- [SimonCropp/GraphQL.EntityFramework](https://github.com/SimonCropp/GraphQL.EntityFramework) - Adds EntityFramework Core IQueryable support to GraphQL\n- [StefH/GraphQL.EntityFrameworkCore.DynamicLinq](https://github.com/StefH/GraphQL.EntityFrameworkCore.DynamicLinq) - GraphQL extensions for EntityFrameworkCore.DynamicLinq to automatically configure the query arguments and execute the query\n- [byme8/ZeroQL](https://github.com/byme8/ZeroQL)\n\n## 🚀 Samples\n- [fiyazbinhasan/GraphQLCoreFromScratch](https://github.com/fiyazbinhasan/GraphQLCoreFromScratch) - Learn how to implement scalable APIs with GraphQL and ASP.NET Core. Branch-wise code with the relevant topic for a smooth and easy walkthrough.\n- [JacekKosciesza/StarWars](https://github.com/JacekKosciesza/StarWars) - GraphQL 'Star Wars' example using GraphQL for .NET, ASP.NET Core, Entity Framework Core\n- [AntonioFalcaoJr/Dotnet6.GraphQL4.WebApplication](https://github.com/AntonioFalcaoJr/Dotnet6.GraphQL4.WebApplication) - This project exemplifies the implementation and dockerization of a simple Razor Web MVC Core consuming a full GraphQL 4 Web API, build in a .NET 6 multi-layer project, considering development best practices\n- [jeastham1993/learning-graphql](https://github.com/jeastham1993/learning-graphql) - Learning in public for GraphQL"
  },
  {
    "path": "docs/grpc.md",
    "content": "\n# gRPC\n\n## 📘 Resources\n- [Awesome gRPC](https://github.com/grpc-ecosystem/awesome-grpc)\n- [gRPC for WCF developers e-book](https://dotnet.microsoft.com/download/e-book/grpc-for-wcf-devs/pdf)\n\n## 📝 Articles\n- [gRPC Quick start](https://grpc.io/docs/languages/csharp/quickstart/)\n- [gRPC Basics tutorial](https://grpc.io/docs/languages/csharp/basics/)\n- [Language Guide (proto3)](https://developers.google.com/protocol-buffers/docs/proto3)\n- [Protocol Buffer Basics: C#](https://developers.google.com/protocol-buffers/docs/csharptutorial)\n- [gRPC Style Guide](https://developers.google.com/protocol-buffers/docs/style)\n- [Introduction to gRPC on .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/)\n- [Protobuf scalar data types](https://learn.microsoft.com/en-us/dotnet/architecture/grpc-for-wcf-developers/protobuf-data-types)\n- [gRPC services with C#](https://docs.microsoft.com/en-us/aspnet/core/grpc/basics)\n- [gRPC services with ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/grpc/aspnetcore)\n- [Create gRPC services and methods](https://docs.microsoft.com/en-us/aspnet/core/grpc/services)\n- [Call gRPC services with the .NET client](https://docs.microsoft.com/en-us/aspnet/core/grpc/client)\n- [gRPC client factory integration in .NET Core](https://docs.microsoft.com/en-us/aspnet/core/grpc/clientfactory)\n- [gRPC and C# 8 Async stream](https://laurentkempe.com/2019/09/18/gRPC-and-csharp-8-Async-stream/)\n- [gRPC and C# 8 Async stream cancellation](https://laurentkempe.com/2019/09/25/gRPC-and-csharp-8-Async-stream-cancellation/)\n- [Code first gRPC services and clients with .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first)\n- [Create JSON Web APIs from gRPC](https://docs.microsoft.com/en-us/aspnet/core/grpc/httpapi)\n- [Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5](https://medium.com/aspnetrun/using-grpc-in-microservices-for-building-a-high-performance-interservice-communication-with-net-5-11f3e5fa0e9d)\n- [Generate Links To ASP.NET Core Map Endpoints](https://khalidabuhakmeh.com/generate-links-to-aspnet-core-map-endpoints)\n- [Building a simple Client-Server Interaction with gRPC in ASP.NET Core](https://referbruv.com/blog/posts/building-a-simple-client-server-interaction-with-grpc-in-aspnet-core)\n- [How to choose between protobuf-csharp-port and protobuf-net](https://stackoverflow.com/questions/2522376/how-to-choose-between-protobuf-csharp-port-and-protobuf-net)\n- [gRPC performance benchmark in ASP.NET Core 3](https://pawelkmiec.net/2019/11/17/gRPC-performance-benchmark.html)\n- [Trying out gRPC in ASP.NET Core 3](https://pawelkmiec.net/2019/10/18/gRPC-ASP.NET-Core.html)\n- [Getting Started protobuf-net.Grpc](https://protobuf-net.github.io/protobuf-net.Grpc/gettingstarted)\n- [gRPC & ASP.NET Core 3.1: Resiliency with Polly](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-resiliency-with-polly/)\n- [gRPC & ASP.NET Core 3.1: Global error Handling in gRPC & gRPC status codes](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-global-error-handling-in-grpc-grpc-status-codes/)\n- [gRPC & ASP.NET Core 3.1: Message validation](https://anthonygiretti.com/2020/05/18/grpc-asp-net-core-3-1-model-validation/)\n- [gRPC & ASP.NET Core 3.1: What’s gRPC-web & how to create a gRPC-web service ?](https://anthonygiretti.com/2020/03/29/grpc-asp-net-core-3-1-whats-grpc-web-how-to-create-a-grpc-web-service/)\n- [The state of gRPC in the browser](https://grpc.io/blog/state-of-grpc-web/)\n- [gRPC & ASP.NET Core 3.1: How to create a gRPC service ?](https://anthonygiretti.com/2020/03/25/grpc-asp-net-core-3-1-how-to-create-a-grpc-service/)\n- [gRPC & ASP.NET Core 3.1: What’s gRPC ? (introduction)](https://anthonygiretti.com/2020/03/23/grpc-asp-net-core-3-1-whats-grpc-introduction/)\n- [gRPC & ASP.NET Core 3.1: How to create a gRPC-web client ? Examples with Angular 8 and HttpClient](https://anthonygiretti.com/2020/03/29/grpc-asp-net-core-3-1-how-to-create-a-grpc-web-client-examples-with-angular-8-and-httpclient/)\n- [gRPC and ASP.NET Core 5 Discover gRPCui the GUI alternative to gRPCurl](https://anthonygiretti.com/2021/01/17/grpc-asp-net-core-5-discover-grpcui-the-gui-alternative-to-grpcurl/)\n- [gRPC and ASP.NET Core 5 Add a gRPC service reference from a remote protobuf over Route-To-Code](https://anthonygiretti.com/2021/01/25/grpc-asp-net-core-5-add-a-grpc-service-reference-from-a-remote-protobuf-over-route-to-code/) \n- [gRPC and ASP.NET Core 5 Test gRPC endpoints with gRPCurl](https://anthonygiretti.com/2021/01/13/grpc-asp-net-core-5-test-grpc-endpoints-with-grpcurl/)\n- [What’s new for gRPC in .NET 6](https://devblogs.microsoft.com/dotnet/grpc-in-dotnet-6/)\n- [gRPC client-side load balancing in .NET](https://rebin.dev/post/grpc-client-side-load-balancing-indotnet/)\n- [gRPC with ASP.NET Core](https://rafaelldi.blog/posts/grpc-with-asp-net-core/)\n- [Protobuf In C# .NET – Part 1 – Getting Started](https://dotnetcoretutorials.com/2022/01/13/protobuf-in-c-net-part-1-getting-started/)\n- [Protobuf In C# .NET – Part 2 – Serializing/Deserializing](https://dotnetcoretutorials.com/2022/01/13/protobuf-in-c-net-part-2-serializing-deserializing/)\n- [Getting Started with ASP.NET Core and gRPC](https://blog.jetbrains.com/dotnet/2021/07/19/getting-started-with-asp-net-core-and-grpc/)\n- [Code-first gRPC services and clients with .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first)\n- [gRPC Server Reflection in the .NET world](https://martinbjorkstrom.com/posts/2020-07-08-grpc-reflection-in-net)\n- [Announcing gRPC JSON transcoding for .NET](https://devblogs.microsoft.com/dotnet/announcing-grpc-json-transcoding-for-dotnet/)\n- [Postman Now Supports gRPC](https://blog.postman.com/postman-now-supports-grpc/)\n- [.NET 6: Enhance your gRPC client logs with a generic logging interceptor](https://anthonygiretti.com/2022/08/08/net-6-enhance-your-grpc-client-logs-with-a-generic-logging-interceptor/)\n- [gRPC client-side load balancing](https://docs.microsoft.com/en-us/aspnet/core/grpc/loadbalancing)\n- [ASP.NET Core 6: Here is the best way to pass a JWT in the headers of a gRPC client](https://anthonygiretti.com/2022/08/15/asp-net-core-6-here-is-the-best-way-to-pass-a-jwt-in-the-headers-of-a-grpc-client/)\n- [ASP.NET Core 6: Handling gRPC exception correctly server side](https://anthonygiretti.com/2022/08/28/asp-net-core-6-handling-grpc-exception-correctly-server-side/)\n- [Testing ASP.NET Core gRPC services in JetBrains Rider](https://andrewlock.net/testing-aspnetcore-grpc-services-in-jetbrains-rider/)\n\n## 📹 Videos\n\n- [Bidirectional Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=wY4nMSUF9e0)\n- [Client Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=DNxdvRQ4qRQ)\n- [gRPC Server & Unary Calls | gRPC in .NET 5](https://www.youtube.com/watch?v=hp5FTB7PI9s)\n- [Server Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=F2T6xNRoa1E)\n- [Intro to gRPC - Step by Step](https://www.youtube.com/watch?v=SRjIp96Qox0)\n- [Mark Gravell Talking Between Services with gRPC and Other Tricks - .NET Oxford - September 2019](https://www.youtube.com/watch?v=ZM0XeSjuwbc)\n- [Talking between services with gRPC, and other tricks - Marc Gravell](https://www.youtube.com/watch?v=W-bULzA0ki8)\n- [Embracing gRPC in .NET, by Irina Scurtu](https://www.youtube.com/watch?v=d8S9jh6Xj6Y)\n- [gRPC Client/Server Bi-Directional Streaming with C# | Visual Studio 2019](https://www.youtube.com/watch?v=6fiSsxEY4dg)\n- [Nate Barbettini – API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg)\n- [High-performance services with gRPC: What's new in .NET 6](https://www.youtube.com/watch?v=CXH_jEa8dUw)\n- [ASP.NET Community Standup - gRPC Updates in .NET 7](https://www.youtube.com/watch?v=ds27V6rNick)\n- [Where should you use gRPC? And where NOT to use it!](https://youtu.be/4SuFtQV8RCk)\n- [High-performance services with gRPC: What's new in .NET 7 | .NET Conf 2022](https://www.youtube.com/watch?v=et_2NBk4N4Y)\n\n\n## Libraries\n\n- [grpc/grpc-dotnet](https://github.com/grpc/grpc-dotnet) - gRPC for .NET\n- [protobuf-net/protobuf-net.Grpc](https://github.com/protobuf-net/protobuf-net.Grpc) - GRPC bindings for protobuf-net and grpc-dotnet\n- [protobuf-net/protobuf-net](https://github.com/protobuf-net/protobuf-net) - Protocol Buffers library for idiomatic .NET\n- [Utils.Grpc.Mediator](https://github.com/gbauso/grpc_microservices/tree/master/lib/Utils.Grpc.Mediator/src/Utils.Grpc.Mediator)\n- [Cysharp/MagicOnion](https://github.com/Cysharp/MagicOnion) - Unified Realtime/API framework for .NET platform and Unity.\n- [AnthonyGiretti/grpc-aspnetcore-validator](https://github.com/AnthonyGiretti/grpc-aspnetcore-validator) - Simple request message validator for grpc.aspnetcore\n- [grpc-ecosystem/grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) - gRPC to JSON proxy generator following the gRPC HTTP spec\n## 🚀 Samples\n\n- [aspnetrun/run-aspnet-grpc](https://github.com/aspnetrun/run-aspnet-grpc) - Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5. See gRPC Microservices and Step by Step Implementation on .NET Course w/ discount\n- [jtattermusch/grpc-loadbalancing-kubernetes-examples](https://github.com/jtattermusch/grpc-loadbalancing-kubernetes-examples) - gRPC Load Balancing on Kubernetes examples\n- [wicharypawel/net-core-grpc-load-balance](https://github.com/wicharypawel/net-core-grpc-load-balance)"
  },
  {
    "path": "docs/health-check.md",
    "content": "# Health Check\n\n## 📕 Articles\n- [Health monitoring](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/monitor-app-health)\n- [Adding Health Checks UI](https://rmauro.dev/adding-health-checks-ui/)\n- [Health Checks on your ASP.NET Core Application](https://rmauro.dev/adding-health-checks-to-net-core-application/)\n- [HEALTH CHECKS IN ASP.NET CORE](https://blog.zhaytam.com/2020/04/30/health-checks-aspnetcore/)\n- [How to set up ASP.NET Core 2.2 Health Checks with BeatPulse's AspNetCore.Diagnostics.HealthChecks](https://www.hanselman.com/blog/how-to-set-up-aspnet-core-22-health-checks-with-beatpulses-aspnetcorediagnosticshealthchecks)\n- [Implementing a Docker HEALTHCHECK using ASP.Net Core 2.2](https://www.ben-morris.com/implementing-a-docker-healthcheck-using-asp-net-core-2-2/)\n- [Healthchecks in ASP.NET Core – Detailed Guide](https://codewithmukesh.com/blog/healthchecks-in-aspnet-core-explained/)\n- [ASP.NET Core Health Checks](https://asp.net-hacker.rocks/2020/08/20/health-checks.html)\n- [ASP.NET Core health checks quick start](https://gunnarpeipman.com/aspnet-core-health-checks/)\n- [mplement Health Checks Middleware in ASP.NET Core](https://rebin.dev/post/implement-health-checks-middleware-in-asp.net-core/)\n- [How to add Health Checks to ASP.NET Core project. A coding story.](https://nikiforovall.github.io/dotnet/aspnetcore/coding-stories/2021/07/25/add-health-checks-to-aspnetcore.html)\n- [Publish ASP. NET Core health checks to AppMetrics](https://jonasmhansen.com/publish-asp-net-core-health-checks-to-appmetrics/)\n- [Health Checks in ASP.NET Core](https://code-maze.com/health-checks-aspnetcore/)\n- [Checking the Health of an ASP.NET Core Application](https://weblogs.asp.net/ricardoperes/checking-the-heath-of-an-asp-net-core-application) ⭐\n\n## Libraries\n- [Xabaril/AspNetCore.Diagnostics.HealthChecks](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks) - Enterprise HealthChecks for ASP.NET Core Diagnostics Package"
  },
  {
    "path": "docs/hosted-service.md",
    "content": "# Hosted Service\n\n## 📝 Articles\n\n- [Background tasks with hosted services in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services)\n- [IMPLEMENTING IHOSTEDSERVICE IN ASP.NET CORE 2.0](https://www.stevejgordon.co.uk/asp-net-core-2-ihostedservice)\n- [ASP. NET Core - IHostedService and BackgroundService](https://girishgodage.in/blog/customize-hostedservices)\n- [Customizing ASP.​NET Core Part 05: HostedServices](https://asp.net-hacker.rocks/2018/10/04/customizing-aspnetcore-05-hostedservices.html)\n- [Creating Windows Services In .NET Core – Part 3 – The “.NET Core Worker” Way](https://dotnetcoretutorials.com/2019/12/07/creating-windows-services-in-net-core-part-3-the-net-core-worker-way/)\n- [Creating Windows Services In .NET Core – Part 2 – The “Topshelf” Way](https://dotnetcoretutorials.com/2019/09/27/creating-windows-services-in-net-core-part-2-the-topshelf-way/)\n- [Access Background Services From ASP.NET Core](https://khalidabuhakmeh.com/access-background-services-from-aspnet-core)\n- [CONCURRENT HOSTED SERVICE START AND STOP IN .NET 8](https://www.stevejgordon.co.uk/concurrent-hosted-service-start-and-stop-in-dotnet-8)\n- [INTRODUCING THE NEW IHOSTEDLIFECYCLESERVICE INTERFACE IN .NET 8](https://www.stevejgordon.co.uk/introducing-the-new-ihostedlifecycleservice-interface-in-dotnet-8)"
  },
  {
    "path": "docs/hosting.md",
    "content": "\n# Hosting\n\n## 📝 Articles\n\n- [5 ways to set the URLs for an ASP.NET Core app](https://andrewlock.net/5-ways-to-set-the-urls-for-an-aspnetcore-app/)\n- [Adding host filtering to Kestrel in ASP.NET Core](https://andrewlock.net/adding-host-filtering-to-kestrel-in-aspnetcore/)\n- [ASP. NET Core - Hosting](https://girishgodage.in/blog/customize-hosting)\n- [Customizing ASP.NET Core Part 12: Hosting](https://asp.net-hacker.rocks/2019/04/29/customizing-aspnetcore-12-hosting.html)\n- [ASP.NET Core Hosting on IIS on Windows](https://procodeguide.com/programming/asp-net-core-hosting-on-iis/)\n- [Hosting Two ASP.NET Core Apps In One Host](https://khalidabuhakmeh.com/hosting-two-aspnet-core-apps-in-one-host)\n\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>\n"
  },
  {
    "path": "docs/httpclient.md",
    "content": "\n# HttpClient\n\n## 📝 Articles\n- [Make HTTP requests using IHttpClientFactory in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests)\n- [ASP.NET Core 2.1-preview1: Introducing HTTPClient factory](https://devblogs.microsoft.com/aspnet/asp-net-core-2-1-preview1-introducing-httpclient-factory/)\n- [Use IHttpClientFactory to implement resilient HTTP requests](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests)\n- [Implement HTTP call retries with exponential backoff with IHttpClientFactory and Polly policies](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/implement-http-call-retries-exponential-backoff-polly)\n- [Implement the Circuit Breaker pattern](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/implement-circuit-breaker-pattern)\n- [SENDING AND RECEIVING JSON USING HTTPCLIENT WITH SYSTEM.NET.HTTP.JSON](https://www.stevejgordon.co.uk/sending-and-receiving-json-using-httpclient-with-system-net-http-json)\n- [.NET 5: Exploring System.Net.Http.Json namespace](https://anthonygiretti.com/2020/10/03/net-5-exploring-system-net-http-json-namespace/)\n- [Introducing Strongly Typed HTTP Request Headers for ASP.NET Core](https://stevetalkscode.co.uk/stronglytypedheaders-part1)\n- [Tidy up your HttpClient usage](https://josef.codes/tidy-up-your-httpclient-usage/)\n- [You're (probably still) using HttpClient wrong and it is destabilizing your software](https://josef.codes/you-are-probably-still-using-httpclient-wrong-and-it-is-destabilizing-your-software/)\n- [Using HTTPClient Best Practices and Anti-Patterns](https://www.thecodebuzz.com/using-httpclient-best-practices-and-anti-patterns/)\n- [HTTPCLIENTFACTORY IN ASP.NET CORE 2.1 (PART 1)](https://www.stevejgordon.co.uk/introduction-to-httpclientfactory-aspnetcore)\n- [HTTPCLIENTFACTORY IN ASP.NET CORE 2.1 (PART 2)](https://www.stevejgordon.co.uk/httpclientfactory-named-typed-clients-aspnetcore)\n- [HTTPCLIENTFACTORY IN ASP.NET CORE 2.1 (PART 3)](https://www.stevejgordon.co.uk/httpclientfactory-aspnetcore-outgoing-request-middleware-pipeline-delegatinghandlers)\n- [HTTPCLIENTFACTORY IN ASP.NET CORE 2.1 (PART 4)](https://www.stevejgordon.co.uk/httpclientfactory-using-polly-for-transient-fault-handling)\n- [HTTPCLIENTFACTORY IN ASP.NET CORE 2.1 (PART 5): LOGGING](https://www.stevejgordon.co.uk/httpclientfactory-asp-net-core-logging)\n- [Analysis of message pipeline used by. Net core httpclient (2)](https://developpaper.com/analysis-of-message-pipeline-used-by-net-core-httpclient-2/)\n- [Alternative way to configure HttpClients](https://dominikjeske.github.io/configure-httpclients/)\n- [3 ways to use HTTPClientFactory in ASP.NET Core 2.1](https://www.talkingdotnet.com/3-ways-to-use-httpclientfactory-in-asp-net-core-2-1/)\n- [YOU'RE USING HTTPCLIENT WRONG AND IT IS DESTABILIZING YOUR SOFTWARE](https://www.aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/)\n- [Exploring the code behind IHttpClientFactory in depth](https://andrewlock.net/exporing-the-code-behind-ihttpclientfactory/)\n- [Improper Instantiation antipattern](https://docs.microsoft.com/en-us/azure/architecture/antipatterns/improper-instantiation/)\n- [.NET Core HttpClientFactory+Consul for service discovery](https://programmer.help/blogs/net-core-httpclientfactory-consul-for-service-discovery.html)\n- [HTTPCLIENT CREATION AND DISPOSAL INTERNALS: SHOULD I DISPOSE OF HTTPCLIENT?](https://www.stevejgordon.co.uk/httpclient-creation-and-disposal-internals-should-i-dispose-of-httpclient)\n- [DEMYSTIFYING HTTPCLIENT INTERNALS](https://www.stevejgordon.co.uk/demystifying-httpclient-internals-sendasync-flow-for-httprequestmessage)\n- [DEMYSTIFYING HTTPCLIENT INTERNALS: HTTPRESPONSEMESSAGE](https://www.stevejgordon.co.uk/demystifying-httpclient-internals-httpresponsemessage)\n- [USING HTTPCOMPLETIONOPTION TO IMPROVE HTTPCLIENT PERFORMANCE IN .NET](https://www.stevejgordon.co.uk/using-httpcompletionoption-responseheadersread-to-improve-httpclient-performance-dotnet)\n- [DI scopes in IHttpClientFactory message handlers don't work like you think they do](https://andrewlock.net/understanding-scopes-with-ihttpclientfactory-message-handlers/)\n- [HTTPCLIENT CONNECTION POOLING IN .NET CORE](https://www.stevejgordon.co.uk/httpclient-connection-pooling-in-dotnet-core)\n- [Building a typed Httpclient with Refit in ASP.NET Core 3](https://anthonygiretti.com/2019/08/31/building-a-typed-httpclient-with-refit-in-asp-net-core-3/)\n- [Using Refit in ASP.NET Core to remove boilerplate code when consuming REST endpoints](https://www.vaughanreid.com/2020/10/using-refit-in-asp-net-core-to-remove-boilerplate-code-when-consuming-rest-endpoints/)\n- [Refit Basics](https://elanderson.net/2018/03/refit-basics/)\n- [Best practices with HttpClient and Retry Policies with Polly in .NET Core 2, Part 1](http://anthonygiretti.com/2019/03/26/best-practices-with-httpclient-and-retry-policies-with-polly-in-net-core-2-part-1/)\n- [Best practices with HttpClient and Retry Policies with Polly in .NET Core 2, Part 2](https://anthonygiretti.com/2019/03/26/best-practices-with-httpclient-and-retry-policies-with-polly-in-net-core-2-part-2/)\n- [WORKING WITH POLLY – USING THE CONTEXT TO OBTAIN THE RETRY COUNT FOR DIAGNOSTICS](https://www.stevejgordon.co.uk/polly-using-context-to-obtain-retry-count-diagnostics)\n- [Cross-Cutting Concerns with MediatR Pipeline Behaviors](https://anderly.com/2019/12/12/cross-cutting-concerns-with-mediatr-pipeline-behaviors/)\n- [MediatR: how to use Decorators to add retry policies](https://www.davidguida.net/mediatr-how-to-use-decorators-to-add-retry-policies/)\n- [You're (probably still) using HttpClient wrong and it is destabilizing your software](https://josef.codes/you-are-probably-still-using-httpclient-wrong-and-it-is-destabilizing-your-software/)\n- [Logging Polly wait and retry policy ASP.NET CORE 2.1](https://stackoverflow.com/questions/53604295/logging-polly-wait-and-retry-policy-asp-net-core-2-1)\n- [Retry and fallback policies in C# with Polly](https://blog.duijzer.com/posts/polly-refit/)\n- [Round-robin DNS support in .NET HttpClient](https://www.meziantou.net/round-robin-dns-support-in-dotnet-httpclient.htm)\n- [SOCKS Proxy Support In C# .NET](https://dotnetcoretutorials.com/2021/07/11/socks-proxy-support-in-net/)\n- [HTTP client and HTTP client factory in integration testing](https://milestone.topics.it/2021/11/10/http-client-factory-in-integration-testing.html)\n- [Refactor your .NET HTTP Clients to Typed HTTP Clients](https://timdeschryver.dev/blog/refactor-your-net-http-clients-to-typed-http-clients)\n- [Kiota design overview](https://learn.microsoft.com/en-us/openapi/kiota/design)\n- [Kiota API client experience](https://learn.microsoft.com/en-us/openapi/kiota/experience)\n- [A Guide to OpenAPI Client Generation with Kiota. Introduction (Part 1)](https://nikiforovall.github.io/dotnet/aspnetcore/2024/03/22/kiota-guide-introduction.html)\n- [A Guide to OpenAPI Client Generation with Kiota. Deep dive (Part 2)](https://nikiforovall.github.io/dotnet/aspnetcore/2024/03/24/kiota-guide-deep-dive.html)\n- [OData, OpenAPI and Kiota for building API Clients and using it in Blazor](https://www.bytefish.de/blog/odata_openapi_kiota_client_generation.html)\n\n## 📺 Videos\n\n- [JustEat's HttpClient Interception library - Adam Storr](https://www.youtube.com/watch?v=-u5wriRZ-ms)\n- [ASP.NET Community Standup - Jan 23, 2018 - HttpClientFactory with Ryan Nowak](https://www.youtube.com/watch?v=Lb12ZtlyMPg)\n- [Creating an API SDK with Refit | ASP.NET Core 5 REST API Tutorial 23](https://www.youtube.com/watch?v=grBTYaTGLv8)\n- [The Circuit Breaker Pattern | Resilient Microservices](https://www.youtube.com/watch?v=5_Bt_OEg0no)\n- [Make your microservice resilient with Polly's Circuit Breaker | .NET Core](https://www.youtube.com/watch?v=JljTcjt798c)\n\n## Samples\n- [jacobduijzer/PollyRefitBlogCode](https://github.com/jacobduijzer/PollyRefitBlogCode)\n- [RehanSaeed/HttpClientSample](https://github.com/RehanSaeed/HttpClientSample) ⭐ A sample ASP.NET Core project showing how to configure the HttpClientFactory\n- [NikiforovAll/kiota-getting-started](https://github.com/NikiforovAll/kiota-getting-started)\n- [darrelmiller/KiotaApp](https://github.com/darrelmiller/KiotaApp)"
  },
  {
    "path": "docs/httpcontext.md",
    "content": "# HttpContext && HttpContextAccessor\n\n## 📝 Articles\n- [Accessing HttpContext outside of framework components in ASP.NET Core](https://www.strathweb.com/2016/12/accessing-httpcontext-outside-of-framework-components-in-asp-net-core/)\n- [HttpContext.Features vs HttpContext.Items In Asp.Net Core](https://stackoverflow.com/questions/51996907/httpcontext-features-vs-httpcontext-items-in-asp-net-core)\n- [Better way of storing Per-Request data across middlewares in ASP.NET Core](https://dev.to/tjindapitak/better-way-of-storing-per-request-data-across-middlewares-in-asp-net-core-1m9k)\n- [The HttpContext Items Collection](https://odetocode.com/articles/111.aspx)\n- [BETTER THAN HTTPCONTEXT.ITEMS](https://hanson.io/aspnet-httpcontext-items-to-scoped-services/)\n- [Request Features And ASP.NET Core 3](https://khalidabuhakmeh.com/request-features-aspnet-core-3)\n- [When we can use HttpContext.Current.Items to stores data in ASP.NET ?](https://dailydotnettips.com/httpcontext-current-items-stores-data-asp-net/)\n- [HttpContext.Items Property](https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httpcontext.items)\n- [HttpContext.TraceIdentifier Property](https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httpcontext.traceidentifier)\n- [HttpContext.Features Property](https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httpcontext.features)\n- [Tips & tricks for unit testing in .NET Core 3: Mocking IHttpContextAccessor](https://anthonygiretti.com/2020/02/03/tips-tricks-for-unit-testing-in-net-core-3-mocking-ihttpcontextaccessor/)\n- [How to get custom header value in .NET Core WebAPI](https://www.thecodebuzz.com/get-custom-header-value-net-core-web-api/)\n- [Read And Convert QueryCollection Values In ASP.NET](https://khalidabuhakmeh.com/read-and-convert-querycollection-values-in-aspnet)\n- [xunit - how to get HttpContext.User.Identity in unit tests](https://newbedev.com/xunit-how-to-get-httpcontext-user-identity-in-unit-tests)\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>\n"
  },
  {
    "path": "docs/id.md",
    "content": "# ID\n\n## Articles\n- [ULIDs and Primary Keys](https://blog.daveallie.com/ulid-primary-keys)\n\n## Libraries\n- [RobThree/NUlid](https://github.com/RobThree/NUlid) - .Net ULID implementation\n- [RobThree/IdGen](https://github.com/RobThree/IdGen) - Twitter Snowflake-alike ID generator for .Net\n- [Cysharp/Ulid](https://github.com/Cysharp/Ulid) - Fast .NET C# Implementation of ULID for .NET Core and Unity.\n- [bolorundurowb/shortid](https://github.com/bolorundurowb/shortid) - A csharp library to generate short id's. they can be used as primary keys or unique identifiers\n- [ullmark/hashids.net](https://github.com/ullmark/hashids.net) - A small .NET package to generate YouTube-like hashes from one or many numbers. Use hashids when you do not want to expose your database ids to the user.\n- [ulid/spec](https://github.com/ulid/spec) - The canonical spec for ulid\n- [benfoster/minid](https://github.com/benfoster/minid) - Minid generates human-readable, URL-friendly, unique identifiers that are computed in-memory.\n- [sqids/sqids-dotnet](https://github.com/sqids/sqids-dotnet) - Official .NET port of Sqids. Generate short YouTube-like IDs from numbers."
  },
  {
    "path": "docs/ide-tools/datagrip.md",
    "content": "# DataGrip\n\n## Resources\n- [DataGrip Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUaY35luxpLwwivq0Z4EPbqN)"
  },
  {
    "path": "docs/ide-tools/decompile.md",
    "content": "# Decompile & DotPeek\n\n## Resources\n- [dotPeek Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUb0JQRtaWayvn1u0zGQZTNj)\n\n## Tools\n- [Sharplab IO](https://sharplab.io)"
  },
  {
    "path": "docs/ide-tools/dotcover.md",
    "content": "# DotCover\n\n## Resources\n- [dotCover Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUZXzTVWvzKgZwZG1o5kehmc)"
  },
  {
    "path": "docs/ide-tools/dotmemory.md",
    "content": "# DotMemory\n\n## Resources\n- [DotMemory Playlist - JetBrainsTv](https://www.youtube.com/playlist?list=PLQ176FUIyIUY7z-5UwwhiWfgJLP6o494k)\n## 📕 Articles\n- [Investigate memory issues with ease – Introducing real-time inspections in dotMemory Allocation Analysis](https://blog.jetbrains.com/dotnet/2021/06/01/investigate-memory-issues-with-ease-introducing-real-time-inspections-in-dotmemory-allocation-analysis/)"
  },
  {
    "path": "docs/ide-tools/dotnet-interactive.md",
    "content": "# .NET Interactive\n\n## 📘 Resources\n- [GitHub Repository](https://github.com/dotnet/interactive) \n- [dotnet/try](https://github.com/dotnet/try)\n- [Introduction to Polyglot Notebooks](https://learn.microsoft.com/en-us/training/modules/polyglot-notebooks/)\n- [Polyglot Notebooks and .NET Interactive Documentation](https://github.com/dotnet/interactive/blob/main/docs/README.md)\n\n## 📕 Articles\n- [.NET Interactive is here! | .NET Notebooks Preview 2](https://devblogs.microsoft.com/dotnet/net-interactive-is-here-net-notebooks-preview-2/)\n- [.NET Interactive Now Does .NET Notebooks with VS Code](https://visualstudiomagazine.com/articles/2020/10/05/net-interactive-vs-code.aspx)\n- [Announcing .NET Interactive - Try .NET includes .NET Notebooks and more](https://www.hanselman.com/blog/announcing-net-interactive-try-net-includes-net-notebooks-and-more)\n- [Installing Polyglot Notebooks](https://dev.to/integerman/installing-polyglot-notebooks-3ha)\n\n## 📺 Videos\n- [.NET Tooling Community Standup - .NET Interactive](https://www.youtube.com/watch?v=3hQB_ElxJXU)\n- [Get Started Quick with the .NET Coding Pack for VS Code](https://www.youtube.com/watch?v=gmMCAyNcB3Q)\n\n## Samples\n- [dotnet/csharp-notebooks](https://github.com/dotnet/csharp-notebooks)\n- [dotnet/try-samples](https://github.com/dotnet/try-samples)\n"
  },
  {
    "path": "docs/ide-tools/dottrace.md",
    "content": "# DotTrace\n\n## Resources\n- [DotTrace Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUbfsTxYqjlAMTm8JAYZKNGu)\n\n## Articles\n- [Performance profiling .NET code in Rider with integrated dotTrace](https://blog.jetbrains.com/dotnet/2018/10/22/performance-profiling-net-code-rider-integrated-dottrace/)"
  },
  {
    "path": "docs/ide-tools/index.md",
    "content": "- [IDE & Tools](index.md)\n  - [DotMemory](dotmemory.md)\n  - [GitHub](github.md)\n  - [Resharper & Rider](resharper-rider.md)\n  - [Terminal Tools](terminal.md)\n  - [WSL](wsl.md)"
  },
  {
    "path": "docs/ide-tools/resharper-rider.md",
    "content": "# Resharper Tips\n\n## Resources\n- [Rider Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUbcAs90otEqyYImDGdisF9u)\n- [ReSharper Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUYIZOSI5wvW2p7EYoNQx6Db)\n\n## 📕 Articles\n- [Must-have JetBrains Rider Plugins For ASP.NET Core Developers](https://blog.jetbrains.com/dotnet/2021/06/08/must-have-jetbrains-rider-plugins-for-asp-net-core-developers/)\n- [6 Hidden Productivity Gems in Resharper and Rider](https://michaelscodingspot.com/productivity-in-resharper-and-rider/)\n- [Using Git in JetBrain Rider](https://www.jetbrains.com/help/rider/Using_Git_Integration.html)\n- [Use EditorConfig - Rider](https://www.jetbrains.com/help/rider/2022.3/Using_EditorConfig.html) ⭐\n- [Configure code inspection settings](https://www.jetbrains.com/help/rider/Code_Analysis__Configuring_Warnings.html) ⭐\n- [Code Inspections in C# - Rider](https://jetbrains.com.xy2401.com/help/resharper/Reference__Code_Inspections_CSHARP.html) ⭐\n- [Index of EditorConfig properties - Rider](https://jetbrains.com.xy2401.com/help/resharper/EditorConfig_Index.html) ⭐\n- [Working with Git in JetBrains Rider](https://andrewlock.net/working-with-git-in-jetbrains-rider/) ⭐\n- [How to avoid git message \"Merge remote-tracking branch xxx/xxxx into xxx\" using IntelliJ IDEA?](https://youtrack.jetbrains.com/issue/IDEA-279984/How-to-avoid-git-message-Merge-remote-tracking-branch-xxx-xxxx-into-xxx-using-IntelliJ-IDEA)\n- [Performance profiling .NET code in Rider with integrated dotTrace](https://blog.jetbrains.com/dotnet/2018/10/22/performance-profiling-net-code-rider-integrated-dottrace/)\n\n## 📺 Videos\n- [Navigation - ReSharper Essentials](https://www.youtube.com/watch?v=-LlVzyzO3mA)\n- [Shortcuts, Editing, Completion - ReSharper Essentials](https://www.youtube.com/watch?v=yvrheKkjOa4)\n- [Refactoring - ReSharper Essentials](https://www.youtube.com/watch?v=vd9BvAPVmEI)\n- [Be More Productive with JetBrains Rider](https://www.youtube.com/watch?v=mTW_BUUKKRM&t=1875s)\n- [What can Rider do for me?](https://www.youtube.com/watch?v=w8Uoyl-A2GE)\n- [Jetbrains Rider IDE - Introduction and Tips and Tricks - Dan Clarke](https://www.youtube.com/watch?v=3p2l4FeOa2U)\n- [Shortcuts, Editing, and Completion - Rider Essentials](https://www.youtube.com/watch?v=ztQ9ez1bFNg)\n- [Debugging Tips & Tricks in Rider](https://www.youtube.com/watch?v=uALiyRpnovc)\n- [Code Formatting - ReSharper Essentials](https://www.youtube.com/watch?v=QpeTw4p3aeU)\n- [Inspections and Quick Fixes - ReSharper Essentials](https://www.youtube.com/watch?v=RgDGJ9H63n4)\n- [Debugging Tips and Tricks with JetBrains Rider, by Joseph Guadagno](https://www.youtube.com/watch?v=KM27QGVwgas)\n- [ReSharper & Rider 2021.3 Release Party](https://www.youtube.com/watch?v=eereCKwEOq0)\n- [Version Control - Rider Essentials](https://www.youtube.com/watch?v=_fTwymtpg78)\n- [Mastering Git in JetBrains Rider](https://www.youtube.com/watch?v=Xzw6ttOIpnE)\n## Tools\n- [GitHubPang/Rossynt](https://github.com/GitHubPang/Rossynt) - Roslyn syntax tree viewer for C#. Works on JetBrains Rider and all other IntelliJ IDEA-based IDEs."
  },
  {
    "path": "docs/ide-tools/terminal-dotfiles.md",
    "content": "# Terminal & Dotfiles\n\n## Resources\n- [webpro/awesome-dotfiles](https://github.com/webpro/awesome-dotfiles) - A curated list of dotfiles resources.\n- [Dotfiles Guide](http://dotfiles.github.io/)\n\n## 📕 Articles\n- [Taking your PowerShell prompt to the next level with Windows Terminal and Oh my Posh 3](https://www.hanselman.com/blog/taking-your-powershell-prompt-to-the-next-level-with-windows-terminal-and-oh-my-posh-3)\n- [How to make a pretty prompt in Windows Terminal with Powerline, Nerd Fonts, Cascadia Code, WSL, and oh-my-posh](https://www.hanselman.com/blog/how-to-make-a-pretty-prompt-in-windows-terminal-with-powerline-nerd-fonts-cascadia-code-wsl-and-ohmyposh)\n- [6 steps to pimp my terminal](https://stapp.space/few-steps-to-pimp-my-terminal/)\n- [Adding Predictive IntelliSense to my Windows Terminal PowerShell Prompt with PSReadline](https://www.hanselman.com/blog/adding-predictive-intellisense-to-my-windows-terminal-powershell-prompt-with-psreadline)\n- [Setting Up a Modern Windows Terminal for Developers in A Few Steps](https://dev.to/thangchung/modern-windows-terminal-for-developer-in-a-few-steps-170)\n- [Development environment based on Windows Terminal + WSL + ZSH + dotfiles](https://nikiforovall.github.io/productivity/2019/11/30/nikiforovall-setup.html)\n- [The best way to store your dotfiles: A bare Git repository](https://www.atlassian.com/git/tutorials/dotfiles)\n- [Getting Started With Dotfiles](https://www.webpro.nl/articles/getting-started-with-dotfiles)\n- [Dev Environment as a Code (DEaaC) with DevContainers, Dotfiles, and GitHub Codespaces](https://nikiforovall.github.io/productivity/devcontainers/2022/08/13/deaac.html)\n- [Try out .NET 6 inside your own development environment built with devcontainers, docker, and vscode](https://nikiforovall.github.io/productivity/devcontainers/2021/10/14/devcontainer-for-dotnet6.html)\n- [How did I automate the setup of my developer Windows laptop?](https://www.techwatching.dev/posts/automate-developer-machine)\n- [Automating my development machine installation](https://laurentkempe.com/2018/06/01/Automating-development-machine-installation/)\n- [Automate Windows 10 Developer Machine Setup](https://edi.wang/post/2018/12/21/automate-windows-10-developer-machine-setup)\n- [How to write great git commit messages|](https://bitspeicher.blog/how-to-be-a-good-commitizen/)\n- [Managing Your Dotfiles](https://www.anishathalye.com/2014/08/03/managing-your-dotfiles/) ⭐\n- [Source-controlling Config files in Git (dotfiles?)](https://www.danclarke.com/config-files-in-git) ⭐\n- [CLI tools you won't be able to live without](https://dev.to/lissy93/cli-tools-you-cant-live-without-57f6) ⭐⭐\n- [Take your Windows PowerShell to the next level by Starship](https://dev.to/ganmahmud/take-your-windows-powershell-to-the-next-level-by-starship-2gb2)\n- [How to Create a PowerShell Profile – Step-by-Step](https://lazyadmin.nl/powershell/powershell-profile/)\n- [How To Manage Dotfiles With Chezmoi](https://jerrynsh.com/how-to-manage-dotfiles-with-chezmoi/) ⭐\n- [Dotfiles Are Meant to Be Forked](https://zachholman.com/2010/08/dotfiles-are-meant-to-be-forked/) ⭐\n- [MANAGING DOTFILES WITH CHEZMOI](https://adrianvasile.dev/2023/01/12/dotfiles-using-chezmoi.html) ⭐\n- [My Ultimate PowerShell prompt with Oh My Posh and the Windows Terminal](https://www.hanselman.com/blog/my-ultimate-powershell-prompt-with-oh-my-posh-and-the-windows-terminal) ⭐\n- [How I've set up my new Windows development environment in 2022](https://timdeschryver.dev/blog/how-i-have-set-up-my-new-windows-development-environment-in-2022)\n\n## 📺 Videos\n- [Customize the Windows Terminal with WSL2, Cascadia Code, Powerline, Nerd Fonts, Oh My Posh and more!](https://www.youtube.com/watch?v=oHhiMf_6exY)\n- [How to set up an awesome prompt with your Git Branch, Windows Terminal, PowerShell, + Cascadia Code!](https://www.youtube.com/watch?v=lu__oGZVT98)\n- [How do you use the Command line? PowerShell, cmd, bash? - Computer Stuff They Didn't Teach You #13](https://www.youtube.com/watch?v=QKBcHuA3VJE)\n- [How to install and use fzf: the command-line fuzzy finder](https://www.youtube.com/watch?v=1a5NiMhqAR0)\n- [Customizing your ZSH Prompt with Git Info](https://www.youtube.com/watch?v=nEvsWQrKVcQ)\n- [How to set up PowerShell prompt with Oh My Posh on Windows 11](https://www.youtube.com/watch?v=5-aK2_WwrmM)\n- [Windows Terminal Level Up! Oh My Posh, Nerd Fonts, and IntelliSense](https://www.youtube.com/watch?v=ila-keQMhGU)\n- [Windows Terminal My Top Tips for using Windows Terminal like a Pro](https://www.youtube.com/watch?v=FC-gLkYWXLw)\n- [Windows development setup with WSL2, ZSH, VSCode, and more](https://www.youtube.com/watch?v=oF6gLyhQDdw)\n- [Windows Terminal, NeoVim, OhMyPosh!... Awesome combo!](https://www.youtube.com/watch?v=v34n_lgOe1c) ⭐\n- [A Linux Dev Environment on Windows with WSL 2, Docker Desktop and More](https://www.youtube.com/watch?v=idW-an99TAM)\n\n## Libraries\n- [alebcay/awesome-shell](https://github.com/alebcay/awesome-shell) - A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.\n- [minamarkham/yonce](https://github.com/minamarkham/yonce) - Queen Bey-inspired themes for all your favs.\n- [devblackops/Terminal-Icons](https://github.com/devblackops/Terminal-Icons) - A PowerShell module to show file and folder icons in the terminal\n- [starship/starship](https://github.com/starship/starship) - The minimal, blazing-fast, and infinitely customizable prompt for any shell!\n- [xcad2k/dotfiles](https://github.com/xcad2k/dotfiles) - These files are my personal customization files that I use to personalize my Windows and/or Linux desktop experience.\n- [NikiforovAll/dotfiles](https://github.com/NikiforovAll/dotfiles) - allows to bootstrap dev environment\n- [anishathalye/dotfiles](https://github.com/anishathalye/dotfiles)\n- [spencerwooo/dotfiles](https://github.com/spencerwooo/dotfiles#windows) - Dotfiles for all \n- [gpakosz/.tmux](https://github.com/gpakosz/.tmux) - Oh my tmux! My self-contained, pretty & versatile tmux configuration made with\n- [sharkdp/fd](https://github.com/sharkdp/fd) - A simple, fast and user-friendly alternative to 'find'\n- [ogham/exa](https://github.com/ogham/exa) - A modern replacement for ‘ls’.\n- [junegunn/fzf](https://github.com/junegunn/fzf) - A command-line fuzzy finder\n- [Alex-D/dotfiles](https://github.com/Alex-D/dotfiles) - Windows + WSL 2 Ubuntu + Windows Terminal + zsh + systemd + p10k + Docker + IntelliJ IDEA + GitBash with zsh\n- [TechWatching/dotfiles](https://github.com/TechWatching/dotfiles)\n- [Microsoft/windows-dev-box-setup-scripts](https://github.com/Microsoft/windows-dev-box-setup-scripts) - Scripts to simplify setting up a Windows developer box\n- [chocolatey/boxstarter](https://github.com/chocolatey/boxstarter) - Repeatable, reboot resilient windows environment installations made easy using Chocolatey packages\n- [laurentkempe/Cacao](https://github.com/laurentkempe/Cacao) - Leveraging Boxstarter and Chocolatey to quickly install most of the developers tools I use for my daily job!\n- [twpayne/chezmoi](https://github.com/twpayne/chezmoi) - Manage your dotfiles across multiple diverse machines, securely.\n- [mattgwagner/dotfiles](https://github.com/mattgwagner/dotfiles) - A personal grab bag of development tools and references\n- [mattgwagner/New-Machine](https://github.com/mattgwagner/New-Machine) - Utilizing Vagrant, Packer, Chocolatey, and Boxstarter to Configure my Dev Machines\n- [kurone-kito/setup.windows](https://github.com/kurone-kito/setup.windows) - Desktop environment preference for Windows (8.1, or later)\n- [emgdev/dev-setup](https://github.com/emgdev/dev-setup)\n- [jayharris/dotfiles-windows](https://github.com/jayharris/dotfiles-windows) - dotfiles for Windows, including Developer-minded system defaults. Built in PowerShell\n- [JMOrbegoso/Dotfiles-for-Windows-11](https://github.com/JMOrbegoso/Dotfiles-for-Windows-11) - Dotfiles script to setup a development environment in Microsoft Windows 11.\n- [renemarc/dotfiles](https://github.com/renemarc/dotfiles) - ~/. Cross-platform, cross-shell configuration files. ⚙️💻\n- [bevry/dorothy](https://github.com/bevry/dorothy) - A better dotfile ecosystem with cross-platform automations. Supports fish, zsh, bash, mac, linux, windows. Zero to hero in minutes on new and existing machines.\n- [nushell/nushell](https://github.com/nushell/nushell) - A new type of shell\n- [carloscuesta/gitmoji](https://github.com/carloscuesta/gitmoji) - An emoji guide for your commit messages. 😜\n- [carloscuesta/gitmoji-cli](https://github.com/carloscuesta/gitmoji-cli) - A gitmoji interactive command line tool for using emojis on commits. 💻\n- [folke/devmoji](https://github.com/folke/devmoji) - 🤖 🚀 ✨ Emojify your conventional commits with Devmoji\n- [vivaxy/vscode-conventional-commits](https://github.com/vivaxy/vscode-conventional-commits) - 💬Conventional Commits for VSCode.\n- [lppedd/idea-conventional-commit](https://github.com/lppedd/idea-conventional-commit) - Intellij Context and template-based completion for conventional/semantic commits.\n- [commitizen/cz-conventional-changelog](https://github.com/commitizen/cz-conventional-changelog) - A commitizen adapter for the angular preset\n- [commitizen/cz-cli](https://github.com/commitizen/cz-cli) - The commitizen command line utility. ⭐\n- [streamich/git-cz](https://github.com/streamich/git-cz) - Semantic Git commits ⭐⭐\n- [gitmoji-intellij-plugin](https://github.com/patou/gitmoji-intellij-plugin) - Intellij plugin for add a button on the commit dialog to add gitmoji\n- [kazhala/dotbare](https://github.com/kazhala/dotbare) - Manage dotfiles and any git directories interactively with fzf ⭐⭐\n- [NikiforovAll/dotbot](https://github.com/NikiforovAll/dotbot)  ⭐⭐\n- [anishathalye/dotbot](https://github.com/anishathalye/dotbot) - A tool that bootstraps your dotfiles  ⭐⭐\n- [anishathalye/dotfiles_template](https://github.com/anishathalye/dotfiles_template)  ⭐⭐\n- [felipecrs/dotfiles](https://github.com/felipecrs/dotfiles) - Bootstrap your Ubuntu in a single command! ⭐⭐\n- [deadc0de6/dotdrop](https://github.com/deadc0de6/dotdrop) - Save your dotfiles once, deploy them everywhere\n- [nickjj/dotfiles](https://github.com/nickjj/dotfiles) ⭐⭐\n- [ecarlson94/dotbot-template](https://github.com/ecarlson94/dotbot-template) Template repository for advanced Dotbot setup\n- [ecarlson94/dotfiles](https://github.com/ecarlson94/dotfiles) - dotfiles and machine setup scripts.\n- [Lissy93/dotfiles](https://github.com/Lissy93/dotfiles)\n- [craftzdog/dotfiles-public](https://github.com/craftzdog/dotfiles-public) ⭐⭐\n- [microsoft/inshellisense](https://github.com/microsoft/inshellisense) - IDE style command line auto complete\n- [narze/dotfiles/dotbot](https://github.com/narze/dotfiles/tree/dotbot) - macOS / Linux / Codespaces compatible dotfiles with 1-line setup script.\n- [narze/dotfiles](https://github.com/narze/dotfiles) - macOS / Linux / Codespaces compatible dotfiles with 1-line setup script. Tested on Apple Silicon Macs. \n- [posquit0/dotfiles](https://github.com/posquit0/dotfiles) - Awesome configurations for the development environments\n- [joelazar/dotfiles](https://github.com/joelazar/dotfiles) ⭐ - My arch setup script and dotfiles\n- [alrra/dotfiles](https://github.com/alrra/dotfiles) - macOS / Ubuntu dotfiles\n- [holman/dotfiles](https://github.com/holman/dotfiles) - @holman does dotfiles\n- [marlonrichert/zsh-autocomplete](https://github.com/marlonrichert/zsh-autocomplete) - Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.\n- [PowerShell/CompletionPredictor](https://github.com/PowerShell/CompletionPredictor)\n- [devblackops/Terminal-Icons](https://github.com/devblackops/Terminal-Icons) - A PowerShell module to show file and folder icons in the terminal\n\n## Others\n- [Some links for setup terminal](https://www.theurlist.com/os-bootstrap)"
  },
  {
    "path": "docs/ide-tools/vscode.md",
    "content": "# VS Code\n\n## Articles\n- [Development container CLI](https://code.visualstudio.com/docs/remote/devcontainer-cli)\n- [VS Code Remote Development](https://code.visualstudio.com/docs/remote/remote-overview)\n- [Developing inside a Container](https://code.visualstudio.com/docs/remote/containers)\n- [Remote development in Containers](https://code.visualstudio.com/docs/remote/containers-tutorial)\n- [Configure VSCode debugging to use ASP.NET Core MVC ‘watch’ auto-recompile of C# classes and cshtml views](https://www.benday.com/2020/12/24/configure-vscode-debugging-to-use-asp-net-core-mvc-watch-auto-recompile-of-c-classes-and-cshtml-views/)\n- [`Debug containerized` apps](https://code.visualstudio.com/docs/containers/debug-common) ⭐\n- [`Debugging` in VSCode](https://code.visualstudio.com/docs/editor/debugging) ⭐\n- [Integrate with External Tools via `Tasks`](https://code.visualstudio.com/docs/editor/tasks) ⭐\n- [`Schema` for tasks.json](https://code.visualstudio.com/docs/editor/tasks-appendix#_schema-for-tasksjson)\n- [Task `Provider`](https://code.visualstudio.com/api/extension-guides/task-provider)\n- [Configuring launch.json for C# debugging](https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md)\n- [How to Debug Dockerized .NET Core Apps in VS Code](https://www.freecodecamp.org/news/how-to-debug-dockerized-net-core-apps-in-vs-code/) ⭐\n- [Customize the Docker extension](https://code.visualstudio.com/docs/containers/reference) ⭐\n- [Demystifying Docker: .NET 6 on Docker + Docker Debugging](https://amelspahic.com/net-6-on-docker-with-debugging) ⭐\n- [DEBUGGING YOUR .NET CORE IN DOCKER APPLICATIONS WITH VS CODE](https://www.aaron-powell.com/posts/2019-04-04-debugging-dotnet-in-docker-with-vscode/)\n- [Remote debug your ASP.NET Core container on OpenShift with Visual Studio Code](https://developers.redhat.com/blog/2017/10/23/remote-debug-asp-net-core-container-openshift-visual-studio-code)\n- [Debugging Windows Subsystem for Linux](https://github.com/OmniSharp/omnisharp-vscode/wiki/Windows-Subsystem-for-Linux)  ⭐\n- [Attaching to remote processes](https://github.com/OmniSharp/omnisharp-vscode/wiki/Attaching-to-remote-processes)  ⭐\n- [Remote Debugging On Linux Arm](https://github.com/OmniSharp/omnisharp-vscode/wiki/Remote-Debugging-On-Linux-Arm)  ⭐\n- [How to debug a .NET Core app in Docker with VSCode](https://www.richard-banks.org/2018/07/debugging-core-in-docker.html)\n\n## Videos\n- [Easy VS Code Docker Remote Containers | Dockerize Development Environment Easily with VS Code (2020)](https://www.youtube.com/watch?v=KFyRLxiRKAc)\n- [VSCode - Develop Inside a Docker Container](https://www.youtube.com/watch?v=mi8kpAgHYFo)\n- [Visual Studio Code: Remote dev with Containers & Codespaces](https://www.youtube.com/watch?v=ruIoLtqIdNc)\n- [Debugging .NET Core in Docker with VSCode](https://www.youtube.com/watch?v=ds2bud0ZYTY) ⭐\n\n## Extensions\n- [Trottero/dotnet-watch-attach](https://github.com/Trottero/dotnet-watch-attach)\n- [murugaratham/vscode-dotnet-watch](https://github.com/murugaratham/vscode-dotnet-watch)\n\n# Samples\n- [microsoft/vscode-extension-samples](https://github.com/microsoft/vscode-extension-samples) - Sample code illustrating the VS Code extension API.\n- [thehaseebahmed/vscode-dotnet-docker-debug](https://github.com/thehaseebahmed/vscode-dotnet-docker-debug)\n- [atkinsonbg/dotnet-debug-and-launch-compose](https://github.com/atkinsonbg/dotnet-debug-and-launch-compose)\n- [the-nerbs/docker-debug-repro](https://github.com/the-nerbs/docker-debug-repro)"
  },
  {
    "path": "docs/ide-tools/wsl.md",
    "content": "# WSL\n\n## 📕 Articles\n- [Install Linux on Windows with WSL](https://learn.microsoft.com/en-us/windows/wsl/install) ⭐\n- [Setting Up Docker for Windows and WSL to Work Flawlessly](https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly) ⭐\n- [A preview of WSL in the Microsoft Store is now available!](https://devblogs.microsoft.com/commandline/a-preview-of-wsl-in-the-microsoft-store-is-now-available/)\n- [Systemd support is now available in WSL!](https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/)\n- [The Windows Subsystem for Linux in the Microsoft Store is now generally available on Windows 10 and 11](https://devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux-in-the-microsoft-store-is-now-generally-available-on-windows-10-and-11/)\n- [How to access host ip and port?](https://github.com/microsoft/WSL/issues/1032)\n\n## 📺 Videos\n- [How to set up a Windows 10 machine for Linux Development w/ WSL! Can we convert a diehard machead?](https://www.youtube.com/watch?v=j0PPcUUtHlw)\n- [Developing on Windows with WSL2 (Subsystem for Linux), VS Code, Docker, and the Terminal](https://www.youtube.com/watch?v=A0eqZujVfYU&t=580s)\n- [WSL2, Visual Studio Code, Windows 10, Ubuntu/Linux + more - Computer Stuff They Didn't Teach You #19](https://www.youtube.com/watch?v=Owrk9UxnMdI)\n- [WSL 2 Networking](https://www.youtube.com/watch?v=yCK3easuYm4) ⭐\n- [A Linux Dev Environment on Windows with WSL 2, Docker Desktop and More](https://www.youtube.com/watch?v=idW-an99TAM)\n\n## Libraries\n- [nullpo-head/wsl-distrod](https://github.com/nullpo-head/wsl-distrod) - Distrod is a meta-distro for WSL 2 which installs Ubuntu, Arch, Debian, Gentoo, etc. with systemd in a minute for you. Distrod also has built-in auto-start feature on Windows startup and port forwarding ability.\n- [DamionGans/ubuntu-wsl2-systemd-script](https://github.com/DamionGans/ubuntu-wsl2-systemd-script) - Script to enable systemd support on current Ubuntu WSL2 images\n- [microsoft/wslg](https://github.com/microsoft/wslg) - Enabling the Windows Subsystem for Linux to include support for Wayland and X server related scenarios"
  },
  {
    "path": "docs/index.md",
    "content": "# 🎨 Awesome .Net Core Education [![Awesome](https://awesome.re/badge-flat2.svg)](https://awesome.re)\n\n[![Twitter URL](https://img.shields.io/badge/-@mehdi_hadeli-%231DA1F2?style=flat-square&logo=twitter&logoColor=ffffff)](https://twitter.com/mehdi_hadeli)\n[![Linkedin Url URL](https://img.shields.io/badge/-mehdihadeli-blue?style=flat-square&logo=linkedin&logoColor=ffffff)](https://www.linkedin.com/in/mehdihadeli/)\n[![blog](https://img.shields.io/badge/blog-dotnetuniversity.com-brightgreen?style=flat-square)](https://dotnetuniversity.com/)\n[![License: CC0-1.0](https://img.shields.io/badge/License-CC0%201.0-brightgreen.svg?style=flat-square)](http://creativecommons.org/publicdomain/zero/1.0/)\n[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)][tweet]\n\n![](./assets/banner.jpg)\n\n> Curated list of awesome articles and resources for learning and practicing about .Net Core and its related technologies, this repository will update continuously. Keep Learning Keep Sharing !\n\n**🚀 This awesome list is available in this link:**\n**[https://mehdihadeli.github.io/awesome-dotnet-core-education](https://mehdihadeli.github.io/awesome-dotnet-core-education/)**\n\n\n[![Sparkline](https://stars.medv.io/mehdihadeli/awesome-dotnet-core-education.svg)](https://stars.medv.io/mehdihadeli/awesome-dotnet-core-education)\n\n\n[tweet]: https://twitter.com/intent/tweet?url=https://github.com/mehdihadeli/awesome-dotnet-core-education&text=A%20curated%20list%20of%20awesome%20articles%20and%20resources%20to%20learn%20and%20practice%20about%20software%20architecture%2C%20patterns%2C%20and%20principles&hashtags=dotnetcore,dotnet,csharp,microservices,netcore,aspnetcore,ddd,cqrs,softwarearchitecture,designpatterns,modularmonolith\n\n\n## Support ⭐\n\nStar this repository and we will be happy together :)\n\nThanks a bunch for supporting me!\n\n## Contribution\n\nContributions are always welcome! Please take a look at the [contribution guidelines](https://github.com/mehdihadeli/awesome-dotnet-core-education/blob/master/contributing.md) pages first.\n\nThanks to all [contributors](https://github.com/mehdihadeli/awesome-dotnet-core-education/graphs/contributors), you're awesome and wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources."
  },
  {
    "path": "docs/kestrel.md",
    "content": "\n# Kestrel\n\n## 📝 Articles\n\n- [Kestrel web server implementation in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-5.0)\n- [.NET Core 3.0 AllowSynchronousIO Workaround](https://khalidabuhakmeh.com/dotnet-core-3-dot-0-allowsynchronousio-workaround)\n- [QUICK INTRODUCTION TO KESTREL SERVER IN ASP .NET CORE APPLICATIONS](https://thecodeblogger.com/2021/05/05/quick-introduction-to-kestrel-server-in-asp-net-core-applications/)\n- [CUSTOMIZING URL BINDING FOR ASP .NET CORE KESTREL SERVER](https://thecodeblogger.com/2021/05/06/customizing-url-binding-for-asp-net-core-kestrel-server/)\n## 📹 Videos\n\n- [Custom HTTPS Dev Environment using .NET Core, Kestrel & certificates](https://www.youtube.com/watch?v=96KHOaIe19w)\n\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>\n"
  },
  {
    "path": "docs/localization.md",
    "content": "# Localization\n\n## Articles\n- [Localization with JSON files in .NET 6](https://cloudcoders.xyz/blog/localization-with-json-files-in-net6/)\n\n## Samples\n- [nandkishor-yadav/dotnet-6-json-localization](https://github.com/nandkishor-yadav/dotnet-6-json-localization) - JSON Based Localization in .NET 6"
  },
  {
    "path": "docs/logging.md",
    "content": "# Logging And Auditing\n\n## 📘 Resources\n- [Serilog Docs](https://github.com/serilog/serilog/wiki)\n\n## 📝 Articles\n- [Logging in .NET Core and ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/)\n- [Logging in .NET](https://docs.microsoft.com/en-us/dotnet/core/extensions/logging)\n- [Why Serilog?](https://serilog.net/)\n- [Logging using DiagnosticSource in ASP.NET Core](https://andrewlock.net/logging-using-diagnosticsource-in-asp-net-core/)\n- [Setup Serilog for Asp.Net Core](https://github.com/serilog/serilog-aspnetcore#readme)\n- [Creating a rolling file logging provider for ASP.NET Core 2.0](https://andrewlock.net/creating-a-rolling-file-logging-provider-for-asp-net-core-2-0/)\n- [TRACING IO IN .NET CORE](https://www.softwarepark.cc/blog/2021/1/29/tracing-io-in-net-core)\n- [Selective enrichment](https://nblumhardt.com/2019/06/selective-enrichment/)\n- [Setting up Serilog in ASP.NET Core 3](https://nblumhardt.com/2019/10/serilog-in-aspnetcore-3/)\n- [Structured logging concepts in .NET Series (1)](https://nblumhardt.com/2016/06/structured-logging-concepts-in-net-series-1/)\n- [Events and levels - structured logging concepts in .NET (2)](https://nblumhardt.com/2016/06/events-and-levels-structured-logging-concepts-in-net-2/)\n- [Message templates and properties structured logging concepts in .NET (3)](https://nblumhardt.com/2016/06/message-templates-and-properties-structured-logging-concepts-in-net-3/)\n- [Event types – structured logging concepts in .NET (4)](https://nblumhardt.com/2016/07/event-types-structured-logging-concepts-in-net-4/)\n- [Context and correlation – structured logging concepts in .NET (5)](https://nblumhardt.com/2016/08/context-and-correlation-structured-logging-concepts-in-net-5/)\n- [Serialized data – structured logging concepts in .NET (6)](https://nblumhardt.com/2016/08/serialized-data-structured-logging-concepts-in-net-6/)\n- [Tagging log events for effective correlation](https://nblumhardt.com/2015/01/designing-log-events-for-effective-correlation/)\n- [New in ASP.NET Core 3.0: structured logging for startup messages](https://andrewlock.net/new-in-aspnetcore-3-structured-logging-for-startup-messages/)\n- [Reducing log verbosity with Serilog RequestLogging](https://andrewlock.net/using-serilog-aspnetcore-in-asp-net-core-3-reducing-log-verbosity/)\n- [Logging the selected Endpoint Name with Serilog](https://andrewlock.net/using-serilog-aspnetcore-in-asp-net-core-3-logging-the-selected-endpoint-name-with-serilog/)\n- [Logging MVC properties with Serilog.AspNetCore](https://andrewlock.net/using-serilog-aspnetcore-in-asp-net-core-3-logging-mvc-propertis-with-serilog/)\n- [Excluding health check endpoints from Serilog request logging](https://andrewlock.net/using-serilog-aspnetcore-in-asp-net-core-3-excluding-health-check-endpoints-from-serilog-request-logging/)\n- [Creating an extension method for attaching key-value pairs to scope state using ASP.NET Core](https://andrewlock.net/creating-an-extension-method-for-attaching-key-value-pairs-to-scope-state-using-asp-net-core/)\n- [Using anonymous types and tuples to attach correlation IDs to scope state with Serilog and Seq in ASP.NET Core](https://andrewlock.net/using-anonymous-types-and-tuples-to-attach-correlation-ids-to-scope-state-with-serilog-and-seq-in-asp-net-core/)\n- [Suppressing the startup and shutdown messages in ASP.NET Core](https://andrewlock.net/suppressing-the-startup-and-shutdown-messages-in-asp-net-core/)\n- [ASP.NET Core 5 + Serilog](https://jkdev.me/asp-net-core-serilog/)\n- [What Is Structured Logging and Why Developers Need It](https://stackify.com/what-is-structured-logging-and-why-developers-need-it/)\n- [Exporting Open Telemetry Data to Jaeger](https://rehansaeed.com/exporting-open-telemetry-data-to-jaeger/)\n- [Logging with Serilog and Seq](https://www.code4it.dev/blog/logging-with-serilog-and-seq)\n- [Serilog Best Practices](https://benfoster.io/blog/serilog-best-practices/)\n- [Using Middleware in .NET 5.0 to Log Requests and Responses](https://exceptionnotfound.net/using-middleware-to-log-requests-and-responses-in-asp-net-core/)\n- [Adding Serilog to the ASP.NET Core Generic Host](https://andrewlock.net/adding-serilog-to-the-asp-net-core-generic-host/)\n- [Serilog Tutorial for .NET Logging: 16 Best Practices and Tips](https://stackify.com/serilog-tutorial-net-logging/)\n- [Logging with ElasticSearch, Kibana, ASP.NET Core and Docker](https://www.humankode.com/asp-net-core/logging-with-elasticsearch-kibana-asp-net-core-and-docker)\n- [Stackify - Logging with .NET Core](https://docs.stackify.com/v1/docs/errors-and-logs-configure-net-core)\n- [Scalable and Performant ASP.NET Core Web APIs: Profiling and Monitoring](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-profiling-and-monitoring/)\n- [Extending Serilog with additional values to log](https://dejanstojanovic.net/aspnet/2018/october/extending-serilog-with-additional-values-to-log/)\n- [Structured Logging in ASP.NET Core with Serilog](https://code-maze.com/structured-logging-in-asp-net-core-with-serilog/)\n- [ASP.NET Core MVC and `UseSerilogRequestLogging()`](https://nblumhardt.com/2019/10/serilog-mvc-logging/)\n- [Implement log monitoring with Seq and Serilog in .net Core](https://garywoodfine.com/implement-log-monitoring-with-seq-and-serilog-in-net-core/)\n- [Implementing logging in .net core applications for logging, telemetry and your own sanity](https://garywoodfine.com/implementing-logging-in-net-core-applications-for-logging-telemetry-and-your-own-sanity/)\n- [Implementing logging with Serilog](https://garywoodfine.com/implementing-logging-with-serilog/)\n- [Customizing Serilog text output](https://nblumhardt.com/2021/06/customize-serilog-text-output/)\n- [Customized JSON formatting with Serilog](https://nblumhardt.com/2021/06/customize-serilog-json-output/)\n- [Using Dotnet Core Logging without using the DI container](https://shawtyds.wordpress.com/2020/01/06/using-dotnet-core-logging-without-using-the-di-container/)\n- [Logging with ILogger in .NET: Recommendations and best practices](https://blog.rsuter.com/logging-with-ilogger-recommendations-and-best-practices/)\n- [Asp.net core - Log request/response headers](https://josef.codes/asp-net-core-log-request-response-headers/)\n- [ASP.NET Core 6 - HttpLogging - log requests/responses](https://josef.codes/asp-net-core-6-http-logging-log-requests-responses/)\n- [Serilog–Add headers to request log](https://bartwullems.blogspot.com/2021/05/serilogadd-headers-to-request-log.html)\n- [Logging in ASP.NET Core 5 using Serilog](https://www.ezzylearning.net/tutorial/logging-in-asp-net-core-5-using-serilog)\n- [Programmable text (and JSON) formatting for Serilog](https://nblumhardt.com/2020/10/programmable-serilog-formatting)\n- [Adding Useful Information to ASP.NET Core Web API Serilog Logs](https://www.carlrippon.com/adding-useful-information-to-asp-net-core-web-api-serilog-logs/)\n- [Good citizenship - logging from .NET libraries](https://nblumhardt.com/2017/07/library-logging/)\n- [Serilog DI in ASP.NET Core, which ILogger interface to inject?](https://stackoverflow.com/questions/61411759/serilog-di-in-asp-net-core-which-ilogger-interface-to-inject)\n- [Should I use Microsoft.Extensions.Logging.ILogger<T> or Serilog.ILogger?](https://github.com/serilog/serilog-aspnetcore/issues/104)\n- [Log Level](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#log-level)\n- [Configure Logging for Log Level](https://docs.microsoft.com/en-us/dotnet/core/extensions/logging?tabs=command-line#configure-logging)\n- [Serilog DI in ASP.NET Core, which ILogger interface to inject?](https://stackoverflow.com/questions/61411759/serilog-di-in-asp-net-core-which-ilogger-interface-to-inject)\n- [Writing Logs to xunit Test Output](https://blog.martincostello.com/writing-logs-to-xunit-test-output/)\n- [Writing logs to Elasticsearch with Fluentd using Serilog in ASP.NET Core](https://andrewlock.net/writing-logs-to-elasticsearch-with-fluentd-using-serilog-in-asp-net-core/)\n- [.NET 5 + Serilog: implementando Logs com Elasticsearch, SQLite,](https://renatogroffe.medium.com/net-5-serilog-implementando-logs-com-elasticsearch-sqlite-45d64f5c043e)\n- [Structured logging with Serilog and Seq and ElasticSearch under Docker](https://dev.to/hasdrubal/structure-logging-with-serilog-and-seq-and-elasticsearch-under-docker-16dk)\n- [How to turn off Serilog?](https://stackoverflow.com/questions/30849166/how-to-turn-off-serilog)\n- [Setting up Serilog in .NET 6](https://blog.datalust.co/using-serilog-in-net-6/)\n- [ASP.NET Core: Logs (Part 1)](https://rafaelldi.blog/posts/asp-net-core-logs-part-1/)\n- [ASP.NET Core: Logs (Part 2)](https://rafaelldi.blog/posts/asp-net-core-logs-part-2/)\n- [ASP.NET Core: Logs (Part 3)](https://rafaelldi.blog/posts/asp-net-core-logs-part-3/)\n- [High-performance logging with LoggerMessage in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/loggermessage)\n- [HIGH-PERFORMANCE LOGGING IN .NET CORE](https://www.stevejgordon.co.uk/high-performance-logging-in-net-core)\n- [Structured Logging and Interpolated Strings in C# 10](https://habr.com/en/post/591171/)\n- [Adding a Logger With the .NET 6 Minimal Hosting Model](https://onloupe.com/blog/how-to-config-logger-net6-startup/)\n- [One big thing: Logging improvements in .NET 6](https://www.daveabrock.com/2021/08/08/dotnet-stacks-60/)\n- [High-performance logging with LoggerMessage in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/loggermessage)\n- [Compile-time logging source generation](https://docs.microsoft.com/en-us/dotnet/core/extensions/logger-message-generator)\n- [Improving logging performance with source generators](https://andrewlock.net/exploring-dotnet-6-part-8-improving-logging-performance-with-source-generators/)\n- [NET 6 What's New -- High Performance Logging](https://www.sobyte.net/post/2021-12/dotnet6-logging/)\n- [How to include scopes when logging exceptions in ASP.NET Core](https://andrewlock.net/how-to-include-scopes-when-logging-exceptions-in-asp-net-core/)\n- [The semantics of ILogger.BeginScope()](https://nblumhardt.com/2016/11/ilogger-beginscope/)\n- [How to improve Serilog logging in .NET 6 by using Scopes](https://www.code4it.dev/blog/serilog-logging-scope)\n- [Scoped Logging Using Microsoft Logger With Serilog In .Net Core Application](https://www.initpals.com/net-core/scoped-logging-using-microsoft-logger-with-serilog-in-net-core-application/)\n- [Logs - Why, good practices, and recommendations](https://dev.to/tnfigueiredo/logs-why-good-practices-and-recommendations-ojd)\n- [Logging Best Practices](https://dev.to/raysaltrelli/logging-best-practices-obo)\n- [Categorizing logs with Serilog in Asp.Net Core](https://dotnetdocs.ir/Post/34/categorizing-logs-with-serilog-in-aspnet-core)\n- [Logging Source Code Generators](https://steven-giesel.com/blogPost/48697958-4aee-474a-8920-e266d1d7b8fa)\n- [Logging with Serilog.Exceptions](https://rehansaeed.com/logging-with-serilog-exceptions/)\n- [How To Enable Logging In .NET Console Applications](https://thecodeblogger.com/2021/05/11/how-to-enable-logging-in-net-console-applications/)\n- [Collect and Query your Kubernetes Cluster Logs with Grafana Loki](https://www.programmingwithwolfgang.com/collect-and-query-kubernetes-logs-with-grafana-loki)\n- [.NET Core Microservice Logging with Grafana and Loki](https://medium.com/c-sharp-progarmming/net-core-microservice-logging-with-grafana-and-loki-92cd2783ed88)\n- [.Net 6 WebAPI - Intro to ElasticSearch & Kibana - Step by Step](https://dev.to/moe23/net-6-webapi-intro-to-elasticsearch-kibana-step-by-step-p9l)\n- [Net Core + Serilog + ElasticSearch + Kibana](https://medium.com/@matias.paulo84/net-core-serilog-elasticsearch-kibana-3bd080ff4c1e)\n- [Serilog Tutorial](https://blog.datalust.co/serilog-tutorial/)\n- [Defining custom logging messages with LoggerMessage.Define in ASP.NET Core](https://andrewlock.net/defining-custom-logging-messages-with-loggermessage-define-in-asp-net-core/)\n- [Observability with Grafana Cloud and OpenTelemetry in .net microservices](https://dev.to/dbolotov/observability-with-grafana-cloud-and-opentelemetry-in-net-microservices-448c)\n- [Creating a pretty console logger using Go's slog package](https://dusted.codes/creating-a-pretty-console-logger-using-gos-slog-package)\n- [Behind [LogProperties] and the new telemetry logging source generator](https://andrewlock.net/behind-logproperties-and-the-new-telemetry-logging-source-generator/)\n\n## 📹 Videos\n- [Logging into Elasticsearch using Serilog and viewing logs in Kibana | .NET Core Tutorial](https://www.youtube.com/watch?v=0acSdHJfk64)\n- [Add Simple Distributed Tracing in .NET Libraries](https://www.youtube.com/watch?v=wjglj4jE18Y) \n- [Write safer C# with conditional compilation](https://www.youtube.com/watch?v=ErrABoJ9HZw)\n- [Structured logging - what is it, why is it useful and how do we do it in Asp.Net Core](https://www.youtube.com/watch?v=8rRQzcbn36o)\n- [C# Logging with Serilog and Seq - Structured Logging Made Easy](https://www.youtube.com/watch?v=_iryZxv8Rxw)\n- [High-performance and compile-time logging source generation in .NET 6](https://www.youtube.com/watch?v=uh0ZL-NBJYw)\n- [You are doing .NET logging wrong. Let's fix it](https://www.youtube.com/watch?v=bnVfrd3lRv8)\n- [High-performance logging in .NET, the proper way](https://www.youtube.com/watch?v=a26zu-pyEyg)\n- [ASP.NET Community Standup - Logging updates in ASP.NET Core 6](https://www.youtube.com/watch?v=V-rwe2yxh1A)\n- [Exploring Source Generation for Logging in .NT 6](https://www.youtube.com/watch?v=Otm8tH0Vrp0)\n- [Stop using String Interpolation when Logging in .NET](https://www.youtube.com/watch?v=6zoMd_FwSwQ)\n\n## Libraries\n- [serilog/serilog-aspnetcore](https://github.com/serilog/serilog-aspnetcore) - Serilog integration for ASP.NET Core\n- [thepirat000/Audit.NET](https://github.com/thepirat000/Audit.NET) - An extensible framework to audit executing operations in .NET and .NET Core.\n- [ekmsystems/serilog-enrichers-correlation-id](https://github.com/ekmsystems/serilog-enrichers-correlation-id) - Enrich logs with a unique ID so you can track logs for specific requests.\n- [PragmaticFlow/Serilog.Sinks.SpectreConsole](https://github.com/PragmaticFlow/Serilog.Sinks.SpectreConsole)\n- [serilog/serilog-expressions](https://github.com/serilog/serilog-expressions) - An embeddable mini-language for filtering, enriching, and formatting Serilog events, ideal for use with JSON or XML configuration.\n- [serilog/serilog-sinks-console](https://github.com/serilog/serilog-sinks-console)\n- [serilog/serilog-sinks-elasticsearch](https://github.com/serilog/serilog-sinks-elasticsearch) - A Serilog sink that writes events to Elasticsearch\n- [yorchideas/Serilog.Sinks.Xunit2](https://github.com/yorchideas/Serilog.Sinks.Xunit2)\n- [verticalsoftware/vertical-spectreconsolelogger](https://github.com/verticalsoftware/vertical-spectreconsolelogger)\n- [RehanSaeed/Serilog.Enrichers.Span](https://github.com/RehanSaeed/Serilog.Enrichers.Span) - Enrich Serilog log events with properties from Open Telemetry spans.\n- [RehanSaeed/Serilog.Exceptions](https://github.com/RehanSaeed/Serilog.Exceptions) - Log exception details and custom properties that are not output in Exception.ToString().\n- [serilog-contrib/serilog-sinks-grafana-loki](https://github.com/serilog-contrib/serilog-sinks-grafana-loki) - A Serilog sink sending log events to Grafana Loki\n- [mayuki/Rin](https://github.com/mayuki/Rin) - Request/response Inspector middleware for ASP.NET Core\n- [MiniProfiler/dotnet](https://github.com/MiniProfiler/dotnet) - A simple but effective mini-profiler for ASP.NET (and Core) websites\n- [Suchiman/SerilogAnalyzer](https://github.com/Suchiman/SerilogAnalyzer) - Roslyn-based analysis for code using the Serilog logging library. Checks for common mistakes and usage problems.\n- [getsentry/sentry-dotnet](https://github.com/getsentry/sentry-dotnet)\n- [serilog-contrib/serilog-sinks-sentry](https://github.com/serilog-contrib/serilog-sinks-sentry)\n- [serilog/serilog-aspnetcore](https://github.com/serilog/serilog-aspnetcore) - Serilog integration for ASP.NET Core\n- [nblumhardt/serilog-timings](https://github.com/nblumhardt/serilog-timings) - Extends Serilog with support for timed operations\n- [serilog/serilog-sinks-async](https://github.com/serilog/serilog-sinks-async) - An asynchronous wrapper for Serilog sinks that logs on a background thread\n- [grafana/loki](https://github.com/grafana/loki) - Like Prometheus, but for logs.\n- [serilog-contrib/serilog-sinks-grafana-loki](https://github.com/serilog-contrib/serilog-sinks-grafana-loki) - A Serilog sink sending log events to Grafana Loki\n- [JosephWoodward/Serilog-Sinks-Loki](https://github.com/JosephWoodward/Serilog-Sinks-Loki) - A Serilog Sink for Loki, Grafana's new Prometheus inspired log aggregator\n- [serilog/serilog-sinks-opentelemetry](https://github.com/serilog/serilog-sinks-opentelemetry) - Serilog to OpenTelemetry Logs sink\n\n## 🔖 Samples\n- [serilog/serilog-aspnetcore](https://github.com/serilog/serilog-aspnetcore/tree/dev/samples/Sample)\n- [jernejk/AspNetCoreSerilogExample](https://github.com/jernejk/AspNetCoreSerilogExample) - Microsoft ILogger implementation for Spectre console\n- [datalust/dotnet6-serilog-example](https://github.com/datalust/dotnet6-serilog-example)\n- [hdamikun/trouble-training](https://github.com/damikun/trouble-training/blob/main/Doc/Logging.md) - FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend\n- [hgmauri/sample-observability](https://github.com/hgmauri/sample-observability) - Example of log collection using .NET, Serilog and Elastic Stack in Docker"
  },
  {
    "path": "docs/lunch-urls-launchsettings.md",
    "content": "# Lunch Urls & launchSettings & Watch\n\n## Articles\n- [5 ways to set the URLs for an ASP.NET Core app](https://andrewlock.net/5-ways-to-set-the-urls-for-an-aspnetcore-app/) ⭐⭐\n- [How to get ASP.NET Core server URLs](https://swimburger.net/blog/dotnet/how-to-get-aspdotnet-core-server-urls) ⭐⭐\n- [How to automatically choose a free port in ASP.NET Core 3.0](https://andrewlock.net/how-to-automatically-choose-a-free-port-in-asp-net-core/)\n- [Waiting for your ASP.NET Core app to be ready from an IHostedService in .NET 6](https://andrewlock.net/finding-the-urls-of-an-aspnetcore-app-from-a-hosted-service-in-dotnet-6/)\n- [How to get the full public URL of ASP.NET Core](https://swimburger.net/blog/dotnet/how-to-get-the-full-public-url-of-aspdotnet-core)\n- [How to generate absolute URLs in ASP.NET Core](https://swimburger.net/blog/dotnet/how-to-generate-absolute-urls-in-aspdotnet-core)\n- [.NET Watch Launch Setting Profile For ASP.NET Core](https://khalidabuhakmeh.com/dotnet-watch-launchsetting-for-aspnet-core) ⭐\n- [Developing ASP.NET Core apps in Docker - Live Recompilation](https://tymisko.hashnode.dev/developing-aspnet-core-apps-in-docker-live-recompilation) ⭐\n- [Using .NET Core launchSettings.json to run/debug apps in Rider](https://blog.jetbrains.com/dotnet/2018/11/08/using-net-core-launchsettings-json-rundebug-apps-rider/)\n- [`dotnet run`](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-run#workload-manifest-downloads)\n- [Development and launchSettings.json](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/environments?development-and-launchsettingsjson) ⭐\n- [Using .NET Core launchSettings.json to run/debug apps in Rider](https://blog.jetbrains.com/dotnet/2018/11/08/using-net-core-launchsettings-json-rundebug-apps-rider/) ⭐\n- [Add support for specifying `launch profile` to `dotnet watch` run](https://github.com/dotnet/sdk/pull/25832)\n- [Problem with `dotnet watch` and `launchSettings.json`](https://github.com/dotnet/aspnetcore/issues/46596)\n- [Introducing the .NET Hot Reload experience for editing code at runtime](https://devblogs.microsoft.com/dotnet/introducing-net-hot-reload/) ⭐\n- [.NET Hot Reload support for ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/test/hot-reload) ⭐\n- [Hot Reload for .NET 6 in Rider 2021.3](https://blog.jetbrains.com/dotnet/2021/10/25/hot-reload-for-net-6-in-rider-2021-3/)\n- [Develop ASP.NET Core apps using a file watcher](https://learn.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch) ⭐\n- [Use multiple environments in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-7.0)"
  },
  {
    "path": "docs/mapping.md",
    "content": "# Mapping\n\n## 📝 Articles\n\n- [Let's talk about mapping objects in c-sharp (C#)](https://josef.codes/lets-talk-about-mapping-objects-in-c-sharp/)\n- [Implement Automapper in ASP.NET Core 3.1 – Ultimate Guide](https://procodeguide.com/programming/automapper-in-asp-net-core/)\n- [On Automappers](https://enterprisecraftsmanship.com/posts/on-automappers/)\n- [Mapster Global Configuration with Dependency Injection](https://stackoverflow.com/questions/61172885/mapster-global-configuration-with-dependency-injection)\n- [Dissecting AutoMapper Programming Horror](https://www.jimmybogard.com/dissecting-automapper-progamming-horror/)\n- [Why not AutoMapper? What should I use?](https://lukeparker.dev/blog/why-not-automapper)\n\n## Videos\n- [Domain to Contract mapping with Automapper | ASP.NET Core 5 REST API Tutorial 20](https://www.youtube.com/watch?v=1Dz5Lfo6mqo)\n- [Mapster, the best .NET mapper that you are (probably) not using](https://www.youtube.com/watch?v=UIslFVEHkzA)\n- [The Best .NET Mapper to Use in 2023](https://www.youtube.com/watch?v=U8gSdQN2jWI)\n\n## 📦 Libraries\n- [Mapster](https://github.com/MapsterMapper/Mapster) - A fast, fun and stimulating object to object Mapper.\n- [mrtaikandi/MapTo](https://github.com/mrtaikandi/MapTo) - A convention based object to object mapper using Roslyn source generator\n- [riok/mapperly](https://github.com/riok/mapperly) - A .NET source generator for generating object mappings. No runtime reflection. Inspired by MapStruct."
  },
  {
    "path": "docs/maui.md",
    "content": "# MAUI\n\n## Resources\n- [dotnet-presentations/dotnet-maui-workshop](https://github.com/dotnet-presentations/dotnet-maui-workshop) - A full day workshop (.NET MAUI Workshop in a Box) on how to build apps with .NET MAUI for iOS, Android, macOS, and Windows\n- [jsuarezruiz/awesome-dotnet-maui](https://github.com/jsuarezruiz/awesome-dotnet-maui) - A curated list of awesome .NET MAUI libraries and resources.\n- [New Resources to Get Started with .NET MAUI](https://devblogs.microsoft.com/dotnet/learn-dotnet-maui/)\n## 📝 Articles\n\n## 📺 Videos\n- [A Journey to .NET MAUI](https://channel9.msdn.com/Shows/On-NET/A-Journey-to-NET-MAUI)\n- [.NET MAUI Step by Step Build](https://www.youtube.com/watch?v=LrZwd-f0M4I)"
  },
  {
    "path": "docs/mediator.md",
    "content": "\n# Mediator\n\n## 📕 Articles\n- [Using MediatR in ASPNET Core Apps](https://ardalis.com/using-mediatr-in-aspnet-core-apps) \n- [Mediator Pattern Implemented In .NET/C#](https://dasith.me/2019/01/07/mediator-pattern-implemented-in-net/)\n- [No, MediatR Didn't Run Over My Dog](https://scotthannen.org/blog/2020/06/20/mediatr-didnt-run-over-dog.html)\n- [How to use MediatR Pipeline Behaviours](https://garywoodfine.com/how-to-use-mediatr-pipeline-behaviours/)\n- [Mediator Design Pattern in ASP.NET Core](https://www.ezzylearning.net/tutorial/mediator-design-pattern-in-asp-net-core)\n- [Response Caching with MediatR in ASP.NET Core – Powerful Pipeline Behavior](https://codewithmukesh.com/blog/caching-with-mediatr-in-aspnet-core/)\n- [MediatR Pipeline Behaviour in ASP.NET Core – Logging and Validation](https://codewithmukesh.com/blog/mediatr-pipeline-behaviour/)\n- [CQRS with MediatR in ASP.NET Core 3.1 – Ultimate Guide](https://codewithmukesh.com/blog/cqrs-in-aspnet-core-3-1/)\n- [Caching behavior with MediatR](https://fredrikronnehag.netlify.app/caching-mediatr/)\n- [Cross-Cutting Concerns with MediatR Pipeline Behaviors](https://anderly.com/2019/12/12/cross-cutting-concerns-with-mediatr-pipeline-behaviors/)\n- [MediatR: how to use Decorators to add retry policies](https://www.davidguida.net/mediatr-how-to-use-decorators-to-add-retry-policies/)\n- [MediatR Behaviors](https://codeopinion.com/mediatr-behaviors/)\n- [Tackling cross-cutting concerns with a mediator pipeline](https://lostechies.com/jimmybogard/2014/09/09/tackling-cross-cutting-concerns-with-a-mediator-pipeline/)\n- [MediatR Pipeline Examples](https://lostechies.com/jimmybogard/2016/10/13/mediatr-pipeline-examples/)\n- [Applying cross-cutting concerns in ASP.NET Core with MediatR using behaviors](https://lurumad.github.io/cross-cutting-concerns-in-asp-net-core-with-meaditr)\n- [Mediator Behaviors](https://github.com/jbogard/MediatR/wiki/Behaviors)\n- [MediatR Behaviors](https://codeopinion.com/mediatr-behaviors/)\n- [Dealing with Duplication in MediatR Handlers](https://lostechies.com/jimmybogard/2016/12/12/dealing-with-duplication-in-mediatr-handlers/)\n- [Why I don't use MediatR for CQRS](https://cezarypiatek.github.io/post/why-i-dont-use-mediatr-for-cqrs/)\n- [Simple Domain Events with EFCore and MediatR](https://cfrenzel.com/domain-events-efcore-mediatr/)\n- [How I Upgrade my Code-Style of MediatR Pipeline using .NET 6](https://levelup.gitconnected.com/how-i-upgrade-my-code-style-of-mediatr-pipeline-using-net-6-ed49aca61f47)\n- [You probably don't need MediatR](https://arialdomartini.github.io/mediatr)\n- [How to build a simple event pipeline](https://event-driven.io/en/how_to_build_simple_event_pipeline/)\n- [CQRS Validation Pipeline with MediatR and FluentValidation](https://code-maze.com/cqrs-mediatr-fluentvalidation/)\n## 📺 Videos\n- [Building a Mediator library in .NET from scratch](https://www.youtube.com/watch?v=4e83trumwcM)\n- [Write cleaner APIs in .NET 7 with MediatR](https://www.youtube.com/watch?v=euUg_IHo7-s)\n- [Using MediatR in .NET? Maybe replace it with this](https://www.youtube.com/watch?v=aaFLtcf8cO4)\n## 🚀 Samples\n- [ardalis/MediatRAspNetCore](https://github.com/ardalis/MediatRAspNetCore) \n- [SorenZ/Alamut.MediatR.Caching](https://github.com/SorenZ/Alamut.MediatR.Caching)\n## Libraries\n- [dasiths/SimpleMediator](https://github.com/dasiths/SimpleMediator) - A .NET/C# implementation of the mediator pattern with support for queries, commands and events\n- [mayuanyang/Mediator.Net](https://github.com/mayuanyang/Mediator.Net) - A simple mediator for .Net for sending command, publishing event and request response with pipelines supported\n- [simplesoft-pt/Mediator](https://github.com/simplesoft-pt/Mediator) - Small .NET library that helps with the implementation of mediator pattern for commands, events and queries\n- [gautema/CQRSlite](https://github.com/gautema/CQRSlite) - A lightweight framework to help creating CQRS and Eventsourcing applications in C#\n- [martinothamar/Mediator](https://github.com/martinothamar/Mediator) - A high performance implementation of Mediator pattern in .NET using source generators.\n- [Utils.Grpc.Mediator](https://github.com/gbauso/grpc_microservices/tree/master/lib/Utils.Grpc.Mediator)\n- [revoframework/Revo](https://github.com/revoframework/Revo) - Event Sourcing, CQRS and DDD framework for C#/.NET Core.\n- [oskardudycz/EventSourcing.NetCore/event-pipelines](https://github.com/oskardudycz/EventSourcing.NetCore/tree/samples/event-pipelines/Sample/EventPipelines)\n- [litenova/LiteBus](https://github.com/litenova/LiteBus) - An easy-to-use and ambitious in-process mediator to implement CQS with minimum reflection usage and streamable query support.\n- [ITIXO/MediatR.Extensions.AttributedBehaviors](https://github.com/ITIXO/MediatR.Extensions.AttributedBehaviors) - MediatR extension adding ability to specify pipeline behaviors using attributes on command class\n- [ivanpaulovich/FluentMediator](https://github.com/ivanpaulovich/FluentMediator) - .NET Core Web API using Mediator and Domain Driven Design\n- [ppXD/NMediator](https://github.com/ppXD/NMediator)\n- [Cysharp/MessagePipe](https://github.com/Cysharp/MessagePipe) - High performance in-memory/distributed messaging pipeline for .NET and Unity."
  },
  {
    "path": "docs/middleware.md",
    "content": "\t\n# Middleware\n\n## 📝 Articles \n- [ASP.NET Core Middleware](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/) ⭐\n- [Write custom ASP.NET Core middleware](learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/write) ⭐\n- [Middleware in Minimal API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/middleware) ⭐\n- [DEEP DIVE: HOW IS THE ASP.NET CORE MIDDLEWARE PIPELINE BUILT?](https://www.stevejgordon.co.uk/how-is-the-asp-net-core-middleware-pipeline-built)\n- [Understanding your middleware pipeline with the Middleware Analysis package](https://andrewlock.net/understanding-your-middleware-pipeline-with-the-middleware-analysis-package/)\n- [Exploring IStartupFilter in ASP.NET Core](https://andrewlock.net/exploring-istartupfilter-in-asp-net-core/)\n- [Creating an endpoint from multiple middleware in ASP.NET Core 3.x](https://andrewlock.net/creating-an-endpoint-from-multiple-middleware-in-aspnetcore-3/)\n- [Converting a terminal middleware to endpoint routing in ASP.NET Core 3.0](https://andrewlock.net/converting-a-terminal-middleware-to-endpoint-routing-in-aspnetcore-3/)\n- [Middlewares](https://girishgodage.in/blog/customize-middleware)\n- [Customizing ASP.​NET Core Part 06: Middlewares](https://asp.net-hacker.rocks/2018/10/08/customizing-aspnetcore-06-middlewares.html)\n- [Styles of Writing ASP.NET Core Middleware](http://stevetalkscode.co.uk/middleware-styles)\n- [Middleware vs Filters ASP. NET Core](https://www.edgesidesolutions.com/middleware-vs-filters-asp-net-core/)\n- [Exploring Middleware as MVC Filters in ASP.NET Core 1.1](https://andrewlock.net/exploring-middleware-as-mvc-filters-in-asp-net-core-1-1/)\n- [Re-reading ASP.Net Core request bodies with EnableBuffering()](https://devblogs.microsoft.com/aspnet/re-reading-asp-net-core-request-bodies-with-enablebuffering/)\n- [Using Middleware in .NET 5.0 to Log Requests and Responses](https://exceptionnotfound.net/using-middleware-to-log-requests-and-responses-in-asp-net-core/)\n- [Building a middleware pipeline with WebApplication](https://andrewlock.net/exploring-dotnet-6-part-4-building-a-middleware-pipeline-with-webapplication/)\n- [Service lifetimes in Middleware](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection#service-lifetimes)\n- [Factory-based middleware activation in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/extensibility)\n- [Middleware activation with a third-party container in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/extensibility-third-party-container)\n- [Middleware in ASP.NET 6 - Intro and Basics](https://exceptionnotfound.net/middleware-in-asp-dotnet-6-intro-and-basics/)\n- [Understanding your middleware pipeline with the Middleware Analysis package](https://andrewlock.net/understanding-your-middleware-pipeline-with-the-middleware-analysis-package/)\n- [Under the hood of the Middleware Analysis package](https://andrewlock.net/under-the-hood-of-the-middleware-analysis-package/)\n- [Understanding your middleware pipeline in .NET 6 with the Middleware Analysis package](https://andrewlock.net/understanding-your-middleware-pipeline-in-dotnet-6-with-the-middleware-analysis-package/)\n\n## 📺 Videos\n\n- [ASP.NET Monsters #91: Middleware vs. Filters](https://channel9.msdn.com/Series/aspnetmonsters/ASPNET-Monsters-91-Middleware-vs-Filters)\n"
  },
  {
    "path": "docs/migration.md",
    "content": "# Migration\n\n## 📕 Articles\n- [EF7 EnsureCreated vs. Migrate Methods](https://thedatafarm.com/data-access/ef7-ensurecreated-vs-migrate-methods/)\n- [Create Database From Model Using Entity Framework Core And ASP.NET Core](http://www.binaryintellect.net/articles/87446533-54b3-41ad-bea9-994091686a55.aspx)\n- [DatabaseFacade.EnsureCreated Method](https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.infrastructure.databasefacade.ensurecreated)\n- [Using Database Project and DbUp for database management](http://www.kamilgrzybek.com/database/using-database-project-and-dbup-for-database-management/)\n- [Database change management](http://www.kamilgrzybek.com/database/database-change-management/)\n- [Converting a Visual Studio database project to use DbUp migrations](https://dasith.me/2020/06/08/database-project-conversion-to-migrations/)\n- [Using a Separate Migrations Project](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/projects)\n- [Migrations Overview](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations)\n- [Applying Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/applying)\n- [Moving EF Core migrations to their own assembly](https://compiledexperience.com/blog/posts/ef-core-migrations)\n- [EF CORE MIGRATIONS WITH DBCONTEXT IN SEPARATE LIBRARY](https://thecodeblogger.com/2019/03/18/ef-cire-migrations-with-dbcontext-in-separate-library/)\n- [Handling Entity Framework Core database migrations in production – Part 1](https://www.thereformedprogrammer.net/handling-entity-framework-core-database-migrations-in-production-part-1/)\n- [Handling Entity Framework Core database migrations in production – Part 2](https://www.thereformedprogrammer.net/handling-entity-framework-core-database-migrations-in-production-part-2/)\n- [Adding Entity Framework Core 5 migrations to .NET 5 project](https://www.michalbialecki.com/2020/07/20/adding-entity-framework-core-5-migrations-to-net-5-project/)\n- [Merging migrations in Entity Framework Core 5](https://www.michalbialecki.com/2020/07/24/merging-migrations-in-entity-framework-core-5/)\n- [Handling EF Core migrations in a team](https://jkdev.me/handling-ef-core-migrations/)\n- [How and where to call Database.EnsureCreated and Database.Migrate?](https://stackoverflow.com/questions/38238043/how-and-where-to-call-database-ensurecreated-and-database-migrate)\n- [Unable to retrieve project metadata. Ensure it's an MSBuild-based .NET Core project. (Migrations)](https://stackoverflow.com/questions/54912430/unable-to-retrieve-project-metadata-ensure-its-an-msbuild-based-net-core-proj)\n- [Know Everything About .NET EF Core Migrations](https://thecodeblogger.com/2021/07/24/know-everything-about-net-ef-core-migrations/)\n- [Supporting EF Core migrations with WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-5-supporting-ef-core-tools-with-webapplicationbuilder/)\n- [EF Core 6.0: Introducing Migration Bundles](https://jaliyaudagedara.blogspot.com/2021/08/ef-core-60-introducing-migration-bundles.html?spref=tw)\n- [Working with DevOps friendly EF Core Migration Bundles](https://dotnetthoughts.net/working-with-ef-core-migration-bundles/)\n- [Dapper Migrations with FluentMigrator and ASP.NET Core](https://code-maze.com/dapper-migrations-fluentmigrator-aspnetcore/)\n- [Database Migrations with DbUp](https://elanderson.net/2020/08/database-migrations-with-dbup/)\n- [Database Creation with DbUp](https://elanderson.net/2020/10/database-creation-with-dbup/)\n- [Code-based Database Migrations with DbUp](https://elanderson.net/2020/08/code-based-database-migrations-with-dbup/)\n- [Always Run Migrations with DbUp](https://elanderson.net/2020/08/always-run-migrations-with-dbup/)\n- [Logging Script Output with DbUp](https://elanderson.net/2020/08/logging-script-output-with-dbup/)\n- [Migrations in Transactions with DbUp](https://elanderson.net/2020/09/migrations-in-transactions-with-dbup/)\n- [Applying Migrations](https://learn.microsoft.com/en-us/ef/core/managing-schemas/migrations/applying?tabs=dotnet-core-cli)\n## 📺 Videos\n- [Getting Started With DbUp And Setting Up Azure DEVOPS Pipeline | Deploy Changes to SQL Server](https://www.youtube.com/watch?v=Jm4C-WzAdls)\n- [Using fluentmigrator for automated database deployment (in ASP.NET Core)](https://www.youtube.com/watch?v=cdYR5aIJr80)\n- [Data Migration (Insert or Update Lookup/Configuration data With fluentmigrator)](https://www.youtube.com/watch?v=aE34bmysvu8)\n- [Getting started with DbUp - Step By Step](https://www.youtube.com/watch?v=NSDbkNL-upU)\n- [Dev Streams Site - Adding FluentMigrator to ASP.NET Core - Ep 169](https://www.youtube.com/watch?v=IX5ehpjpH3g)\n- [Learn Dapper in an Hour! (.NET Core 5)](https://www.youtube.com/watch?v=IVsN0WlufWc)\n\n## Samples\n- [bricelam/Sample-SplitMigrations](https://github.com/bricelam/Sample-SplitMigrations) - Use EFCore Migrations with multi-assembly project\n- [dotnet/EntityFramework.Docs/ThreeProjectMigrations](https://github.com/dotnet/EntityFramework.Docs/tree/main/samples/core/Schemas/ThreeProjectMigrations)\n\n## Libraries\n- [fluentmigrator/fluentmigrator](https://github.com/fluentmigrator/fluentmigrator) - Fluent migrations framework for .NET\n- [DbUp/DbUp](https://github.com/DbUp/DbUp) - DbUp is a .NET library that helps you to deploy changes to SQL Server databases. It tracks which SQL scripts have been run already, and runs the change scripts that are needed to get your database up to date\n- [erikbra/grate](https://github.com/erikbra/grate) - grate - the SQL scripts migration runner\n- [lecaillon/Evolve](https://github.com/lecaillon/Evolve) - Database migration tool for .NET and .NET Core projects. Inspired by Flyway."
  },
  {
    "path": "docs/minimal-api.md",
    "content": "# Minimal Api\n\n## Resources\n- [Minimal APIs](https://minimal-apis.github.io/)\n- [Minimal APIs at a glance](https://gist.github.com/davidfowl/ff1addd02d239d2d26f4648a06158727)\n\n## 📕 Articles\n- [Minimal APIs overview](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis) ⭐\n- [OpenAPI support in minimal APIs - ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi)\n- [Parameter Binding in Minimal API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/parameter-binding) ⭐\n- [How to create responses in Minimal API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/responses) ⭐\n- [OpenAPI support in minimal API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi) ⭐\n- [Code samples migrated to the new minimal hosting model in ASP.NET Core 6.0](https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60-samples)\n- [Low Ceremony, High Value: A Tour of Minimal APIs in .NET 6](https://www.daveabrock.com/2021/06/09/low-ceremony-high-value-a-tour-of-minimal-apis-in-net-6/)\n- [Minimal APIs in ASP.NET Core 6.0](https://dotnetthoughts.net/minimal-api-in-aspnet-core-mvc6/)\n- [Minimal APIs in ASP.NET Core 6.0 - Part2](https://dotnetthoughts.net/minimal-api-in-aspnet-core-mvc6-part2/)\n- [.NET 6 Preview 4: Introducing Minimal APIs in ASP.NET Core](https://jaliyaudagedara.blogspot.com/2021/06/net-6-preview-4-introducing-minimal.html)\n- [Open API support for ASP.NET Core Minimal API](https://dotnetthoughts.net/openapi-support-for-aspnetcore-minimal-webapi/)\n- [Building Minimal APIs In .NET 6](https://dotnetcoretutorials.com/2021/07/16/building-minimal-apis-in-net-6/)\n- [Building a URL Shortener Web App using Minimal APIs in .NET 6](https://medium.com/geekculture/building-a-url-shortener-web-app-using-minimal-apis-in-net-6-99334ac6e98b)\n- [ASP.NET Core 6: Working with minimal APIs](https://anthonygiretti.com/2021/08/12/asp-net-core-6-working-with-minimal-apis/)\n- [.NET 6 Preview 6: Introducing OpenAPI Support in Minimal APIs in ASP.NET Core](https://jaliyaudagedara.blogspot.com/2021/07/net-6-preview-6-introducing-openapi.html)\n- [ASP.NET Core in .NET 6 - Introducing minimal APIs](https://asp.net-hacker.rocks/2021/08/17/aspnetcore6-minimal-apis.html)\n- [ASP.NET Core 6: Minimal APIs, two reasons why I can’t do without it so far](https://anthonygiretti.com/2021/08/27/asp-net-core-6-minimal-apis-two-reasons-why-i-cant-do-without-it-so-far/)\n- [From MVC to Minimal APIs with ASP.NET Core 6.0](https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/) ⭐⭐ \n- [Minimal API validation with ASP.NET 7.0 Endpoint Filters](https://benfoster.io/blog/minimal-api-validation-endpoint-filters/) ⭐⭐ \n- [Custom Model Binding in ASP.NET 6.0 Minimal APIs](https://benfoster.io/blog/minimal-apis-custom-model-binding-aspnet-6/) ⭐⭐\n- [Getting a complex type as a simple type from the query string in a ASP.NET Core API controller](https://blog.codingmilitia.com/2022/01/03/getting-complex-type-as-simple-type-query-string-aspnet-core-api-controller/)\n- [A .NET 6 Minimal API Todo example Playground](https://www.hanselman.com/blog/a-net-6-minimal-api-todo-example-playground)\n- [An opinionated look at Minimal API in .NET 6](https://dev.to/nikiforovall/an-opinionated-look-at-minimal-api-in-net-6-33pd)\n- [ASP.NET Core 6: Streaming JSON responses with IAsyncEnumerable, example with Angular](https://anthonygiretti.com/2021/09/22/asp-net-core-6-streaming-json-responses-with-iasyncenumerable-example-with-angular/)\n- [Exploring a minimal Web API with ASP.NET Core 6](https://www.hanselman.com/blog/exploring-a-minimal-web-api-with-aspnet-core-6)\n- [ASP.NET Core Minimal API Swagger tags](https://blog.burgyn.online/2021/10/13/asp-net-minimal-api-swagger-tags)\n- [Using the .NET JSON Source Generator with ASP.NET Core Minimal APIs](https://blog.martincostello.com/using-json-source-generators-with-aspnet-core-minimal-apis/)\n- [Working with model validation in Minimal APIs](https://dotnetthoughts.net/working-model-validation-in-minimal-api/)\n- [An opinionated look at Minimal API in .NET 6](https://nikiforovall.github.io/dotnet/aspnetcore/2021/09/10/opinionated-minimal-api.html)\n- [From MVC to Minimal APIs with ASP.NET Core 6.0](https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/)\n- [Maybe it's time to rethink our project structure with .NET 6](https://timdeschryver.dev/blog/maybe-its-time-to-rethink-our-project-structure-with-dot-net-6)\n- [The simplicity of ASP.NET Endpoints](https://timdeschryver.dev/blog/the-simplicity-of-net-endpoints)\n- [Filters in Minimal API apps](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/min-api-filters)\n- [Minimal API Route Handler Filters](https://khalidabuhakmeh.com/minimal-api-route-handler-filters)\n- [Minimal API Validation with FluentValidation](https://khalidabuhakmeh.com/minimal-api-validation-with-fluentvalidation)\n- [.NET 7 Preview 5: Using AsParameters Attribute for Parameter Binding in Minimal API](https://jaliyaudagedara.blogspot.com/2022/07/net-7-preview-5-using-asparameters.html)\n- [.Net 7 (Preview 4) - Minimal API Filters](https://dev.to/moe23/net-7-preview-4-minimal-api-filters-1812)\n- [Adding Clarity To .NET Minimal Hosting APIs](https://khalidabuhakmeh.com/adding-clarity-to-dotnet-minimal-hosting)\n- [Unit and integration tests in Minimal API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/test-min-api)\n- [API Versioning with ASP.NET Core 6.0 Minimal APIs](https://dotnetthoughts.net/aspnetcore-api-versioning-with-net-6-minimal-apis/)\n- [ASP.NET Core Versioning: Minimal APIs](https://im5tu.io/article/2022/10/asp.net-core-versioning-minimal-apis/)\n- [Adding Experimental HTTP Methods To ASP.NET Core](https://khalidabuhakmeh.com/adding-experimental-http-methods-to-aspnet-core)\n- [What is AddEndpointsApiExplorer in ASP.NET Core 6](https://blog.devgenius.io/what-is-addendpointsapiexplorer-in-asp-net-core-6-64ba52d15979) ⭐\n- [What is AddEndpointsApiExplorer in ASP.NET Core 6 - StackOverflow](https://stackoverflow.com/a/71933535/581476) ⭐\n- [A first look behind the scenes of minimal API endpoints - Behind the scenes of minimal APIs - Part 1](https://andrewlock.net/behind-the-scenes-of-minimal-apis-1-a-first-look-behind-the-scenes-of-minimal-api-endpoints/) ⭐⭐\n- [Extracting metadata from a minimal API handler - Behind the scenes of minimal APIs - Part 2](https://andrewlock.net/behind-the-scenes-of-minimal-apis-2-extracting-metadata-from-a-minimal-api-handler/) ⭐⭐\n- [Exploring the model-binding logic of minimal APIs - Behind the scenes of minimal APIs - Part 3](https://andrewlock.net/behind-the-scenes-of-minimal-apis-3-exploring-the-model-binding-logic-of-minimal-apis/) ⭐⭐\n- [Generating argument expressions for minimal APIs - Behind the scenes of minimal APIs - Part 4](https://andrewlock.net/behind-the-scenes-of-minimal-apis-4-generating-argument-expressions-for-minimal-apis/) ⭐⭐\n- [Generating argument expressions for minimal APIs (continued) - Behind the scenes of minimal APIs - Part 5](https://andrewlock.net/behind-the-scenes-of-minimal-apis-5-generating-argument-expressions-for-minimal-apis-continuted/) ⭐⭐\n- [Generating the response writing expression for RequestDelegate\nBehind the scenes of minimal APIs - Part 6](https://andrewlock.net/behind-the-scenes-of-minimal-apis-6-generating-the-response-writing-expression/) ⭐⭐\n- [Building the final RequestDelegate Behind the scenes of minimal APIs - Part 7](https://andrewlock.net/behind-the-scenes-of-minimal-apis-7-building-the-final-requestdelegate/) ⭐⭐\n- [ASP.NET Core7: Use endpoint groups to manage minimal APIs versioning](https://anthonygiretti.com/2023/03/16/asp-net-core7-use-endpoint-groups-to-manage-minimal-apis-versioning/)\n- [What’s New in .NET 7 for Minimal APIs?](https://www.telerik.com/blogs/whats-new-dotnet-7-minimal-apis)\n- [Problem Details responses everywhere with ASP.NET Core and .NET 7](https://www.strathweb.com/2022/08/problem-details-responses-everywhere-with-asp-net-core-and-net-7/)\n- [Handle errors in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/error-handling)\n- [How to handle errors in Minimal API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/handle-errrors/)\n- [.NET 7 Preview 5: Using [AsParameters] Attribute for Parameter Binding in Minimal APIs](https://jaliyaudagedara.blogspot.com/2022/07/net-7-preview-5-using-asparameters.html) ⭐\n- [Using Query String Parameters with Minimal APIs](https://code-maze.com/aspnetcore-query-string-parameters-minimal-apis/)\n- [ASP.NET Core Route Tooling Enhancements in .NET 8](https://devblogs.microsoft.com/dotnet/aspnet-core-route-tooling-dotnet-8/)\n- [Middleware in Minimal API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/middleware) ⭐\n- [Unit Testing ASP.NET Core Minimal APIs](https://dotnetthoughts.net/unittest-aspnetcore-minimal-apis/)\n- [Minimal APIs - Typed Results and Open API Specification](https://www.dandoescode.com/blog/minimal-apis-typed-results-and-open-api)\n- [Unlocking the Power of TypedResults in Endpoints: A Consistent Approach to Strongly Typed APIs in .NET](https://nikiforovall.github.io/dotnet/2024/08/17/result-endpoints.html)\n\n## 📺 Videos\n- [ASP.NET Community Standup - Minimal APIs](https://www.youtube.com/watch?v=enAskgcF0c0)\n- [Explore Minimal APIs with Maria Naggaga | Web Wednesday](https://www.youtube.com/watch?v=mia4ds3JhKs)\n- [Getting started with Minimal APIs in .Net 6](https://www.youtube.com/watch?v=Ny2q79eD6OI)\n- [Using smart modules in .NET 6 minimal API](https://www.youtube.com/watch?v=FeNe8Y-TzNc)\n- [Creating a .NET 6 minimal API from scratch](https://www.youtube.com/watch?v=U06SgUkIdEU)\n- [Getting started with NET 6 minimal AP](https://www.youtube.com/watch?v=2MYEU8ljLhg)\n- [Creating a .NET 6 minimal API from scratch (Part 2)](https://www.youtube.com/watch?v=58dc7u-YVIw)\n- [Creating a .NET 6 minimal API from scratch (Part 3)](https://www.youtube.com/watch?v=YSr8MW9b7yI)\n- [Creating a .NET 6 minimal API from scratch (Part 4)](https://www.youtube.com/watch?v=rUn7cSmCLmk)\n- [All you need to know about the NEW Asp.Net Core startup in .NET 6](https://www.youtube.com/watch?v=yJH60VFw1MI)\n- [Coding Shorts: Structuring Minimal APIs - A First Draft](https://www.youtube.com/watch?v=Q_zXFeP-QNI)\n- [Coding Shorts: Changes to Coming to Startup in .NET 6](https://www.youtube.com/watch?v=SGcpIy1Si54)\n- [Secure minimal APIs with .NET 6 and Microsoft Identity](https://www.youtube.com/watch?v=ucj8hajOorg)\n- [Extending .NET Minimal APIs with Swagger, Authentication & Validation](https://www.youtube.com/watch?v=XKN0084p7WQ)\n- [ASP.NET Community Standup - Minimal API Deep Dive](https://www.youtube.com/watch?v=NtFM-sK6xAo)\n- [A new way to build CLEAN and FAST APIs in .NET](https://www.youtube.com/watch?v=z32_7KgCr6c)\n- [.NET 6 Minimal API Full Build](https://www.youtube.com/watch?v=5YB49OEmbbE)\n- [Write cleaner APIs in .NET 7 with MediatR](https://www.youtube.com/watch?v=euUg_IHo7-s)\n- [Magically creating .NET CRUD API's in minutes!](https://www.youtube.com/watch?v=TI5CeNq3-o8)\n- [Versioning ASP.NET Core MVC & Minimal APIs](https://www.youtube.com/watch?v=YRJGKyzjFlY)\n- [.NET 7 minimal API from scratch | FULL COURSE | clean architecture, repository pattern, CQRS MediatR](https://www.youtube.com/watch?v=RRrsFE6OXAQ)\n\n## 🚀 Samples\n- [dotnet/AspNetCore.Docs.Samples/minimal-apis/samples](https://github.com/dotnet/AspNetCore.Docs.Samples/tree/main/fundamentals/minimal-apis/samples)\n- [halter73/MinimalWeather](https://github.com/halter73/MinimalWeather)\n- [425show/MinimalWeather](https://github.com/425show/MinimalWeather)\n- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6#minimal-hosting-default-configuration)\n- [davidfowl/CommunityStandUpMinimalAPI](https://github.com/davidfowl/CommunityStandUpMinimalAPI)\n- [DamianEdwards/MinimalApiPlayground](https://github.com/DamianEdwards/MinimalApiPlayground)\n- [oskardudycz/EventSourcing.NetCore/tree/main/Sample/Warehouse](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/Warehouse)\n- [bradygaster/minimalApiWithSwagger](https://github.com/bradygaster/minimalApiWithSwagger)\n- [DamianEdwards/MinimalApiPlayground](https://github.com/DamianEdwards/MinimalApiPlayground)\n- [jaliyaudagedara/minimal-api](https://github.com/jaliyaudagedara/minimal-api)\n- [dotnet-labs/Minimal-URL-Shortener](https://github.com/dotnet-labs/Minimal-URL-Shortener)\n- [ajithramawickrama/dotnet6minimalapi](https://github.com/ajithramawickrama/dotnet6minimalapi)\n- [martincostello/dotnet-minimal-api-integration-testing](https://github.com/martincostello/dotnet-minimal-api-integration-testing)\n- [AnthonyGiretti/aspnetcore-minimal-api](https://github.com/AnthonyGiretti/aspnetcore-minimal-api)\n- [Non-Zero-Days/net-6-minimal-api](https://github.com/Non-Zero-Days/net-6-minimal-api)\n- [Minimal-APIs/minimal-apis.github.io](https://github.com/Minimal-APIs/minimal-apis.github.io)\n- [felipeoriani/MinimalBlogApi](https://github.com/felipeoriani/MinimalBlogApi)\n- [bradygaster/TodoApp](https://github.com/bradygaster/TodoApp)\n- [anuraj/MinimalApi](https://github.com/anuraj/MinimalApi)\n- [DShergilashvili/FutureService](https://github.com/DShergilashvili/FutureService) \n- [thangchung/minimal-apis-csharp10](https://github.com/thangchung/minimal-apis-csharp10)\n- [martincostello/MinimalApisWithJsonSourceGenerator](https://github.com/martincostello/MinimalApisWithJsonSourceGenerator)\n- [thangchung/todo-dotnet6](https://github.com/thangchung/todo-dotnet6)\n- [andreatosato/Photobook](https://github.com/andreatosato/Photobook)\n- [oskardudycz/EventSourcing.NetCore/Warehouse.MinimalAPI](https://github.com/oskardudycz/EventSourcing.NetCore/tree/cqrs_with_minimal_apis/Sample/Warehouse.MinimalAPI)\n- [maartenba-demo/grocerylistapi](https://github.com/maartenba-demo/grocerylistapi)\n- [isaacOjeda/MinimalApiArchitecture](https://github.com/isaacOjeda/MinimalApiArchitecture)\n- [NikiforovAll/minimal-api-example](https://github.com/NikiforovAll/minimal-api-example)\n- [rh8512/csharp-minimalapi](https://github.com/rh8512/csharp-minimalapi)\n- [DamianEdwards/MinimalApis.Extensions/samples](https://github.com/DamianEdwards/MinimalApis.Extensions/tree/main/samples)\n- [Elfocrash/clean-minimal-api](https://github.com/Elfocrash/clean-minimal-api)\n- [khalidabuhakmeh/GroupsAndFilters](https://github.com/khalidabuhakmeh/GroupsAndFilters)\n- [dotnet/aspnet-api-versioning/examples](https://github.com/dotnet/aspnet-api-versioning/tree/main/examples)\n- [davidfowl/TodoApi](https://github.com/davidfowl/TodoApi)\n\n## Libraries\n- [khalidabuhakmeh/Branchy](https://github.com/khalidabuhakmeh/Branchy) - Nested Route Registration for ASP.NET Core Minimal APIs\n- [DamianEdwards/MinimalValidation](https://github.com/DamianEdwards/MinimalValidation) - A minimal validation library for .NET built atop the existing features in `System.ComponentModel.DataAnnotations` namespace\n- [DamianEdwards/MinimalApis.Extensions](https://github.com/DamianEdwards/MinimalApis.Extensions) - A set of extensions and helpers for working with ASP.NET Core Minimal APIs.\n- [danpdc/SmartModules](https://github.com/danpdc/SmartModules)\n- [marcominerva/MinimalHelpers.Registration](https://github.com/marcominerva/MinimalHelpers.Registration) - A lightweight library to automatically register all the Route Endpoints of a Minimal API project.\n- [csharpfritz/InstantAPIs](https://github.com/csharpfritz/InstantAPIs) - A library that generates Minimal API endpoints for an Entity Framework context.\n- [dj-nitehawk/FastEndpoints](https://github.com/dj-nitehawk/FastEndpoints) - A light-weight REST Api framework for ASP.Net 6 that implements REPR (Request-Endpoint-Response) Pattern\n- [DeeJayTC/net-dynamic-api](https://github.com/DeeJayTC/net-dynamic-api) - A library that turns your model into a fully working API, define your model as markdown, json or c#.\n- [NyronW/MinimalEndpoints](https://github.com/NyronW/MinimalEndpoints) - A light weight abstraction over ASP.NET minimal API\n- [michelcedric/StructuredMinimalApi](https://github.com/michelcedric/StructuredMinimalApi) - The goal of this project it's to show how to use MinimalApi.Endpoint package. It demontrate how to configure API endpoints as individual classes based on minimal Api (.Net 6)\n- [davidfowl/uController](https://github.com/davidfowl/uController) - A source generator for minimal APIs\n- [yavorfingarov/Reprise](https://github.com/yavorfingarov/Reprise) - A micro-framework that brings the REPR pattern into ASP.NET Core Minimal APIs."
  },
  {
    "path": "docs/ml-net.md",
    "content": "# ML.Net\n\n## 📘 Resources\n- [microsoft/ML-For-Beginners](https://github.com/microsoft/ML-For-Beginners) - 12 weeks, 24 lessons, classic Machine Learning for all"
  },
  {
    "path": "docs/model-binding.md",
    "content": "# Model Binding\n\n## Videos\n- [Getting a complex type as a simple type from the query string in a ASP.NET Core API controller](https://www.youtube.com/watch?v=LYW6C6OXoBQ)"
  },
  {
    "path": "docs/msbuild.md",
    "content": "# MSBuild\n\n## 📕 Articles\n- [How MSBuild builds projects](https://docs.microsoft.com/en-us/visualstudio/msbuild/build-process-overview?view=vs-2019)\n- [.NET project SDKs](https://docs.microsoft.com/en-us/dotnet/core/project-sdk/overview)\n- [How to: Use MSBuild project SDKs](https://docs.microsoft.com/en-us/visualstudio/msbuild/how-to-use-project-sdk?view=vs-2019)"
  },
  {
    "path": "docs/multi-tenancy.md",
    "content": "# Multi Tenancy\n\n## Articles\n- [Multi-tenant Apps With EF Core and ASP.NET Core](https://blog.jetbrains.com/dotnet/2022/06/22/multi-tenant-apps-with-ef-core-and-asp-net-core/)"
  },
  {
    "path": "docs/nuget-pack.md",
    "content": "# Nuget & Pack\n\n## 📕 Articles\n\n- [Add a README to Your NuGet Package](https://devblogs.microsoft.com/nuget/add-a-readme-to-your-nuget-package/)\n- [NuGetizer as an alternative to .NET SDK Pack](https://www.cazzulino.com/nugetizer.html)\n- [The Microsoft author signing certificate will be updated as soon as November 1st, 2020](https://devblogs.microsoft.com/nuget/microsoft-author-signing-certificate-update/)\n- [NuGet restore failing on .NET 5 for Debian-based OSes (CA trust changed)](https://github.com/NuGet/Home/issues/10491#issuecomment-778841003)\n- [NuGet package restore broken on .NET 5+ with Removal of Trust of VeriSign C](https://github.com/dotnet/announcements/issues/180)\n- [.NET 5 NuGet Restore Failures on Linux distributions using NSS or ca-certificates](https://devblogs.microsoft.com/nuget/net-5-nuget-restore-failures-on-linux-distributions-using-nss-or-ca-certificates/)\n- [Notice: .NET 5 NuGet Restore Failures on Linux distributions using NSS or ca-certificates](https://github.com/NuGet/Announcements/issues/56\n- [The NuGet.org repository signing certificate will be updated as soon as March 15th, 2021](https://devblogs.microsoft.com/nuget/the-nuget-org-repository-signing-certificate-will-be-updated-as-soon-as-march-15th-2021/)\n- [Getting Started with Paket – Part 1](https://cockneycoder.wordpress.com/2017/08/07/getting-started-with-paket-part-1/)\n- [NuGet Central Package Management Comes To JetBrains Rider](https://blog.jetbrains.com/dotnet/2022/11/07/nuget-central-package-management-comes-to-jetbrains-rider/)\n- [Introducing Central Package Management](https://devblogs.microsoft.com/nuget/introducing-central-package-management/)\n- [Ensuring best practices for NuGet packages](https://www.meziantou.net/ensuring-best-practices-for-nuget-packages.htm)\n- [Package authoring best practices](https://learn.microsoft.com/en-us/nuget/create-packages/package-authoring-best-practices)\n- [Detecting breaking changes between two versions of a NuGet package at packaging time](https://www.meziantou.net/detecting-breaking-changes-between-two-versions-of-a-nuget-package-at-packaging.htm)\n- [Validate against a baseline package version](https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/baseline-version-validator?WT.mc_id=DT-MVP-5003978)\n- [NuGet pack and restore as MSBuild targets](https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets)\n- [.nuspec reference](https://learn.microsoft.com/en-us/nuget/reference/nuspec)\n- [Create a NuGet package using MSBuild](https://learn.microsoft.com/en-us/nuget/create-packages/creating-a-package-msbuild)\n- [Create a NuGet package with the dotnet CLI](https://learn.microsoft.com/en-us/nuget/create-packages/creating-a-package-dotnet-cli)\n- [Create a package using the nuget.exe CLI](https://learn.microsoft.com/en-us/nuget/create-packages/creating-a-package)\n- [Publishing a NuGet package using GitHub and GitHub Actions](https://www.meziantou.net/publishing-a-nuget-package-following-best-practices-using-github.htm)\n- [Publish NuGet packages with GitLab and Nexus Repository Manager](https://medium.com/@maxy_ermayank/publish-nuget-packages-with-gitlab-and-nexus-repository-manager-9bc1c5834db2)\n- [Install Sonatype Nexus using Docker Compose | Setup Nexus Repository Manager for Node.js Project](https://medium.com/@chiemelaumeh1/install-sonatype-nexus-3-using-docker-compose-setup-nexus-repository-manager-for-node-js-project-47a3c5efe1ee)\n- [Dotnet pack - include referenced projects](https://josef.codes/dotnet-pack-include-referenced-projects/)\n\n## Videos\n- [Distribute your csproj settings via NuGet - CodeWithStu](https://www.youtube.com/watch?v=V5wJeN3Ntqc)\n\n## Libraries\n- [fsprojects/Paket](https://github.com/fsprojects/Paket) - A dependency manager for .NET with support for NuGet packages and Git repositories.\n\n## Registries\n\n- [JFrog Nuget Registry](https://jfrog.com/help/r/jfrog-artifactory-documentation/nuget-repositories)\n- [NuGet Proxy Repositories](https://help.sonatype.com/en/nuget-proxy-repositories.html)"
  },
  {
    "path": "docs/odata.md",
    "content": "# OData\n\n## Articles\n- [OData (Open Data Protocol) in ASP.NET 6.0](https://dotnetthoughts.net/odata-in-aspnet-core6/)\n## 📺 Videos\n- [OData NxT 001: Project Proposal](https://www.youtube.com/watch?v=l024p4_3q2c)\n- [OData NxT 002: OData Queries Deep Dive](https://www.youtube.com/watch?v=6AvFqhkALmg)\n- [Enabling OData in ASP.NET 6.0](https://www.youtube.com/watch?v=w0Tj0VIUCtA)"
  },
  {
    "path": "docs/open-api.md",
    "content": "# Open API\n\n## Resources\n- [Swagger Github](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/master/README.md)\n\n## 📕 Articles\n- [OpenAPI support in minimal APIs - ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi) ⭐\n- [Understanding Swagger integration in .NET Core](https://www.code4it.dev/blog/swagger-integration) \n- [Get started with NSwag and ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-nswag) ⭐\n- [Get started with Swashbuckle and ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle) ⭐\n- [How to generate code from OpenAPI definition with Visual Studio 2019](https://www.code4it.dev/blog/openapi-code-generation-vs2019)\n- [ASP.NET Core web API documentation with Swagger / OpenAPI](https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger)\n- [Getting Started with Swashbuckle](https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle)\n- [Develop ASP.NET Core apps using OpenAPI tools](https://docs.microsoft.com/en-us/aspnet/core/web-api/microsoft.dotnet-openapi)\n- [Get started with NSwag and ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-nswag)\n- [Use web API conventions](https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/conventions)\n- [Generating Swagger example responses with Swashbuckle](https://mattfrear.com/2015/04/21/generating-swagger-example-responses-with-swashbuckle/)\n- [Configuring and Using Swagger UI in ASP.NET Core Web API](https://code-maze.com/swagger-ui-asp-net-core-web-api/)\n- [Setting up Swagger to support versioned API endpoints in ASP.NET Core](https://dejanstojanovic.net/aspnet/2018/november/setting-up-swagger-to-support-versioned-api-endpoints-in-aspnet-core/)\n- [Dealing with default API versions in Swagger UI](https://dejanstojanovic.net/aspnet/2020/june/dealing-with-default-api-versions-in-swagger-ui/)\n- [Representing available string values for parameters as list in Swagger ASP.NET Core](https://dejanstojanovic.net/aspnet/2020/december/representing-available-string-values-for-parameters-as-list-in-swagger-aspnet-core/)\n- [Basic authentication with Swagger and ASP.NET Core](https://dejanstojanovic.net/aspnet/2020/july/basic-authentication-with-swagger-and-aspnet-core/)\n- [DTO comments from external assembly in Swagger documentation in ASP.NET Core](https://dejanstojanovic.net/aspnet/2019/march/dto-comments-from-external-assembly-in-swagger-documentation-in-aspnet-core/)\n- [Ignoring properties from controller action model in Swagger using JsonIgnore](https://dejanstojanovic.net/aspnet/2019/october/ignoring-properties-from-controller-action-model-in-swagger-using-jsonignore/)\n- [Displaying multiple select input for Enum in Swagger WebApi UI](https://dejanstojanovic.net/aspnet/2018/march/displaying-multiple-select-input-for-enum-in-swagger-webapi-ui/)\n- [Swagger Grouping With Controller Name Fallback Using Swashbuckle.AspNetCore](https://rimdev.io/swagger-grouping-with-controller-name-fallback-using-swashbuckle-aspnetcore/)\n- [Swagger in ASP.Net Core](https://dotnetcorecentral.com/blog/swagger-in-asp-net-core/)\n- [Swagger in ASP.NET Core: Tips & Tricks](https://blog.georgekosmidis.net/2020/07/11/swagger-in-asp-net-core-tips-and-tricks/)\n- [Handling file uploads in Open API with ASP.NET Core](https://dotnetthoughts.net/handling-file-uploads-in-openapi-with-aspnet-core/)\n- [Enriched Web API Documentation using Swagger/OpenAPI in ASP.NET Core](https://www.dotnetnakama.com/blog/enriched-web-api-documentation-using-swagger-openapi-in-asp-dotnet-core/)\n- [Using OpenAPI Generator To Scaffold APIs And API Clients](https://dotnetcoretutorials.com/2022/02/06/using-openapi-generator-to-scaffold-apis-and-api-clients/)\n- [How to Create Documentation for Your REST API with Insomnia](https://www.digitalocean.com/community/tutorials/how-to-create-documentation-for-your-rest-api-with-insomnia)\n- [Documenting your API with Postman](https://learning.postman.com/docs/publishing-your-api/documenting-your-api/)\n- [Publishing your docs with Postman](https://learning.postman.com/docs/publishing-your-api/publishing-your-docs/)\n- [How to make ASP.NET Core API Documentation using Swagger and ReDoc (.NET 6)](https://christian-schou.dk/how-to-make-api-documentation-using-swagger/)\n- [Multiple authorization scheme in Swagger UI in .NET core](https://medium.com/@niteshsinghal85/assign-specific-authorization-scheme-to-endpoint-in-swagger-ui-in-net-core-cd84d2a2ebd7)\n- [OpenAPI vs. Swagger](https://learn.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?view=aspnetcore-5.0#openapi-vs-swagge)\n- [OpenAPI Specification on by default](https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-5.0?view=aspnetcore-5.0#openapi-specification-on-by-default)\n- [Generate C# client for OpenAPI - NSwag](https://kaylumah.nl/2021/05/23/generate-csharp-client-for-openapi.html) ⭐⭐\n- [What is AddEndpointsApiExplorer in ASP.NET Core 6](https://blog.devgenius.io/what-is-addendpointsapiexplorer-in-asp-net-core-6-64ba52d15979) ⭐\n- [What is AddEndpointsApiExplorer in ASP.NET Core 6 - StackOverflow](https://stackoverflow.com/a/71933535/581476) ⭐\n- [Understanding  the API-First Approach to Building Products](https://swagger.io/resources/articles/adopting-an-api-first-approach/)\n- [How Wix Accelerated Open Platform Dev with Standardized APIs & Schemas](https://medium.com/wix-engineering/how-wix-accelerated-open-platform-dev-with-standardized-apis-schemas-e4fbbf25f5d8)\n- [Contract first OpenAPI development (but still use Swagger UI with ASP.NET Core)](https://blog.codingmilitia.com/2023/04/02/contract-first-openapi-development-but-still-use-swagger-ui-with-asp.net-core/) ⭐\n- [Using OpenApiReference To Generate Open API Client Code](https://stevetalkscode.co.uk/openapireference-commands)\n- [NSwag.MSBuild](https://github.com/RicoSuter/NSwag/wiki/NSwag.MSBuild) ⭐\n- [NSwag Configuration Document](https://github.com/RicoSuter/NSwag/wiki/NSwag-Configuration-Document) ⭐\n- [Creating Discoverable HTTP APIs with ASP.NET Core 5 Web API](https://devblogs.microsoft.com/dotnet/creating-discoverable-http-apis-with-asp-net-core-5-web-api/)\n- [Open-source HTTP API packages and tools](https://devblogs.microsoft.com/dotnet/open-source-http-api-packages-and-tools/)\n- [Generating HTTP API clients using Visual Studio Connected Services](https://devblogs.microsoft.com/dotnet/generating-http-api-clients-using-visual-studio-connected-services/) ⭐\n- [How to generate a swagger.json file on build in .NET core](https://medium.com/@woeterman_94/how-to-generate-a-swagger-json-file-on-build-in-net-core-fa74eec3df1) ⭐\n- [Generating HTTP API clients using dotnet tools and Visual Studio Connected Services](https://dotnetthoughts.net/generating-http-api-clients-using-dotnet-tools/)\n- [.NET OpenAPI tool command reference and installation](https://learn.microsoft.com/en-us/aspnet/core/web-api/microsoft.dotnet-openapi)\n- [Using OpenApiReference To Generate Open API Client Code](https://stevetalkscode.co.uk/openapireference-commands) ⭐\n- [Get started with NSwag and ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-nswag)\n- [Web API development in Visual Studio 2022](https://devblogs.microsoft.com/visualstudio/web-api-development-in-visual-studio-2022/)\n- [Distributed API Documentation - How to Aggregate Swagger](https://blog.wick.technology/distributed-api-docs/)\n- [Implementing an ASP.NET Core API with .NET 9 and OpenAPI](https://damienbod.com/2024/08/06/implementing-an-asp-net-core-api-with-net-9-and-openapi/)\n- [OpenAPI document generation in .NET 9](https://devblogs.microsoft.com/dotnet/dotnet9-openapi/)\n- [Generate OpenAPI documents](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/openapi/aspnetcore-openapi)\n- [OpenAPI support in ASP.NET Core API apps](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/openapi/overview)\n\n## 📺 Videos\n- [Extended Swagger documentation | ASP.NET Core 5 REST API Tutorial 22](https://www.youtube.com/watch?v=BGASedyh16I)\n- [Generating API Documentations From Insomnia Using Insomnia Documenter - Tutorial and Demo](https://www.youtube.com/watch?v=pq2u3FqVVy8)\n- [Postman: Creating API Documentation](https://www.youtube.com/watch?v=rKyUA_nsCXA)\n- [Learn how to document RESTful API with postman and docgen](https://www.youtube.com/watch?v=ssAqMTA1ytU)\n- [Postman Tutorial - How to Create and Publish API Documentation in Postman](https://www.youtube.com/watch?v=Up-rGu0sSuY)\n- [Postman Tutorial | Rest API Testing Playlist - QAScript](https://www.youtube.com/playlist?list=PLox9xfUeaKQ77PsKGGzIBVV5avdrAYFX_)\n- [Insomnia Software Playlist - Kong](https://www.youtube.com/playlist?list=PLg_AhYkg50vjKpcFY6S8d7u-FpKk9EBYA)\n- [Insomnia walkthrough](https://www.youtube.com/watch?v=H_k8Z8Zq99s)\n- [Insomnia REST Client – Getting Started with the Sendwithus API](https://www.youtube.com/watch?v=lPFOEufD6mQ)\n- [ASP.NET Community Standup - Building HTTP APIs](https://www.youtube.com/watch?v=Mpf0fCO6NrU) ⭐\n- [Explore, Test, & Debug API Endpoints in Visual Studio Faster Than Ever!](https://www.youtube.com/watch?v=x7Pfdl9wl4Q)\n\n## Libraries\n- [dmitry-pavlov/api-client-generation-tools](https://github.com/dmitry-pavlov/api-client-generation-tools) - API Client Generation Tools for Visual Studio, Visual Studio Code, and JetBrains Rider\n- [RicoSuter/NSwag](https://github.com/RicoSuter/NSwag) - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.\n- [OpenAPITools/openapi-generator](https://github.com/OpenAPITools/openapi-generator) - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)\n- [jozsefsallai/insomnia-documenter/](https://github.com/jozsefsallai/insomnia-documenter/) - Tool to create minimalist and beautiful API documentation pages using your Insomnia workspace export file.\n- [Redocly/redoc](https://github.com/Redocly/redoc) - OpenAPI/Swagger-generated API Reference Documentation\n- [swagger-api/swagger-editor](https://github.com/swagger-api/swagger-editor) - Swagger Editor\n- [mattfrear/Swashbuckle.AspNetCore.Filters](https://github.com/mattfrear/Swashbuckle.AspNetCore.Filters) - A bunch of useful filters for Swashbuckle.AspNetCore\n- [micro-elements/MicroElements.Swashbuckle.FluentValidation](https://github.com/micro-elements/MicroElements.Swashbuckle.FluentValidation) - Use FluentValidation rules instead of ComponentModel attributes\n- [unchase/Unchase.Swashbuckle.AspNetCore.Extensions](https://github.com/unchase/Unchase.Swashbuckle.AspNetCore.Extensions) - Swagger tools for documenting API's built on ASP.NET Core\n- [scalar/scalar](https://github.com/scalar/scalar) - Beautiful API references from Swagger/OpenAPI files\n- [tryAGI/AutoSDK](https://github.com/tryAGI/AutoSDK) - automate and minimize the effort of maintaining high-quality .NET SDKs generated based on the OpenAPI specification\n\n## Samples\n- [dotnet/aspnet-api-versioning/WebApi/MinimalOpenApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/MinimalOpenApiExample)\n- [dotnet/aspnet-api-versioning/WebApi/OpenApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/OpenApiExample)\n- [joaofbantunes/MinimalVersionedOpenApiSample](https://github.com/joaofbantunes/MinimalVersionedOpenApiSample)\n- [joaofbantunes/SwaggerUiWithoutGenSample](https://github.com/joaofbantunes/SwaggerUiWithoutGenSample)\n- [cezarypiatek/SampleWebApiClientGeneration](https://github.com/cezarypiatek/SampleWebApiClientGeneration)\n- [martincostello/aspnetcore-openapi](https://github.com/martincostello/aspnetcore-openapi) - A demonstration of different ways to add OpenAPI (Swagger) support to ASP.NET Core applications"
  },
  {
    "path": "docs/options.md",
    "content": "# Options\n\n## 📝 Articles\n\n- [Options pattern in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options)\n- [How to use the IOptions pattern for configuration in ASP.NET Core RC2](https://andrewlock.net/how-to-use-the-ioptions-pattern-for-configuration-in-asp-net-core-rc2/)\n- [Access services inside ConfigureServices using IConfigureOptions in ASP.NET Core](https://andrewlock.net/access-services-inside-options-and-startup-using-configureoptions/)\n- [ASP.NET Core IOptions Configuration](https://khalidabuhakmeh.com/aspnet-core-ioptions-configuration)\n- [Options Pattern in .NET Core](https://codeburst.io/options-pattern-in-net-core-a50285aeb18d)\n- [Using the new configuration binder source generator Exploring the .NET 8 preview - Part 1](https://andrewlock.net/exploring-the-dotnet-8-preview-using-the-new-configuration-binder-source-generator/)"
  },
  {
    "path": "docs/orleans.md",
    "content": "\n# Orleans\n\n## 📹 Videos\n\n- [On .NET Live - Deep Dive into Microsoft Orleans](https://www.youtube.com/watch?v=R0ODfwU6MzQ)\n- [Introduction to Microsoft Orleans - CodeWithStu](https://www.youtube.com/watch?v=yM-gpuw1uhM)\n- [Building real applications with Orleans](https://www.youtube.com/watch?v=8duFuggnj8o)\n- [An Introduction to Orleans](https://www.youtube.com/watch?v=9OMXw0CslKE)\n- [Clustering in Orleans](https://www.youtube.com/watch?v=okBWuR5AnBY)\n- [Reuben Bond - Orleans under the hood (Dotnetos Conference 2021)](https://www.youtube.com/watch?v=kgRag4E6b4c)\n## Samples\n- [davidfowl/Orleans.PubSub](https://github.com/davidfowl/Orleans.PubSub) - A pub sub implementation built on top of orleans grains\n- [JorgeCandeias/Trader](https://github.com/JorgeCandeias/Trader) - Trader is an algorithmic trading framework and host built on Microsoft Orleans.\n- [IEvangelist/orleans-shopping-cart](https://github.com/IEvangelist/orleans-shopping-cart)\n- [khalidabuhakmeh/HelloOrleans](https://github.com/khalidabuhakmeh/HelloOrleans) - Playing with ASP.NET Core and Orleans in a Client/Server scenario\n- [Azure-Samples/Orleans-Cluster-on-Azure-Container-Apps](https://github.com/Azure-Samples/Orleans-Cluster-on-Azure-Container-Apps) - Sample application demonstrating a multiple-silo Orleans cluster running in Azure Container Apps."
  },
  {
    "path": "docs/others.md",
    "content": "\n# Others\n\n## 📘 Resources\n\n- [bharatdwarkani/awesome-libraries-to-build-sass-application-dotnet-core](https://github.com/bharatdwarkani/awesome-libraries-to-build-sass-application-dotnet-core)\n- [bharatdwarkani/awesome-dotnet-core-applications](https://github.com/bharatdwarkani/awesome-dotnet-core-applications)\n- [thangchung/awesome-dotnet-core](https://github.com/thangchung/awesome-dotnet-core)\n- [.NET Open Source Developer Projects](https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md)\n- [tallesl/net-libraries-that-make-your-life-easier](https://github.com/tallesl/net-libraries-that-make-your-life-easier)\n## 🚀 Samples\n- [Samples for ASP.NET Core 5.0 (331)](https://github.com/dodyg/practical-aspnetcore)\n\n## 📝 Articles\n\n- [Building a social media platform without going bankrupt Part I–Laying the numbers](https://ayende.com/blog/193026-C/building-a-social-media-platform-without-going-bankrupt-part-i-laying-the-numbers)\n- [Building a social media platform without going bankrupt Part II–Accepting posts](https://ayende.com/blog/193027-C/building-a-social-media-platform-without-going-bankrupt-part-ii-accepting-posts)\n- [Building a social media platform without going bankrupt Part III–Reading posts](https://ayende.com/blog/193028-C/building-a-social-media-platform-without-going-bankrupt-part-iii-reading-posts)\n- [Building a social media platform without going bankrupt Part IV–Caching and distribution](https://ayende.com/blog/193029-C/building-a-social-media-platform-without-going-bankrupt-part-iv-caching-and-distribution)\n- [Building a social media platform without going bankrupt Part V–Handling the timeline](https://ayende.com/blog/193057-A/building-a-social-media-platform-without-going-bankrupt-part-v-handling-the-timeline)\n- [Building a social media platform without going bankrupt Part VI–Dealing with edits and deletions](https://ayende.com/blog/193058-A/building-a-social-media-platform-without-going-bankrupt-part-vi-dealing-with-edits-and-deletions)\n- [Building a social media platform without going bankrupt Part VII–Counting views, replies and likes](https://ayende.com/blog/193059-A/building-a-social-media-platform-without-going-bankrupt-part-vii-counting-views-replies-and-likes)\n- [Building a social media platform without going bankrupt Part VIII–Tagging and searching](https://ayende.com/blog/193060-A/building-a-social-media-platform-without-going-bankrupt-part-viii-tagging-and-searching)\n- [Building a social media platform without going bankrupt Part IX–Dealing with the past](https://ayende.com/blog/193061-A/building-a-social-media-platform-without-going-bankrupt-part-ix-dealing-with-the-past)\n\n## 📚 Books\n\n- [Microsoft .Net Ebooks](https://github.com/dotnet-architecture/eBooks/tree/master/current)\n\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>\n"
  },
  {
    "path": "docs/performance.md",
    "content": "\n# Performance\n\n## 📘 Resources\n- [awesome-dot-net-performance](https://github.com/adamsitnik/awesome-dot-net-performance)\n- [Adam Sitnik Blog](https://adamsitnik.com)\n- [Marc Gravell Blog](https://blog.marcgravell.com/)\n- [SERIES: WRITING HIGH-PERFORMANCE C# AND .NET CODE](https://www.stevejgordon.co.uk/writing-high-performance-csharp-and-dotnet-code)\n\n## 📝 Articles\n- [ASP.NET Core Performance Best Practices](https://docs.microsoft.com/en-us/aspnet/core/performance/performance-best-practices)\n- [Memory management and garbage collection (GC) in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/memory)\n- [ASP.NET Core load/stress testing](https://docs.microsoft.com/en-us/aspnet/core/test/load-tests)\n- [Span](https://adamsitnik.com/Span/) \n- [Part 1: Motivations for Writing High-Performance C# Code](https://www.stevejgordon.co.uk/motivations-for-writing-high-performance-csharp-code) \n- [Part 2: Introduction to Benchmarking C# Code with Benchmark .NET](https://www.stevejgordon.co.uk/introduction-to-benchmarking-csharp-code-with-benchmark-dot-net)\n- [Part 3: An Introduction to Optimising Code Using Span<T>](https://www.stevejgordon.co.uk/an-introduction-to-optimising-code-using-span-t)\n- [Part 4: Creating Strings with No Allocation Overhead Using String.Create](https://www.stevejgordon.co.uk/creating-strings-with-no-allocation-overhead-using-string-create-csharp) \n- [Part 5: Profiling .NET Core Memory Traffic using JetBrains dotMemory](https://www.stevejgordon.co.uk/profiling-dotnetcore-memory-traffic-using-jetbrains-dotmemory) \n- [Part 6: Interpreting the .NET Core Memory Timeline in JetBrains dotMemory](https://www.stevejgordon.co.uk/interpreting-the-dotnet-core-memory-timeline-in-jetbrains-dotmemory) \n- [Part 7: Analysing the Large Object Heap in JetBrains dotMemory](https://www.stevejgordon.co.uk/analysing-the-large-object-heap-in-jetbrains-dotmemory) \n- [Why is your ASP.NET server so slow? 10 problems and solutions](https://michaelscodingspot.com/slow-asp-net-server/)\n- [14 to 2 seconds: how I improved the performance of an endpoint by 82% - part 2](14 to 2 seconds: how I improved the performance of an endpoint by 82% - part 1)\n- [14 to 2 seconds: how I improved the performance of an endpoint by 82% - part 2](https://www.code4it.dev/blog/improving-application-performance-part2)\n- [Find, Fix, and Avoid Memory Leaks in C# .NET: 8 Best Practices](https://michaelscodingspot.com/find-fix-and-avoid-memory-leaks-in-c-net-8-best-practices/)\n- [Top 5 .NET memory management fundamentals](https://www.red-gate.com/products/dotnet-development/ants-memory-profiler/learning-memory-management/memory-management-fundamentals)\n- [.NET Memory Management Concepts](https://www.jetbrains.com/help/dotmemory/NET_Memory_Management_Concepts.html)\n- [Scalable and Performant ASP.NET Core Web APIs: Asynchronous Code](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-asynchronous-operations/)\n- [Scalable and Performant ASP.NET Core Web APIs: Profiling and Monitoring](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-profiling-and-monitoring/)\n- [Scalable and Performant ASP.NET Core Web APIs: Server Caching](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-server-caching/)\n- [Investigate memory issues with ease – Introducing real-time inspections in dotMemory Allocation Analysis](https://blog.jetbrains.com/dotnet/2021/06/01/investigate-memory-issues-with-ease-introducing-real-time-inspections-in-dotmemory-allocation-analysis/)\n- [How to use Span<T> and Memory<T>](https://antao-almada.medium.com/how-to-use-span-t-and-memory-t-c0b126aae652)\n- [Improving .NET Application Performance - Series](https://blog.monitis.com/blog/?s=Improving+.NET+Application+Performance)\n- [Improving .NET Application Performance](https://blog.monitis.com/blog/improving-net-application-performance/)\n- [Improving .NET Application Performance Part 2: Application Engineering and Design](https://blog.monitis.com/blog/improving-net-application-performance-part-2-application-engineering-and-design-considerations/)\n- [Improving .NET Application Performance Part 3: Class Design Considerations](https://blog.monitis.com/blog/improving-net-application-performance-part-3-class-design-considerations/)\n- [Improving .NET Application Performance Part 4: Garbage Collection](https://blog.monitis.com/blog/improving-net-application-performance-part-4-garbage-collection/)\n- [Exceptions and Performance](https://jonskeet.uk/csharp/exceptions.html)\n- [Performance Tuning for .NET Core](https://reubenbond.github.io/posts/dotnet-perf-tuning)\n- [Performance best practices in C#](https://kevingosse.medium.com/performance-best-practices-in-c-b85a47bdd93a)\n- [Performance Improvements in .NET Core](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core/)\n- [Performance Improvements in .NET Core 2.1](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-2-1/)\n- [Performance Improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/)\n- [Performance Improvements in .NET 5](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/)\n- [Performance Improvements in .NET 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/)\n- [Performance Improvements in .NET 7](https://devblogs.microsoft.com/dotnet/performance_improvements_in_net_7/)\n- [6 Essential Tools to Detect and Fix Performance Issues in .NET](https://michaelscodingspot.com/performance-tools-dotnet/)\n- [Astonishing Performance of .NET 5](https://alexyakunin.medium.com/astonishing-performance-of-net-5-7803d69dae2e)\n- [.NET 6 vs .NET 5: up to 40% speedup!](https://alexyakunin.medium.com/net-6-vs-net-5-up-to-40-speedup-ceca9112d298)\n- [6 Essential Tools to Detect and Fix Performance Issues in .NET](https://michaelscodingspot.com/performance-tools-dotnet/)\n- [Optimizing CPU-Bound and Memory-Bound .NET Applications: 11 Best Practices](https://michaelscodingspot.com/cpu-bound-memory-bound/)\n- [Performance improvements in ASP.NET Core 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-6/)\n- [AUTOMATING MEMORY PROFILING WITH THE JETBRAINS DOTMEMORY PROFILER API](https://www.stevejgordon.co.uk/automating-memory-profiling-with-the-jetbrains-dotmemory-profiler-api)\n- [Performance Improvements in .NET 9](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-9/)\n\n## 📺 Videos\n- [We Should Become Good at Optimizing our Code - Denis Bakhvalov](https://www.youtube.com/watch?v=jQb1mCLqNOY)\n- [C# 7.2: Understanding Span](https://channel9.msdn.com/Events/Connect/2017/T125)\n- [Turbocharged: Writing High-performance C# and .NET code, by Steve Gordon](https://www.youtube.com/watch?v=g8MYUfplpt8)\n- [Connect; 2017 C# 7 2 Understanding Span](https://www.youtube.com/watch?v=mbLIplmHzdk)\n- [A (brief) overview of Span≤T≥ - David Wengier](https://www.youtube.com/watch?v=byvoPD15CXs)\n- [Jeffrey Richter «Efficient Buffer Manipulation using C# 7.2's Span»](https://www.youtube.com/watch?v=gWcyXGIbRDI)\n- [High-performance code design patterns in C#. Konrad Kokosa .NET Fest 2019](https://www.youtube.com/watch?v=3r6gbZFRDHs)\n- [Writing Allocation Free Code in C# - Matt Ellis](https://www.youtube.com/watch?v=nK54s84xRRs)\n- [Writing Allocation Free Code in C#](https://www.youtube.com/watch?v=lb0LCT8xJ3g)\n- [The hidden cost of Exceptions in .NET](https://www.youtube.com/watch?v=2f2elFRmeLE)\n- [Diagnosing thread pool exhaustion issues in .NET Core apps](https://www.youtube.com/watch?v=isK8Cel3HP0)\n- [Stephen Toub — Unlocking performance improvements in .NET](https://www.youtube.com/watch?v=zoeqyuvZroc)\n- [.NET Tooling Community Standup - .NET Performance sneak peek!](https://www.youtube.com/watch?v=rwfNDyBBgks)\n- [Jared Parsons - Performance features in C# (Dotnetos Conference 2021)](https://www.youtube.com/watch?v=Q_tvcyl-e60)\n- [Turbocharged: Writing High-Performance C# and .NET Code - Steve Gordon](https://www.youtube.com/watch?v=7e4A8fwphi8)\n- [Languages & Runtime Community Standup - .NET Performance with Stephen Toub](https://www.youtube.com/watch?v=5PrQw0bRthE)\n- [Reviewing new .NET 8 Performance Tools](https://www.youtube.com/watch?v=TfHv9LKuZzE)\n\n## Libraries\n- [stackify-prefix](https://stackify.com/prefix/)\n\n## Samples\n- [servicetitan/Stl.Fusion.Samples](https://github.com/servicetitan/Stl.Fusion.Samples)\n\n## 📚 Books\n- [Pro .NET Memory Management: For Better Code, Performance, and Scalability](https://www.amazon.co.uk/gp/product/148424026X/)\n- [Writing High-Performance .NET Code](https://www.amazon.co.uk/gp/product/0990583457)\n- [High-Performance Programming in C# and .NET: Understand the nuts and bolts of developing robust, faster, and resilient applications in C# 10.0 and .NET 6 ](https://www.amazon.nl/High-Performance-Programming-NET-Understand-applications/dp/1800564716)\n"
  },
  {
    "path": "docs/rate-limiting.md",
    "content": "# Rate Limiting\n\n## 📕 Articles\n- [How To Rate Limit Requests In Blazor/ASP.NET Core](https://www.cloudsavvyit.com/12306/how-to-rate-limit-requests-in-blazor-asp-net-core/)\n- [Rate limiting based on client IP](https://riptutorial.com/asp-net-core/example/18611/rate-limiting-based-on-client-ip)\n- [Rate limiting based on client ID](https://riptutorial.com/asp-net-core/example/18612/rate-limiting-based-on-client-id)\n- [Announcing Rate Limiting for .NET](https://devblogs.microsoft.com/dotnet/announcing-rate-limiting-for-dotnet/)\n- [Exploring Communication of Rate Limits in ASP.NET Core With Rate Limit Headers](https://www.tpeczek.com/2022/07/exploring-communication-of-rate-limits.html)\n- [ASP.NET Core rate limiting middleware in .NET 7](https://blog.maartenballiauw.be/post/2022/09/26/aspnet-core-rate-limiting-middleware.html)\n- [Rate limiting in web applications - Concepts and approaches](https://blog.maartenballiauw.be/post/2022/10/03/rate-limiting-web-applications-concepts-approaches.html)\n- [Davide's Code and Architecture Notes - 4 algorithms to implement Rate Limiting, with comparison](https://www.code4it.dev/architecture-notes/rate-limiting-algorithms/)\n\n## 📺 Videos\n- [How to rate limit (throttle) your ASP.NET Core API](https://www.youtube.com/watch?v=GQAgh_z1rHY)\n\n## Libraries\n- [stefanprodan/AspNetCoreRateLimit](https://github.com/stefanprodan/AspNetCoreRateLimit) - ASP.NET Core rate limiting middleware\n- [cristipufu/aspnetcore-redis-rate-limiting](https://github.com/cristipufu/aspnetcore-redis-rate-limiting) - Set up a Redis backplane for ASP.NET Core multi-node deployments, using the built-in Rate Limiting support that's part of .NET 7.\n\n## Samples\n- [davidfowl/TodoApi](https://github.com/davidfowl/TodoApi)"
  },
  {
    "path": "docs/razor-pages.md",
    "content": "\n# Razor Pages\n\n## 📝 Articles\n\n- [Razor Pages for HTML Controllers for APIs](https://odetocode.com/blogs/scott/archive/2019/09/12/net-core-opinion-14-razor-pages-for-html-controllers.aspx) - Scott Allen\n- [Separating concerns using Razor Pages](https://jonhilton.net/razor-pages-separation-of-concerns/) - Jon Hilton\n- [MVC vs Razor Pages A quick comparison](https://jonhilton.net/razor-pages-or-mvc-a-quick-comparison/) - Jon Hilton\n- [Applying the MVC design pattern to Razor Pages](https://andrewlock.net/aspnetcore-in-action-2e-applying-the-mvc-design-pattern-to-razor-pages/) - Andrew Lock\n- [MSDN – Feature Slices for ASPNET Core MVC](https://ardalis.com/msdn-–-feature-slices-for-aspnet-core-mvc/) - Steve Smith\n- [Feature Slices for ASP.NET Core MVC](https://docs.microsoft.com/en-us/archive/msdn-magazine/2016/september/asp-net-core-feature-slices-for-asp-net-core-mvc) - Steve Smith\n- [ASPNET Core Razor Pages – Worth Checking Out?](https://ardalis.com/aspnet-core-razor-pages-–-worth-checking-out/)\n- [Simpler ASP.NET MVC Apps with Razor Pages](https://docs.microsoft.com/en-us/archive/msdn-magazine/2017/september/asp-net-core-simpler-asp-net-mvc-apps-with-razor-pages)\n\n## 📹 Videos\n\n- [Introduction to ASP.NET Core Razor Pages](https://www.youtube.com/watch?v=yyBijyCI5Sk)\n- [ASP.NET Core Series MVC and Razor Pages](https://www.youtube.com/watch?v=6GRFDkeCv3k&t=1264s)\n\n## 🔖 Samples\n\n- [https://github.com/ardalis/OrganizingAspNetCore](https://github.com/ardalis/OrganizingAspNetCore) - Steve Smith\n- [https://github.com/jbogard/ContosoUniversityDotNetCore-Pages](https://github.com/jbogard/ContosoUniversityDotNetCore-Pages)\n"
  },
  {
    "path": "docs/regex.md",
    "content": "# Regex\n\n## Resources\n- [Regulex](https://jex.im/regulex)\n- [Regextester](https://www.regextester.com)\n- [Ihateregex](https://ihateregex.io)\n"
  },
  {
    "path": "docs/registry.md",
    "content": "# Registry\n\n## Libraries\n- [https://quay.io/](https://quay.io/)"
  },
  {
    "path": "docs/remote-development/devcontainers.md",
    "content": "# DevContainers\n\n## Resources\n- [Development Containers](https://containers.dev/)\n- [Development Container Specification](https://containers.dev/implementors/spec/)\n\n## Articles\n- [devcontainer.json reference](https://code.visualstudio.com/docs/remote/devcontainerjson-reference)\n- [Introduction to dev containers](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)\n- [Dev container features (preview)](https://code.visualstudio.com/docs/remote/containers#_dev-container-features-preview)\n- [Dotnet CLI Install Script - Devcontainer Feature](https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/dotnet.md)\n- [Development container CLI](https://code.visualstudio.com/docs/remote/devcontainer-cli)\n- [VS Code Remote Development](https://code.visualstudio.com/docs/remote/remote-overview)\n- [Developing inside a Container](https://code.visualstudio.com/docs/remote/containers)\n- [Remote development in Containers](https://code.visualstudio.com/docs/remote/containers-tutorial)\n- [Personalizing with dotfile repositories](https://code.visualstudio.com/docs/remote/containers#_personalizing-with-dotfile-repositories)\n- [Container specific settings](https://code.visualstudio.com/docs/remote/containers#_container-specific-settings)\n- [Advanced container configuration](https://code.visualstudio.com/docs/remote/containers#_advanced-container-configuration)\n- [Try out .NET 6 inside your own development environment built with devcontainers, docker, and vscode](https://nikiforovall.github.io/productivity/devcontainers/2021/10/14/devcontainer-for-dotnet6.html)\n- [Dev Environment as a Code (DEaaC) with DevContainers, Dotfiles, and GitHub Codespaces](https://nikiforovall.github.io/productivity/devcontainers/2022/08/13/deaac.html)\n- [Introduction to dev containers](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers)\n- [GitHub Codespaces vs Gitpod – Full Stack Development Moves to the Cloud](https://www.freecodecamp.org/news/github-codespaces-vs-gitpod-cloud-based-dev-environments/)\n- [Development Containers & GitHub Codespaces kill the “works on my machine” problem](https://blog.codecentric.de/en/2022/06/dev-containers-github-codespaces/)\n- [Getting Started with Devcontainer](https://audacioustux.notion.site/Getting-Started-with-Devcontainer-c727dbf9d56f4d6b9b0ef87b3111693f) ⭐\n- [Using Images, Dockerfiles, and Docker Compose](https://containers.dev/guide/dockerfile)\n- [Speed Up Your Workflow with Prebuilds](https://containers.dev/guide/prebuild)\n- [Available Dev Container Features](https://containers.dev/features)\n\n## Samples\n- [devcontainers/images](https://github.com/devcontainers/images) - Repository for pre-built dev container images published under mcr.microsoft.com/devcontainers\n- [devcontainers/images/dotnet](https://github.com/devcontainers/images/tree/main/src/dotnet)\n- [devcontainers/features](https://github.com/devcontainers/features) - A collection of Dev Container Features managed by Dev Container spec maintainers.\n- [devcontainers/feature-starter](https://github.com/devcontainers/feature-starter) - A bootstrap repo for self-authoring Dev Container Features\n- [audacioustux/devcontainers](https://github.com/audacioustux/devcontainers) - simplified devcontainer features, compatible with arm64\n- [devcontainers-contrib/features](https://github.com/devcontainers-contrib/features) - Extra add-in features for Devcontainers and GitHub Codespaces\n- [NikiforovAll/devcontainer-for-dotnet6-demo](https://github.com/NikiforovAll/devcontainer-for-dotnet6-demo)\n- [NikiforovAll/todo-csharp-cosmos-sql](https://github.com/NikiforovAll/todo-csharp-cosmos-sql)\n- [thangchung/coffeeshop-on-nomad}(https://github.com/thangchung/coffeeshop-on-nomad)\n- [Microsoft/vscode-remote-try-dotnetcore](https://github.com/Microsoft/vscode-remote-try-dotnetcore)\n- [microsoft/vscode-dev-containers/dotnet-postgres](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/dotnet-postgres)\n- [microsoft/vscode-dev-containers/dotnet-mssql](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/dotnet-mssql)\n- [microsoft/vscode-dev-containers/dotnet](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/dotnet)\n"
  },
  {
    "path": "docs/remote-development/github-codespace.md",
    "content": "# GitHub Codespace\n\n## Articles\n- [Deep dive into GitHub Codespaces](https://docs.github.com/en/codespaces/getting-started/deep-dive)\n- [Quickstart for GitHub Codespaces](https://docs.github.com/en/codespaces/getting-started/quickstart)\n- [GitHub Codespaces overview](https://docs.github.com/en/codespaces/overview)\n- [Dev Environment as a Code (DEaaC) with DevContainers, Dotfiles, and GitHub Codespaces](https://nikiforovall.github.io/productivity/devcontainers/2022/08/13/deaac.html)\n- [Personalizing GitHub Codespaces for your account](https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-github-codespaces-for-your-account)\n- [Changing the shell in a codespace](https://docs.github.com/en/codespaces/customizing-your-codespace/changing-the-shell-in-a-codespace)\n- [Changing the machine type for your codespace](https://docs.github.com/en/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace)\n- [Introduction to dev containers](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)\n- [Developing in a codespace](https://docs.github.com/en/codespaces/developing-in-codespaces/developing-in-a-codespace)\n- [GitHub Codespaces vs Gitpod – Full Stack Development Moves to the Cloud](https://www.freecodecamp.org/news/github-codespaces-vs-gitpod-cloud-based-dev-environments/)\n- [Development Containers & GitHub Codespaces kill the “works on my machine” problem](https://blog.codecentric.de/en/2022/06/dev-containers-github-codespaces/)\n- [Anatomy of a .NET devcontainer](https://timheuer.com/blog/anatomy-of-a-dotnet-devcontainer/)\n- [GitHub Codespaces: A Faster Way to Develop in the Cloud](https://dev.to/this-is-learning/github-codespaces-a-faster-way-to-develop-in-the-cloud-2ml4)\n- [Set up GitHub Codespaces for a .NET 8 application](https://dev.to/this-is-learning/set-up-github-codespaces-for-a-net-8-application-5999)\n- [Setting up a C# (.NET) project for GitHub Codespaces](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/setting-up-your-dotnet-project-for-codespaces)\n- [Getting Started with Devcontainer](https://audacioustux.notion.site/Getting-Started-with-Devcontainer-c727dbf9d56f4d6b9b0ef87b3111693f) ⭐\n\n## Videos\n- [Run From Anywhere with GitHub Codespaces - Dev Container Walkthrough](https://www.youtube.com/watch?v=dMs-8QY1URw)\n\n## Samples\n- [microsoft/vscode-remote-try-dotnet](https://github.com/microsoft/vscode-remote-try-dotnet)\n- [NikiforovAll/todo-csharp-cosmos-sql](https://github.com/NikiforovAll/todo-csharp-cosmos-sql)\n- [microsoft/vscode-dev-containers/dotnet-postgres](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/dotnet-postgres)\n- [microsoft/vscode-dev-containers/dotnet-mssql](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/dotnet-mssql)\n- [microsoft/vscode-dev-containers/dotnet](https://github.com/microsoft/vscode-dev-containers/tree/main/containers/dotnet)\n- [devcontainers/images/dotnet](https://github.com/devcontainers/images/tree/main/src/dotnet)\n- [bradygaster/dotnet-codespace](https://github.com/bradygaster/dotnet-codespace) ⭐\n- [github/dotnet-codespaces](https://github.com/github/dotnet-codespaces) ⭐\n"
  },
  {
    "path": "docs/remote-development/gitpod.md",
    "content": "# Gitpod\n\n## Resources\n- [Gitpod-Samples/awesome-gitpod](https://github.com/Gitpod-Samples/awesome-gitpod) - A curated list of awesome Gitpod resources.\n\n## Articles\n- [Gitpod.yml file](https://www.gitpod.io/docs/references/gitpod-yml)\n- [Gitpod `Workspaces`](https://www.gitpod.io/docs/configure/workspaces)\n- [Workspace `Lifecycle`](https://www.gitpod.io/docs/configure/workspaces/workspace-lifecycle)\n- [Workspace `Image`](https://www.gitpod.io/docs/configure/workspaces/workspace-image)\n- [Gitpod `Tasks`](https://www.gitpod.io/docs/configure/workspaces/tasks)\n- [Gitpod `Projects`](https://www.gitpod.io/docs/configure/projects)\n- [Gitpod `Prebuilds`](https://www.gitpod.io/docs/configure/projects/prebuilds)\n- [Dotfiles](https://www.gitpod.io/docs/config-dotfiles)\n- [Configure Gitpod](https://www.gitpod.io/docs/configure)\n- [Gitpod Ports](https://www.gitpod.io/docs/configure/workspaces/ports)\n- [GitHub Codespaces vs Gitpod – Full Stack Development Moves to the Cloud](https://www.freecodecamp.org/news/github-codespaces-vs-gitpod-cloud-based-dev-environments/)\n- [Modern Development Environments for Cloud Native Applications Using Gitpod and Okteto](https://www.okteto.com/blog/modern-development-environments-for-cloud-native-applications-using-gitpod-and-okteto/)\n- [LocalStack x Gitpod - Run cloud applications with LocalStack and Gitpod](https://www.gitpod.io/blog/localstack-and-gitpod)\n- [Gitpod x Qovery - Develop, Deploy and Run applications with Gitpod and Qovery](https://www.gitpod.io/blog/qovery-and-gitpod)\n- [Personalize your Gitpod Workspace Environments](https://www.gitpod.io/blog/personalize-your-gitpod-workspace-environment)\n- [Why we moved from Helm to Gitpod Installer](https://www.gitpod.io/blog/gitpod-installer)\n- [.NET in Gitpod](https://www.gitpod.io/docs/introduction/languages/dotnet)\n- [Bring your own (Docker) image to Gitpod](https://www.gitpod.io/blog/docker-in-gitpod)\n- [Using gitpod with Rider](https://www.gitpod.io/docs/references/ides-and-editors/rider)\n- [VS Code extensions](https://www.gitpod.io/docs/references/ides-and-editors/vscode-extensions)\n- [VS Code settings sync](https://www.gitpod.io/docs/references/ides-and-editors/settings-sync)\n\n## Videos\n- [Moving my Ethereum Development Environment to the Cloud with Gitpod](https://www.youtube.com/watch?v=tXSF7lIQouQ)\n- [Moving Your Full Stack Development Environment to the Cloud with Next.js, Gitpod, and Vercel](https://www.youtube.com/watch?v=hUSzdIOrlY4)\n- [A Better Developer Experience With Gitpod & Okteto](https://www.youtube.com/watch?v=dgtuEgmsLoQ)\n- [Develop, Deploy and Run applications on AWS with Gitpod and Qovery](https://www.youtube.com/watch?v=QPXeCmbl2d0)\n- [Developing and Running Cloud Applications with LocalStack and Gitpod](https://www.youtube.com/watch?v=CihxsFcHyEk)\n## Samples\n\n- [gitpod-samples/template-dotnet-core-cli-csharp](https://github.com/gitpod-samples/template-dotnet-core-cli-csharp) - A CLI template for .NET, written in C#, configured for Gitpod (www.gitpod.io) to give you pre-built, ephemeral development environments in the cloud.\n- [gitpod-samples/template-docker-compose](https://github.com/gitpod-samples/template-docker-compose) - A Docker Compose template, configured for Gitpod (www.gitpod.io) to give you pre-built, ephemeral development environments in the cloud.\n- [whummer/localstack-gitpod-demo](https://github.com/whummer/localstack-gitpod-demo) - Simple demo for running LocalStack in Gitpod\n- [https://github.com/okteto/movies-with-helm](https://github.com/okteto/movies-with-helm)\n- [gitpod-samples/demo-dotfiles-with-gitpod](https://github.com/gitpod-samples/demo-dotfiles-with-gitpod) - Learn how to bring your own dotfiles to Gitpod"
  },
  {
    "path": "docs/resiliency.md",
    "content": "# Resiliency\n\n## 📕 Articles\n- [Transient fault handling](https://docs.microsoft.com/en-us/azure/architecture/best-practices/transient-faults)\n- [Building resilient applications with Polly](http://elvanydev.com/resilience-with-polly/) ⭐\n- [Simmy Chaos Engine for .NET – Part 1, Injecting Faults](https://nodogmablog.bryanhogan.net/2019/07/simmy-chaos-engine-for-net-part-1-injecting-faults/)\n- [Simmy Chaos Engine for .NET – Part 2, Resilience and Injected Faults](https://nodogmablog.bryanhogan.net/2019/07/simmy-chaos-engine-for-net-part-2-resilience-and-injected-faults/)\n- [Simmy Chaos Engine for .NET – Part 3, Adding Latency](https://nodogmablog.bryanhogan.net/2019/08/simmy-chaos-engine-for-net-part-3-adding-latency/)\n- [Chaos Engineering your .NET applications using Simmy](http://josephwoodward.co.uk/2020/01/chaos-engineering-your-dot-net-application-simmy)\n- [Resiliency and high availability in microservices](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/resilient-high-availability-microservices)\n- [Implement resilient applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/)\n- [Handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/handle-partial-failure)\n- [Strategies to handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/partial-failure-strategies)\n- [Resiliency and high availability in microservices](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/resilient-high-availability-microservices)\n- [Implement resilient applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/)\n- [Handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/handle-partial-failure)\n- [Strategies to handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/partial-failure-strategies)\n- [Creating Resilient Microservices in .NET with Polly](https://code-maze.com/creating-resilient-microservices-in-net-with-polly/) ⭐\n- [Microservice resilience – Circuit Breaker using polly in .Net Core](https://dotnetcorecentral.com/blog/microservice-resilience-circuit-breaker-using-polly-in-net-core/)\n- [Resiliency Patterns in Microservice Architecture](https://www.gokhan-gokalp.com/en/resiliency-patterns-in-microservice-architecture/)\n- [Cross-Cutting Concerns with MediatR Pipeline Behaviors](https://anderly.com/2019/12/12/cross-cutting-concerns-with-mediatr-pipeline-behaviors/) ⭐\n- [Caching behavior with MediatR](https://fredrikronnehag.netlify.app/caching-mediatr/)\n- [MediatR: how to use Decorators to add retry policies](https://www.davidguida.net/mediatr-how-to-use-decorators-to-add-retry-policies/)\n- [Refactoring Towards Resilience: A Primer](https://jimmybogard.com/refactoring-towards-resilience-a-primer/)\n- [Refactoring Towards Resilience: Evaluating Stripe Options](https://jimmybogard.com/refactoring-towards-resilience-evaluating-stripe-options/)\n- [Refactoring Towards Resilience: Evaluating SendGrid Options](https://jimmybogard.com/refactoring-towards-resilience-evaluating-sendgrid-options/)\n- [Refactoring Towards Resilience: Evaluating RabbitMQ Options](https://jimmybogard.com/refactoring-towards-resilience-evaluating-rabbitmq-options/)\n- [Refactoring Towards Resilience: Evaluating Coupling](https://jimmybogard.com/refactoring-towards-resilience-evaluating-coupling/)\n- [Refactoring Towards Resilience: Process Manager Solution](https://jimmybogard.com/refactoring-towards-resilience-process-manager-solution/)\n- [Fault Handling with Polly – A Beginners Guide](https://dotnetplaybook.com/fault-handling-with-polly-a-beginners-guide/)\n- [Improve resilience in the .NET applications](https://medium.com/@emanuele.bucarelli/improve-resilience-in-the-net-application-80adda2c7710) ⭐\n- [Build Resilient Microservices (Web API) using Polly in ASP.NET Core](https://procodeguide.com/programming/polly-in-aspnet-core/)\n- [Strategies to Handle Transient Faults in Web APIs](https://www.dotnetnakama.com/blog/strategies-to-handle-transient-faults-in-web-apis/)\n- [Best practices with HttpClient and Retry Policies with Polly in .NET Core 2, Part 1](http://anthonygiretti.com/2019/03/26/best-practices-with-httpclient-and-retry-policies-with-polly-in-net-core-2-part-1/) ⭐\n- [Best practices with HttpClient and Retry Policies with Polly in .NET Core 2, Part 2](https://anthonygiretti.com/2019/03/26/best-practices-with-httpclient-and-retry-policies-with-polly-in-net-core-2-part-2/) ⭐\n- [WORKING WITH POLLY – USING THE CONTEXT TO OBTAIN THE RETRY COUNT FOR DIAGNOSTICS](https://www.stevejgordon.co.uk/polly-using-context-to-obtain-retry-count-diagnostics)\n- [gRPC & ASP.NET Core 3.1: Resiliency with Polly](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-resiliency-with-polly/) ⭐\n- [ASP.NET Core 6: Handling gRPC exception correctly server side](https://anthonygiretti.com/2022/08/28/asp-net-core-6-handling-grpc-exception-correctly-server-side/) ⭐\n- [Using Polly for .NET Resilience and Transient-Fault-Handling with .NET Core](https://www.telerik.com/blogs/using-polly-for-net-resilience-and-transient-fault-handling-with-net-core) ⭐\n- [Optimally Configuring ASP.NET Core HttpClientFactory](https://rehansaeed.com/optimally-configuring-asp-net-core-httpclientfactory/) ⭐\n\n## 📺 Videos\n- [Handling Failures in Message Driven Architecture](https://www.youtube.com/watch?v=SesEYHGhlLQ)\n- [Make your microservice resilient with Polly's Circuit Breaker | .NET Core](https://www.youtube.com/watch?v=JljTcjt798c)\n- [Managing Resiliency in Microservices || Full Stack Virtual Conference](https://www.youtube.com/watch?v=DTFvQqQBN2c)\n- [Life Beyond Distributed Transactions: An Apostate's Implementation - Jimmy Bogard](https://www.youtube.com/watch?v=AUrKofVRHV4)\n- [Fixing Distributed Systems Fail with Jimmy Bogard](https://www.youtube.com/watch?v=p0M1rrmfrWg)\n- [The Circuit Breaker Pattern | Resilient Microservices](https://www.youtube.com/watch?v=5_Bt_OEg0no)\n- [Bulkhead Pattern - Fault Tolerant Microservices](https://www.youtube.com/watch?v=R2FT5edyKOg)\n- [Circuit Breaker Pattern - Fault Tolerant Microservices](https://www.youtube.com/watch?v=ADHcBxEXvFA)\n- [Fault Handling with Polly and .NET 6](https://www.youtube.com/watch?v=DSMdUvL8N30)\n- [POLLY - RESILIENCY and FAULT HANDLING With HTTP Client | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=z6YcU0PW_9E)\n\n## 📦 Libraries\n- [App-vNext/Polly](https://github.com/App-vNext/Polly) - Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2.0+.\n- [Polly-Contrib/Simmy](https://github.com/Polly-Contrib/Simmy) - Simmy is a chaos-engineering and fault-injection tool, integrating with the Polly resilience project for .NET\n\n## Samples\n- [RehanSaeed/HttpClientSample](https://github.com/RehanSaeed/HttpClientSample) ⭐ A sample ASP.NET Core project showing how to configure the HttpClientFactory"
  },
  {
    "path": "docs/rest.md",
    "content": "# REST\n\n## 📘 Resources\n- [https://restfulapi.net](https://restfulapi.net)\n- [whitehouse/api-standards](https://github.com/whitehouse/api-standards)\n## 📝 Articles\n- [What is REST](https://restfulapi.net)\n- [Microsoft REST API Guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md)\n- [Design Guidelines](http://apistylebook.com/design/guidelines/)\n- [Web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design)\n- [Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html)\n- [RESTful API Design: 13 Best Practices to Make Your Users Happy](https://florimond.dev/blog/articles/2018/08/restful-api-design-13-best-practices-to-make-your-users-happy/)\n- [Best Practices for Designing a Pragmatic RESTful API](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api)\n- [Design Guidelines](http://apistylebook.com/design/guidelines/)\n- [The Web API Checklist -- 43 Things To Think About When Designing, Testing, and Releasing your API](https://mathieu.fenniak.net/the-api-checklist/)\n- [Design Topics](http://apistylebook.com/design/topics/)\n- [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md)\n- [REST lessons learned](https://blog.ploeh.dk/2013/04/29/rest-lessons-learned/)\n- [REST Architectural Constraints](https://restfulapi.net/rest-architectural-constraints/)\n- [Caching REST API Response](https://restfulapi.net/caching/)\n- [REST Resource Representation Compression](https://restfulapi.net/rest-resource-compression/)\n- [Content Negotiation in REST APIs](https://restfulapi.net/content-negotiation/)\n- [HATEOAS Driven REST APIs](https://restfulapi.net/hateoas/)\n- [Idempotent REST APIs](https://restfulapi.net/idempotent-rest-apis/)\n- [REST API Security Essentials](https://restfulapi.net/security-essentials/)\n- [REST API Versioning](https://restfulapi.net/versioning/)\n- [Statelessness in REST APIs](https://restfulapi.net/statelessness/)\n- [Comparing SOAP vs REST APIs](https://restfulapi.net/soap-vs-rest-apis/)\n- [HTTP Methods](https://restfulapi.net/http-methods/)\n- [HTTP Status Codes](https://restfulapi.net/http-status-codes/)\n- [What is an API?](https://restfulapi.net/what-is-an-api/)\n- [REST – PUT vs POST](https://restfulapi.net/rest-put-vs-post/)\n- [HTTP Status Codes Cheatsheet](https://vishnuch.tech/http-status-codes-cheatsheet)\n- [Zalando RESTful API and Event Guidelines](https://opensource.zalando.com/restful-api-guidelines/index.html)\n- [CRUD API Design & CRUD API Recommendations](https://stoplight.io/blog/crud-api-design/)\n\n## 📺 Videos\n- [How to build RESTful APIs the right way](https://www.youtube.com/watch?v=Igh2KfwOT-Q)\n  <div align=\"right\">\n    <b><a href=\"#contents\">↥ Back To Top</a></b>\n  </div>"
  },
  {
    "path": "docs/roslyn-analizers.md",
    "content": "# Roslyn Analizers\n\n## Resources\n- [Cybermaxs/awesome-analyzers](https://github.com/Cybermaxs/awesome-analyzers) - A curated list of .NET Compiler Platform (\"Roslyn\") diagnostic analyzers and code fixes. Everyone can contribute here!\n\n## 📕 Articles\n\n- [GETTING STARTED WITH THE ROSLYN APIS: WRITING CODE WITH CODE](https://www.stevejgordon.co.uk/getting-started-with-the-roslyn-apis-writing-code-with-code)\n- [USING THE ROSLYN APIS TO ANALYSE A .NET SOLUTION](https://www.stevejgordon.co.uk/using-the-roslyn-apis-to-analyse-a-dotnet-solution)\n- [The Roslyn analyzers I use in my projects](https://www.meziantou.net/the-roslyn-analyzers-i-use.htm) ⭐⭐\n- [Overview of .NET source code analysis](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/overview)\n- [Rule categories](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/categories)\n- [Configuration options for code analysis](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-options)\n- [Async code smells and how to track them down with analyzers - Part I](https://cezarypiatek.github.io/post/async-analyzers-p1/)\n- [Async code smells and how to track them down with analyzers - Part II](https://cezarypiatek.github.io/post/async-analyzers-p2/)\n- [Detecting Sync over Async Code in ASP.NET Core](https://codeopinion.com/detecting-sync-over-async-code-in-asp-net-core/)\n- [Incremental Roslyn Source Generators In .NET 6: Code Sharing Of The Future - Part 1](https://www.thinktecture.com/en/net/roslyn-source-generators-introduction/)\n- [Incremental Roslyn Source Generators In .NET 6: Better Experience Through Roslyn Analyzers & Code Fixes - Part 2](https://www.thinktecture.com/en/net/roslyn-source-generators-analyzers-code-fixes/)\n- [Writing a Roslyn analyzer](https://www.meziantou.net/writing-a-roslyn-analyzer.htm)\n- [Writing language-agnostic Roslyn Analyzers using IOperation](https://www.meziantou.net/writing-a-language-agnostic-roslyn-analyzer-using-ioperation.htm)\n- [Working with types in a Roslyn analyzer](https://www.meziantou.net/working-with-types-in-a-roslyn-analyzer.htm)\n- [Referencing an analyzer from a project](https://www.meziantou.net/referencing-an-analyzer-from-a-project.htm)\n- [Packaging a Roslyn Analyzer with NuGet package references](https://www.meziantou.net/packaging-a-roslyn-analyzer-with-nuget-dependencies.htm)\n- [Multi-targeting a Roslyn analyzer](https://www.meziantou.net/multi-targeting-a-roslyn-analyzer.htm)\n- [Analyzers for ASP.NET Core in .NET 6 ](https://andrewlock.net/exploring-dotnet-6-part-7-analyzers-for-minimal-apis/)\n- [How to configure your custom roslyn analyzer using an .editorconfig file](https://www.mytechramblings.com/posts/configure-roslyn-analyzers-using-editorconfig/)\n- [Exception usage analyzer](https://cezarypiatek.github.io/post/exceptions-usages-analyzer/)\n- [Raising Coding Standards with .NET 6.0 Code Analyzers](https://endjin.com/blog/2022/01/raising-coding-standard-dotnet-analyzers)\n- [Runtime C# Code Compilation Revisited for Roslyn](https://weblog.west-wind.com/posts/2022/Jun/07/Runtime-CSharp-Code-Compilation-Revisited-for-Roslyn)\n- [Finding .NET Transitive Dependencies and Tidying Up Your Project](https://gsferreira.com/archive/2022/finding-dotnet-transitive-dependencies-and-tidying-up-your-project/)\n- [Incremental Roslyn Source Generators In .NET 6: Better Experience Through Roslyn Analyzers & Code Fixes – Part 2](https://www.thinktecture.com/en/net/roslyn-source-generators-analyzers-code-fixes/)\n- [Incremental Roslyn Source Generators In .NET 6: Testing Source Generators, Analyzers & Code Fixes – Part 3](https://www.thinktecture.com/en/net/roslyn-source-generators-analyzers-code-fixes-testing/)\n- [Preventing breaking changes in .NET class libraries](https://medium.com/workleap/preventing-breaking-changes-in-net-class-libraries-e61ae93b1b46)\n- [PREVENT BREAKING CHANGES TO YOUR APIS WITH ROSLYN](https://www.natmarchand.fr/prevent-breaking-changes-apis-roslyn/)\n- [ENSURING THE CORRECTNESS OF YOUR API](https://www.natmarchand.fr/ensuring-correctness-api/)\n- [Track API breaking changes in .net](https://www.drunkonmonads.com/tracking-breaking-changes/)\n- [How to test a Roslyn analyzer](https://www.meziantou.net/how-to-test-a-roslyn-analyzer.htm)\n- [A Tyrant Guide to Code Quality Gates featuring CSharpier, Husky.NET, and SonarCloud](https://nikiforovall.github.io/dotnet/2024/09/14/quality-gates-dotnet.html)\n\n## 📺 Videos\n- [How to write better code in C# using Source Code Analyzers (Roslyn)](https://www.youtube.com/watch?v=K6MyJJSm1MI)\n- [A basic expression evaluator](https://www.youtube.com/watch?v=wgHIkdUQbp0)\n- [Building a Compiler Playlist - Immo Landwerth](https://www.youtube.com/playlist?list=PLRAdsfhKI4OWNOSfS7EUu5GRAVmze1t2y)\n\n## Libraries\n- [KirillOsenkov/RoslynQuoter](https://github.com/KirillOsenkov/RoslynQuoter) - Roslyn tool that for a given C# program shows syntax tree API calls to construct its syntax tree\n- [meziantou/Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) - A Roslyn analyzer to enforce some good practices in C#.\n- [chsienki/kittitas](https://github.com/chsienki/kittitas) - An In-Memory version of the Roslyn compiler that can be used to debug components in the Roslyn pipeline\n- [JosefPihrt/Roslynator](https://github.com/JosefPihrt/Roslynator) - A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.\n- [dotnet/roslyn-analyzers](https://github.com/dotnet/roslyn-analyzers)\n- [Microsoft/vs-threading](https://github.com/Microsoft/vs-threading) - The Microsoft.VisualStudio.Threading is a xplat library that provides many threading and synchronization primitives used in Visual Studio and other applications.\n- [semihokur/AsyncFixer](https://github.com/semihokur/AsyncFixer) - Advanced async/await Diagnostics and CodeFixes for C#\n- [hvanbakel/Asyncify-CSharp](https://github.com/hvanbakel/Asyncify-CSharp) - Visual Studio analyzer to check for potential use of Task Asynchronous Pattern\n- [Fody/Fody](https://github.com/Fody/Fody) - Extensible tool for weaving .net assemblies\n- [xunit/xunit.analyzers](https://github.com/xunit/xunit.analyzers) - Roslyn analyzers for xUnit.net \n- [Suchiman/SerilogAnalyzer](https://github.com/Suchiman/SerilogAnalyzer) - Roslyn-based analysis for code using the Serilog logging library. Checks for common mistakes and usage problems.\n- [NetFabric/NetFabric.Hyperlinq](https://github.com/NetFabric/NetFabric.Hyperlinq) - High performance LINQ implementation with minimal heap allocations. Supports enumerables, async enumerables, arrays and Span<T>.\n- [DotNetAnalyzers/AspNetCoreAnalyzers](https://github.com/DotNetAnalyzers/AspNetCoreAnalyzers)\n- [cezarypiatek/MultithreadingAnalyzer](https://github.com/cezarypiatek/MultithreadingAnalyzer) - A set of Roslyn analyzers related to multithreading\n- [spectresystems/snitch](https://github.com/spectresystems/snitch) - A tool that help you find duplicate transitive package references.\n- [RehanSaeed/EditorConfig](https://github.com/RehanSaeed/EditorConfig) - A very generic .editorconfig file supporting .NET, C#, VB and web technologies.\n- [olsh/stack-exchange-redis-analyzer](https://github.com/olsh/stack-exchange-redis-analyzer) - Roslyn-based analyzer for StackExchange.Redis library\n- [bkoelman/CSharpGuidelinesAnalyzer](https://github.com/bkoelman/CSharpGuidelinesAnalyzer) - Reports diagnostics for C# coding guidelines that are not already covered by Resharper.\n\n## Samples\n- [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet/blob/develop/.editorconfig)\n- [BEagle1984/silverback ](https://github.com/BEagle1984/silverback/blob/master/.editorconfig)\n- [NikiforovAll/quality-gateways-demo-dotnet](https://github.com/NikiforovAll/quality-gateways-demo-dotnet)"
  },
  {
    "path": "docs/routing.md",
    "content": "# Routing\n\n## 📝 Articles\n- [Routing in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-5.0)\n- [Generate Links To ASP.NET Core Map Endpoints](https://khalidabuhakmeh.com/generate-links-to-aspnet-core-map-endpoints)\n- [Getting resource location with CreatedAtAction and CreatedAtRoute action results](https://www.code4it.dev/blog/createdAtRoute-createdAtAction)\n- [Web API Routing](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/)\n- [Routing in ASP.NET Web API](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api)\n- [Routing and Action Selection in ASP.NET Web API](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/routing-and-action-selection)\n- [Attribute Routing in ASP.NET Web API 2](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2)\n- [Create a REST API with Attribute Routing in ASP.NET Web API 2](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/create-a-rest-api-with-attribute-routing)\n- [Inserting middleware between UseRouting() and UseEndpoints() as a library author - Part 1](https://andrewlock.net/inserting-middleware-between-userouting-and-useendpoints-as-a-library-author-part-1/)\n- [Inserting middleware between UseRouting() and UseEndpoints() as a library author - Part 2](https://andrewlock.net/inserting-middleware-between-userouting-and-useendpoints-as-a-library-author-part-2/)\n- [Use ASP.NET Core route-to-code for simple JSON APIs](https://www.daveabrock.com/2020/12/04/migrate-mvc-to-route-to-code/)\n- [Basic JSON APIs with Route-to-code in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/web-api/route-to-code)\n- [Using action results and content negotiation with \"route-to-code\" APIs](https://andrewlock.net/using-action-results-and-content-negotiation-with-route-to-code/)\n- [ASP.NET Core 5 Route to Code: Taking advantage of Microsoft.AspNetCore.Http json extensions](https://anthonygiretti.com/2020/09/29/asp-net-core-5-route-to-code-taking-advantage-of-microsoft-aspnetcore-http-json-extensions/)\n- [ASP.NET Core Endpoints. Add endpoint-enabled middleware by using IEndpointRouteBuilder extension method](https://nikiforovall.github.io/dotnet/aspnetcore/2021/03/23/endpoint-route-builder-extension-pattern.html)\n- [ASP .NET Core Web Application : Routing and Endpoint Internals](https://thecodeblogger.com/2021/05/27/asp-net-core-web-application-routing-and-endpoint-internals/)\n## 📺 Videos\n- [ASP.NET Core Series: Route To Code](https://www.youtube.com/watch?v=j-33Uz32hG0)\n- [ASP.NET Core Series: Endpoint Routing](https://www.youtube.com/watch?v=fSSPEM3e7yY)\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>"
  },
  {
    "path": "docs/rx.md",
    "content": "# Rx.Net\n\n## 📕 Articles\n- [Reactive Extensions (Rx) - Part 1 - Replacing C# Events](https://rehansaeed.com/reactive-extensions-part1-replacing-events/)"
  },
  {
    "path": "docs/security/authentication.md",
    "content": "# Authentication\n\n## 📝 Articles\n- [Introduction to JSON Web Tokens](https://jwt.io/introduction)\n- [JSON Web Tokens](https://auth0.com/docs/secure/tokens/json-web-tokens)\n- [The Hard Parts of JWT Security Nobody Talks About](https://www.pingidentity.com/en/resources/blog/post/jwt-security-nobody-talks-about.html)\n- [Overview of ASP.NET Core authentication](https://docs.microsoft.com/en-us/aspnet/core/security/authentication)\n- [Introduction to Authentication with ASP.NET Core](https://andrewlock.net/introduction-to-authentication-with-asp-net-core/)\n- [.NET 5.0 - Simple API for Authentication, Registration and User Management](https://jasonwatmore.com/post/2021/05/25/net-5-simple-api-for-authentication-registration-and-user-management)\n- [.NET 5.0 API - JWT Authentication with Refresh Tokens](https://jasonwatmore.com/post/2021/06/15/net-5-api-jwt-authentication-with-refresh-tokens)\n- [A look behind the JWT bearer authentication middleware in ASP.NET Core](https://andrewlock.net/a-look-behind-the-jwt-bearer-authentication-middleware-in-asp-net-core/)\n- [Exploring the cookie authentication middleware in ASP.NET Core](https://andrewlock.net/exploring-the-cookieauthenticationmiddleware-in-asp-net-core/)\n- [Getting started with Securing APIs using JWT Bearer Authentication - Hands on](https://referbruv.com/blog/posts/getting-started-with-securing-apis-using-jwt-bearer-authentication-hands-on)\n- [JWT Authentication In ASP.NET Core](https://www.freecodespot.com/blog/jwt-authentication-in-dotnet-core/)\n- [ASP.NET Core Token Authentication Guide](https://stormpath.com/blog/token-authentication-asp-net-core)\n- [Login Web Application using Cookie Authentication in ASP NET Core](https://www.freecodespot.com/blog/cookie-authentication-in-dotnet-core/)\n- [Build Secure ASP.NET Core API with JWT Authentication – Detailed Guide](https://www.codewithmukesh.com/blog/aspnet-core-api-with-jwt-authentication)\n- [Canceling JWT tokens in .NET Core](https://piotrgankiewicz.com/2018/04/25/canceling-jwt-tokens-in-net-core/)\n- [JWT refresh tokens and .NET Core](https://piotrgankiewicz.com/2017/12/07/jwt-refresh-tokens-and-net-core/)\n- [JWT RSA & HMAC + ASP.NET Core](https://piotrgankiewicz.com/2017/07/24/jwt-rsa-hmac-asp-net-core/)\n- [An introduction to the Data Protection system in ASP.NET Core](https://andrewlock.net/an-introduction-to-the-data-protection-system-in-asp-net-core/)\n- [Secure ASP.NET Core Web API using API Key Authentication](http://codingsonata.com/secure-asp-net-core-web-api-using-api-key-authentication/)\n- [Secure ASP.NET Core Web API using JWT Authentication](http://codingsonata.com/secure-asp-net-core-web-api-using-jwt-authentication/)\n- [Introduction to JSON Web Tokens (JWT)](https://www.telerik.com/blogs/introduction-json-web-tokens-jwt)\n- [Introduction to tokens](https://techcommunity.microsoft.com/t5/microsoft-365-pnp-blog/introduction-to-tokens/ba-p/2267853?WT.mc_id=DOP-MVP-5003880)\n- [Token based authentication and Identity framework in ASP.NET Core - Part 1](https://dejanstojanovic.net/aspnet/2018/june/token-based-authentication-in-aspnet-core-part-1/)\n- [JWT Authentication Flow with Refresh Tokens in ASP.NET Core Web API](https://fullstackmark.com/post/19/jwt-authentication-flow-with-refresh-tokens-in-aspnet-core-web-api)\n- [User Authentication and Identity with Angular, Asp.Net Core and IdentityServer](https://fullstackmark.com/post/21/user-authentication-and-identity-with-angular-aspnet-core-and-identityserver)\n- [JWT Authentication with ASP.NET Core 2 Web API, Angular 5, .NET Core Identity and Facebook Login](https://fullstackmark.com/post/13/jwt-authentication-with-aspnet-core-2-web-api-angular-5-net-core-identity-and-facebook-login)\n- [Secure an ASP.NET Core Web Api using Cookies](https://www.blinkingcaret.com/2018/07/18/secure-an-asp-net-core-web-api-using-cookies/)\n- [Secure a Web Api in ASP.NET Core](https://www.blinkingcaret.com/2017/09/06/secure-web-api-in-asp-net-core/)\n- [External Login Providers in ASP.NET Core](https://www.blinkingcaret.com/2017/05/03/external-login-providers-in-asp-net-core/)\n- [.NET 5.0 - JWT Authentication Tutorial with Example API](https://jasonwatmore.com/post/2021/04/30/net-5-jwt-authentication-tutorial-with-example-api)\n- [Build Secure ASP.NET Core API with JWT Authentication – Detailed Guide](https://codewithmukesh.com/blog/aspnet-core-api-with-jwt-authentication/)\n- [Manually validating a JWT using .NET](https://www.jerriepelser.com/blog/manually-validating-rs256-jwt-dotnet/)\n- [Managing Cookie Lifetime with ASP.NET Core OAuth 2.0 providers](https://www.jerriepelser.com/blog/managing-session-lifetime-aspnet-core-oauth-providers/)\n- [Using Roles with the ASP.NET Core JWT middleware](https://www.jerriepelser.com/blog/using-roles-with-the-jwt-middleware/)\n- [Role based JWT Tokens in ASP.NET Core APIs](https://weblog.west-wind.com/posts/2021/Mar/09/Role-based-JWT-Tokens-in-ASPNET-Core)\n- [SECURE AN ANGULAR SPA AND AN ASP.NET CORE API USING AUTH0](https://damienbod.com/2021/05/24/secure-an-angular-spa-and-an-asp-net-core-api-using-auth0/)\n- [ASP.NET Core using Proof Key for Code Exchange (PKCE)](https://www.scottbrady91.com/OpenID-Connect/ASPNET-Core-using-Proof-Key-for-Code-Exchange-PKCE)\n- [JWT Authentication in C# .NET Core example](https://www.thecodebuzz.com/jwt-authentication-in-asp-net-core-3-0-with-examples/)\n- [Get Access token from HttpContext in .NET Core](https://www.thecodebuzz.com/get-access-token-httpcontext-net-core/)\n- [Client Authentication vs. PKCE: Do you need both?](https://www.scottbrady91.com/oauth/client-authentication-vs-pkce)\n- [JWT Auth in ASP.NET Core](https://codeburst.io/jwt-auth-in-asp-net-core-148fb72bed03)\n- [Stop using JWT for sessions](http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/)\n- [Why JWTs Suck as Session Tokens](https://developer.okta.com/blog/2017/08/17/why-jwts-suck-as-session-tokens)\n- [Access Tokens](https://auth0.com/docs/tokens/access-tokens)\n- [ID Tokens](https://auth0.com/docs/tokens/id-tokens)\n- [Token Best Practices](https://auth0.com/docs/best-practices/token-best-practices)\n- [Useful ClaimsPrincipal extension methods I use in my projects](https://www.jerriepelser.com/blog/useful-claimsprincipal-extension-methods/)\n- [Asp.Net Core 5 Rest API Step by Step](https://dev.to/moe23/asp-net-core-5-rest-api-step-by-step-2mb6)\n- [Asp Net Core 5 Rest API Authentication with JWT Step by Step](https://dev.to/moe23/asp-net-core-5-rest-api-authentication-with-jwt-step-by-step-140d)\n- [Secure your ASP.NET Core 2.0 API (part 1 - issuing a JWT)](https://jonhilton.net/2017/10/11/secure-your-asp.net-core-2.0-api-part-1-issuing-a-jwt/)\n- [Secure your ASP.NET Core 2.0 API (part 2 - restrict access to JWT bearers only)](https://jonhilton.net/security/apis/secure-your-asp.net-core-2.0-api-part-2-jwt-bearer-authentication/)\n- [Identify users and their permissions with JWTs and ASP.NET Core WebAPI](https://jonhilton.net/identify-users-permissions-with-jwts-and-asp-net-core-webapi/)\n- [Tackle more complex security policies for your ASP.NET Core app](https://jonhilton.net/complex-aspnet-core-custom-security-policies/)\n- [Securing .NET Core 3 API Using JWT authentication](https://thecodeblogger.com/2020/01/31/securing-net-core-3-api-using-jwt-authentication/)\n- [ASP.NET Core and JSON Web Tokens - where are my claims?](https://mderriey.com/2019/06/23/where-are-my-jwt-claims/)\n- [Jwt Claim Names](https://stackoverflow.com/a/50012477/581476)\n- [Missing Claims in the ASP.NET Core 2 OpenID Connect Handler?](https://leastprivilege.com/2017/11/15/missing-claims-in-the-asp-net-core-2-openid-connect-handler/)\n- [AuthenticationScheme: \"Identity.Application\" was not authenticated](https://github.com/IdentityServer/IdentityServer4/issues/1525)\n- [ASP.NET Core - Protect your API with API Keys](https://josef.codes/asp-net-core-protect-your-api-with-api-keys/)\n- [Web App Security, Understanding the Meaning of the BFF Pattern](https://dev.to/damikun/web-app-security-understanding-the-meaning-of-the-bff-pattern-i85)\n- [Delegation Patterns for OAuth 2.0 using Token Exchange](https://www.scottbrady91.com/oauth/delegation-patterns-for-oauth-20)\n- [PROTECTING LEGACY APIS WITH AN ASP.NET CORE YARP REVERSE PROXY AND AZURE AD OAUTH](https://damienbod.com/2021/01/11/protecting-legacy-apis-with-an-asp-net-core-yarp-reverse-proxy-and-azure-ad-oauth/)\n- [JWT Authentication with Asymmetric Encryption using certificates in ASP.NET Core](https://dev.to/eduardstefanescu/jwt-authentication-with-asymmetric-encryption-using-certificates-in-asp-net-core-2o7e)\n- [JWT Token Claims in ASP.NET Core](https://dev.to/eduardstefanescu/jwt-token-claims-in-asp-net-core-1kk8)\n- [Cookie authentication in ASP.NET Core 2 without ASP.NET Identity](https://www.meziantou.net/cookie-authentication-in-asp-net-core-2-without-asp-net-identity.htm)\n- [JWT authentication with ASP.NET Core](https://www.meziantou.net/jwt-authentication-with-asp-net-core.htm)\n- [Generate self-signed certificates with the .NET CLI](https://docs.microsoft.com/en-us/dotnet/core/additional-tools/self-signed-certificates-guide)\n- [PEM Loading in .NET Core and .NET 5](https://www.scottbrady91.com/c-sharp/pem-loading-in-dotnet-core-and-dotnet)\n- [Import and Export RSA Key Formats in .NET Core 3](https://vcsjones.dev/key-formats-dotnet-3/)\n- [Creating Elliptic Curve Keys using OpenSSL](https://www.scottbrady91.com/openssl/creating-elliptical-curve-keys-using-openssl)\n- [Creating RSA Keys using OpenSSL](https://www.scottbrady91.com/openssl/creating-rsa-keys-using-openssl)\n- [How to Generate a Self-Signed Certificate and Private Key using OpenSSL](https://helpcenter.gsx.com/hc/en-us/articles/115015960428-How-to-Generate-a-Self-Signed-Certificate-and-Private-Key-using-OpenSSL)\n- [How to Custom Authentication Scheme in ASP.NET Core](https://referbruv.com/blog/implementing-custom-authentication-scheme-and-handler-in-aspnet-core-3x/)\n- [The Solution: Easier and More Secure With Authentication Gateways](https://www.angulararchitects.io/aktuelles/the-solution-easier-and-more-secure-with-authentication-gateways/)\n- [Authentication for multiple apps behind a reverse proxy](http://morganridel.fr/authentication-for-multiple-apps-behind-a-reverse-proxy)\n- [Sharing Auth Cookies With YARP, IdentityServer, and ASP.NET Core](https://khalidabuhakmeh.com/sharing-auth-cookies-with-yarp-identityserver-and-aspnet-core)\n- [What's New in .NET 7 for Authentication and Authorization](https://auth0.com/blog/whats-new-in-dotnet-7-for-authentication-and-authorization/)\n- [Authorization for ASP.NET Web APIs](https://auth0.com/blog/aspnet-web-api-authorization/)\n- [Create development-time JWTs using dotnet user-jwts](https://craftbakery.dev/create-jwt-using-dotnet-user-jwts/)\n- [Authorize with a specific scheme in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/authorization/limitingidentitybyscheme/)\n- [JWT authentication improvements & automatic authentication configuration](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-5/#jwt-authentication-improvements-automatic-authentication-configuration)\n- [Test Authorization in ASP.NET Core Web APIs With the user-jwts Tool](https://auth0.com/blog/test-authorization-in-aspnet-core-webapi-with-user-jwts-tool/)\n- [Improvements to auth and identity in ASP.NET Core 8](https://devblogs.microsoft.com/dotnet/improvements-auth-identity-aspnetcore-8/)\n- [ASP.NET Core 8.0 Preview: All New Identity Endpoints](https://jaliyaudagedara.blogspot.com/2023/08/aspnet-core-80-preview-all-new-identity.html)\n- [Can you use the .NET 8 Identity API endpoints with IdentityServer?](https://andrewlock.net/can-you-use-the-dotnet-8-identity-api-endpoints-with-identityserver/)\n- [Can you use the ASP.NET Core Identity API endpoints with OpenIddict?](https://kevinchalet.com/2023/10/04/can-you-use-the-asp-net-core-identity-api-endpoints-with-openiddict/)\n- [.NET 8: What's New for Authentication and Authorization](https://auth0.com/blog/whats-new-dotnet8-authentication-authorization/)\n- [What’s new with identity in .NET 8](https://devblogs.microsoft.com/dotnet/whats-new-with-identity-in-dotnet-8/)\n- [JWT Validation Guide - Okta](https://developer.okta.com/code/dotnet/jwt-validation/)\n- [JWT Validation and Authorization in ASP.NET Core](https://devblogs.microsoft.com/dotnet/jwt-validation-and-authorization-in-asp-net-core/)\n- [Implement ASP.NET Core OpenID Connect OAuth PAR client with Keycloak using .NET Aspire](https://damienbod.com/2024/09/02/implement-asp-net-core-openid-connect-oauth-par-client-with-keycloak-using-net-aspire/)\n- [Using Keycloak in .NET Aspire projects](https://nikiforovall.github.io/dotnet/keycloak/2024/06/02/aspire-support-for-keycloak.html)\n\n## 📹 Videos\n- [ASP.NET Core 3 - Authentication - Ep.1 Basics (Claims/ClaimsIdentity/ClaimsPrincipal/Authorization)](https://www.youtube.com/watch?v=Fhfvbl_KbWo)\n- [ASP.NET Core 3 - Authentication - Ep.2 Identity Authentication](https://www.youtube.com/watch?v=IjbtWPXVJGw)\n- [Secure a .NET Core API with Bearer Authentication](https://www.youtube.com/watch?v=3PyUjOmuFic)\n- [User Registration and Controller Auth | ASP.NET Core 5 REST API Tutorial 10](https://www.youtube.com/watch?v=ARvsBUBioT0)\n- [.NET Core - canceling JWT tokens](https://www.youtube.com/watch?v=Y5ZLhxZtww8)\n- [Restricting endpoints with Claims | ASP.NET Core 5 REST API Tutorial 17](https://www.youtube.com/watch?v=g_8EHDQO4wI)\n- [Setting up ApiKey-based Authentication | ASP.NET Core 5 REST API Tutorial 24](https://www.youtube.com/watch?v=Zo3T_See7iI)\n- [User specific content with JWT claims | ASP.NET Core 5 REST API Tutorial 12](https://www.youtube.com/watch?v=o8dwfI7X16E)\n- [User Login using JWT (Authentication) | ASP.NET Core 5 REST API Tutorial 11](https://www.youtube.com/watch?v=APLjIrZgxyo)\n- [What is a Refresh Token and why your REST API needs it?](https://www.youtube.com/watch?v=-Z57Ss_uiuc)\n- [Refreshing JWTs with Refresh Tokens | ASP.NET Core 5 REST API Tutorial 13](https://www.youtube.com/watch?v=AU0TIOZhGqs)\n- [Setting up JWT support (Authentication) | ASP.NET Core 5 REST API Tutorial 9](https://www.youtube.com/watch?v=M6AkbBaDGJE)\n- [What is a JWT (JSON Web Token) and why your REST API needs it](https://www.youtube.com/watch?v=qDJYgGzmalQ)\n- [ASP.NET Core Security - Frank Liu, Youtube Playlist](https://www.youtube.com/playlist?list=PLgRlicSxjeMOxypAEL2XqIc2m_gPmoVN-)\n- [Deep Dive: Multi-Factor Authentication with .NET 5](https://www.youtube.com/watch?v=sKjpLblZeDQ&t=2s)\n- [Asp Net Core 5 Rest API Authentication with JWT Step by Step](https://www.youtube.com/watch?v=LgpC4tYtc6Y&ab_channel=MohamadLawand)\n- [Intro to JWT - Step by Step](https://www.youtube.com/watch?v=U8HnsWU5zkE&ab_channel=MohamadLawand)\n- [Complete Guide to ASP.NET Core Identity - Authentication and Authorization (2022)](https://www.youtube.com/watch?v=sogS0DtejVA)\n- [Developing Flexible Authorisation Capabilities in ASP NET Core - Jason Taylor - NDC Melbourne 2022](https://www.youtube.com/watch?v=BVJVhceN3N4)\n- [ASP.NET Core Authentication (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=ExQJljpj1lY)\n- [ASP.NET Core JWT Authentication Tutorial (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=8FvN5bhVYxY)\n- [ASP.NET Core External Authentication (OAuth, .NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=PUXpfr1LzPE)\n- [ASP.NET Core OAuth Authorization (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=0uSwPdYOm9k)\n- [ASP.NET Core SPA Authentication Tutorial (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=DpLtCbW_x2I)\n- [ASP.NET Core SSO with Cookie Authentication (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=o6lFWj6ExJs)\n- [ASP.NET Core Custom OAuth Server (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=EBVKlm0wyTE)\n- [ASP.NET Core Refresh Token (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=EC69dEspO64)\n- [ASP.NET Core Cookie Authentication (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=hw2B6SZj8y8)\n- [ASP.NET Core Authentication Schemas (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=N_zVCCpnjXM)\n- [ASP.NET Core Identity Management Guide (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=3_oGxPpSjLw)\n- [ASP.NET Core Dynamic Authorization (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=x7NxbZNboIc)\n\n## 🚀 Samples\n- [blowdart/AspNetAuthenticationWorkshop](https://github.com/blowdart/AspNetAuthenticationWorkshop)\n- [dotnet-labs/JwtAuthDemo](https://github.com/dotnet-labs/JwtAuthDemo) - ASP.NET Core + Angular JWT auth demo; integration tests; login, logout, refresh token, impersonation, authentication, authorization; run on Docker Compose.\n- [iammukeshm/JWTAuthentication.WebApi](https://github.com/iammukeshm/JWTAuthentication.WebApi) - Security is a vital part of any kind of application. Since APIs can expose highly sensitive data like user details, email adressses , it is highly critical that these API endpoints are secured.In this Guide let's build a Secure ASP.NET Core API with JWT Authentication. Read my detailed blog post for implementation.\n- [spetz/jwt-hmac-rsa-aspnet-core-sample](https://github.com/spetz/jwt-hmac-rsa-aspnet-core-sample)\n- [dejanstojanovic/dotnetcore-token-authentication](https://github.com/dejanstojanovic/dotnetcore-token-authentication) - Token based authentication in ASP.NET Core using Identity Framework\n- [mmacneil/AspNetCoreApiStarter](https://github.com/mmacneil/AspNetCoreApiStarter) - An ASP.NET Core (v2.1) Web API project to quickly bootstrap new projects. Includes Identity, JWT authentication w/ refresh tokens.\n- [mmacneil/AngularASPNETCoreOAuth](https://github.com/mmacneil/AngularASPNETCoreOAuth) - Sample project demonstrating user authentication and identity with Angular, Asp.Net Core and IdentityServer4\n- [cornflourblue/aspnet-core-3-signup-verification-api](https://github.com/cornflourblue/aspnet-core-3-signup-verification-api) - ASP.NET Core 3.1 - Boilerplate API with Email Sign Up, Verification, Authentication & Forgot Password\n- [Amitpnk/Onion-architecture-ASP.NET-Core](https://github.com/Amitpnk/Onion-architecture-ASP.NET-Core) - WhiteApp API solution template which is built on Onion Architecture with all essential feature using .NET 5!\n- [manoj-choudhari-git/AspNetCore-Identity](https://github.com/manoj-choudhari-git/AspNetCore-Identity) - .NET Core Web API and Cookie Authentication\n- [blazorhero/CleanArchitecture](https://github.com/blazorhero/CleanArchitecture)\n- [fluentpos/fluentpos](https://github.com/fluentpos/fluentpos) - Open Source Point Of Sales and Inventory Management Solution built with ASP.NET Core 5.0 WebAPI and Angular 12 Material.\n- [cornflourblue/dotnet-5-jwt-refresh-tokens-api](https://github.com/cornflourblue/dotnet-5-jwt-refresh-tokens-api) - .NET 5.0 API - JWT Authentication with Refresh Tokens\n- [cornflourblue/aspnet-core-3-jwt-authentication-api](https://github.com/cornflourblue/aspnet-core-3-jwt-authentication-api) - ASP.NET Core 3.1 JWT Authentication API\n- [joseftw/JOS.ApiKeyAuthentication](https://github.com/joseftw/JOS.ApiKeyAuthentication)\n- [TanvirArjel/JwtAuthenticationInAspNetCore](https://github.com/TanvirArjel/JwtAuthenticationInAspNetCore)\n- [thangchung/bff-auth](https://github.com/thangchung/bff-auth) - The demonstration of modern authentication using BFF pattern\n- [manfredsteyer/yarp-auth-proxy](https://github.com/manfredsteyer/yarp-auth-proxy)\n- [RockSolidKnowledge/TokenExchange](https://github.com/RockSolidKnowledge/TokenExchange) - Token Exchange (RFC 8693) implementation for IdentityServer\n- [damienbod/AspNetCoreYarp](https://github.com/damienbod/AspNetCoreYarp) - ASP.NET Core & Yarp reverse proxy with Azure AD OIDC, OAuth2\n- [pdevito3/heimguard](https://github.com/pdevito3/heimguard) - A small and simple library built to allow you to easily manage permissions in your .NET projects.\n- [StefanescuEduard/JwtAuthentication](https://github.com/StefanescuEduard/JwtAuthentication)\n- [khalidabuhakmeh/YarpReverseProxyFlowThroughAuth](https://github.com/khalidabuhakmeh/YarpReverseProxyFlowThroughAuth) - Using YARP to flow through credentials from IdentityServer to other apps.\n- [NikiforovAll/keycloak-aspire-starter-template](https://github.com/NikiforovAll/keycloak-aspire-starter-template) - Getting started with Keycloak and Aspire\n\n## Libraries\n- [fake-authentication-jwtbearer](https://github.com/webmotions/fake-authentication-jwtbearer) - Simple way to fake an authenticated user for integration test with ASP.Net Core framework\n- [madeyoga/AuthEndpoints](https://github.com/madeyoga/AuthEndpoints) - A simple auth library for Asp.Net 6 that provides a set of web api controllers and minimal api endpoints to handle authentication actions\n- [authelia/authelia](https://github.com/authelia/authelia) - The Single Sign-On Multi-Factor portal for web apps\n- [dmunch/biscuit-net](https://github.com/dmunch/biscuit-net) - .NET implementation of the Biscuit authorization token specification\n- [pdevito3/HeimGuard](https://github.com/pdevito3/HeimGuard) - A simple library that allows you to easily manage permissions in your .NET projects."
  },
  {
    "path": "docs/security/authorization.md",
    "content": "# Authorization\n\n## 📝 Articles\n\n- [Create an ASP.NET Core web app with user data protected by authorization](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/secure-data)\n- [ASP.NET Core Identity Roles based Authorization](https://procodeguide.com/programming/asp-net-core-identity-roles-authorization/)\n- [Role-based authorization in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles)\n- [Policy-based authorization in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies)\n- [Claims-based authorization in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/claims)\n- [Resource-based authorization in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/resourcebased)\n- [Authorize with a specific scheme in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/limitingidentitybyscheme)\n- [ASP.NET Core - Claims Based Authentication: Claims vs Identities vs Principals](https://eddieabbondanz.io/post/aspnet/claims-based-authentication-claims-identities-principals/)\n- [Role-based and Claims-based Authorization in ASP.NET Core using Policies - Hands on](https://referbruv.com/blog/posts/role-based-and-claims-based-authorization-in-aspnet-core-using-policies-hands-on)\n- [Implementing Policy-Based Authorization in ASP.NET Core - Getting Started](https://referbruv.com/blog/posts/implementing-policy-based-authorization-in-aspnet-core-getting-started)\n- [Policy-based Authorization in ASP.NET Core – A Deep Dive](https://www.red-gate.com/simple-talk/dotnet/c-programming/policy-based-authorization-in-asp-net-core-a-deep-dive/)\n- [ASP.NET Core Identity Claims based Authorization](https://procodeguide.com/programming/asp-net-core-identity-claims/)\n- [Customizing Authorization Responses in .NET 5.0](https://benfoster.io/blog/customize-authorization-response-aspnet-core/)\n- [Claim based Authorization in Asp.Net Core](http://blog.geveo.com/Claim-based-authorization-ASP-core)\n- [Episode 019 - Roles, claims and policies - ASP.NET Core: From 0 to overkill](https://blog.codingmilitia.com/2019/04/29/aspnet-019-from-zero-to-overkill-roles-claims-policies/)\n- [Creating Authorization Policies dynamically with ASP.NET Core](https://www.jerriepelser.com/blog/creating-dynamic-authorization-policies-aspnet-core/)\n- [Useful ClaimsPrincipal extension methods I use in my projects](https://www.jerriepelser.com/blog/useful-claimsprincipal-extension-methods/)\n- [Filter user records using Global Query Filters](https://www.jerriepelser.com/blog/filter-user-records-using-global-query-filter/)\n- [Access the JWT bearer token when using the JWT middleware in ASP.NET Core](https://www.jerriepelser.com/blog/aspnetcore-jwt-saving-bearer-token-as-claim/)\n- [Using Roles with the ASP.NET Core JWT middleware](https://www.jerriepelser.com/blog/using-roles-with-the-jwt-middleware/)\n- [Authorization for ASP.NET Web APIs](https://auth0.com/blog/aspnet-web-api-authorization/)\n- [Using a middleware to build a permission-based identity in ASP.NET Core](https://blog.joaograssi.com/posts/2021/asp-net-core-permission-based-authorization-middleware/)\n- [Deep dive into policy-based authorization in ASP.NET Core](https://blog.joaograssi.com/posts/2021/asp-net-core-deep-dive-policy-based-authorization/)\n- [Protecting your API endpoints with dynamic policies in ASP.NET Core](https://blog.joaograssi.com/posts/2021/asp-net-core-protecting-api-endpoints-with-dynamic-policies)\n- [Creating a Basic Authorization Pipeline with MediatR and ASP.NET Core](https://medium.com/@austin.davies0101/creating-a-basic-authorization-pipeline-with-mediatr-and-asp-net-core-c257fe3cc76b)\n- [Handling Authorization In Clean Architecture with ASP.NET Core and MediatR](https://levelup.gitconnected.com/handling-authorization-in-clean-architecture-with-asp-net-core-and-mediatr-6b91eeaa4d15)\n- [Tackle more complex security policies for your ASP.NET Core app](https://jonhilton.net/complex-aspnet-core-custom-security-policies/)\n- [Setting global authorization policies using the DefaultPolicy and the FallbackPolicy in ASP.NET Core 3.x](https://andrewlock.net/setting-global-authorization-policies-using-the-defaultpolicy-and-the-fallbackpolicy-in-aspnet-core-3/)\n- [Introduction to Authorisation in ASP.NET Core](https://andrewlock.net/introduction-to-authorisation-in-asp-net-core/)\n- [Custom authorisation policies and requirements in ASP.NET Core](https://andrewlock.net/custom-authorisation-policies-and-requirements-in-asp-net-core/)\n- [Global Authorization Filter in .Net Core: .Net Core Security Part – V](https://neelbhatt.com/2018/03/23/global-authorization-filter-in-net-core-net-core-security-part-v/)\n- [Simplifying User and Role Based Permissions in .NET](https://wrapt.dev/blog/simplifying-user-and-role-based-permissions-in-dotnet)\n\n## 📹 Videos\n- [ASP.NET Core 3 - Authentication - Ep.3 Authorization (All about Policies and Claims)](https://www.youtube.com/watch?v=RBMO_hruKaI)\n- [Implementing authorization in web applications and APIs - Dominick Baier & Brock Allen](https://www.youtube.com/watch?v=EJeZ3YNnqz8)\n- [ASP.NET Core Security - Frank Liu, Youtube Playlist](https://www.youtube.com/playlist?list=PLgRlicSxjeMOxypAEL2XqIc2m_gPmoVN-)\n- [Dominick Baier - Authorization for Modern Applications @ DevConf 2018](https://www.youtube.com/watch?v=Dlrf85NTuAU)\n- [ASP.NET Core Dynamic Authorization (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=x7NxbZNboIc)\n## 🚀 Samples\n- [joaopgrassi/authz-custom-middleware](https://github.com/joaopgrassi/authz-custom-middleware)\n- [blowdart/AspNetAuthorizationWorkshop](https://github.com/blowdart/AspNetAuthorizationWorkshop)\n"
  },
  {
    "path": "docs/security/dotnet-identity.md",
    "content": "\n# .Net Core Identity\n\n## 📝 Articles\n\n- [ASP.NET Core Identity – Getting Started](https://procodeguide.com/programming/asp-net-core-identity/)\n- [Overview of ASP.NET Core authentication](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/)\n- [Introduction to Identity on ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity)\n- [Identity model customization in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/customize-identity-model)\n- [Make secure .NET Microservices and Web Applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/secure-net-microservices-web-applications/)\n- [ASP NET Core Identity Tutorial](https://www.tektutorialshub.com/asp-net-core/asp-net-core-identity-tutorial/)\n- [Login and Registration using Identity in ASP.NET Core 3.1](https://www.freecodespot.com/blog/asp-net-core-identity/)\n- [Custom User Management in ASP.NET Core MVC with Identity](https://codewithmukesh.com/blog/user-management-in-aspnet-core-mvc/)\n- [ASP.NET Core Identity with Patterns (Part 1 of 3)](https://timschreiber.com/2018/05/07/aspnet-core-identity-with-patterns/)\n- [ASP.NET Core Identity with Patterns (Part 2 of 3)](https://timschreiber.com/2018/05/07/aspnet-core-identity-with-patterns-2/)\n- [Building ASP.NET Core Web APIs with Clean Architecture](https://fullstackmark.com/post/18/building-aspnet-core-web-apis-with-clean-architecture)\n- [Scaffold Your Clean DDD Web Application - Part 2: Authentication and Identity](https://blog.jacobsdata.com/2020/09/15/scaffold-your-clean-ddd-web-application-part-2-authentication-and-identity)\n- [Identity model customization in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/customize-identity-model)\n- [Introduction to Identity on ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity)\n- [Add, download, and delete custom user data to Identity in an ASP.NET Core project](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/add-user-data)\n- [Configure ASP.NET Core Identity](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-configuration)\n- [Authentication and authorization for SPAs](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-api-authorization)\n- [User Authentication and Identity with Angular, Asp.Net Core and IdentityServer](https://fullstackmark.com/post/21/user-authentication-and-identity-with-angular-aspnet-core-and-identityserver)\n- [How To Use ASP.NET Identity And IdentityServer4 In Your Solution](https://feras.blog/how-to-use-asp-net-identity-and-identityserver4-in-your-solution/)\n- [How to Setup and Configure ASP.NET Core Identity](https://www.yogihosting.com/aspnet-core-identity-setup/)\n- [How to work with Roles in ASP.NET Core Identity](https://www.yogihosting.com/aspnet-core-identity-roles/)\n- [How to work with Policies in ASP.NET Core Identity](https://www.yogihosting.com/aspnet-core-identity-policies/)\n- [How to do Authentication of Users in ASP.NET Core Identity](https://www.yogihosting.com/aspnet-core-identity-authentication/)\n- [Two-Factor Authentication in ASP.NET Core Identity](https://www.yogihosting.com/aspnet-core-identity-two-factor-authentication/)\n- [Custom storage providers for ASP.NET Core Identity](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-custom-storage-providers)\n- [Identity Manager using ASP.NET Identity](https://www.scottbrady91.com/ASPNET-Identity/Identity-Manager-using-ASPNET-Identity)\n- [Implementing Medium's Passwordless Authentication using ASP.NET Core Identity](https://www.scottbrady91.com/ASPNET-Identity/Implementing-Mediums-Passwordless-Authentication-using-ASPNET-Core-Identity)\n- [Getting Started with IdentityManager2](https://www.scottbrady91.com/ASPNET-Identity/Getting-Started-with-IdentityManager2)\n- [Claim based Authorization in Asp.Net Core](http://blog.geveo.com/Claim-based-authorization-ASP-core)\n- [Episode 019 - Roles, claims and policies - ASP.NET Core: From 0 to overkill](https://blog.codingmilitia.com/2019/04/29/aspnet-019-from-zero-to-overkill-roles-claims-policies/)\n- [JWT Authentication Flow with Refresh Tokens in ASP.NET Core Web API](https://fullstackmark.com/post/19/jwt-authentication-flow-with-refresh-tokens-in-aspnet-core-web-api)\n- [ASP.NET Identity Core From Scratch](https://www.blinkingcaret.com/2016/11/30/asp-net-identity-core-from-scratch/)\n- [.NET Core 2.1 Identity get all users with their associated roles](https://stackoverflow.com/questions/51004516/net-core-2-1-identity-get-all-users-with-their-associated-roles)\n- [ASP.NET Identity Lockout](https://www.jamessturtevant.com/posts/ASPNET-Identity-Lockout/)\n- [How to include Roles in IdentityUser?](https://github.com/aspnet/Identity/issues/1361#issuecomment-348863959)\n- [User Lockout in ASP.NET Core Identity](https://www.yogihosting.com/aspnet-core-identity-user-lockout/)\n- [Scaffold Identity in ASP.NET Core projects](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity)\n- [Customising ASP.NET Core Identity EF Core naming conventions for PostgreSQL](https://andrewlock.net/customising-asp-net-core-identity-ef-core-naming-conventions-for-postgresql/)\n- [ASP.NET Core 8.0 Preview: All New Identity Endpoints](https://jaliyaudagedara.blogspot.com/2023/08/aspnet-core-80-preview-all-new-identity.html)\n- [Introducing the Identity API endpoints Exploring the .NET 8 preview - Part 8](https://andrewlock.net/exploring-the-dotnet-8-preview-introducing-the-identity-api-endpoints/)\n- [Should you use the .NET 8 Identity API endpoints?](https://andrewlock.net/should-you-use-the-dotnet-8-identity-api-endpoints/)\n- [Can you use the .NET 8 Identity API endpoints with IdentityServer?](https://andrewlock.net/can-you-use-the-dotnet-8-identity-api-endpoints-with-identityserver/)\n- [Can you use the ASP.NET Core Identity API endpoints with OpenIddict?](https://kevinchalet.com/2023/10/04/can-you-use-the-asp-net-core-identity-api-endpoints-with-openiddict/)\n- [What’s new with identity in .NET 8](https://devblogs.microsoft.com/dotnet/whats-new-with-identity-in-dotnet-8/)\n\n## Videos\n- [Complete Guide to ASP.NET Core Identity - Authentication and Authorization (2022)](https://www.youtube.com/watch?v=sogS0DtejVA)\n- [ASP.NET Core Security Playlist - Frank Liu](https://www.youtube.com/playlist?list=PLgRlicSxjeMOxypAEL2XqIc2m_gPmoVN-)\n- [Secure minimal APIs with .NET 6 and Microsoft Identity](https://www.youtube.com/watch?v=ucj8hajOorg)\n- [ASP.NET Core Identity Management Guide (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=3_oGxPpSjLw)\n## 🚀 Samples\n\n- [CustomUserManagement.MVC](https://github.com/iammukeshm/CustomUserManagement.MVC) - Let’s go in-depth and understand the functionalities you can achieve with the help of Microsoft Identity. We will build a small yet practical implementation of Custom User Management in ASP.NET Core MVC with Identity.\n- [IdentityManager/IdentityManager2](https://github.com/IdentityManager/IdentityManager2) - Development tool for administering users and roles\n- [IdentityManager/IdentityManager2.AspNetIdentity](https://github.com/IdentityManager/IdentityManager2.AspNetIdentity)\n- [scottbrady91/IdentityManager2-Example](https://github.com/scottbrady91/IdentityManager2-Example)\n- [matteofabbri/AspNetCore.Identity.Mongo](https://github.com/matteofabbri/AspNetCore.Identity.Mongo) - This is a MongoDB provider for the ASP.NET Core 2 Identity framework\n- [gustavobigardi/IdentityServer.BlazorAdmin](https://github.com/gustavobigardi/IdentityServer.BlazorAdmin) - Identity Server AdminUI using Blazor.\n- [timschreiber/ASP.NET-Core-Identity-Example](https://github.com/timschreiber/ASP.NET-Core-Identity-Example) - Source code for my ASP.NET Core Identity tutorial\n- [mmacneil/CleanAspNetCoreWebApi](https://github.com/mmacneil/CleanAspNetCoreWebApi) - Starter project for creating APIs built on ASP.NET Core using clean architecture.\n- [kimcu-on-thenet/dnc-identity-identityserver](https://github.com/kimcu-on-thenet/dnc-identity-identityserver) - An example of IdentityServer4 and ASP.NET Identity, Ocelot and Consul\n- [NetDevPack/Security.Identity](https://github.com/NetDevPack/Security.Identity) - .NET DevPack Identity is a set of common implementations to help you implementing Identity, Jwt, claims validation and another facilities\n- [aruss/IdentityBase](https://github.com/aruss/IdentityBase) - IdentityBase is a Universal Identity Platform for web, mobile and IoT built on top of IdentityServer.\n- [kevinrjones/SettingUpIdentityServer](https://github.com/kevinrjones/SettingUpIdentityServer)\n- [cloudscribe/cloudscribe](https://github.com/cloudscribe/cloudscribe) - ASP.NET Core multi-tenant web application foundation with management for sites, users, roles, claims and more\n- [Daniel-Krzyczkowski/Lost-In-Azure-Cloud-Identity](https://github.com/Daniel-Krzyczkowski/Lost-In-Azure-Cloud-Identity) - Tech Mind Factory Identity is a demo project to present how to use identity services available in the Azure cloud.\n- [mmacneil/AspNetCoreApiStarter](https://github.com/mmacneil/AspNetCoreApiStarter) - An ASP.NET Core (v2.1) Web API project to quickly bootstrap new projects. Includes Identity, JWT authentication w/ refresh tokens.\n- [dejanstojanovic/dotnetcore-token-authentication](https://github.com/dejanstojanovic/dotnetcore-token-authentication) - Token based authentication in ASP.NET Core using Identity Framework\n- [manoj-choudhari-git/AspNetCore-Identity](https://github.com/manoj-choudhari-git/AspNetCore-Identity) - .NET Core Web API and Cookie Authentication\n- [dotnet-labs/JwtAuthDemo](https://github.com/dotnet-labs/JwtAuthDemo/) - ASP.NET Core + Angular JWT auth demo; integration tests; login, logout, refresh token, impersonation, authentication, authorization; run on Docker Compose\n- [blazorhero/CleanArchitecture](https://github.com/blazorhero/CleanArchitecture)\n- [VirtoCommerce/vc-platform](https://github.com/VirtoCommerce/vc-platform)\n- [fluentpos/fluentpos](https://github.com/fluentpos/fluentpos) - Open Source Point Of Sales and Inventory Management Solution built with ASP.NET Core 5.0 WebAPI and Angular 12 Material.\n- [kalintsenkov/BettingSystem](https://github.com/kalintsenkov/BettingSystem) - ASP.NET Core | Domain-Driven Design | Clean Architecture\n- [TanvirArjel/CleanArchitecture](https://github.com/TanvirArjel/CleanArchitecture)\n- [damikun/trouble-training](https://github.com/damikun/trouble-training/blob/main/Doc/Identity.md) - FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend.\n"
  },
  {
    "path": "docs/security/encryption.md",
    "content": "# Encryption And Data Protection\n\n## 📝 Articles\n\n- [Symmetric and Asymmetric Encryption in .NET Core](https://damienbod.com/2020/08/19/symmetric-and-asymmetric-encryption-in-net-core/)\n- [ENCRYPTING TEXTS FOR AN IDENTITY IN ASP.NET CORE RAZOR PAGES USING AES AND RSA](https://damienbod.com/2020/08/22/encrypting-texts-for-an-identity-in-asp-net-core-razor-pages-using-aes-and-rsa/)\n- [USING DIGITAL SIGNATURES TO CHECK INTEGRITY OF CIPHER TEXTS IN ASP.NET CORE RAZOR PAGES](https://damienbod.com/2020/09/01/using-digital-signatures-to-check-integrity-of-cipher-texts-in-asp-net-core-razor-pages/)\n- [Configure ASP.NET Core Data Protection](https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview)\n- [An introduction to the Data Protection system in ASP.NET Core](https://andrewlock.net/an-introduction-to-the-data-protection-system-in-asp-net-core/)\n- [Import and Export RSA Key Formats in .NET Core 3](https://vcsjones.dev/key-formats-dotnet-3/)\n- [PEM Loading in .NET Core and .NET 5](https://www.scottbrady91.com/c-sharp/pem-loading-in-dotnet-core-and-dotnet)\n- [Creating Elliptic Curve Keys using OpenSSL](https://www.scottbrady91.com/openssl/creating-elliptical-curve-keys-using-openssl)\n- [Creating RSA Keys using OpenSSL](https://www.scottbrady91.com/openssl/creating-rsa-keys-using-openssl)\n- [How to Generate a Self-Signed Certificate and Private Key using OpenSSL](https://helpcenter.gsx.com/hc/en-us/articles/115015960428-How-to-Generate-a-Self-Signed-Certificate-and-Private-Key-using-OpenSSL)\n- [OpenSSL: Working with SSL Certificates, Private Keys and CSRs](https://dynacont.net/documentation/linux/openssl/)"
  },
  {
    "path": "docs/security/identity-server.md",
    "content": "# Identity Server\n\n## 📕 Articles\n\n- [The OpenID Connect (OIDC) Architecture Map](https://techcommunity.microsoft.com/t5/azure-developer-community-blog/the-openid-connect-oidc-architecture-map/ba-p/1119450)\n- [🔑 OAuth 2.0 flows explained in GIFs](https://dev.to/hem/oauth-2-0-flows-explained-in-gifs-2o7a)\n- [User Authentication and Identity with Angular, Asp.Net Core and IdentityServer](https://fullstackmark.com/post/21/user-authentication-and-identity-with-angular-aspnet-core-and-identityserver)\n- [How To Use ASP.NET Identity And IdentityServer4 In Your Solution](https://feras.blog/how-to-use-asp-net-identity-and-identityserver4-in-your-solution/)\n- [Make secure .NET Microservices and Web Applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/secure-net-microservices-web-applications/)\n- [Episode 021 - Integrating IdentityServer4 - Part 1 - Overview - ASP.NET Core: From 0 to overkill](https://blog.codingmilitia.com/2019/05/29/aspnet-021-from-zero-to-overkill-integrating-identityserver4-part1-overview/)\n- [Episode 022 - Integrating IdentityServer4 - Part 2 - Auth Service - ASP.NET Core: From 0 to overkill](https://blog.codingmilitia.com/2019/06/13/aspnet-022-from-zero-to-overkill-integrating-identityserver4-part2-auth-service/)\n- [Securing ASP.NET Core APIs with IdentityServer4 - Getting Started](https://referbruv.com/blog/posts/securing-aspnet-core-apis-with-identityserver4-getting-started)\n- [Implementing Authorization Code Grant using IdentityServer4 with PKCE](https://referbruv.com/blog/posts/implementing-authorization-code-grant-using-identityserver4-with-pkce)\n- [Implementing ClientCredentials Grant Flow using IdentityServer4](https://referbruv.com/blog/posts/implementing-clientcredentials-grant-flow-using-identityserver4)\n- [Implementing User Authentication in Angular using IdentityServer4](https://referbruv.com/blog/posts/implementing-user-authentication-in-angular-using-identityserver4)\n- [Implementing Resource Owner Password Credentials (ROPC) using IdentityServer4](https://referbruv.com/blog/posts/implementing-resource-owner-password-credentials-(ropc)-using-identityserver4)\n- [ASP.NET Core 6 and authentication servers: the real bait and switch is not the one you think](https://kevinchalet.com/2021/05/24/asp-net-core-6-and-authentication-servers-the-real-bait-and-switch-is-not-the-one-you-think/)\n- [IdentityServer with ASP.NET Core Identity and MongoDB as Database](https://www.yogihosting.com/identityserver-aspnet-core-identity-mongodb-database/)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 1](https://fullstackmark.com/post/22/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-1)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 2](https://fullstackmark.com/post/23/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-2)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 3](https://fullstackmark.com/post/24/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-3)\n- [Build an Authenticated GraphQL App with Angular, ASP.NET Core and IdentityServer - Part 4](https://fullstackmark.com/post/25/build-an-authenticated-graphql-app-with-angular-aspnet-core-and-identityserver-part-4)\n- [Getting Started with IdentityServer4 and Duende IdentityServer](https://www.scottbrady91.com/identity-server/getting-started-with-identityserver-4)\n- [API Resources](https://docs.duendesoftware.com/identityserver/v5/fundamentals/resources/api_resources/)\n- [Identity Resources](https://docs.duendesoftware.com/identityserver/v5/fundamentals/resources/identity/)\n- [API Scopes](https://docs.duendesoftware.com/identityserver/v5/fundamentals/resources/api_scopes/)\n- [IdentityServer4, OAuth, OpenID Connect Series](https://code-maze.com/identityserver-4-series/)\n- [Fair Trade Software License](https://blog.duendesoftware.com/posts/20220111_fair_trade/)\n- [Using Duende BFF with React](https://wrapt.dev/blog/using-duende-bff-with-react)\n- [Securing SPAs using the BFF Pattern (once and for all)](https://blog.duendesoftware.com/posts/20210326_bff/)\n## 📺 Videos\n\n- [Creating your First IdentityServer4 Solution](https://www.youtube.com/watch?v=HJQ2-sJURvA&t=218s)\n- [How to add ASP.NET Identity and Entity Framework Support for your IdentityServer4 Solution](https://www.youtube.com/watch?v=Sw1rScI20xM)\n- [How to Setup FIDO2 for IdentityServer4](https://www.youtube.com/watch?v=j-QjTvBnEn4)\n- [How to Setup FIDO2 for ASP.NET Identity](https://www.youtube.com/watch?v=8rO6c3CLg48)\n- [Configure ASP.NET Identity with Identity Server 4 | Tutorial Part 1](https://www.youtube.com/watch?v=SXJ377G5bOg)\n- [Getting Started with Duende IdentityServer (1/2)](https://www.youtube.com/watch?v=DUujxWdnl3M)\n- [Getting Started with Duende IdentityServer (2/2)](https://www.youtube.com/watch?v=qyedQ6RzOHw)\n- [Using Duende IdentityServer with Entity Framework and ASP.Net Identity](https://www.youtube.com/watch?v=eLRGlnGGUQs)\n## 🔖 Samples\n- [mmacneil/fullstack-jobs](https://github.com/mmacneil/fullstack-jobs) - Real(ish) demo using Angular with ASP.NET Core GraphQL and IdentityServer.\n- [SettingUpIdentityServer](https://github.com/kevinrjones/SettingUpIdentityServer)\n- [dnc-identity-identityserver](https://github.com/kimcu-on-thenet/dnc-identity-identityserver) - An example of IdentityServer4 and ASP.NET Identity, Ocelot and Consul\n- [run-aspnet-identityserver4](https://github.com/aspnetrun/run-aspnet-identityserver4) - Secure microservices with using standalone Identity Server 4 and backing with Ocelot API Gateway. Protect our ASP.NET Web MVC and API applications with using OAuth 2 and OpenID Connect in IdentityServer4. Securing your web application and API with tokens, working with claims, authentication and authorization middlewares and applying policies.\n- [TheIdServer](https://github.com/Aguafrommars/TheIdServer) - OpenID/Connect server based on IdentityServer4\n- [Identity-Service](https://github.com/INNVTV/Identity-Service) - Identity-As-A-Service written from scratch in .Net Core using a CQRS architecture with a CosmosDB/Redis persistence layer and RSA signed JWT Tokens with public key distribution for authentication and claims.\n- [AspNet5IdentityServerAngularImplicitFlow](https://github.com/damienbod/AspNet5IdentityServerAngularImplicitFlow) - OpenID Connect Code / Implicit Flow with Angular and ASP.NET Core 5 IdentityServer4\n- [IdentityServer4AspNetCoreIdentityTemplate](https://github.com/damienbod/IdentityServer4AspNetCoreIdentityTemplate) - An ASP.NET Core 3.1 IdentityServer4 Identity Bootstrap 4 template with localization\t\n- [JPProject.IdentityServer4.SSO](https://github.com/brunohbrito/JPProject.IdentityServer4.SSO) - 🔒 ASP.NET Core 3.1 Open Source SSO. Built within IdentityServer4 🔑\n- [JPProject.IdentityServer4.AdminUI](https://github.com/brunohbrito/JPProject.IdentityServer4.AdminUI) - 🔧 ASP.NET Core 3 & Angular 8 Administration Panel for 💞IdentityServer4 and ASP.NET Core Identity\n- [skoruba/IdentityServer4.Admin](https://github.com/skoruba/IdentityServer4.Admin) - The administration for the IdentityServer4 and Asp.Net Core Identity\n- [IdentityServer.BlazorAdmin](https://github.com/gustavobigardi/IdentityServer.BlazorAdmin) - Identity Server AdminUI using Blazor.\t\n- [IdentityManager2](https://github.com/IdentityManager/IdentityManager2) - Development tool for administering users and roles\n- [Duende.IdentityServer.Admin](https://github.com/skoruba/Duende.IdentityServer.Admin) - The administration for the Duende IdentityServer and Asp.Net Core Identity ⚡\n- [eShopOnContainers/Identity.API](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/src/Services/Identity/Identity.API)\n- [cloudscribe/cloudscribe](https://github.com/cloudscribe/cloudscribe) - ASP.NET Core multi-tenant web application foundation with management for sites, users, roles, claims and more\n- [DuendeSoftware/BFF](https://github.com/DuendeSoftware/BFF) - Framework for ASP.NET Core to secure SPAs using the Backend-for-Frontend (BFF) pattern\n- [KevinDockx/BlazorWASMSecurityBestPractices](https://github.com/KevinDockx/BlazorWASMSecurityBestPractices) - Sample showing a best practice security approach for Blazor WASM apps via the BFF pattern\n- [simpleidserver/SimpleIdServer](https://github.com/simpleidserver/SimpleIdServer) - OpenID, OAuth 2.0, SCIM2.0, UMA2.0, FAPI, CIBA & OPENBANKING Framework for ASP.NET Core\n- [damikun/trouble-training](https://github.com/damikun/trouble-training/blob/main/Doc/Identity.md) - FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend.\n- [PeterBjorck/course-identity-server-in-prod](https://github.com/PeterBjorck/course-identity-server-in-prod)"
  },
  {
    "path": "docs/security/masl.md",
    "content": "# MSAL\n\n## 📹 Videos\n\n- [What is MSAL + Microsoft.Identity.Web](https://channel9.msdn.com/Shows/On-NET/What-is-MSAL--MicrosoftIdentityWeb)\n- [On .NET Live - Securing Web APIs with Microsoft.Identity.Web](https://www.youtube.com/watch?v=P25SIYLsH-g)\n\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>"
  },
  {
    "path": "docs/security/oauth-opencid.md",
    "content": "# OAuth & OpenID Connect\n\n## 📕 Articles\n- [OAuth Vs. OpenID? Which is better?](https://www.securew2.com/blog/oauth-vs-openid-which-is-better) ⭐\n- [What is OAuth 2.0?](https://curity.io/resources/learn/oauth-overview/) ⭐\n- [Implementing an OpenIddict Authorization server: A Basic Authorization Server](https://www.jerriepelser.com/blog/implementing-openiddict-authorization-server-part-1/)\n- [Implementing an OpenIddict Authorization server: Social Login with GitHub](https://www.jerriepelser.com/blog/implementing-openiddict-authorization-server-part-2/)\n- [An introduction to the ASP.NET 5 Generic OAuth Provider](https://www.jerriepelser.com/blog/introduction-to-aspnet5-generic-oauth-provider/)\n- [Advanced configuration in the ASP.NET 5 Generic OAuth Provider](https://www.jerriepelser.com/blog/advanced-configuration-in-the-aspnet5-generic-oauth-provider/)\n- [Authenticate with OAuth 2.0 in ASP.NET Core 2.0](https://www.jerriepelser.com/blog/authenticate-oauth-aspnet-core-2/)\n- [Accessing the OIDC tokens in ASP.NET Core 2.0](https://www.jerriepelser.com/blog/accessing-tokens-aspnet-core-2/)\n- [Overriding the NameClaimType when using the ASP.NET Core OpenID Connect middleware](https://www.jerriepelser.com/blog/overriding-name-claimtype-aspnetcore-oidc/)\n- [Adding parameters to the OpenID Connect Authorization URL](https://www.jerriepelser.com/blog/adding-parameters-to-openid-connect-authorization-url/)\n- [Managing Cookie Lifetime with ASP.NET Core OAuth 2.0 providers](https://www.jerriepelser.com/blog/managing-session-lifetime-aspnet-core-oauth-providers/)\n- [Setting up an Authorization Server with OpenIddict - Part I - Introduction](https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-i-introduction-4jid) ⭐\n- [Setting up an Authorization Server with OpenIddict - Part II - Create ASPNET project](https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-ii-create-aspnet-project-4949) ⭐\n- [Setting up an Authorization Server with OpenIddict - Part III - Client Credentials Flow](https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-iii-client-credentials-flow-55lp) ⭐\n- [Setting up an Authorization Server with OpenIddict - Part IV - Authorization Code Flow](https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-iv-authorization-code-flow-3eh8) ⭐\n- [Setting up an Authorization Server with OpenIddict - Part V - OpenID Connect](https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-v-openid-connect-a8j) ⭐\n- [Setting up an Authorization Server with OpenIddict - Part VI - Refresh tokens](https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-vi-refresh-tokens-5669) ⭐\n- [An introduction to OAuth 2.0 using Facebook in ASP.NET Core](https://andrewlock.net/an-introduction-to-oauth-2-using-facebook-in-asp-net-core/)\n- [An introduction to OpenID Connect in ASP.NET Core](https://andrewlock.net/an-introduction-to-openid-connect-in-asp-net-core/)\n- [Add Login Using the Authorization Code Flow with PKCE](https://auth0.com/docs/flows/add-login-using-the-authorization-code-flow-with-pkce)\n- [OAuth Code Flow](https://curity.io/resources/learn/oauth-code-flow/) ⭐\n- [OAuth Implicit Flow](https://curity.io/resources/learn/oauth-implicit-flow/) ⭐\n- [OIDC Hybrid Flow](https://curity.io/resources/learn/oauth-hybrid-flow/) ⭐\n- [Client Credentials Flow](https://curity.io/resources/learn/client-credentials/) ⭐\n- [OAuth Client Credentials Flow](https://curity.io/resources/learn/oauth-client-credentials-flow/)\n- [Resource Owner Password Flow](https://curity.io/resources/learn/ropc/) ⭐\n- [Resource Owner Password Flow](https://curity.io/resources/learn/ropc/)\n- [Authorization Code Flow](https://auth0.com/docs/flows/authorization-code-flow) \n- [Delegation Patterns for OAuth 2.0 using Token Exchange](https://www.scottbrady91.com/oauth/delegation-patterns-for-oauth-20)\n- [IMPLEMENTING OPENID CODE FLOW WITH PKCE USING OPENIDDICT AND ANGULAR](https://damienbod.com/2017/04/11/implementing-openid-implicit-flow-using-openiddict-and-angular/)\n- [Using Duende BFF with React](https://wrapt.dev/blog/using-duende-bff-with-react)\n- [Securing SPAs using the BFF Pattern (once and for all)](https://blog.duendesoftware.com/posts/20210326_bff/)\n- [Microsoft identity platform and implicit grant flow](https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow)\n\n## 📺 Videos\n- [OAuth 2.0 and OpenID Connect (in plain English)](https://www.youtube.com/watch?v=996OiexHze0)\n- [SECURING OAUTH BEARER TOKENS FROM MULTIPLE IDENTITY PROVIDERS IN AN ASP.NET CORE API](https://damienbod.com/2021/05/17/securing-multiple-identity-provider-oauth-bearer-tokens-in-an-asp-net-core-api/)\n- [SECURING MULTIPLE AUTH0 APIS IN ASP.NET CORE USING OAUTH BEARER TOKENS](https://damienbod.com/2021/04/19/securing-multiple-auth0-apis-in-asp-net-core-using-oauth-bearer-tokens/)\n- [ASP.NET Core OAuth Authorization (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=0uSwPdYOm9k)\n- [ASP.NET Core External Authentication (OAuth, .NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=PUXpfr1LzPE)\n- [ASP.NET Core Custom OAuth Server (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=EBVKlm0wyTE)\n## Libraries\n- [openiddict/openiddict-core](https://github.com/openiddict/openiddict-core) - Versatile OpenID Connect stack for ASP.NET Core 2.1/3.1/5.0 and Microsoft.Owin 4.1 (compatible with ASP.NET 4.6.1)\n\n## 🚀 Samples\n- [robinvanderknaap/authorization-server-openiddict](https://github.com/robinvanderknaap/authorization-server-openiddict) - Authorization Server implemented with OpenIddict.\n- [damienbod/AspNetCoreOpeniddict](https://github.com/damienbod/AspNetCoreOpeniddict) - OpenIddict Angular ASP.NET Core OpenID Connect Code Flow with PKCE"
  },
  {
    "path": "docs/security/refresh-token.md",
    "content": "# Refresh Token\n\n## 📕 Articles\n- [JWT Authentication Flow with Refresh Tokens in ASP.NET Core Web API](https://fullstackmark.com/post/19/jwt-authentication-flow-with-refresh-tokens-in-aspnet-core-web-api)\n- [Refresh Tokens in ASP.NET Core Web Api](https://www.blinkingcaret.com/2018/05/30/refresh-tokens-in-asp-net-core-web-api/)\n- [Handle Refresh Token Using ASP.NET Core 2.0 And JSON Web Token](https://www.c-sharpcorner.com/article/handle-refresh-token-using-asp-net-core-2-0-and-json-web-token/)\n- [Using Refresh Tokens in ASP.NET Core Authentication](https://code-maze.com/using-refresh-tokens-in-asp-net-core-authentication/)\n- [How to Use Refresh Tokens in ASP.NET Core APIs – JWT Authentication](https://codewithmukesh.com/blog/refresh-tokens-in-aspnet-core/)\n- [Refresh Tokens](https://auth0.com/docs/tokens/refresh-tokens)\n- [Refresh Token Rotation](https://auth0.com/docs/tokens/refresh-tokens/refresh-token-rotation)\n- [Refresh JWT with Refresh Tokens in Asp Net Core 5 Rest API Step by Step](https://dev.to/moe23/refresh-jwt-with-refresh-tokens-in-asp-net-core-5-rest-api-step-by-step-3en5)\n- [Understanding the basics about the Refresh tokens](https://thecodeblogger.com/2020/12/05/understanding-the-basics-about-the-refresh-tokens/)\n- [Refresh tokens with .NET 5 Web API and .NET Core Identity](https://thecodeblogger.com/2020/12/05/refresh-tokens-using-net-5-web-api-and-net-core-identity/)\n- [.NET 5.0 API - JWT Authentication with Refresh Tokens](https://jasonwatmore.com/post/2021/06/15/net-5-api-jwt-authentication-with-refresh-tokens)\n- [Implement Refresh JWT token in Asp.net Core 5 WEBAPI with database (Detailed Guide)](https://codepedia.info/aspnet-core-jwt-refresh-token-authentication)\n- [.NET 6.0 - JWT Authentication with Refresh Tokens Tutorial with Example API](https://jasonwatmore.com/post/2022/01/24/net-6-jwt-authentication-with-refresh-tokens-tutorial-with-example-api)\n- [Revoking Access to JWT tokens with a Blacklist/Deny List](https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist)\n- [Store Refresh Tokens in Redis](https://dev.to/jacobsngoodwin/12-store-refresh-tokens-in-redis-1k5d)\n## 📺 Videos\n- [Refreshing JWTs with Refresh Tokens | ASP.NET Core 5 REST API Tutorial 13](https://www.youtube.com/watch?v=AU0TIOZhGqs)\n- [Refresh JWT with Refresh Tokens in Asp Net Core 5 Rest API Step by Step](https://www.youtube.com/watch?v=T_Hla1WzaZQ&ab_channel=MohamadLawand)\n- [ASP.NET Core Refresh Token (.NET 7 Minimal Apis C#)](https://www.youtube.com/watch?v=EC69dEspO64)\n## 🚀 Samples\n- [manoj-choudhari-git/AspNetCore-Identity](https://github.com/manoj-choudhari-git/AspNetCore-Identity) - .NET Core Web API and Cookie Authentication\n- [blazorhero/CleanArchitecture](https://github.com/blazorhero/CleanArchitecture)\n- [mmacneil/AspNetCoreApiStarter](https://github.com/mmacneil/AspNetCoreApiStarter) - An ASP.NET Core (v2.1) Web API project to quickly bootstrap new projects. Includes Identity, JWT authentication w/ refresh tokens.\n- [cornflourblue/dotnet-5-jwt-refresh-tokens-api](https://github.com/cornflourblue/dotnet-5-jwt-refresh-tokens-api) - .NET 5.0 API - JWT Authentication with Refresh Tokens\n- [cornflourblue/dotnet-6-jwt-refresh-tokens-api](https://github.com/cornflourblue/dotnet-6-jwt-refresh-tokens-api) - .NET 6.0 - JWT Authentication with Refresh Tokens Tutorial with Example API"
  },
  {
    "path": "docs/security/revoking-token.md",
    "content": "# Revoking Token\n\n## Articles\n- [Revoking Access to JWT tokens with a Blacklist/Deny List](https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist)\n- [How to invalidate a JWT using a blacklist](https://dev.to/chukwutosin_/how-to-invalidate-a-jwt-using-a-blacklist-28dl)\n- [Canceling JWT tokens in .NET Core](https://piotrgankiewicz.com/2018/04/25/canceling-jwt-tokens-in-net-core/)"
  },
  {
    "path": "docs/security/secret-management.md",
    "content": "# Secret Management\n\n## 📕 Articles\n- [Secrets Management in .NET Applications](https://auth0.com/blog/secret-management-in-dotnet-applications/)\n- [Safe storage of app secrets in development in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets)\n- [ASP.NET Core User Secrets and Secret Manager Tool](https://www.davidhayden.me/blog/asp-net-core-user-secrets-and-secret-manager-tool)\n- [How to store app secrets for your ASP .NET Core project](https://dev.to/dotnet/how-to-store-app-secrets-for-your-asp-net-core-project-2j5b)\n## 📺 Videos\n- [SECRET MANAGER In ASP NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=PkLLP2tcd28)"
  },
  {
    "path": "docs/semantic-versioning.md",
    "content": "# Semantic Versioning\n\n## 📕 Articles\n- [Practical vs. Strict Semantic Versioning](https://aaronstannard.com/oss-semver/)\n- [Managing Package Versions Centrally](https://stu.dev/managing-package-versions-centrally/)\n- [Microsoft.Build.CentralPackageVersions](https://github.com/microsoft/MSBuildSdks/tree/main/src/CentralPackageVersions)\n- [How to centrally manage NuGet package versions within your solution](https://www.mytechramblings.com/posts/centrally-manage-nuget-versions/)\n- [Best Practices for Versioning NuGet Packages in the Enterprise](https://blog.inedo.com/nuget/package-versioning)\n- [Simplified versioning and publishing for .NET libraries](https://medium.com/@michael.wolfenden/simplified-versioning-and-publishing-for-net-libraries-a28e5e740fa6)\n- [Automating Releases of .NET SDKs using Semantic Release](https://medium.com/@gpanga/automating-releases-of-net-sdks-using-semantic-release-e3df46013876) ⭐\n- [Automatically version and release .Net Application](https://blog.antosubash.com/posts/automatic-version-and-release)\n- [Basic guide to Semantic Release](https://thecodinganalyst.github.io/knowledgebase/Basic-guide-to-Semantic-Release/) ⭐⭐\n- [How to use Github actions to build & deploy Github nuget packages](https://garywoodfine.com/how-to-use-github-actions-to-build-deploy-github-nuget-packages/) ⭐\n- [Release Channels - React](https://reactjs.org/docs/release-channels.html) ⭐\n- [Versioning made easier with Nerdbank.GitVersioning](https://ml-software.ch/posts/versioning-made-easier-with-nerdbank-gitversioning) ⭐\n\n## 📹 Videos\n- [Streamlining package versioning with MinVer](https://www.youtube.com/watch?v=2sFCBJOhWWY)\n- [NuGet PackageReference Versions SOLUTION Wide](https://www.youtube.com/watch?v=GolKKJmqxoc)\n- [How to Manage Releases with Semantic Versioning and Git Tags](https://www.youtube.com/watch?v=4wPjo5C-v8Y) ⭐⭐\n- [Auto Version Bumping and Deployments (SemVer, GitFlow, GitVersion, CI&CD)](https://www.youtube.com/watch?v=92EJlmyA3_k&ab_channel=GavinGreenwood)\n\n## Libraries\n- [GitTools/GitVersion](https://github.com/GitTools/GitVersion) - From git log to SemVer in no time\n- [dotnet/Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning) - Stamp your assemblies, packages and more with a unique version generated from a single, simple version.json file and include git commit IDs for non-official builds.\n- [cycjimmy/semantic-release-action](https://github.com/cycjimmy/semantic-release-action) - GitHub Action for Semantic Release\n- [semantic-release/semantic-release](https://github.com/semantic-release/semantic-release) - Fully automated version management and package publishing\n- [semantic-release/exec](https://github.com/semantic-release/exec) - semantic-release plugin to execute custom shell commands\n- [versionize/versionize](https://github.com/versionize/versionize) - Automatic versioning and CHANGELOG generation, with semver and conventional commits for dotnet\n- [PaulHatch/semantic-version](https://github.com/PaulHatch/semantic-version) - A GitHub Action to generate semantic version from a git repository's commit history ⭐\n\n## Samples\n- [Gabrielpanga/dotnet-nuget-example](https://github.com/Gabrielpanga/dotnet-nuget-example)"
  },
  {
    "path": "docs/serialization.md",
    "content": "\n# Serialization\n\n## 📝 Articles\n\n- [Use Newtonsoft’s Json.NET instead of System.Text.Json in ASP.NET Core 3+ MVC projects](https://www.ryadel.com/en/use-json-net-instead-of-system-text-json-in-asp-net-core-3-mvc-projects/)\n- [The Battle of C# to JSON Serializers in .NET Core 3](https://michaelscodingspot.com/the-battle-of-c-to-json-serializers-in-net-core-3/)\n- [Try the new System.Text.Json APIs](https://devblogs.microsoft.com/dotnet/try-the-new-system-text-json-apis/)\n- [How to serialize and deserialize (marshal and unmarshal) JSON in .NET](https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to)\n- [How to migrate from Newtonsoft.Json to System.Text.Json](https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-to)\n- [Polymorphic deserialization with System.Text.Json](https://josef.codes/polymorphic-deserialization-with-system-text-json/)\n- [Using MessagePack with ASP.NET Core MVC](https://www.strathweb.com/2017/06/using-messagepack-with-asp-net-core-mvc/)\n- [Using MessagePack with ASP.NET Core WebAPI](https://dotnetthoughts.net/using-message-pack-with-asp-net-core/)\n- [Fixing JSON Self Referencing Loop Exceptions](https://dotnetcoretutorials.com/2020/03/15/fixing-json-self-referencing-loop-exceptions/)\n- [A Brief Comparison Between Newtonsoft.Json and System.Text.Json](https://schneids.net/comparing-newtonsoft-json-with-system-text-json)\n- [What Those Benchmarks Of System.Text.Json Don’t Mention](https://dotnetcoretutorials.com/2020/01/25/what-those-benchmarks-of-system-text-json-dont-mention/)\n- [How to migrate from Newtonsoft.Json to System.Text.Json](https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-to?pivots=dotnet-5-0)\n- [How To Parse JSON In .NET Core](https://dotnetcoretutorials.com/2019/09/11/how-to-parse-json-in-net-core/)\n- [Using Newtonsoft.Json In .NET Core 3+ Projects](https://dotnetcoretutorials.com/2019/12/19/using-newtonsoft-json-in-net-core-3-projects/)\n- [A comparison of Newtonsoft.Json and System.Text.Json](https://inspiration.nlogic.ca/en/a-comparison-of-newtonsoft.json-and-system.text.json)\n- [Private setters in Json.Net](https://stackoverflow.com/questions/4066947/private-setters-in-json-net)\n- [Working with private setters in Json.NET](https://www.mking.net/blog/working-with-private-setters-in-json-net)\n- [How to use private setters with NewtonSoftJson](https://mynkow.github.io/How-to-use-private-setters-with-NewtonSoftJson/)\n- [Newtonsoft Json – Deserializing objects that have private setters](https://talkdotnet.wordpress.com/2019/03/15/newtonsoft-json-deserializing-objects-that-have-private-setters/)\n- [Private setters in Json.Net](https://newbedev.com/private-setters-in-json-net)\n- [Json.Net - private setters](http://danielwertheim.se/json-net-private-setters/)\n- [JSON.NET–Resolve private setters](https://bartwullems.blogspot.com/2018/02/jsonnetresolve-private-setters.html)\n- [Serialize a string value without quotes in ASP.NET with Json.NET](https://www.ryadel.com/en/serialize-string-value-without-quotes-asp-net-core-newtonsoft-json/)\n- [JsonSerializationException: Self referencing loop detected error – How to fix](https://www.ryadel.com/en/jsonserializationexception-self-referencing-loop-detected-error-fix-entity-framework-asp-net-core/)\n- [Adding Newtonsoft JSON serialization and deserialization in ASP.NET Core](https://www.thecodebuzz.com/add-newtonsoft-json-support-net-core/)\n- [How to create Custom Converters for JSON serialization in .NET with example](https://www.thecodebuzz.com/how-to-create-custom-converters-json-serialization-net-example/)\n- [System.Text.Json – Serialization and Deserialization in .NET Core](https://www.thecodebuzz.com/serialization-and-deserialization-using-system-text-json/)\n- [SENDING AND RECEIVING JSON USING HTTPCLIENT WITH SYSTEM.NET.HTTP.JSON](https://www.stevejgordon.co.uk/sending-and-receiving-json-using-httpclient-with-system-net-http-json)\n- [System.Text.Json and Newtonsoft.Json side-by-side in ASP.NET Core](https://blogs.taiga.nl/martijn/2020/05/28/system-text-json-and-newtonsoft-json-side-by-side-in-asp-net-core/)\n- [JSON.net: how to deserialize without using the default constructor?](https://newbedev.com/json-net-how-to-deserialize-without-using-the-default-constructor)\n- [Utf8Json Media Formatters for ASP.Net Core](https://im5tu.io/article/2018/07/utf8json-media-formatters-for-asp.net-core/)\n- [Json.net also tricked me](https://www.michalkomorowski.com/2017/08/jsonnet-also-tricked-me.html)\n- [Try the new System.Text.Json source generator](https://devblogs.microsoft.com/dotnet/try-the-new-system-text-json-source-generator/)\n- [PLAYING WITH SYSTEM.TEXT.JSON SOURCE GENERATORS](https://www.stevejgordon.co.uk/playing-with-system-text-json-source-generators)\n- [The Definitive Serialization Performance Guide](https://aloiskraus.wordpress.com/2017/04/23/the-definitive-serialization-performance-guide/)\n- [.NET Serialization Benchmark 2019 Roundup](https://aloiskraus.wordpress.com/2019/09/29/net-serialization-benchmark-2019-roundup/)\n- [Serialization Performance Update With .NET 4.7.2](https://aloiskraus.wordpress.com/2018/05/06/serialization-performance-update-with-net-4-7-2/)\n- [The Definitive Serialization Performance Guide](https://aloiskraus.wordpress.com/2017/04/23/the-definitive-serialization-performance-guide/)\n- [PLAYING WITH SYSTEM.TEXT.JSON SOURCE GENERATORS](https://www.stevejgordon.co.uk/playing-with-system-text-json-source-generators)\n- [What’s new in System.Text.Json in .NET 7](https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-7/)\n- [What’s new in System.Text.Json in .NET 8](https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-8/)\n- [What’s new in System.Text.Json in .NET 9](https://devblogs.microsoft.com/dotnet/system-text-json-in-dotnet-9/)\n\n## 📺 Videos\n- [Fast and efficient data serialisation with Protocol buffers (protobuf) in .NET](https://www.youtube.com/watch?v=sdKBhDl-dCs)\n- [The fastest way to work with JSON in .NET](https://www.youtube.com/watch?v=shES1R7e1lQ)\n- [Step by Step Tutorial: Deserializing JSON using c# and json.net](https://www.youtube.com/watch?v=CjoAYslTKX0)\n- [40% faster JSON serialization with Source Generators in .NET 6](https://www.youtube.com/watch?v=HhyBaJ7uisU)\n## Libraries\n\n- [MessagePack-CSharp](https://github.com/neuecc/MessagePack-CSharp) - Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]\n- [Utf8Json](https://github.com/neuecc/Utf8Json) - Definitely Fastest and Zero Allocation JSON Serializer for C#(NET, .NET Core, Unity, Xamarin).\n- [neuecc/MessagePack-CSharp](https://github.com/neuecc/MessagePack-CSharp)\n- [protobuf-net/protobuf-net](https://github.com/protobuf-net/protobuf-net) - Protocol Buffers library for idiomatic .NET\n- [protocolbuffers/protobuf](https://github.com/protocolbuffers/protobuf/tree/master/csharp) - Protocol Buffers - Google's data interchange format\n- [Cysharp/MemoryPack](https://github.com/Cysharp/MemoryPack) - Zero encoding extreme performance binary serializer for C#.\n- [gregsdennis/json-everything](https://github.com/gregsdennis/json-everything) - System.Text.Json-based support for all of your JSON needs.\n## Samples\n\n- [Alois-xx/SerializerTests](https://github.com/Alois-xx/SerializerTests) - .NET Serializer testing framework"
  },
  {
    "path": "docs/service-discovery.md",
    "content": "# Service Discovery\n\n## Articles\n- [Service discovery in .NET](https://learn.microsoft.com/en-us/dotnet/core/extensions/service-discovery)\n- [Lo-Fi Service Discovery in .NET8](https://dev.to/david_whitney/lo-fi-service-discovery-in-net8-2h5o)"
  },
  {
    "path": "docs/signalr.md",
    "content": "# SignalR\n\n## 📝 Articles\n- [Introduction to ASP.NET Core SignalR](https://docs.microsoft.com/en-us/aspnet/core/signalr/introduction)\n- [Tutorial: Get started with ASP.NET Core SignalR](https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-5.0&tabs=visual-studio)\n- [ASP.NET Core SignalR JavaScript client](https://docs.microsoft.com/en-us/aspnet/core/signalr/javascript-client)\n- [Use hubs in SignalR for ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/signalr/hubs)\n- [Send messages from outside a hub](https://docs.microsoft.com/en-us/aspnet/core/signalr/hubcontext)\n- [ASP.NET Core SignalR .NET Client](https://docs.microsoft.com/en-us/aspnet/core/signalr/dotnet-client)\n- [Use streaming in ASP.NET Core SignalR](https://docs.microsoft.com/en-us/aspnet/core/signalr/streaming)\n- [Real-time Web Applications with SignalR in ASP.NET Core 3.1](https://procodeguide.com/programming/real-time-web-with-signalr-in-aspnet-core/)\n- [Which is best? WebSockets or SignalR](https://dotnetplaybook.com/which-is-best-websockets-or-signalr/)\n- [Build Real-time Applications with ASP.NET Core SignalR](https://www.codemag.com/article/1807061/Build-Real-time-Applications-with-ASP.NET-Core-SignalR)\n- [SignalR - Sending a message to a specific user using (IUserIdProvider) *NEW 2.0.0*](https://stackoverflow.com/questions/19522103/signalr-sending-a-message-to-a-specific-user-using-iuseridprovider-new-2-0)\n- [How to Send Client-Specific Messages Using SignalR](https://code-maze.com/how-to-send-client-specific-messages-using-signalr/)\n- [.NET Core with SignalR and Angular – Real-Time Charts](https://code-maze.com/netcore-signalr-angular-realtime-charts/)\n- [How to implement SignalR in a .NET 7 + Angular 15 web application](https://mfcallahan.blog/2020/11/05/how-to-implement-signalr-in-a-net-core-angular-web-application/) ⭐\n- [Practical ASP.NET Core SignalR: Scaling](https://codeopinion.com/practical-asp-net-core-signalr-scaling/)\n- [How to use SignalR with ASP.NET Core Angular](https://referbruv.com/blog/how-to-use-signalr-with-asp-net-core-angular/) ⭐\n\n## 📹 Videos\n- [Asp.Net Core WebSockets Vs SignalR. Which should you use? (Full Course)](https://www.youtube.com/watch?v=ycVgXe6v1VQ)\n- [ASP.NET Core SignalR - Introduction](https://www.youtube.com/watch?v=OwiOvNwc7qc)\n- [ASP.NET Core SignalR - WebSockets Deep Dive](https://www.youtube.com/watch?v=6W5gmRgmbuc)\n- [ASP.NET Core Websockets with SignalR Intro](https://www.youtube.com/watch?v=Fr4rWZIDdzs)\n- [SignalR: To Chat and Beyond - David Pine](https://www.youtube.com/watch?v=i3RXbOY6-0I)\n- [ASP.NET Core SignalR - Feature Overview](https://www.youtube.com/watch?v=q5ZHAUUAlQE)\n- [ASP.NET Core SignalR - Notifications Service](https://www.youtube.com/watch?v=ccwFiOWN8n0)\n\n## Samples\n- [binarythistle/S02E03-WebSockets-Vs-SignalR](https://github.com/binarythistle/S02E03-WebSockets-Vs-SignalR)\n- [IEvangelist/signalr-chat](https://github.com/IEvangelist/signalr-chat) - A chat app built with Blazor WebAssembly, hosted on ASP.NET Core, with the latest C# and SignalR -- need I say more?\n- [matthamil/Chatazon](https://github.com/matthamil/Chatazon) - Implementing websockets in .NET Core\n- [iammukeshm/BlazorChat](https://github.com/iammukeshm/BlazorChat) - Building a Complete Chat Application in Blazor WebAssembly 5.0 with SignalR and Identity. UI is taken care by MudBlazor Component Library\n"
  },
  {
    "path": "docs/source-generators.md",
    "content": "\n# Source Generators\n\n## 📘 Resources\n- [amis92/csharp-source-generators](https://github.com/amis92/csharp-source-generators) - A list of C# Source Generators (not necessarily awesome) and associated resources: articles, talks, demos.\n- [Source Generators Cookbook](https://github.com/dotnet/roslyn/blob/main/docs/features/source-generators.cookbook.md)\n- [Source Generators](https://github.com/dotnet/roslyn/blob/main/docs/features/source-generators.md)\n- [davidwengier/SourceGeneratorPlayground](https://github.com/davidwengier/SourceGeneratorPlayground) - The source code for https://sourcegen.dev - The C# Source Generator Playground\n\n## 📝 Articles\n- [Strongly-typed Ids using C# Source Generators - Gérald Barré](https://www.meziantou.net/strongly-typed-ids-with-csharp-source-generators.htm)\n- [Introducing C# Source Generators - DevBlogs](https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/)\n- [Source Generators - real world example](https://dominikjeske.github.io/source-generators/)\n- [.NET 5 Source Generators Jump Start](https://khalidabuhakmeh.com/dotnet-5-source-generators-jump-start)\n- [Source Generators in .NET 5 with ReSharper](https://blog.jetbrains.com/dotnet/2020/11/12/source-generators-in-net-5-with-resharper/)\n- [API Client with C# Source Generators](https://sharovarskyi.com/blog/posts/source-generators-api-client/)\n- [Try the new System.Text.Json source generator](https://devblogs.microsoft.com/dotnet/try-the-new-system-text-json-source-generator/)\n- [.NET Source Generators: Finding Class Declarations](https://khalidabuhakmeh.com/dotnet-source-generators-finding-class-declarations)\n- [Try the new System.Text.Json source generator](https://devblogs.microsoft.com/dotnet/try-the-new-system-text-json-source-generator/)\n- [PLAYING WITH SYSTEM.TEXT.JSON SOURCE GENERATORS](https://www.stevejgordon.co.uk/playing-with-system-text-json-source-generators)\n- [.NET 5 Source Generators - MediatR - CQRS - OMG!](https://www.edument.se/post/net-5-source-generators-mediatr-cqrs-omg?lang=en)\n- [C# 9 records as strongly-typed ids - Part 5: final bits and conclusi](https://thomaslevesque.com/2021/03/19/csharp-9-records-as-strongly-typed-ids-part-5-final-bits-and-conclusion/)\n- [NetEscapades.EnumGenerators: a source generator for enum performanc](https://andrewlock.net/netescapades-enumgenerators-a-source-generator-for-enum-performance/)\n- [Part 1 - Creating an incremental generator](https://andrewlock.net/creating-a-source-generator-part-1-creating-an-incremental-source-generator/)\n- [Part 2 - Testing an incremental generator with snapshot testing ](https://andrewlock.net/creating-a-source-generator-part-2-testing-an-incremental-generator-with-snapshot-testing/)\n- [Part 3 - Integration testing and NuGet packaging](https://andrewlock.net/creating-a-source-generator-part-3-integration-testing-and-packaging/)\n- [Part 4 - Customising generated code with marker attributes](https://andrewlock.net/creating-a-source-generator-part-4-customising-generated-code-with-marker-attributes/)\n- [Part 5 - Finding a type declaration's namespace and type hierarchy ](https://andrewlock.net/creating-a-source-generator-part-5-finding-a-type-declarations-namespace-and-type-hierarchy/)\n- [Part 6 - Saving source generator output in source control](https://andrewlock.net/creating-a-source-generator-part-6-saving-source-generator-output-in-source-control/)\n- [Part 7 - Solving the source generator 'marker attribute' problem - Part 1](https://andrewlock.net/creating-a-source-generator-part-7-solving-the-source-generator-marker-attribute-problem-part1/)\n- [Part 8 - Solving the source generator 'marker attribute' problem - Part 2](https://andrewlock.net/creating-a-source-generator-part-8-solving-the-source-generator-marker-attribute-problem-part2/)\n- [Part 10 - Testing your incremental generator pipeline outputs are cacheable Creating a source generator - Part 10](https://andrewlock.net/creating-a-source-generator-part-10-testing-your-incremental-generator-pipeline-outputs-are-cacheable/)\n- [Part 11 - Implementing an interceptor with a source generator Creating a source generator - Part 11](https://andrewlock.net/creating-a-source-generator-part-11-implementing-an-interceptor-with-a-source-generator/)\n- [Reading compilation options and the C# version in source generators Creating a source generator - Part 12](https://andrewlock.net/creating-a-source-generator-part-12-reading-compilation-options-and-csharp-version-in-source-generators/)\n- [Accessing MSBuild properties and user configuration from source generators Creating a source generator - Part 13](https://andrewlock.net/creating-a-source-generator-part-13-providing-and-accessing-msbuild-settings-in-source-generators/)\n- [Improving logging performance with source generators](https://andrewlock.net/exploring-dotnet-6-part-8-improving-logging-performance-with-source-generators/)\n- [Source generator updates: incremental generators ](https://andrewlock.net/exploring-dotnet-6-part-9-source-generator-updates-incremental-generators/)\n- [Mapping ASP.NET Core minimal API endpoints with C# source generators](https://blog.codingmilitia.com/2023/01/31/mapping-aspnet-core-minimal-api-endpoints-with-csharp-source-generators/)\n- [C# Source Generators: How to get build information?](https://steven-giesel.com/blogPost/cec8df6e-b271-4b4c-8ff6-e9f3aa5e26a1)\n- [Testing Roslyn Incremental Source Generators](https://www.meziantou.net/testing-roslyn-incremental-source-generators.htm) ⭐\n- [Incremental Roslyn Source Generators In .NET 6: Code Sharing Of The Future – Part 1](https://www.thinktecture.com/net/roslyn-source-generators-introduction/)\n- [Incremental Roslyn Source Generators In .NET 6: Testing Source Generators, Analyzers & Code Fixes – Part 3](https://www.thinktecture.com/en/net/roslyn-source-generators-analyzers-code-fixes-testing/)\n- [C# Source Generators](https://mstack.nl/blog/20210801-source-generators)\n- [C# Source Generators - UnitTesting](https://mstack.nl/blog/20220801-source-generators-part2/)\n- [JOS.Enumeration - Now using source generators](https://josef.codes/jos-enumeration-now-using-source-generators/)\n\n## 📺 Videos\n- [How to bend reality to your will with C# Source Generators](https://www.youtube.com/watch?v=pF1Qh2Ty7MQ)\n- [C# Source Generators - Write code that writes code - David Wengier](https://www.youtube.com/watch?v=pqLs7X6Cr6s)\n- [C# Source Generators - Write Code that Writes Code](https://www.youtube.com/watch?v=3YwwdoRg2F4)\n- [C# Source Generators](https://www.youtube.com/watch?v=cB66gOHConw)\n- [Better C# - Source Generators](https://www.youtube.com/watch?v=1u33UTdllV0)\n- [Episode 21: Roslyn Source Generators](https://www.youtube.com/watch?v=JSFZ3qDx83g)\n- [C# Source Generators in Action, by Andrey Dyatlov](https://www.youtube.com/watch?v=052xutD86uI)\n- [C# Source Generators - Write code that writes code - David Wengier](https://www.youtube.com/watch?v=pqLs7X6Cr6s&t=221s)\n- [Do C# Source Generators ACTUALLY slow your build down?](https://www.youtube.com/watch?v=anesVdQg6Dk)\n- [Let’s Build an Incremental Source Generator With Roslyn, by Stefan Pölz](https://www.youtube.com/watch?v=azJm_Y2nbAI)\n\n## 🚀 Samples\n- [davidwengier/SourceGeneratorTemplate](https://github.com/davidwengier/SourceGeneratorTemplate) - A basic template for writing a C# source generator\n- [dotnet/roslyn-sdk/tree/main/samples/CSharp/SourceGenerators](https://github.com/dotnet/roslyn-sdk/tree/main/samples/CSharp/SourceGenerators)\n- [edumentab/SourceGenerator-MediatR-CQRS](https://github.com/edumentab/SourceGenerator-MediatR-CQRS)\n- [davidfowl/SourceGeneratorPlayground](https://github.com/davidfowl/SourceGeneratorPlayground) - A playground for source generation ideas for asp.net core\n## Libraries\n- [YairHalberstadt/stronginject](https://github.com/YairHalberstadt/stronginject) - compile time dependency injection for .NET\n- [pakrym/jab](https://github.com/pakrym/jab) - C# Source Generator based dependency injection container implementation.\n- [martinothamar/WrapperValueObject](https://github.com/martinothamar/WrapperValueObject) - A .NET source generator for creating simple value objects wrapping primitive types.\n- [excubo-ag/Generators.Blazor](https://github.com/excubo-ag/Generators.Blazor)\n- [martinothamar/Mediator](https://github.com/martinothamar/Mediator) - A high performance implementation of Mediator pattern in .NET using source generators.\n- [chsienki/kittitas](https://github.com/chsienki/kittitas) - An In-Memory version of the Roslyn compiler that can be used to debug components in the Roslyn pipeline\n- [ashmind/SharpLab](https://github.com/ashmind/SharpLab) - .NET language playground\n- [kostya9/ApiClientGenerator](https://github.com/kostya9/ApiClientGenerator)\n- [meziantou/Meziantou.Framework.StronglyTypedId](https://github.com/meziantou/Meziantou.Framework/tree/main/src/Meziantou.Framework.StronglyTypedId)\n- [SteveDunn/Vogen](https://github.com/SteveDunn/Vogen) - A semi-opinionated library which is a source generator and a code analyser. It Source generates Value Objects\n- [davidfowl/uController](https://github.com/davidfowl/uController) - A source generator for minimal APIs\n- [devlooped/DependencyInjection.Attributed](https://github.com/devlooped/DependencyInjection.Attributed) - Provides compile-time discovery and code generation of service registrations from attributed types"
  },
  {
    "path": "docs/strongly-type-id.md",
    "content": "# Strongly Type ID & Snowflake\n\n## Articles\n- [Series: Using strongly-typed entity IDs to avoid primitive obsession](https://andrewlock.net/series/using-strongly-typed-entity-ids-to-avoid-primitive-obsession/)\n- [Using C# 9 records as strongly-typed ids](https://thomaslevesque.com/series/using-c%23-9-records-as-strongly-typed-ids/)\n- [Strongly-typed Ids using C# Source Generators](https://www.meziantou.net/strongly-typed-ids-with-csharp-source-generators.htm)\n- [Generating sortable Guids using NewId](Generating sortable Guids using NewId)\n- [Announcing Snowflake](https://blog.twitter.com/2010/announcing-snowflake)\n## Videos\n- [Stop using IDs that don’t mean anything in .NET](https://www.youtube.com/watch?v=z4SB5BkQX7M)\n\n## Samples\n- [thangchung/coolstore-moduliths](https://github.com/thangchung/coolstore-moduliths)\n- [VasilisGaitanidis/master-containerized-microservices](https://github.com/VasilisGaitanidis/master-containerized-microservices)\n- [devmentors/Trill-modular-monolith/](https://github.com/devmentors/Trill-modular-monolith/)"
  },
  {
    "path": "docs/testing/acceptance-testing.md",
    "content": "\n# Acceptance Testing\n\n## 📹 Videos\n- [Elegant Acceptance Testing in .NET with SpecFlow](https://www.youtube.com/watch?v=qWEDkHGNhvk)\n- [BDD - Automated Acceptance Testing with SpecFlow and Gherkin](https://www.pluralsight.com/courses/automated-acceptance-testing-specflow-gherkin)\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>\n"
  },
  {
    "path": "docs/testing/architectural-testing.md",
    "content": "\n# Architectural Testing\n\n## 📝 Articles\n\n- [Writing ArchUnit style tests for .Net and C# to enforce architecture rules](https://www.ben-morris.com/writing-archunit-style-tests-for-net-and-c-for-self-testing-architectures/)\n- [Architecture Unit Tests](https://github.com/kgrzybek/modular-monolith-with-ddd#312-architecture-unit-tests)\n- [Unit Test Your Architecture with ArchUnit](https://blogs.oracle.com/javamagazine/post/unit-test-your-architecture-with-archunit)\n- [Enforcing software architecture governance for .net projects using unit tests](https://thecodereaper.com/2020/07/05/enforcing-software-architecture-governance-for-net-projects-using-unit-tests/)\n\n## Videos\n- [How to Write Architecture Tests? - Clean Architecture, .NET 6, REST API](https://www.youtube.com/watch?v=_D6Kai4RdGY)\n\n## Libraries\n- [BenMorris/NetArchTest](https://github.com/BenMorris/NetArchTest) - A fluent API for .Net that can enforce architectural rules in unit tests.\n- [TNG/ArchUnitNET](https://github.com/TNG/ArchUnitNET) - A C# architecture test library to specify and assert architecture rules in C# for automated testing."
  },
  {
    "path": "docs/testing/bdd.md",
    "content": "\n# BDD\n\n## Resources\n- [`omergulen/awesome-bdd`](https://github.com/omergulen/awesome-bdd) - A collection of awesome things regarding the behavior-driven development ecosystem. A curated list of courses, tutorials, libraries, tips and tricks, books, videos, and awesome resources about BDD.\n\n## 📕 Articles\n- [Behavior-Driven Development from scratch](https://beyondxscratch.com/2019/05/21/behavior-driven-development-from-scratch/)\n- [Ogooreck, a sneaky testing library in BDD style](https://event-driven.io/en/ogooreck_sneaky_bdd_testing_framework/)\n- [Testing business logic in Event Sourcing, and beyond!](https://event-driven.io/en/testing_event_sourcing/)\n- [Using Context/Specification to better express complicated tests](https://jeremydmiller.com/2022/10/24/using-context-specification-to-better-express-complicated-tests/)\n- [Acceptance Test-Driven Development in .net core with Specflow](https://itnext.io/acceptance-test-driven-development-in-net-core-with-specflow-dcb17fb7a893)\n- [Intro to .NET Unit & Integration Testing with SpecsFor](https://www.infoq.com/articles/specsfor/)\n- [Unit testing with Machine.Specifications (aka MSpecs) and FakeItEasy](https://dotnetcorecentral.com/blog/unit-testing-with-machine-specifications-aka-mspecs-and-fakeiteasy/)\n- [Unit testing with Machine.Specifications (aka MSpecs) and FakeItEasy – Continued](https://dotnetcorecentral.com/blog/unit-testing-with-machine-specifications-aka-mspecs-and-fakeiteasy-continued/)\n- [Behavior-Driven Development](https://www.codemag.com/article/0805061/Behavior-Driven-Development)\n- [DRY vs DAMP in Unit Tests](https://enterprisecraftsmanship.com/posts/dry-damp-unit-tests)\n- [Behavior Driven Development without the pain](https://www.functionize.com/blog/behavior-driven-development-without-the-pain)\n- [Gherkin Style Reference](https://cucumber.io/docs/gherkin/reference/)\n- [How Cucumber finds your features and step definitions](https://cucumber.io/docs/gherkin/step-organization/)\n- [Testing an Event Sourced Aggregate Root](https://buildplease.com/pages/fpc-13/)\n- [An Executable Specification](https://buildplease.com/pages/fpc-14/)\n- [Behaviour-Driven Design is more than tests](https://event-driven.io/en/behaviour_driven_design_is_not_about_tests/)\n- [Specification By Example](https://fraktalio.com/blog/specification-by-example.html)\n\n## 📹 Videos\n- [Getting started with Behavior Driven Development (BDD) in .NET using SpecFlow](https://www.youtube.com/watch?v=EEeVU0z26u0)\n- [Getting started with BDD using Specflow .NET Core 3.1 (C#)](https://www.youtube.com/watch?v=O5oHiBD5Lvk)\n- [Getting Started with SpecFlow](https://www.youtube.com/watch?v=HpRzI0C-x-8)\n- [.Net Core Unit Testing (With Machine.Specifications and FakeItEasy)](https://www.youtube.com/watch?v=SaQPQik6_hc)\n## Libraries\n- [`oskardudycz/Ogooreck`](https://github.com/oskardudycz/Ogooreck) - Sneaky Testing Library in BDD style\n- [`SpecFlowOSS/SpecFlow`](https://github.com/SpecFlowOSS/SpecFlow) - .NET BDD Framework. \n- [`LightBDD/LightBDD`](https://github.com/LightBDD/LightBDD) - BDD framework allowing to create easy to read and maintain tests.\n- [`machine/machine.specifications`](https://github.com/machine/machine.specifications) - Machine.Specifications is a Context/Specification framework for .NET that removes language noise and simplifies tests.\n- [`MattHoneycutt/SpecsFor`](https://github.com/MattHoneycutt/SpecsFor) - SpecsFor is a light-weight Behavior-Driven Development framework that focuses on ease of use for *developers* by minimizing testing friction.\n- [`ttutisani/Xunit.Gherkin.Quick`](https://github.com/ttutisani/Xunit.Gherkin.Quick) - BDD in .NET Core - using Xunit and Gherkin (compatible with both .NET Core and .NET)\n\n## Samples\n- [`oskardudycz/EventSourcing.NetCore`](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample)\n- [`MarkNijhof/Fohjin`](https://github.com/MarkNijhof/Fohjin/)"
  },
  {
    "path": "docs/testing/contract-testing.md",
    "content": "# Contract Testing\n\n## 📕 Articles\n- [ContractTest](https://martinfowler.com/bliki/ContractTest.html)- Martin Fowler\n- [Approaches to contract testing](https://www.ontestautomation.com/approaches-to-contract-testing/)\n- [An introduction to contract testing - part 1 - meet the players](https://www.ontestautomation.com/an-introduction-to-contract-testing-part-1-meet-the-players/)\n- [An introduction to contract testing - part 2 - introducing contract testing](https://www.ontestautomation.com/an-introduction-to-contract-testing-part-2-introducing-contract-testing/)\n- [An introduction to contract testing - part 3 - getting started with Pact](https://www.ontestautomation.com/an-introduction-to-contract-testing-part-3-getting-started-with-pact/)\n- [An introduction to contract testing - part 6 - bi-directional contracts](https://www.ontestautomation.com/an-introduction-to-contract-testing-part-6-bi-directional-contracts/)\n- [Contract first OpenAPI development (but still use Swagger UI with ASP.NET Core)](https://blog.codingmilitia.com/2023/04/02/contract-first-openapi-development-but-still-use-swagger-ui-with-asp.net-core/)\n\n## Libraries\n- [pact-foundation/pact-net](https://github.com/pact-foundation/pact-net) - .NET version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project\n- [WireMock-Net/WireMock.Net/Pact](https://github.com/WireMock-Net/WireMock.Net/wiki/Pact) - WireMock.Net is a flexible product for stubbing and mocking web HTTP responses using advanced request matching and response templating.\n\n## Samples\n- [DiUS/pact-workshop-dotnet-core-v3/](https://github.com/DiUS/pact-workshop-dotnet-core-v3/)\n- [StefH/PactExample](https://github.com/StefH/PactExample) - Some examples for Pact.Net and WireMock.Net\n- [ddubson/contract-testing-dotnetcore-example](https://github.com/ddubson/contract-testing-dotnetcore-example) - Contract Testing example in .NET 5 and C# with PactNET Contract testing framework\n- [joaofbantunes/SwaggerUiWithoutGenSample](https://github.com/joaofbantunes/SwaggerUiWithoutGenSample)\n- [basdijkstra/introduction-to-contract-testing-dotnet](https://github.com/basdijkstra/introduction-to-contract-testing-dotnet)"
  },
  {
    "path": "docs/testing/e2e-testing.md",
    "content": "\n# End-To-End Testing - (Subcutaneous Test)\n\n## 📝 Articles\n- [SubcutaneousTest - Martin Fowler](https://martinfowler.com/bliki/SubcutaneousTest.html) \n- [Microservices test architecture. Can you sleep well without end-to-end tests?](https://threedots.tech/post/microservices-test-architecture/)\n- [k3d + GitHub Actions: Kubernetes E2E Testing Made Easy](https://www.arrikto.com/uncategorized/k3d-github-actions-kubernetes-e2e-testing-made-easy/)\n- [Running Kubernetes end-to-end tests with Kind and GitHub Actions The Kind GitHub Action](https://radu-matei.com/blog/kubernetes-e2e-github-actions/)\n- [Testing Kubernetes Deployments within CI Pipelines](https://www.eficode.com/blog/testing-kubernetes-deployments-within-ci-pipelines)\n- [End-To-End Testing considered harmful](https://www.stevesmith.tech/blog/end-to-end-testing-considered-harmful/)\n- [End-to-End Tests With ASP.NET Core, XUnit, and Playwright](https://khalidabuhakmeh.com/end-to-end-test-with-aspnet-core-xunit-and-playwright)\n- [How to test your C# Web API](https://timdeschryver.dev/blog/how-to-test-your-csharp-web-api)\n- [Introducing RestAssured.Net](https://www.ontestautomation.com/introducing-rest-assured-net/)\n## 📺 Videos\n- [EFS004: Initializing ASP.NET End-to-End Tests](https://www.youtube.com/watch?v=NcGybsFRLO8)\n- [End-to-End Testing ASP.NET Core APIs (Part 2)](https://www.youtube.com/watch?v=ANqj9pldfso)\n- [The .NET Docs Show - Scenario testing 🧪 Blazor Single-Page Apps](https://www.youtube.com/watch?v=Z9lkKnzJgD8)\n- [The cleanest way to use Docker for testing in .NET](https://www.youtube.com/watch?v=8IRNC7qZBmk)\n- [The BEST way to reset your database for testing in .NET](https://www.youtube.com/watch?v=E4TeWBFzcCw)\n\n## Libraries\n- [basdijkstra/rest-assured-net](https://github.com/basdijkstra/rest-assured-net) - C# DSL for writing readable tests for REST APIs\n- [adrianiftode/FluentAssertions.Web](https://github.com/adrianiftode/FluentAssertions.Web) - FluentAssertions for .Net Web Api projects\n- [balanikas/FluentAssertions.Http](https://github.com/balanikas/FluentAssertions.Http) - Http extensions for FluentAssertions\n\n## Samples\n- [martincostello/dotnet-minimal-api-integration-testing](https://github.com/martincostello/dotnet-minimal-api-integration-testing)\n- [devmentors/Inflow-micro/Inflow.Services.Wallets.Tests.EndToEnd](https://github.com/devmentors/Inflow-micro/tree/master/src/Wallets/Inflow.Services.Wallets.Tests.EndToEnd)\n- [pdevito3/MessageBusTestingInMemHarness](https://github.com/pdevito3/MessageBusTestingInMemHarness)\n- [linkdotnet/Blog](https://github.com/linkdotnet/Blog)\n- [pdevito3/domain-events-example](https://github.com/pdevito3/domain-events-example)\n- [valentinacupac/banking-kata-dotnet](https://github.com/valentinacupac/banking-kata-dotnet)\n- [bymyslf/payment-gateway](https://github.com/bymyslf/payment-gateway)\n- [pdevito3/WeSendReportsCompany/](https://github.com/pdevito3/WeSendReportsCompany/)"
  },
  {
    "path": "docs/testing/integration-testing.md",
    "content": "\n\n# Integration Testing\n\n## 📝 Articles\n- [Integration tests in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests)\n- [Unit and integration testing](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Unit-and-integration-testing)\n- [Self-hosted integration tests in ASP.NET by Mark Seemann](https://blog.ploeh.dk/2021/01/25/self-hosted-integration-tests-in-aspnet/)\n- [Running Integration Tests in Build Pipelines with a Real Database](https://ardalis.com/running-integration-tests-in-build-pipelines-with-a-real-database/?utm_sq=gk5cykzhad) \n- [Limitations of the EF Core in-memory database providers](https://blog.joaograssi.com/limitations-ef-core-in-memory-database-providers/)\n- [Using docker-compose for your ASP.NET + EF Core integration tests](https://blog.joaograssi.com/using-docker-compose-for-your-asp-net-ef-core-integration-tests/)\n- [ASP.NET Core integration tests with docker-compose on GitHub Actions](https://blog.joaograssi.com/posts/2020/asp-net-core-integration-tests-with-docker-compose-github-actions/)\n- [Testing WebAPI with ApprovalTests.NET](https://cezarypiatek.github.io/post/testing-web-api-with-approval-tests/)\n- [ASP.NET Core 5 & EntityFramework Core: Clean, clear and fluent integration tests with Calzolari.TestServer.EntityFramework, FluentAssertion.Web and xUnit](https://anthonygiretti.com/2021/04/17/asp-net-core-5-entityframework-core-clean-clear-and-fluent-integration-tests-with-calzolari-testserver-entityframework-fluentassertion-web-and-xunit/)\n- [An Experiment With Making Integration Tests Easier to Write - Part One](https://scotthannen.org/blog/2021/04/07/integration-test-experiment-1.html)\n- [An Experiment With Making Integration Tests Easier to Write - Part Two](https://scotthannen.org/blog/2021/04/12/integration-test-experiment-2.html)\n- [.NET Core Integration Tests using a Sql Server Database in Docker](https://wrapt.dev/blog/integration-tests-using-sql-server-db-in-docker)\n- [Running SQL Server Integration Tests in .NET Core Projects via Docker](https://blog.dangl.me/archive/running-sql-server-integration-tests-in-net-core-projects-via-docker/)\n- [Unit Test or Integration Test and Why You Should Care](https://ardalis.com/unit-test-or-integration-test-and-why-you-should-care)\n- [IntegrationTest](https://martinfowler.com/bliki/IntegrationTest.html) \n- [Integration testing with EF Core, part 1](https://dev.to/maxx_don/integration-testing-with-ef-core-part-1-1l40)\n- [Integration testing with EF Core, part 2](https://dev.to/maxx_don/integration-testing-with-ef-core-part-2-1fe)\n- [How to run integration tests for .NET API](https://www.code4it.dev/blog/integration-tests-for-dotnet-api)\n- [The curious case of ASP.NET Core integration test deadlock](https://www.strathweb.com/2021/05/the-curious-case-of-asp-net-core-integration-test-deadlock/)\n- [Microservices test architecture. Can you sleep well without end-to-end tests?](https://threedots.tech/post/microservices-test-architecture/)\n- [Converting integration tests to .NET Core 3.0](https://andrewlock.net/converting-integration-tests-to-net-core-3/)\n- [SQL Server integration testing using xUnit](https://www.jvandertil.nl/posts/2020-04-02_sqlserverintegrationtesting/)\n- [Asynchronous initialisation and cleanup operations with xUnit](https://mderriey.com/2017/09/04/async-lifetime-with-xunit/)- [Integration Testing ASP.NET Core WebApi](https://dasith.me/2018/12/30/integration-testing-aspnet-core-webapi/)\n- [Treat your integration tests as external consumers](https://josef.codes/treat-you-integration-tests-as-external-consumers/)\n- [Unit Testing with ILogger<T>](https://codeburst.io/unit-testing-with-net-core-ilogger-t-e8c16c503a80)\n- [Writing Logs to xunit Test Output](https://blog.martincostello.com/writing-logs-to-xunit-test-output/)\n- [Create fake user for ASP.NET Core controller tests](https://gunnarpeipman.com/aspnet-core-test-controller-fake-user/)\n- [Using custom startup class with ASP.NET Core integration tests](https://gunnarpeipman.com/aspnet-core-integration-test-startup/)\n- [Different kind of testing strategies with ASP.NET Core: The basics](https://dotnetfromthemountain.com/aspnet-core-testing-strategies-the-basics/)\n- [Integration testing data access in ASP.​NET Core](https://asp.net-hacker.rocks/2019/01/18/integration-testing-data-access-dotnetcore.html)\n- [Create fake user for ASP.NET Core integration tests](https://gunnarpeipman.com/aspnet-core-integration-test-fake-user/)\n- [Mocking Data with Bogus](https://dev.to/integerman/mocking-data-with-bogus-25ac)\n- [Using custom startup class with ASP.NET Core integration tests](https://gunnarpeipman.com/testing/aspnet-core-integration-tests-startup/)\n- [Using ASP.NET Core Identity user accounts in integration tests](https://gunnarpeipman.com/aspnet-core-identity-integration-tests/)\n- [How to test your C# Web API](https://timdeschryver.dev/blog/how-to-test-your-csharp-web-api)\n- [Avoid In-Memory Databases for Tests](https://jimmybogard.com/avoid-in-memory-databases-for-tests/)\n- [End-to-End Integration Testing with NServiceBus](https://jimmybogard.com/end-to-end-integration-testing-with-nservicebus/)\n- [End-to-End Integration Testing with NServiceBus: How It Works](https://jimmybogard.com/end-to-end-integration-testing-with-nservicebus-how-it-works/)\n- [Respawn vs SQL Server Snapshots](https://jimmybogard.com/respawn-vs-sql-server-snapshots/)\n- [Integration Testing with xUnit](https://jimmybogard.com/integration-testing-with-xunit/)\n- [Integration Testing with ASP.NET Core 3.1](https://adamstorr.azurewebsites.net/blog/integration-testing-with-aspnetcore-3-1)\n- [Integration Testing with ASP.NET Core 3.1 - Testing Your Application](https://adamstorr.azurewebsites.net/blog/integration-testing-with-aspnetcore-3-1-testing-your-app)\n- [Integration Testing with ASP.NET Core 3.1 - Swapping a Dependency](https://adamstorr.azurewebsites.net/blog/integration-testing-with-aspnetcore-3-1-swapping-dependency)\n- [Integration Testing with ASP.NET Core 3.1 - Remove the Boiler Plate](https://adamstorr.azurewebsites.net/blog/integration-testing-with-aspnetcore-3-1-remove-the-boiler-plate)\n- [Integration Testing with ASP.NET Core 3.1 - Swapping a Dependency with Moq](https://adamstorr.azurewebsites.net/blog/integration-testing-with-aspnetcore-3-1-swapping-dependency-with-moq)\n- [Integration Testing with ASP.NET Core 3.1 - Set Default Headers for All Clients](https://adamstorr.azurewebsites.net/blog/integration-testing-with-aspnetcore-3-1-set-default-headers-for-all-clients)\n- [SETTING UP API INTEGRATION TESTS WITH AUTHORIZATION IN .NET CORE](https://lukaszcoding.com/integration-testing-in-net-core/)\n- [Overriding configuration in ASP.NET Core integration tests](https://blog.markvincze.com/overriding-configuration-in-asp-net-core-integration-tests/)\n- [ASP.NET Core integration tests with WebApplicationFactory](https://www.vaughanreid.com/2020/07/asp-net-core-integration-tests-with-webapplicationfactory/)\n- [How to run integration tests for .NET API](https://www.code4it.dev/blog/integration-tests-for-dotnet-api)\n- [How to mock dependencies with Manifest resources](https://www.code4it.dev/blog/mock-dependency-with-manifest-resources)\n- [Mocking JWT tokens in ASP.NET Core integration tests](https://stebet.net/mocking-jwt-tokens-in-asp-net-core-integration-tests/)\n- [Testing authorisation scenarios in ASP.NET Core Web APIs](https://medium.com/asos-techblog/testing-authorization-scenarios-in-asp-net-core-web-api-484bc95d5f6f)\n- [ASP.NET Core Integration Testing: Protected endpoints](https://dev.to/kaos/asp-net-core-integration-testing-protected-endpoints-3bpp)\n- [Adding integration tests for permission-protected API endpoints in ASP.NET Core](https://blog.joaograssi.com/posts/2021/asp-net-core-testing-permission-protected-api-endpoints/)\n- [Unit Test and Mock HTTPContext in ASP.NET Core Controller](https://www.thecodebuzz.com/unit-test-and-mock-httpcontext-in-asp-net-core-controller/)\n- [Unit Test and Mock HttpContextAccessor](https://www.thecodebuzz.com/unit-test-and-mock-ihttpcontextaccessor/)\n- [Integration tests in ASP.NET Core](https://blog.joaograssi.com/series/integration-tests-in-asp.net-core)\n- [Integration testing with Docker and Testcontainers](https://medium.com/@jdelucaa/integration-testing-with-docker-and-testcontainers-3e53e6f44a1b)\n- [Automated Integration Testing over Gitlab CI/CD for Dotnet Core via Testcontainers](https://medium.com/trendyol-tech/automated-integration-testing-over-gitlab-ci-cd-for-dotnet-core-via-testcontainers-b18c7f81e65f)\n- [Tips & tricks for unit testing in .NET Core 3: Mocking IHttpContextAccessor](https://anthonygiretti.com/2020/02/03/tips-tricks-for-unit-testing-in-net-core-3-mocking-ihttpcontextaccessor/)\n- [Introduction to integration testing with xUnit and TestServer in ASP.NET Core](https://andrewlock.net/introduction-to-integration-testing-with-xunit-and-testserver-in-asp-net-core/)\n- [.net Core 3.0, DirectoryNotFoundException with Xunit Integration test](https://github.com/dotnet/aspnetcore/issues/17707)\n- [Using WireMock.net for Integration Testing](https://www.alexhyett.com/using-wiremock-net-integration-tests/)\n- [Using WireMock for dotnet core Integration tests](https://pcholko.com/posts/2021-04-05/wiremock-integration-test/)\n- [MongoDB integration testing in .Net Core – Vetting Mongo2go vs MongoDb Docker Instance](http://www.jonathanawotwi.com/2021/06/mongodb-integration-testing-in-net-core-mongo2go-vs-mongodb-docker-instance/)\n- [Integration Tests using WebApplicationFactory, xUnit and Mongo2Go](https://medium.com/@dev.satbir/integration-tests-using-webapplicationfactory-xunit-and-mongo2go-225068da834f)\n- [Vertical Slice testing done right: a tutorial](https://headspring.com/2020/09/02/testing-done-right-with-vertical-slice-architecture/)\n- [ASP.NET Core Integration Tests With TestServer - How Did I Not Know About This?](https://scotthannen.org/blog/2021/11/18/testserver-how-did-i-not-know.html)\n- [Testing code that uses EF Core](https://docs.microsoft.com/en-us/ef/core/testing/)\n- [Write integration tests on MongoDB with .NET Core and Docker](https://www.davidguida.net/write-integration-tests-on-mongodb-with-net-core-and-docker/)\n- [Handling Integration Tests in a CI pipeline – part 2: an example](https://www.davidguida.net/handling-integration-tests-in-a-ci-pipeline-part-2-an-example/)\n- [Integration Testing in DDD](https://github.com/kgrzybek/modular-monolith-with-ddd#313-integration-tests)\n- [Supporting integration tests with WebApplicationFactory in .NET 6](https://andrewlock.net/exploring-dotnet-6-part-6-supporting-integration-tests-with-webapplicationfactory-in-dotnet-6/)\n- [Accessing Configuration in .NET Core Test Projects](https://weblog.west-wind.com/posts/2018/Feb/18/Accessing-Configuration-in-NET-Core-Test-Projects)\n- [Read appsettings JSON in .NET Core Test Project](https://www.thecodebuzz.com/read-appsettings-json-in-net-core-test-project-xunit-mstest/)\n- [Testing ASP.NET Core 6 Apps](https://khalidabuhakmeh.com/testing-aspnet-core-6-apps)\n- [How to test configuration of HttpClient when using AddHttpClient](https://josef.codes/how-to-test-configuration-of-httpclient-when-using-addhttpclient/)\n- [You wanna test HTTP, right?](https://milestone.topics.it/2021/04/28/you-wanna-test-http.html)\n- [HTTP client and HTTP client factory in integration testing](https://milestone.topics.it/2021/11/10/http-client-factory-in-integration-testing.html)\n- [How to test ASP.NET Core Minimal APIs](https://www.twilio.com/blog/test-aspnetcore-minimal-apis)\n- [Refactor Functional Tests to support Minimal Web APIs](https://timdeschryver.dev/blog/refactor-functional-tests-to-support-minimal-web-apis)\n- [Intro to .NET Unit & Integration Testing with SpecsFor](https://www.infoq.com/articles/specsfor/)\n- [Testing business logic in Event Sourcing, and beyond!](https://event-driven.io/en/testing_event_sourcing/)\n- [Integration Testing ASP.NET Core APIs incl. auth and database](https://www.fearofoblivion.com/asp-net-core-integration-testing)\n- [Pro Testing with Xunit & Localstack](https://im5tu.io/article/2022/09/pro-testing-with-xunit-localstack/)\n- [API mocking in C# with WireMock.Net](https://www.ontestautomation.com/api-mocking-in-csharp-with-wiremock-net/)\n- [Using WireMock for dotnet core Integration tests](https://pcholko.com/posts/2021-04-05/wiremock-integration-test/)\n- [Testing your ASP.NET Core application - using a real database](https://josef.codes/testing-your-asp-net-core-application-using-a-real-database/)\n- [CLEANING UP QUEUES AND EXCHANGES ON RABBITMQ](https://www.planetgeek.ch/2015/08/16/cleaning-up-queues-and-exchanges-on-rabbitmq/)\n- [CLEANUP CODE FOR CLEANING UP QUEUES AND EXCHANGES ON RABBITMQ](https://www.planetgeek.ch/2015/08/31/cleanup-code-for-cleaning-up-queues-and-exchanges-on-rabbitmq/)\n- [A C# .NET Client Proxy For The RabbitMQ Management API](http://mikehadlow.blogspot.com/2012/11/a-c-net-client-proxy-for-rabbitmq.html)\n- [Mocking dependencies in ASP.NET Core tests](https://cezarypiatek.github.io/post/mocking-dependencies-in-asp-net-core/)\n- [How to Setup Integration Tests in .NET Without a WebApplicationFactory](https://wrapt.dev/blog/integration-tests-in-dotnet-without-webappfactory)\n- [Advanced Integration Tests for .NET 7 API with WebApplicationFactory and NUnit](https://www.code4it.dev/blog/advanced-integration-tests-webapplicationfactory/)\n- [How to use Testcontainers with .NET Unit Tests](https://blog.jetbrains.com/dotnet/2023/10/24/how-to-use-testcontainers-with-dotnet-unit-tests/)\n- [ASP.NET Core Integration Testing Best Practises](https://antondevtips.com/blog/asp-net-core-integration-testing-best-practises)\n\n## 📹 Videos\n- [Clean Testing: Clean Architecture with .NET Core - Jason Taylor - NDC Sydney 2020](https://www.youtube.com/watch?v=hV43fiHYBb4)\n- [Integration testing | ASP.NET Core 5 REST API Tutorial 15](https://www.youtube.com/watch?v=7roqteWLw4s)\n- [C# Integration Testing Tutorial](https://www.youtube.com/watch?v=OPEC_7J1LOw) \n- [ASP.NET Core C# Integration Testing Tutorial (File Uploads Example)](https://www.youtube.com/watch?v=0PXZMigt01A) \n- [ASP.NET Core C# Integration Testing Example (Mocking Identity)](https://www.youtube.com/watch?v=03y-i4nMou4&t=0s)\n- [ASP.NET Core C# Integration Testing - Mocking Cookie Authentication](https://www.youtube.com/watch?v=b1-KG_x-Y5Q)\n- [The API Integration coding test (2) - Unit and Acceptance testing | Cracking the .NET interview](https://www.youtube.com/watch?v=NPAK94ZCxD4)\n- [Writing robust integration tests in .NET with WireMock.NET](https://www.youtube.com/watch?v=YU3ohofu6UU)\n- [Integration Testing ASP.NET Core Web APIs with Docker - Dan Clarke](https://www.youtube.com/watch?v=VgStKMB1duY)\n- [Clean Testing - Clean Architecture with .NET Core - Jason Taylor - NDC Oslo 2020](https://www.youtube.com/watch?v=T6NRcX1vnz8)\n- [Clean Testing: Clean Architecture with .NET Core](https://www.youtube.com/watch?v=2UJ7mAtFuio)\n- [Pimp your testing strategy for micro services](https://www.youtube.com/watch?v=mjpCsL-Wpos)\n- [The cleanest way to use Docker for testing in .NET](https://www.youtube.com/watch?v=8IRNC7qZBmk)\n- [Testing like a PRO with XUnit & Localstack - .NET 7](https://www.youtube.com/watch?v=Ad7wruPBp3M)\n- [The BEST way to reset your database for testing in .NET](https://www.youtube.com/watch?v=E4TeWBFzcCw)\n- [.NET 6 minimal API–Integration testing](https://bartwullems.blogspot.com/2022/01/net-6-minimal-apiintegration-testing.html)\n- [Building an Event Driven .NET Application: Integration Testing](https://wrapt.dev/blog/building-an-event-driven-dotnet-application-integration-testing)\n- [Writing robust integration tests in .NET with WireMock.NET](https://www.youtube.com/watch?v=YU3ohofu6UU)\n- [Mocking APIs with Mockaco | .NET 7](https://www.youtube.com/watch?v=QBnXCgZFzM\n- [The BEST way to reset your database for testing in .NET](https://www.youtube.com/watch?v=E4TeWBFzcCw)\n- [Mastering Testcontainers for Better Integration Tests](https://www.youtube.com/watch?v=zfN8m9Dh9cs)\n\n## Libraries\n- [WireMock-Net/WireMock.Net](https://github.com/WireMock-Net/WireMock.Net) - WireMock.Net is a flexible library for stubbing and mocking web HTTP responses using request matching and response templating.\n- [SwissLife-OSS/snapshooter](https://github.com/SwissLife-OSS/snapshooter) - Snapshooter is a snapshot testing tool for .NET Core and .NET Framework\n- [SwissLife-OSS/squadron](https://github.com/SwissLife-OSS/squadron) - A testing framework for containerized and cloud services\n- [Mongo2Go/Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) - Mongo2Go - MongoDB for integration tests (.NET Core 3.0 and .NET 5.0)\n- [nbalakin/MongoDB.Fake](https://github.com/nbalakin/MongoDB.Fake) - MongoDB.Fake is an in-memory implementation of IMongoClient, IMongoDatabase and IMongoCollection for unit test purposes.\n- [martincostello/xunit-logging](https://github.com/martincostello/xunit-logging) - Logging extensions for xunit\n- [JasperFx/alba](https://github.com/JasperFx/alba) - Easy integration testing helper for ASP.Net Core applications\n- [webmotions/fake-authentication-jwtbearer](https://github.com/webmotions/fake-authentication-jwtbearer) - Simple way to fake an authenticated user for integration test with ASP.Net Core framework\n- [HofmeisterAn/dotnet-testcontainers](https://github.com/HofmeisterAn/dotnet-testcontainers) - A simple package with guard clause extensions.\n- [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet) - A .net fork of testcontainers - in early development\n- [dotnet/Docker.DotNet](https://github.com/dotnet/Docker.DotNet) - .NET (C#) Client Library for Docker API\n- [GestionSystemesTelecom/fake-authentication-jwtbearer/](https://github.com/GestionSystemesTelecom/fake-authentication-jwtbearer/) - Simple way to faked an authenticated user for integration test with ASP.Net Core framework\n- [AnthonyGiretti/Calzolari-EFCore-Flurl-FakeBearerToken-TestServer](https://github.com/AnthonyGiretti/Calzolari-EFCore-Flurl-FakeBearerToken-TestServer)\n- [SwissLife-OSS/snapshooter](https://github.com/SwissLife-OSS/snapshooter) - Snapshooter is a snapshot testing tool for .NET Core and .NET Framework\n- [SwissLife-OSS/squadron](https://github.com/SwissLife-OSS/squadron) - A testing framework for containerized and cloud services\n- [dylan-asos/netcore-authz-inmemory-bddfy](https://github.com/dylan-asos/netcore-authz-inmemory-bddfy) - A demonstration of in memory Web API testing of authentication scenarios\n- [jbogard/NServiceBus.Extensions.IntegrationTesting](https://github.com/jbogard/NServiceBus.Extensions.IntegrationTesting)\n- [atrauzzi/protoculture-dotnet-postgres](https://github.com/atrauzzi/protoculture-dotnet-postgres) - Embedded-style PostgreSQL for .NET Applications\n- [mariotoffia/FluentDocker](https://github.com/mariotoffia/FluentDocker) - Use docker, docker-compose local and remote in tests and your .NET core/full framework apps via a FluentAPI\n- [VerifyTests/Verify](https://github.com/VerifyTests/Verify) - Verify is a snapshot tool that simplifies the assertion of complex data models and documents.\n- [webmotions/fake-authentication-jwtbearer](https://github.com/webmotions/fake-authentication-jwtbearer) - Simple way to fake an authenticated user for integration test with ASP.Net Core framework\n- [bruno-garcia/Bazinga.AspNetCore.Authentication.Basic](https://github.com/bruno-garcia/Bazinga.AspNetCore.Authentication.Basic) - Basic Authentication for Microsoft ASP.NET Core Authentication\n- [EasyNetQ/EasyNetQ.Management.Client](https://github.com/EasyNetQ/EasyNetQ.Management.Client) - EasyNetQ.Management.Client is a .NET client for the RabbitMQ RESTful management API\n- [thinkco/rabbitmq-httpclient-dotnet](https://github.com/thinkco/rabbitmq-httpclient-dotnet) - RabbitMQ Management HTTP Client for .netCore\n\n## 🚀 Samples\n- [jasontaylordev/ndc-cleanarchitecture-2020](https://github.com/jasontaylordev/ndc-cleanarchitecture-2020)\n- [jbogard/ContosoUniversityDotNetCore-Pages/ContosoUniversity.IntegrationTests](https://github.com/jbogard/ContosoUniversityDotNetCore-Pages/tree/master/ContosoUniversity.IntegrationTests)\n- [kgrzybek/modular-monolith-with-ddd](https://github.com/kgrzybek/modular-monolith-with-ddd)\n- [devmentors/Pacco.Services.Availability](https://github.com/devmentors/Pacco.Services.Availability)\n- [devmentors/Trill-modular-monolith](https://github.com/devmentors/Trill-modular-monolith)\n- [philbir/magic-media](https://github.com/philbir/magic-media)\n- [ardalis/CleanArchitecture](https://github.com/ardalis/CleanArchitecture)\n- [fakhrulhilal/cleanarchitecture-kit](https://github.com/fakhrulhilal/cleanarchitecture-kit)\n- [timdeschryver/HowToTestYourCsharpWebApi](https://github.com/timdeschryver/HowToTestYourCsharpWebApi)\n- [code4it-dev/APIIntegrationTestsExample](https://github.com/code4it-dev/APIIntegrationTestsExample/)\n- [markvincze/AspNetCoreIntegrationTestConfig](https://github.com/markvincze/AspNetCoreIntegrationTestConfig)\n- [raw-coding-youtube/testing-101](https://github.com/raw-coding-youtube/testing-101)\n- [joaopgrassi/authz-custom-middleware](https://github.com/joaopgrassi/authz-custom-middleware)\n- [joaopgrassi/dockercompose-azdevops](https://github.com/joaopgrassi/dockercompose-azdevops)\n- [ceslogea/InMemoryMongo2GoWireMockPoc](https://github.com/ceslogea/InMemoryMongo2GoWireMockPoc)\n- [ivanpaulovich/clean-architecture-manga](https://github.com/ivanpaulovich/clean-architecture-manga)\n- [oskardudycz/EventSourcing.NetCore](https://github.com/oskardudycz/EventSourcing.NetCore)\n- [oskardudycz/EventSourcing.NetCore/ECommerce/Orders.Api.Tests](https://github.com/oskardudycz/EventSourcing.NetCore/blob/main/Sample/ECommerce/Orders/Orders.Api.Tests/Orders/InitializingOrder/InitializeOrderTests.cs)\n- [oskardudycz/EventSourcing.NetCore/Shipments.Api.Tests](https://github.com/oskardudycz/EventSourcing.NetCore/blob/main/Sample/ECommerce/Shipments/Shipments.Api.Tests/Packages/SendPackageTests.cs)\n- [martincostello/dotnet-minimal-api-integration-testing](https://github.com/martincostello/dotnet-minimal-api-integration-testing)\n- [mizrael/CICDIntegrationTests](https://github.com/mizrael/CICDIntegrationTests)\n- [mizrael/MongoDbIntegrationSample](https://github.com/mizrael/MongoDbIntegrationSample)\n- [pdevito3/postgres-docker-integration-tests](https://github.com/pdevito3/postgres-docker-integration-tests)\n- [devmentors/Inflow-micro/Inflow.Services.Wallets.Tests.Integration](https://github.com/devmentors/Inflow-micro/tree/master/src/Wallets/Inflow.Services.Wallets.Tests.Integration)\n- [linkdotnet/Blog](https://github.com/linkdotnet/Blog)\n- [valentinacupac/banking-kata-dotnet](https://github.com/valentinacupac/banking-kata-dotnet)\n- [bymyslf/payment-gateway](https://github.com/bymyslf/payment-gateway)\n- [pdevito3/WeSendReportsCompany/](https://github.com/pdevito3/WeSendReportsCompany/)\n- [Elfocrash/testing-workshop-ndcoslo2022](https://github.com/Elfocrash/testing-workshop-ndcoslo2022)\n- [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing)\n- [pdevito3/PeakLimsApi](https://github.com/pdevito3/PeakLimsApi)\n- [pdevito3/domain-events-example](https://github.com/pdevito3/domain-events-example)\n- [pdevito3/MessageBusTestingInMemHarness](https://github.com/pdevito3/MessageBusTestingInMemHarness)\n- [MarkNijhof/Fohjin](https://github.com/MarkNijhof/Fohjin)\n- [ChrisKlug/asp-net-core-integration-testing-demo](https://github.com/ChrisKlug/asp-net-core-integration-testing-demo)\n- [ServiceComposer/ServiceComposer.AspNetCore.Tests](https://github.com/ServiceComposer/ServiceComposer.AspNetCore/tree/master/src/ServiceComposer.AspNetCore.Tests)\n- [mehdihadeli/WebApplicationFactoryWithHost-Sample](https://github.com/mehdihadeli/WebApplicationFactoryWithHost-Sample)\n- [joseftw/jos.tests](https://github.com/joseftw/jos.tests)\n- [davidfowl/TodoApi](https://github.com/davidfowl/TodoApi)\n- [benjaminsampica/DynamoLeagueBlazor](https://github.com/benjaminsampica/DynamoLeagueBlazor)\n- [pdevito3/TestingServiceRegistration](https://github.com/pdevito3/TestingServiceRegistration)\n- [pdevito3/PatientPlayground](https://github.com/pdevito3/PatientPlayground) \n- [Nairda015/IGroceryStore](https://github.com/Nairda015/IGroceryStore)\n- [khalidabuhakmeh/TestingWithContainers](https://github.com/khalidabuhakmeh/TestingWithContainers)\n- [phucnt1992/testcontainers-101](https://github.com/phucnt1992/testcontainers-101)\n- [kimcuhoang/setup-dotnet-test-projects](https://github.com/kimcuhoang/setup-dotnet-test-projects)\n- [managedcode/IntegrationTestBaseKit](https://github.com/managedcode/IntegrationTestBaseKit)"
  },
  {
    "path": "docs/testing/load-testing.md",
    "content": "\n# Load Testing\n\n## 📘 Resources\n- [atinfo/awesome-test-automation](https://github.com/atinfo/awesome-test-automation) - A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages\n- [grafana/k6-learn](https://github.com/grafana/k6-learn)\n\n## 📝 Articles\n- [Load testing](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Load-testing)\n- [Running Load Tests From the Cloud With k6](https://benfoster.io/blog/running-load-tests-from-aws-cloud-with-k6/)\n- [Intro to Testing ASP.NET APIs with k6 - When Unit Tests Meet Load Testing](https://dev.to/k6/intro-to-testing-asp-net-apis-with-k6-when-unit-tests-meet-load-testing-5b5h)\n- [Scalable and Performant ASP.NET Core Web APIs: Load Testing](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-load-testing/)\n- [Load and Performance Test Types](https://k6.io/docs/test-types/introduction/)\n- [Smoke testing in k6](https://k6.io/docs/test-types/smoke-testing/)\n- [Stress testing in k6](https://k6.io/docs/test-types/stress-testing/)\n- [Load Testing in k6](https://k6.io/docs/test-types/load-testing/)\n- [Stress testing in k6](https://k6.io/docs/test-types/stress-testing/)\n- [Soak testing in k6](https://k6.io/docs/test-types/soak-testing/)\n- [Load Testing vs Stress Testing vs Performance Testing: Difference Discussed](https://www.guru99.com/performance-vs-load-vs-stress-testing.html)\n- [Load Testing vs Stress Testing](https://performancelabus.com/load-testing-vs-stress-testing/)\n- [Load Testing vs. Performance Testing vs. Stress Testing](https://stackify.com/load-testing-vs-performance-testing-vs-stress-testing/)\n- [Testing REST API using K6](https://craftbakery.dev/testing-rest-api-using-k6/) ⭐\n- [How to control a live k6 test, with these built-in commands](https://k6.io/blog/how-to-control-a-live-k6-test/)\n- [Beautiful Load Testing With K6 and Docker Compose](https://medium.com/swlh/beautiful-load-testing-with-k6-and-docker-compose-4454edb3a2e3)\n- [Load Testing Your API with Swagger/OpenAPI and k6](https://k6.io/blog/load-testing-your-api-with-swagger-openapi-and-k6/) ⭐\n- [API load testing](https://k6.io/docs/testing-guides/api-load-testing/)\n- [Advanced Examples k6](https://k6.io/docs/using-k6/scenarios/advanced-examples/)\n- [How to generate a constant request rate in k6 with the new scenarios API?](https://k6.io/blog/how-to-generate-a-constant-request-rate-with-the-new-scenarios-api/)\n- [Getting started with Load testing with K6 on Windows 11](https://www.notion.so/mehdihadeli/Getting-started-with-Load-testing-with-K6-on-Windows-11-Code4IT-c5487b78dc244458b03abe301e2421ef)\n\n## 📹 Videos\n\n- [Munich .NET Meetup: Massive load testing with NBomber cluster](https://www.youtube.com/watch?v=U2j7NmXZrOc)\n- [ASP.NET Core Series: Performance Testing Techniques](https://www.youtube.com/watch?v=jn54CjePzs0)\n- [Web Load and URL Testing with West Wind WebSurge](https://www.youtube.com/watch?v=O5J8mDfVZH8)\n- [Getting started with API Load Testing (Stress, Spike, Load, Soak)](https://www.youtube.com/watch?v=r-Jte8Y8zag)\n- [On .NET Live - Performance and Load testing with k6](https://www.youtube.com/watch?v=PYHZLCTC7i0)\n- [Intro to load testing with k6 and Grafana (k6 data source plugin and Prometheus Remote Write)](https://www.youtube.com/watch?v=tFsIgbqXbxM)\n## Libraries\n- [codesenberg/bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool written in Go\n- [locustio/locust](https://github.com/locustio/locust) - Scalable user load testing tool written in Python\n- [tsenart/vegeta](https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000!\n- [k6io/k6](https://github.com/k6io/k6) - A modern load testing tool, using Go and JavaScript - https://k6.io\n- [rakyll/hey](https://github.com/rakyll/hey) - HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom\n- [apideck-libraries/postman-to-k6](https://github.com/apideck-libraries/postman-to-k6) - Converts Postman collections to k6 script code\n- [OpenAPITools/openapi-generator-cli](https://github.com/OpenAPITools/openapi-generator-cli) - OpenAPI Generator allows generation of API client libraries \n## Samples\n- [servicetitan/Stl.Fusion.Samples](https://github.com/servicetitan/Stl.Fusion.Samples)\n- [SwissLife-OSS/K6-MultiScenario-template](https://github.com/SwissLife-OSS/K6-MultiScenario-template) - A K6 Multi Scenario template applying some best practices along some examples\n- [grafana/k6-learn](https://github.com/grafana/k6-learn)"
  },
  {
    "path": "docs/testing/mocking.md",
    "content": "# Mocking\n\n## 📝 Articles\n\n- [Effective mocking](https://cezarypiatek.github.io/post/effective-mocking/)\n- [Bridging between NSubstitute and FluentAssertions](https://www.neovolve.com/2014/10/07/bridging-between-nsubstitute-and-fluentassertions/)\n- [NSubstitute and FluentAssertions Redux](https://www.neovolve.com/2021/04/25/nsubstitute-and-fluentassertions-redux/)\n- [Mocking Data with Bogus](https://dev.to/integerman/mocking-data-with-bogus-25ac)\n- [Lifelike Test Data Generation with Bogus](http://dontcodetired.com/blog/post/Lifelike-Test-Data-Generation-with-Bogus)\n- [Seed Entity Framework Core With Bogus Data](https://khalidabuhakmeh.com/seed-entity-framework-core-with-bogus)\n- [Creating .NET fakes using Bogus](https://cmatskas.com/creating-net-fakes-using-bogus-2/)\n- [How to mock dependencies with Manifest resources](https://www.code4it.dev/blog/mock-dependency-with-manifest-resources)\n- [Write simpler tests with Type Builders and AutoFixture](https://canro91.github.io/2021/06/21/WriteSimplerTestsTypeBuilderAndAutoFixture/)\n- [5 tips for better stubs and mocks in C#](https://canro91.github.io/2021/06/07/TipsForBetterStubsAndMocks/)\n- [What are fakes in unit testing: mocks vs stubs](https://canro91.github.io/2021/05/24/WhatAreFakesInTesting/)\n- [Generating data in dotnet core with GenFu](http://taswar.zeytinsoft.com/generating-data-in-dotnet-core-with-genfu/)\n- [Realistic Sample Data with GenFu](https://www.davepaquette.com/archive/2015/11/15/realistic-sample-data-with-genfu.aspx)\n- [Playing around with GenFu](https://asp.net-hacker.rocks/2016/01/27/playing-around-with-GenFu.html)\n- [Brincando com GenFu .NET Core](https://dev.to/juniorporfirio/brincando-com-genfu-net-core-5gon)\n- [How to use Moq and xUnit for Unit Testing Controllers in ASP.NET Core](https://www.hosting.work/aspnet-core-moq-xunit-unit-testing/)\n- [Mocking a method in the same test class using Mockito](https://towardsdatascience.com/mocking-a-method-in-the-same-test-class-using-mockito-b8f997916109)\n- [Why I stopped worrying about test setups by using AutoFixture](https://timdeschryver.dev/blog/why-i-stopped-worrying-about-test-setups-by-using-autofixture)\n- [Stubs and mocks break encapsulation](https://blog.ploeh.dk/2022/10/17/stubs-and-mocks-break-encapsulation/)\n- [How to Create Bogus Data in C#](https://jackhiston.com/2017/10/1/how-to-create-bogus-data-in-c/)\n- [Seed Entity Framework Core With Bogus Data](https://khalidabuhakmeh.com/seed-entity-framework-core-with-bogus)\n- [API mocking in C# with WireMock.Net](https://www.ontestautomation.com/api-mocking-in-csharp-with-wiremock-net/)\n- [Mocking dependencies in ASP.NET Core tests](https://cezarypiatek.github.io/post/mocking-dependencies-in-asp-net-core/)\n## 📺 Videos\n- [Clean mocking for unit tests using NSubstitute in .NET (Core, Framework, Standard)](https://www.youtube.com/watch?v=LcQYv0cBWk0)\n- [Getting started with Mocking using Moq in .NET (Core, Framework, Standard)](https://www.youtube.com/watch?v=9ZvDBSQa_so)\n- [Creating a mocking library for .NET in C# FROM SCRATCH](https://www.youtube.com/watch?v=9kEURoqHKZ0)\n- [Generating realistic fake data in .NET using Bogus](https://www.youtube.com/watch?v=T9pwE1GAr_U)\n- [Introduction to Unit Testing Using AutoFixture](https://www.youtube.com/watch?v=ivEke62spOg)\n- [Mocking APIs with Mockaco | .NET 7](https://www.youtube.com/watch?v=QBnXCgZFzM0)\n- [Writing robust integration tests in .NET with WireMock.NET](https://www.youtube.com/watch?v=YU3ohofu6UU)\n## Libraries\n- [GestionSystemesTelecom/fake-authentication-jwtbearer](https://github.com/GestionSystemesTelecom/fake-authentication-jwtbearer/) - Simple way to faked an authenticated user for integration test with ASP.Net Core framework\n- [force-net/DeepCloner](https://github.com/force-net/DeepCloner) - Fast object cloner for .NET\n- [Tynamix/ObjectFiller.NET](https://github.com/Tynamix/ObjectFiller.NET/) - The .NET ObjectFiller fills the properties of your .NET objects with random data\n- [bchavez/Bogus](https://github.com/bchavez/Bogus) - 📇 A simple and sane fake data generator for C#, F#, and VB.NET. Based on and ported from the famed faker.js.\n- [WireMock-Net/WireMock.Net](https://github.com/WireMock-Net/WireMock.Net) - WireMock.Net is a flexible library for stubbing and mocking web HTTP responses using request matching and response templating.\n- [Mongo2Go/Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) - Mongo2Go - MongoDB for integration tests (.NET Core 3.0 and .NET 5.0)\n- [bchavez/Bogus](https://github.com/bchavez/Bogus) - 📇 A simple and sane fake data generator for C#, F#, and VB.NET. Based on and ported from the famed faker.js.\n- [AutoFixture/AutoFixture](https://github.com/AutoFixture/AutoFixture) - AutoFixture is an open source library for .NET designed to minimize the 'Arrange' phase of your unit tests in order to maximize maintainability. Its primary goal is to allow developers to focus on what is being tested rather than how to setup the test scenario, by making it easier to create object graphs containing test data.\n- [AnthonyGiretti/Calzolari-EFCore-Flurl-FakeBearerToken-TestServer](https://github.com/AnthonyGiretti/Calzolari-EFCore-Flurl-FakeBearerToken-TestServer)\n- [MisterJames/GenFu](https://github.com/MisterJames/GenFu) - GenFu is a library you can use to generate realistic test data. It is composed of several property fillers that can populate commonly named properties through reflection using an internal database of values or randomly created data. You can override any of the fillers, give GenFu hints on how to fill them.\n- [richardszalay/mockhttp](https://github.com/richardszalay/mockhttp) - Testing layer for Microsoft's HttpClient library. Create canned responses using a fluent API.\n- [natenho/Mockaco](https://github.com/natenho/Mockaco) - HTTP mock server, useful to stub services and simulate dynamic API responses, leveraging ASP.NET Core features, built-in fake data generation and pure C# scripting"
  },
  {
    "path": "docs/testing/mutation-testing.md",
    "content": "# Mutation Testing\n\n## Resources\n- [What is mutation testing?](https://stryker-mutator.io/docs/)\n\n## Libraries\n- [stryker-mutator/stryker-net](https://github.com/stryker-mutator/stryker-net) - Mutation testing for .NET core and .NET framework!\n## Videos\n- [How to test your tests in .NET](https://www.youtube.com/watch?v=sGwfwtkaDfk)"
  },
  {
    "path": "docs/testing/snapshot-testing.md",
    "content": "# Snapshot Testing\n\n## Articles\n- [Snapshot Testing for C#](https://blog.johnnyreilly.com/2018/11/17/snapshot-testing-for-c)\n- [Snapshot Testing with Verify](https://www.danclarke.com/snapshot-testing-with-verify)\n\n## Videos\n- [Testing your C# code reliably by freezing it in time](https://www.youtube.com/watch?v=Q1_YkcPwpqY)\n- [Snapshot Testing in .NET with Verify](https://www.youtube.com/watch?v=rS32vjMve48)\n\n## Libraries\n- [SwissLife-OSS/snapshooter](https://github.com/SwissLife-OSS/snapshooter) - Snapshooter is a snapshot testing tool for .NET Core and .NET Framework\n- [VerifyTests/Verify](https://github.com/VerifyTests/Verify) - Verify is a snapshot tool that simplifies the assertion of complex data models and documents.\n- [VerifyTests/Verify.MassTransit](https://github.com/VerifyTests/Verify.MassTransit) - Adds Verify support for MassTransit test helpers.\n- [VerifyTests/Verify.Http](https://github.com/VerifyTests/Verify.Http) - Extends Verify to allow verification of web bits.\n- [VerifyTests/Verify.AspNetCore](https://github.com/VerifyTests/Verify.AspNetCore)\n- [VerifyTests/Verify.NSubstitute](https://github.com/VerifyTests/Verify.NSubstitute)\n- [VerifyTests/Verify.EntityFramework](https://github.com/VerifyTests/Verify.EntityFramework) - Extends Verify to allow verification of EntityFramework bits.\n- [VerifyTests/Verify.Wolverine](https://github.com/VerifyTests/Verify.Wolverine) - Adds Verify support for verifying Wolverine \n- [VerifyTests/Verify.SourceGenerators](https://github.com/VerifyTests/Verify.SourceGenerators) - Extends Verify to allow verification of C# Source Generators."
  },
  {
    "path": "docs/testing/tdd.md",
    "content": "# TDD\n\n## 📕 Articles\n\n- [TDD is dead. Long live testing](https://dhh.dk/2014/tdd-is-dead-long-live-testing.html)\n- [Test-induced design damage](https://dhh.dk/2014/test-induced-design-damage.html)\n- [Outside-in Diamond 🔷 TDD #1 - a style made from (& for) ordinary people](https://tpierrain.blogspot.com/2021/03/outside-in-diamond-tdd-1-style-made.html)\n- [Outside-in Diamond 🔷 TDD #2 (anatomy of a style)](https://tpierrain.blogspot.com/2021/03/outside-in-diamond-tdd-2-anatomy-of.html)\n- [Effective Test Driven Development](https://jeremydmiller.com/2022/10/03/effective-test-driven-development/)\n- [Real Life TDD Example](https://jeremydmiller.com/2022/10/04/real-life-tdd-example/)\n- [Why TDD will change your developer life?](https://itnext.io/why-tdd-will-change-your-developer-life-b0bf234e15ac)\n- [Practical TDD — First Lesson](https://itnext.io/practical-tdd-first-lesson-1c689fffe4ec)\n- [Practical TDD — Lesson 2](https://itnext.io/practical-tdd-lesson-2-d9d48283b0c4)\n- [TDD practical lessons 3 — Classes collaboration](https://itnext.io/practical-tdd-3-9a76b3e045d8)\n## 📺 Videos\n- [TDD - Test Driven Development in C# - Pluralsight](https://www.pluralsight.com/courses/csharp-test-driven-development)\n- [Test Driven Development with C# and .NET Core MVC - Packt](https://www.packtpub.com/product/test-driven-development-with-c-and-net-core-mvc-video/9781788391238)\n- [.NET 5 REST API Tutorial 10 - Unit Testing and TDD](https://www.youtube.com/watch?v=dsD0CMgPjUk)\n- [Test driven development (TDD) - Tutorial for Beginners](https://www.youtube.com/watch?v=y8TcPr73Bwo)\n- [How to Implement TDD ( Test Driven Development ) in C# | CSharp Interview Questions & Answers](https://www.youtube.com/watch?v=5gMBGVNR8wE)\n- [Test Driven Development asp net core 6](https://www.youtube.com/watch?v=3q6Fit7pzI4)\n- [DevTernity 2017: Ian Cooper - TDD, Where Did It All Go Wrong](https://www.youtube.com/watch?v=EZ05e7EMOLM)\n- [Building a .NET 6 API Using TDD](https://www.youtube.com/watch?v=ULJ3UEezisw)\n- [Improving your Test Driven Development in 45 minutes - Jakub Nabrdalik](https://www.youtube.com/watch?v=2vEoL3Irgiw)\n- [TDD and Clean Architecture - Use Case Driven Development by Valentina Cupać](https://www.youtube.com/watch?v=IZWLnn2fNko)\n- [THIS stops 90% of C# Developers Learning TDD](https://www.youtube.com/watch?v=x5hsO6R6Me8)\n- [Building Operable Software with TDD (but not the way you think) - Martin Thwaites](https://www.youtube.com/watch?v=yVQMnQKSsh4)\n- [TDD, Where Did It All Go Wrong (Ian Cooper)](https://www.youtube.com/watch?v=EZ05e7EMOLM)\n- [TDD Revisited - Ian Cooper - NDC Porto 2023](https://youtu.be/IN9lftH0cJc?si=RckldxlL9C_yfXIn)\n## Samples\n- [ivanpaulovich/clean-architecture-manga](https://github.com/ivanpaulovich/clean-architecture-manga)\n- [CanerPatir/aspnet-core-clean-arch](https://github.com/CanerPatir/aspnet-core-clean-arch)\n- [valentinacupac/banking-kata-dotnet](https://github.com/valentinacupac/banking-kata-dotnet)\n"
  },
  {
    "path": "docs/testing/test-coverage-analysis.md",
    "content": "# Code Coverage & Analysis\n\n## 📕 Articles\n- [How to view code coverage with Coverlet and Visual Studio 2019](https://www.code4it.dev/blog/code-coverage-vs-2019-coverlet#coverlet---the-nuget-package-for-code-coverage)\n- [Cobertura, YAML, and Code Coverage Protector: how to view Code Coverage report on Azure DevOps](https://www.code4it.dev/blog/code-coverage-on-azure-devops-yaml-pipelines)\n- [.NET Core Code Coverage as a Global Tool with coverlet](https://www.hanselman.com/blog/net-core-code-coverage-as-a-global-tool-with-coverlet)\n- [Automatic Unit Testing in .NET Core plus Code Coverage in Visual Studio Code](https://www.hanselman.com/blog/automatic-unit-testing-in-net-core-plus-code-coverage-in-visual-studio-code)\n- [Use Continuous Testing](https://www.jetbrains.com/help/dotcover/Work_with_Continuous_Testing.html)\n- [Unit test coverage and continuous testing. Now in Rider!](https://blog.jetbrains.com/dotnet/2018/07/20/unit-test-coverage-continuous-testing-now-rider/)\n- [Running SonarQube for a .NET Core project in Azure DevOps YAML multi-stage pipelines](https://blogs.blackmarble.co.uk/rfennell/2020/05/11/running-sonarqube-for-a-net-core-project-in-azure-devops-yaml-multi-stage-pipelines/)\n- [Code coverage reports for ASP.NET Core](https://gunnarpeipman.com/aspnet-core-code-coverage/)\n- [Code Analysis with SonarQube + Docker + .NET Core](https://medium.com/@thiagoloureiro/code-analysis-with-sonarqube-docker-net-core-aee521ee8931)\n- [Continuous Code Quality using SonarLint in Visual Studio 2017-2019](https://www.thecodebuzz.com/continuous-code-quality-of-using-sonar/)\n- [Continuous Code Quality using NDepend in Visual Studio](https://www.thecodebuzz.com/static-code-quality-analysis-ndepend/)\n- [SonarQube tutorial – Part I: How to Get Started?](https://blog.setapp.pl/sonarqube_introduction)\n- [SonarQube Tutorial – Part II: How to Use SonarScanner?](https://blog.setapp.pl/how-to-use-sonarscanner)\n- [Quickstart: Analyzing .NET projects with SonarQube, MSBuild or Visual Studio Online, and third-party analyzers (StyleCop, ReSharper)](https://devblogs.microsoft.com/devops/quickstart-analyzing-net-projects-with-sonarqube-msbuild-or-visual-studio-online-and-third-party-analyzers-stylecop-resharper/)\n- [SonarQube for continuous analysis of .NET projects](https://arghya.xyz/articles/sonarqube-for-dotnet/)\n- [How to run a SonarCloud scan during Docker builds for .NET Core](https://pumpingco.de/blog/how-to-run-a-sonarcloud-scan-during-docker-builds-for-dotnet-core/)\n- [Setting up the SonarQube scanner when building a .NET Core container image](https://www.mytechramblings.com/posts/running-a-sonarqube-scan-when-building-docker-image/)\n- [How to Write Cleaner, Safer Code with SonarQube, Docker and .NET Core](https://developer.okta.com/blog/2021/09/08/sonar-qube-dotnet)\n- [Code Coverage in GitHub with .NET Core](https://samlearnsazure.blog/2021/01/05/code-coverage-in-github-with-net-core/) ⭐\n- [Entering the NDepend world](https://www.davidguida.net/entering-the-ndepend-world/)\n- [Measuring maintainability metrics with NDepend](https://www.code4it.dev/blog/measure-maintainability-with-ndepend)\n- [Setting up the SonarQube scanner when building a .NET Core container image](https://www.mytechramblings.com/posts/running-a-sonarqube-scan-when-building-docker-image/)\n- [Code Coverage in .NET](https://code-maze.com/dotnet-code-coverage/)\n- [From Zero to Production - Generate everything with a single button](https://steven-giesel.com/blogPost/5f9e9f0d-2413-4e4b-8e38-9eebe9503e52) ⭐\n- [Setting up the SonarQube scanner when building a .NET Core container image](https://www.mytechramblings.com/posts/running-a-sonarqube-scan-when-building-docker-image/) ⭐\n- [Combining Multiple Code Coverage Results In Azure DevOps](https://www.jamescroft.co.uk/combining-multiple-code-coverage-results-in-azure-devops/) ⭐\n- [Generating Code Coverage Reports in .NET Core](https://dotnetthoughts.net/generating-code-coverage-reports-in-dotnet-core/)\n- [GitHub Actions: Publish Code Coverage Summary to Pull Requests](https://josh-ops.com/posts/github-code-coverage/)\n- [Dotnet Unit test with Coverlet- How to get coverage for entire solution and not just a project](https://stackoverflow.com/questions/53255065/dotnet-unit-test-with-coverlet-how-to-get-coverage-for-entire-solution-and-not)\n- [Excluding Your .NET Test Project From Code Coverage](https://codyanhorn.tech/blog/excluding-your-net-test-project-from-code-coverage)\n- [Add ability to exclude assemblies by expression](https://github.com/coverlet-coverage/coverlet/pull/94) ⭐\n- [Coverlet Docs](https://github.com/coverlet-coverage/coverlet/blob/master/Documentation)\n- [Coverlet integration with MSBuild](https://github.com/coverlet-coverage/coverlet/blob/master/Documentation/MSBuildIntegration.md) ⭐⭐\n## 📺 Videos\n- [On .NET Live - .NET Core Code Coverage with Coverlet](https://www.youtube.com/watch?v=K9XSl3xMilE)\n- [Checking out NDepend, a static code analysis tool for .NET](https://www.youtube.com/watch?v=iKyoR_qEsKM)\n\n## Libraries\n- [SteveGilham/altcover](https://github.com/SteveGilham/altcover) - Cross-platform coverage gathering and processing tool set for .net/.net core and Mono\n- [coverlet-coverage/coverlet](https://github.com/coverlet-coverage/coverlet) - Cross platform code coverage for .NET\n- [danielpalme/ReportGenerator](https://github.com/danielpalme/ReportGenerator) - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats.\n- [shogo82148/actions-goveralls](https://github.com/shogo82148/actions-goveralls) - Coveralls GitHub Action with Go integration powered by mattn/goveralls\n- [phoenix-actions/test-reporting](https://github.com/phoenix-actions/test-reporting) - Displays test results from popular testing frameworks directly in GitHub\n- [irongut/CodeCoverageSummary](https://github.com/irongut/CodeCoverageSummary) - A GitHub Action that reads Cobertura format code coverage files and outputs a text or markdown summary\n- [zyborg/dotnet-tests-report](https://github.com/zyborg/dotnet-tests-report) - GitHub Action to run .NET Core tests and generate report attached to Workflow Run\n- [coverallsapp/github-action](https://github.com/coverallsapp/github-action) - Coveralls Github Action"
  },
  {
    "path": "docs/testing/test-host.md",
    "content": "# Test Host And WebApplicationFactory\n\n## 📝 Articles\n\n- [Converting integration tests to .NET Core 3.0](https://andrewlock.net/converting-integration-tests-to-net-core-3/)\n- [Using custom startup class with ASP.NET Core integration tests](https://gunnarpeipman.com/aspnet-core-integration-test-startup/)\n- [Using custom appsettings.json with ASP.NET Core integration tests](https://gunnarpeipman.com/aspnet-core-integration-tests-appsettings/)\n- [Testing WebAPI with ApprovalTests.NET](https://cezarypiatek.github.io/post/testing-web-api-with-approval-tests/)\n- [Integration tests in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests)\n- [Different kind of testing strategies with ASP.NET Core: The basics](https://dotnetfromthemountain.com/aspnet-core-testing-strategies-the-basics/)\n- [Integration Testing with ASP.NET Core 3.1 - Remove the Boiler Plate](https://adamstorr.azurewebsites.net/blog/integration-testing-with-aspnetcore-3-1-remove-the-boiler-plate)\n- [How to test your C# Web API](https://timdeschryver.dev/blog/how-to-test-your-csharp-web-api)\n  <div align=\"right\">\n    <b><a href=\"#contents\">↥ Back To Top</a></b>\n  </div>"
  },
  {
    "path": "docs/testing/testing.md",
    "content": "\n# Testing\n\n## 📘 Resources\n- [atinfo/awesome-test-automation](https://github.com/atinfo/awesome-test-automation) - A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages\n- [dariusz-wozniak/List-of-Testing-Tools-and-Frameworks-for-.NET](https://github.com/dariusz-wozniak/List-of-Testing-Tools-and-Frameworks-for-.NET) - List of Automated Testing (TDD/BDD/ATDD/SBE) Tools and Frameworks for .NET\n\n## 📝 Articles\n- [First-Class Tests](https://blog.cleancoder.com/uncle-bob/2017/05/05/TestDefinitions.html) \n- [Software Testing Guide](https://martinfowler.com/testing/) \n- [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) \n- [Clean code tips - Tests](https://www.code4it.dev/blog/clean-code-tests)\n- [Testing internal members with InternalsVisibleTo](https://www.code4it.dev/blog/testing-internals-with-internalsvisibleto)\n- [Using C# Named Arguments to Declutter Complex Tests](https://exceptionnotfound.net/using-csharp-named-arguments-to-declutter-complex-tests/)\n- [Exploring Fluent Assertions](https://www.meziantou.net/exploring-fluent-assertions.htm)\n- [How to get ASP.NET Core logs in the output of xUnit tests](https://www.meziantou.net/how-to-get-asp-net-core-logs-in-the-output-of-xunit-tests.htm)\n- [Writing Logs to xunit Test Output](https://blog.martincostello.com/writing-logs-to-xunit-test-output/)\n- [How to name your unit tests. 4 test naming conventions](https://canro91.github.io/2021/04/12/UnitTestNamingConventions/)\n- [Introduction to integration testing with xUnit and TestServer in ASP.NET Core](https://andrewlock.net/introduction-to-integration-testing-with-xunit-and-testserver-in-asp-net-core/)\n- [Improve Tests with the Builder Pattern for Test Data](https://ardalis.com/improve-tests-with-the-builder-pattern-for-test-data/)\n- [Never use the same value for two IDs (or other values) in your tests](https://ardalis.com/never-use-the-same-value-for-two-ids-or-other-values-in-your-tests/)\n- [Flexible and expressive unit tests with the builder pattern](https://www.kenneth-truyers.net/2013/07/15/flexible-and-expressive-unit-tests-with-the-builder-pattern/)\n- [Test Data Builders in C#](https://blog.ploeh.dk/2017/08/15/test-data-builders-in-c/)\n- [Why I stopped worrying about test setups by using AutoFixture](https://timdeschryver.dev/blog/why-i-stopped-worrying-about-test-setups-by-using-autofixture)\n- [Using records when implementing the builder pattern in C#](https://josef.codes/using-records-when-implementing-the-builder-pattern-in-c-sharp/)\n- [Dotnet Core - Filter out specific test projects when running dotnet test](https://josef.codes/dotnet-core-filter-out-specific-test-projects-when-running-dotnet-test/)\n- [How to set .runsettings in JetBrains Rider and MSTest](https://stackoverflow.com/questions/56787555/how-to-set-runsettings-in-jetbrains-rider-and-mstest)\n- [Configure unit tests by using a .runsettings file](https://learn.microsoft.com/en-us/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file?view=vs-2022)\n- [The “Best Practices” of Nested Unit Tests](https://www.testwithspring.com/lesson/the-best-practices-of-nested-unit-tests/)\n- [Writing Nested Unit Tests](https://www.testwithspring.com/lesson/writing-nested-unit-tests/)\n- [Testing your Polly policies](https://josef.codes/testing-your-polly-policies/)\n\n## 📺 Videos\n- [Writing and Running Unit Tests with ReSharper](https://www.jetbrains.com/dotnet/guide/tutorials/resharper-essentials/unit-testing/)\n- [Test Desiderata](https://www.youtube.com/playlist?list=PLlmVY7qtgT_lkbrk9iZNizp978mVzpBKl)\n- [Clean Testing: Clean Architecture with .NET Core - Jason Taylor - NDC Sydney 2020](https://www.youtube.com/watch?v=hV43fiHYBb4)\n- [Code Testing - Code It Up with Ivo](https://www.youtube.com/playlist?list=PLLGdqRi7N09YoomAKadOjLopq0sIr_PKT)\n- [Improving your Test Driven Development in 45 minutes - Jakub Nabrdalik](https://www.youtube.com/watch?v=2vEoL3Irgiw)\n- [TDD and Clean Architecture - Use Case Driven Development by Valentina Cupać](https://www.youtube.com/watch?v=IZWLnn2fNko)\n- [How to test your tests in .NET](https://www.youtube.com/watch?v=sGwfwtkaDfk)\n## Libraries\n- [martincostello/xunit-logging](https://github.com/martincostello/xunit-logging) - Logging extensions for xunit\n- [NetArchTest](https://github.com/BenMorris/NetArchTest) - A fluent API for .Net that can enforce architectural rules in unit tests.\n- [SwissLife-OSS/snapshooter](https://github.com/SwissLife-OSS/snapshooter) - Snapshooter is a snapshot testing tool for .NET Core and .NET Framework\n- [SwissLife-OSS/squadron](https://github.com/SwissLife-OSS/squadron) - A testing framework for containerized and cloud services\n- [.NET Testcontainers](https://github.com/HofmeisterAn/dotnet-testcontainers) - A library to support tests with throwaway instances of Docker containers for all compatible .NET Standard versions.\n- [bombardier](https://github.com/codesenberg/bombardier) - Fast cross-platform HTTP benchmarking tool written in Go\n- [FluentAssertions](https://github.com/fluentassertions/fluentassertions) - Fluent API for asserting the results of unit tests that targets .NET Framework 4.5, 4.7, .NET Standard 1.3, 1.6 and 2.0. Supports the unit test frameworks MSTest, MSTest2, Gallio, NUnit, XUnit, MBunit, MSpec, and NSpec.\n- [Shouldly](https://github.com/shouldly/shouldly) - Should testing for .NET - the way Asserting -Should- be!\n- [AnthonyGiretti/Calzolari-EFCore-Flurl-FakeBearerToken-TestServer](https://github.com/AnthonyGiretti/Calzolari-EFCore-Flurl-FakeBearerToken-TestServer)\n- [GregFinzer/Compare-Net-Objects](https://github.com/GregFinzer/Compare-Net-Objects) - What you have been waiting for 👍 Perform a deep compare of any two .NET objects using reflection. Shows the differences between the two objects.\n- [force-net/DeepCloner](https://github.com/force-net/DeepCloner) - Fast object cloner for .NET\n- [Tynamix/ObjectFiller.NET](https://github.com/Tynamix/ObjectFiller.NET/) - The .NET ObjectFiller fills the properties of your .NET objects with random data\n- [WireMock-Net/WireMock.Net](https://github.com/WireMock-Net/WireMock.Net) - WireMock.Net is a flexible library for stubbing and mocking web HTTP responses using request matching and response templating.\n- [Mongo2Go/Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) - Mongo2Go - MongoDB for integration tests (.NET Core 3.0 and .NET 5.0)\n- [JonPSmith/EfCore.TestSupport](https://github.com/JonPSmith/EfCore.TestSupport) - Tools for helping in unit testing applications that use Entity Framework Core\n- [AutoFixture/AutoFixture](https://github.com/AutoFixture/AutoFixture) - AutoFixture is an open source library for .NET designed to minimize the 'Arrange' phase of your unit tests in order to maximize maintainability. Its primary goal is to allow developers to focus on what is being tested rather than how to setup the test scenario, by making it easier to create object graphs containing test data.\n- [nbuilder/nbuilder](https://github.com/nbuilder/nbuilder) - Rapid generation of test objects in .NET\n- [LightBDD/LightBDD](https://github.com/LightBDD/LightBDD) - BDD framework allowing to create easy to read and maintain tests.\n- [bchavez/Bogus](https://github.com/bchavez/Bogus) - 📇 A simple and sane fake data generator for C#, F#, and VB.NET. Based on and ported from the famed faker.js.\n- [nickdodd79/AutoBogus](https://github.com/nickdodd79/AutoBogus) - A C# library complementing the Bogus generator by adding auto creation and population capabilities.\n- [HofmeisterAn/dotnet-testcontainers](https://github.com/HofmeisterAn/dotnet-testcontainers) - A simple package with guard clause extensions.\n- [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet) - A .net fork of testcontainers - in early development\n- [GestionSystemesTelecom/fake-authentication-jwtbearer](https://github.com/GestionSystemesTelecom/fake-authentication-jwtbearer/) - Simple way to faked an authenticated user for integration test with ASP.Net Core framework\n- [VerifyTests/Verify](https://github.com/VerifyTests/Verify) - Verify is a snapshot tool that simplifies the assertion of complex data models and documents.\n- [adrianiftode/FluentAssertions.Web](https://github.com/adrianiftode/FluentAssertions.Web) - FluentAssertions for .Net Web Api projects\n- [xunit/xunit.analyzers](https://github.com/xunit/xunit.analyzers) - Roslyn analyzers for xUnit.net (please open issues in\n- [VerifyTests/Verify.EntityFramework](https://github.com/VerifyTests/Verify.EntityFramework) - Extends Verify to allow verification of EntityFramework bits.\n- [flcdrg/Verify.MongoDB](https://github.com/flcdrg/Verify.MongoDB) - Extends Verify to allow verification of MongoDB bits.\n- [riezebosch/hypothesist](https://github.com/riezebosch/hypothesist) - Hypothesize about future events and validate from a test!\n- [mariotoffia/FluentDocker](https://github.com/mariotoffia/FluentDocker) - Use docker, docker-compose local and remote in tests and your .NET core/full framework apps via a FluentAPI\n- [ardalis/HttpClientTestExtensions](https://github.com/ardalis/HttpClientTestExtensions) - Extensions for testing HTTP endpoints and deserializing the results. Currently works with XUnit.\n- [codecov/codecov-action](https://github.com/codecov/codecov-action) - GitHub Action that uploads coverage to Codecov\n- [SimonCropp/XunitContext](https://github.com/SimonCropp/XunitContext) - Extends xUnit to expose extra context and simplify logging\n- [oskardudycz/Ogooreck](https://github.com/oskardudycz/Ogooreck) - Sneaky Testing Library in BDD style\n- [SpecFlowOSS/SpecFlow](https://github.com/SpecFlowOSS/SpecFlow) - .NET BDD Framework. \n- [LightBDD/LightBDD](https://github.com/LightBDD/LightBDD) - BDD framework allowing to create easy to read and maintain tests.\n- [machine/machine.specifications](https://github.com/machine/machine.specifications) - Machine.Specifications is a Context/Specification framework for .NET that removes language noise and simplifies tests.\n- [webmotions/fake-authentication-jwtbearer](https://github.com/webmotions/fake-authentication-jwtbearer) - Simple way to fake an authenticated user for integration test with ASP.Net Core framework\n- [bruno-garcia/Bazinga.AspNetCore.Authentication.Basic](https://github.com/bruno-garcia/Bazinga.AspNetCore.Authentication.Basic) - Basic Authentication for Microsoft ASP.NET Core Authentication\n- [dotnet/Docker.DotNet](https://github.com/dotnet/Docker.DotNet) - .NET (C#) Client Library for Docker API\n- [basdijkstra/rest-assured-net](https://github.com/basdijkstra/rest-assured-net) - C# DSL for writing readable tests for REST APIs\n- [formulahendry/vscode-dotnet-test-explorer](https://github.com/formulahendry/vscode-dotnet-test-explorer) - .NET Core Test Explorer for Visual Studio Code\n- [VerifyTests/Verify.Wolverine](https://github.com/VerifyTests/Verify.Wolverine) - Adds Verify support for verifying Wolverine via a custom test context."
  },
  {
    "path": "docs/testing/unit-testing.md",
    "content": "\n# Unit Testing\n\n## Resources\n- [Unit Testing 101: From Zero to Hero](https://canro91.github.io/UnitTesting)\n\n## 📝 Articles\n- [Unit testing best practices with .NET Core and .NET Standard](https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices)\n- [Keep Tests Short and DRY with Extension Methods](https://ardalis.com/keep-tests-short-and-dry-with-extensions/) \n- [C# – How to unit test code that uses HttpClient](https://makolyte.com/csharp-how-to-unit-test-code-that-uses-httpclient/)\n- [How to unit test a class that consumes an HttpClient with IHttpClientFactory in ASP.NET Core?](https://anthonygiretti.com/2018/09/06/how-to-unit-test-a-class-that-consumes-an-httpclient-with-ihttpclientfactory-in-asp-net-core/)\n- [ASP.NET Core 2+ best practices and practical tools for testing, part 1](https://anthonygiretti.com/2019/06/15/asp-net-core-2-best-practices-and-practical-tools-for-testing-part-1/)\n- [ASP.NET Core 2+ best practices and practical tools for testing, part 2, Use cases](https://anthonygiretti.com/2019/07/18/asp-net-core-2-best-practices-and-practical-tools-for-testing-part-2-use-cases/)\n- [You will never give up a unit test anymore with ExpectedObjects in .NET Core](https://anthonygiretti.com/2019/01/21/you-will-never-give-up-a-unit-test-anymore-with-expectedobjects-in-net-core/)\n- [How to unit test private methods in .NET Core applications? (even if it’s bad)](https://anthonygiretti.com/2018/08/26/how-to-unit-test-private-methods-in-net-core-applications-even-if-its-bad/)\n- [Mock and Unit Test HTTPClient with MessageHandler](https://www.thecodebuzz.com/mock-httpclient-with-messagehandler-unit-test/)\n- [Unit Test or Integration Test and Why You Should Care](https://ardalis.com/unit-test-or-integration-test-and-why-you-should-care/) \n- [Unit Test Naming Convention](https://ardalis.com/unit-test-naming-convention/?utm_sq=gkewnaysjn)\n- [Testing Exceptions with xUnit and Actions](https://ardalis.com/testing-exceptions-with-xunit-and-actions/)\n- [UnitTest](https://martinfowler.com/bliki/UnitTest.html) \n- [Clean code tips - Tests](https://www.code4it.dev/blog/clean-code-tests)\n- [.NET 5 REST API Tutorial 10 - Unit Testing and TDD](https://www.youtube.com/watch?v=dsD0CMgPjUk&t=0s)\n- [Testing Production API Endpoints with xUnit](https://ardalis.com/testing-production-api-endpoints-with-xunit/?utm_sq=gkyvlvbcp9)\n- [Exploring Fluent Assertions](https://www.meziantou.net/exploring-fluent-assertions.htm)\n- [Unit Testing with ILogger<T>](https://codeburst.io/unit-testing-with-net-core-ilogger-t-e8c16c503a80)\n- [How to get ASP.NET Core logs in the output of xUnit tests](https://www.meziantou.net/how-to-get-asp-net-core-logs-in-the-output-of-xunit-tests.htm)\n- [Create fake user for ASP.NET Core controller tests](https://gunnarpeipman.com/aspnet-core-test-controller-fake-user/)\n- [Different kind of testing strategies with ASP.NET Core: The basics](https://dotnetfromthemountain.com/aspnet-core-testing-strategies-the-basics/)\n- [Unit testing data access in ASP.​NET Core](https://asp.net-hacker.rocks/2019/01/15/unit-testing-data-access-dotnetcore.html)\n- [How to test your C# Web API](https://timdeschryver.dev/blog/how-to-test-your-csharp-web-api)\n- [How to mock dependencies with Manifest resources](https://www.code4it.dev/blog/mock-dependency-with-manifest-resources)\n- [Unit and integration testing](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Unit-and-integration-testing)\n- [Should you unit-test API/MVC controllers in ASP.NET Core?](https://andrewlock.net/should-you-unit-test-controllers-in-aspnetcore/)\n- [Unit Test and Mock HTTPContext in ASP.NET Core Controller](https://www.thecodebuzz.com/unit-test-and-mock-httpcontext-in-asp-net-core-controller/)\n- [Unit Test and Mock HttpContextAccessor](https://www.thecodebuzz.com/unit-test-and-mock-ihttpcontextaccessor/)\n- [TDD – Unit Testing Naming Conventions and Standards](https://www.thecodebuzz.com/tdd-unit-testing-naming-conventions-and-standards/)\n- [Tips & tricks for unit testing in .NET Core 3: Mocking IHttpContextAccessor](https://anthonygiretti.com/2020/02/03/tips-tricks-for-unit-testing-in-net-core-3-mocking-ihttpcontextaccessor/)\n- [How to write good unit tests: Two issues to avoid](https://canro91.github.io/2020/11/02/UnitTestingTips/)\n- [Unit Testing Best Practices: A checklist](https://canro91.github.io/2021/07/05/UnitTestingBestPractices/)\n- [How to name your unit tests. 4 test naming conventions](https://canro91.github.io/2021/04/12/UnitTestNamingConventions/)\n- [4 common mistakes when writing your first unit tests](https://canro91.github.io/2021/03/29/UnitTestingCommonMistakes/)\n- [Unit Testing of Web API with xUnit and Moq](https://www.hosting.work/aspnet-core-web-api-xunit-moq-unit-testing/)\n- [Mocking a method in the same test class using Mockito](https://towardsdatascience.com/mocking-a-method-in-the-same-test-class-using-mockito-b8f997916109)\n- [Avoid In-Memory Databases for Tests](https://jimmybogard.com/avoid-in-memory-databases-for-tests/)\n- [Unit Testing 101: Write your first unit test in C# with MSTest](https://canro91.github.io/2021/03/15/UnitTesting101/)\n- [5 tips for better stubs and mocks in C#](https://canro91.github.io/2021/06/07/TipsForBetterStubsAndMocks/)\n- [Unit Testing Best Practices: A checklist](https://canro91.github.io/2021/07/05/UnitTestingBestPractices/)\n- [Testing code that uses EF Core](https://docs.microsoft.com/en-us/ef/core/testing/)\n- [Testing with a mocking framework](https://docs.microsoft.com/en-us/ef/ef6/fundamentals/testing/mocking)\n- [Unit tests in Entity Framework Core 5](https://www.michalbialecki.com/en/2020/11/28/unit-tests-in-entity-framework-core-5/)\n- [New features for testing your Entity Framework Core 5 code](https://www.thereformedprogrammer.net/new-features-for-unit-testing-your-entity-framework-core-5-code/)\n- [Unit testing MongoDB in C# part 1: the repository](https://www.davidguida.net/unit-testing-mongodb-in-c-part-1-the-repository/)\n- [Unit testing MongoDB in C# part 2: the database context](https://www.davidguida.net/unit-testing-mongodb-in-c-part-2-the-database-context/)\n- [Unit testing MongoDB in C# part 3: the database factories](https://www.davidguida.net/unit-testing-mongodb-in-c-part-3-the-database-factories)\n- [Unit testing MongoDB in C# part 4: the tests, finally](https://www.davidguida.net/unit-testing-mongodb-in-c-part-4-the-tests-finally/)\n- [Unit Testing in DDD](https://github.com/kgrzybek/modular-monolith-with-ddd#310-unit-tests)\n- [Accessing Configuration in .NET Core Test Projects](https://weblog.west-wind.com/posts/2018/Feb/18/Accessing-Configuration-in-NET-Core-Test-Projects)\n- [Read appsettings JSON in .NET Core Test Project](https://www.thecodebuzz.com/read-appsettings-json-in-net-core-test-project-xunit-mstest/)\n- [Improve Tests with the Builder Pattern for Test Data](https://ardalis.com/improve-tests-with-the-builder-pattern-for-test-data/)\n- [Never use the same value for two IDs (or other values) in your tests](https://ardalis.com/never-use-the-same-value-for-two-ids-or-other-values-in-your-tests/)\n- [How to create test data with the Builder pattern](https://canro91.github.io/2021/04/26/CreateTestValuesWithBuilders/)\n- [How to Unit Test an Abstract Class](https://enterprisecraftsmanship.com/posts/how-to-unit-test-an-abstract-class/)\n- [How to unit test a RavenDB](https://steven-giesel.com/blogPost/0cbe9770-40e7-43b1-980f-d1d3a8b5203d)\n- [Using Context/Specification to better express complicated tests](https://jeremydmiller.com/2022/10/24/using-context-specification-to-better-express-complicated-tests/)\n- [Intro to .NET Unit & Integration Testing with SpecsFor](https://www.infoq.com/articles/specsfor/)\n- [DRY vs DAMP in Unit Tests](https://enterprisecraftsmanship.com/posts/dry-damp-unit-tests)\n- [Automated Testing](https://docs.abp.io/en/abp/4.0/Testing)\n- [Dotnet Core - Filter out specific test projects when running dotnet test](https://josef.codes/dotnet-core-filter-out-specific-test-projects-when-running-dotnet-test/)\n- [The “Best Practices” of Nested Unit Tests](https://www.testwithspring.com/lesson/the-best-practices-of-nested-unit-tests/)\n- [Writing Nested Unit Tests](https://www.testwithspring.com/lesson/writing-nested-unit-tests/)\n- [Unit Testing ASP.NET Core Minimal APIs](https://dotnetthoughts.net/unittest-aspnetcore-minimal-apis/)\n- [Monitoring Unit Tests with OpenTelemetry in .NET](https://www.honeycomb.io/blog/monitoring-unit-tests-opentelemetry)\n- [Automated Tests instrumentation via OpenTelemetry and Aspire Dashboard](https://nikiforovall.github.io/dotnet/opentelemtry/2024/06/07/test-instrumentation-with-otel-aspire.html)\n\n## 📺 Videos\n- [Clean Testing: Clean Architecture with .NET Core - Jason Taylor - NDC Sydney 2020](https://www.youtube.com/watch?v=hV43fiHYBb4)\n- [C# Unit Test Mocking with Moq](https://www.youtube.com/watch?v=IFN4-YrgBEI) \n- [C# Unit Testing Tutorial](https://www.youtube.com/watch?v=e9q-ocrt4UI) \n- [C# Unit Testing Example](https://www.youtube.com/watch?v=Tc9FUg74ci4) \n- [EFS003: Initialize ASP.NET Core Unit Tests](https://www.youtube.com/watch?v=jWIPkpl6Yr0)\n- [Clean Testing - Clean Architecture with .NET Core - Jason Taylor - NDC Oslo 2020](https://www.youtube.com/watch?v=T6NRcX1vnz8)\n- [Clean Testing: Clean Architecture with .NET Core](https://www.youtube.com/watch?v=2UJ7mAtFuio)\n- [Pimp your testing strategy for micro services](https://www.youtube.com/watch?v=mjpCsL-Wpos)\n- [Writing tests in .NET using xUnit - xUnit Tutorial](https://www.youtube.com/watch?v=2Wp8en1I9oQ)\n- [Simplified Unit Testing with the Entity Framework Core InMemory Provider - Jason Taylor](https://www.youtube.com/watch?v=ddrR440JtiA)\n- [.NET Data Community Standup - Testing EF Core Apps](https://www.youtube.com/watch?v=KO2aFuLqGkc)\n- [.NET Data Community Standup - Testing EF Core Apps (part 2)](https://www.youtube.com/watch?v=4JQUJk8muCc)\n- [Learn Unit Test with .Net 6 with xUnit and MOQ](https://www.youtube.com/watch?v=AW7ZcMOtwC8)\n- [TDD and Clean Architecture - Use Case Driven Development by Valentina Cupać](https://www.youtube.com/watch?v=IZWLnn2fNko)\n- [How to test your tests in .NET](https://www.youtube.com/watch?v=sGwfwtkaDfk)\n## 🚀 Samples\n- [jasontaylordev/CleanTesting](https://github.com/jasontaylordev/CleanTesting)\n- [jbogard/ContosoUniversityDotNetCore-Pages](https://github.com/jbogard/ContosoUniversityDotNetCore-Pages)\n- [kgrzybek/modular-monolith-with-ddd](https://github.com/kgrzybek/modular-monolith-with-ddd)\n- [devmentors/Pacco.Services.Availability](https://github.com/devmentors/Pacco.Services.Availability)\n- [devmentors/Trill-modular-monolith](https://github.com/devmentors/Trill-modular-monolith)\n- [philbir/magic-media](https://github.com/philbir/magic-media)\n- [ceslogea/InMemoryMongo2GoWireMockPoc](https://github.com/ceslogea/InMemoryMongo2GoWireMockPoc)\n- [jasontaylordev/CleanArchitectureScMarch2020](https://github.com/jasontaylordev/CleanArchitectureScMarch2020)\n- [mmalvik/NET6-Testing](https://github.com/mmalvik/NET6-Testing)\n- [ivanpaulovich/clean-architecture-manga](https://github.com/ivanpaulovich/clean-architecture-manga)\n- [oskardudycz/EventSourcing.NetCore](https://github.com/oskardudycz/EventSourcing.NetCore)\n- [pdevito3/MessageBusTestingInMemHarness](https://github.com/pdevito3/MessageBusTestingInMemHarness)\n- [linkdotnet/Blog](https://github.com/linkdotnet/Blog)\n- [pdevito3/domain-events-example](https://github.com/pdevito3/domain-events-example)\n- [valentinacupac/banking-kata-dotnet](https://github.com/valentinacupac/banking-kata-dotnet)\n- [bartstc/booking-app](https://github.com/bartstc/booking-app)\n- [bymyslf/payment-gateway](https://github.com/bymyslf/payment-gateway)\n- [Elfocrash/testing-workshop-ndcoslo2022](https://github.com/Elfocrash/testing-workshop-ndcoslo2022)\n- [pdevito3/PeakLimsApi](https://github.com/pdevito3/PeakLimsApi)\n- [MarkNijhof/Fohjin](https://github.com/MarkNijhof/Fohjin)"
  },
  {
    "path": "docs/testing/xunit.md",
    "content": "# XUnit\n\n## 📕 Articles\n- [Quick introduction to xUnit.ne](https://www.meziantou.net/quick-introduction-to-xunitdotnet.htm)\n- [What xunit NuGet Packages Should I Use?](https://xunit.net/docs/nuget-packages) ⭐⭐\n- [Parallelize test cases execution in xUnit](https://www.meziantou.net/parallelize-test-cases-execution-in-xunit.htm)\n- [Writing Logs to xunit Test Output](https://blog.martincostello.com/writing-logs-to-xunit-test-output/)\n- [Introduction to integration testing with xUnit and TestServer in ASP.NET Core](https://andrewlock.net/introduction-to-integration-testing-with-xunit-and-testserver-in-asp-net-core/)\n- [How to perform Unit Testing with xUnit in ASP.NET Core](https://www.hosting.work/aspnet-core-xunit-unit-testing/)\n- [How to get ASP.NET Core logs in the output of xUnit tests](https://www.meziantou.net/how-to-get-asp-net-core-logs-in-the-output-of-xunit-tests.htm)\n- [Using XUnit Theory and InlineData to Test C# Extension Methods](https://exceptionnotfound.net/using-xunit-theory-and-inlinedata-to-test-c-extension-methods/)\n- [Creating parameterised tests in xUnit with [InlineData], [ClassData], and [MemberData]](https://andrewlock.net/creating-parameterised-tests-in-xunit-with-inlinedata-classdata-and-memberdata/)\n- [Pass complex parameters to [Theory]](https://stackoverflow.com/questions/22093843/pass-complex-parameters-to-theory)\n- [xUnit Theory: Working With InlineData, MemberData, ClassData](https://hamidmosalla.com/2017/02/25/xunit-theory-working-with-inlinedata-memberdata-classdata/)\n- [Taking control over xUnit test names](https://gsferreira.com/archive/2021/taking-control-over-xunit-test-names/)\n- [Capturing Output](https://xunit.net/docs/capturing-output)\n- [Pro Testing with Xunit & Localstack](https://im5tu.io/article/2022/09/pro-testing-with-xunit-localstack/)\n- [Cleaner tests with XUnit's IAsyncLifetime and expression-bodied members](https://www.danclarke.com/cleaner-tests-with-iasynclifetime)\n- [XUnit - Async lifetime](https://bartwullems.blogspot.com/2019/09/xunit-async-lifetime.html)\n- [XUnit–Test lifecycle](https://bartwullems.blogspot.com/2019/08/xunittest-lifecycle.html)\n- [XUnit - Log ILogger messages to the test output](https://bartwullems.blogspot.com/2022/04/xunit-log-ilogger-messages-to-test.html)\n- [XUnit–Writing test output](https://bartwullems.blogspot.com/2019/08/xunitwriting-test-output.html)\n- [XUnit - Simulate concurrency and load against an API endpoint](https://bartwullems.blogspot.com/2022/02/xunit-simulate-concurrency-and-load.html)\n- [XUnit–Cancel a test when it takes too long](https://bartwullems.blogspot.com/2022/02/xunitcancel-test-when-it-takes-too-long.html)\n- [Avoid concurrent test runs by using XUnit Collection Fixtures](https://bartwullems.blogspot.com/2021/09/avoid-concurrent-test-runs-by-using.html)\n- [XUnit Collection fixtures](https://bartwullems.blogspot.com/2021/09/xunit-collection-fixtures.html)\n- [XUnit–Dependency Injection](https://bartwullems.blogspot.com/2021/04/xunitdependency-injection.html)\n- [XUnit - Make your tests more readible](https://bartwullems.blogspot.com/2020/04/xunit-make-your-tests-more-readible.html)\n- [XUnit – Part 7: Categorizing Tests with xUnit Trait](https://hamidmosalla.com/2020/03/01/xunit-part-7-categorizing-tests-with-xunit-trait/)\n- [Organizing Tests With xUnit Traits](https://www.brendanconnolly.net/organizing-tests-with-xunit-traits/)\n- [Improve your pipeline maintainability with test categories in xUnit](https://dateo-software.de/blog/test-categories-in-xunit)\n- [Custom Traits in xUnit](https://bytelanguage.wordpress.com/2020/12/12/custom-traits-in-xunit/)\n- [Test categories](https://www.jetbrains.com/help/rider/Test_Categories.html)\n- [Dotnet Core - Filter out specific test projects when running dotnet test](https://josef.codes/dotnet-core-filter-out-specific-test-projects-when-running-dotnet-test/)\n- [How to set .runsettings in JetBrains Rider and MSTest](https://stackoverflow.com/questions/56787555/how-to-set-runsettings-in-jetbrains-rider-and-mstest)\n- [Configure unit tests by using a .runsettings file](https://learn.microsoft.com/en-us/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file?view=vs-2022)\n- [Capturing output in extensibility classes](https://xunit.net/docs/capturing-output#output-in-extensions) ⭐\n- [Add diagnostic message sink option for fixtures](https://github.com/xunit/xunit/issues/565) ⭐\n- [Tracking down a hanging xUnit test in CI: building a custom Test Framework](https://andrewlock.net/tracking-down-a-hanging-xunit-test-in-ci-building-a-custom-test-framework/) ⭐\n## Videos\n- [Testing like a PRO with XUnit & Localstack - .NET 7](https://www.youtube.com/watch?v=Ad7wruPBp3M)\n\n## Libraries\n- [martincostello/xunit-logging](https://github.com/martincostello/xunit-logging) - Logging extensions for xunit\n- [SimonCropp/XunitContext](https://github.com/SimonCropp/XunitContext) - Extends xUnit to expose extra context and simplify logging\n- [brendanconnolly/Xunit.Categories](https://github.com/brendanconnolly/Xunit.Categories) - Friendlier attributes to help categorize your tests\n## Samples\n- [xunit/samples.xunit](https://github.com/xunit/samples.xunit) - Samples for xUnit.net "
  },
  {
    "path": "docs/tools/cake.md",
    "content": "# Cake\n\n## Articles\n- [How to write a Cake Build script for ASP.net core project](https://garywoodfine.com/how-to-write-a-cake-build-script-for-asp-net-core-project)\n- [How to use Cake with Rider](https://garywoodfine.com/how-to-use-cake-with-rider)\n- [How to use Cake with Github Actions](https://garywoodfine.com/how-to-use-cake-with-github-actions/)\n- [Simplified versioning and publishing for .NET libraries](https://medium.com/@michael.wolfenden/simplified-versioning-and-publishing-for-net-libraries-a28e5e740fa6)\n\n## Videos\n- [Cake (C#) - both scripting and Frosting!](www.youtube.com/watch?v=qKRxSut0W-I)\n\n## Libraries\n- [cake-build/cake-action](https://github.com/cake-build/cake-action) Run Cake (C# Make) scripts in your GitHub Actions workflows.\n\n## Samples\n- [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/.cake-scripts)"
  },
  {
    "path": "docs/tools/nuke.md",
    "content": ""
  },
  {
    "path": "docs/transitive-dependency.md",
    "content": "# Transitive Dependency\n\n## Articles\n- [Transitive NuGet dependencies: .NET Core’s got your back](https://www.erikheemskerk.nl/transitive-nuget-dependencies-net-core-got-your-back/)\n- [What is a Transitive dependency in .NET Core](https://www.thecodebuzz.com/transitive-dependency-in-net-core/)\n- [Finding .NET Transitive Dependencies and Tidying Up Your Project](https://gsferreira.com/archive/2022/finding-dotnet-transitive-dependencies-and-tidying-up-your-project/)\n- [Finding transitive dependencies using dotnet core](https://joeblogs.technology/2021/03/finding-transitive-dependencies-using-dotnet-core/)\n## Videos\n- [Tidy up your .NET dependencies with Snitch](https://www.youtube.com/watch?v=sKWX8_7mjaY)"
  },
  {
    "path": "docs/web-api.md",
    "content": "# WEB API\n\n## 📘 Resources\n\n- [oskardudycz/WebApiWith.NETCore](https://github.com/oskardudycz/WebApiWith.NETCore) - Samples and resources of how to design WebApi with .NET Core\n- [REST API Tutorial](https://restfulapi.net/)\n- [Let's Learn .NET - Web API](https://docs.microsoft.com/en-us/users/cloudskillschallenge/collections/o1qrbroy21p7?WT.mc_id=cloudskillschallenge_aa657376-2198-4cc9-9bba-38da7c199620)\n- [.NET 5 REST API Tutorial](https://www.youtube.com/playlist?list=PLeD0-5Hw0ZJ_GlY21kfzfQD-N17i8pdTS)\n- [Beginner's Series to: Web APIs](https://channel9.msdn.com/Series/Beginners-Series-to-Web-APIs)\n- [marmelab/awesome-rest](https://github.com/marmelab/awesome-rest)\n- [ASP.NET CORE Web API / REST API](https://www.youtube.com/playlist?list=PLgRlicSxjeMMSCYjOe2t2-BLqVxInAMM1)\n\n## 📝 Articles\n- [Microsoft REST API Guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md)\n- [Web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design)\n- [ASP.NET Core 5 Route to Code: Taking advantage of Microsoft.AspNetCore.Http json extensions](https://anthonygiretti.com/2020/09/29/asp-net-core-5-route-to-code-taking-advantage-of-microsoft-aspnetcore-http-json-extensions/)\n- [Use ASP.NET Core route-to-code for simple JSON APIs](https://www.daveabrock.com/2020/12/04/migrate-mvc-to-route-to-code/)\n- [Nano services with ASP.NET Core or how to build a light API](https://anthonygiretti.com/2020/06/29/nano-services-with-asp-net-core-or-how%20-to-build-a-light-api/)\n- [Basic JSON APIs with Route-to-code in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/web-api/route-to-code)\n- [Using action results and content negotiation with \"route-to-code\" APIs](https://andrewlock.net/using-action-results-and-content-negotiation-with-route-to-code/)\n- [Model Binding - ASP.NET Core Demystified](https://exceptionnotfound.net/asp-net-core-demystified-model-binding-in-mvc/)\n- [Finally the ASP.NET 5 Web API Blog Series!](https://chriswoodruff.com/finally-the-asp-net-5-web-api-blog-series/)\n- [ASP.NET Core in .NET 5 – pass parameters to actions](https://www.michalbialecki.com/2020/05/07/asp-net-5-pass-parameters-to-actions/)\n- [Model Binding in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding)\n- [Custom Model Binding in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/custom-model-binding)\n- [Asp.Net Core Model Binding: Controlling The Binding Source](https://hamidmosalla.com/2017/07/06/asp-net-core-model-binding-controlling-the-binding-source/)\n- [Use ASP.NET Core route-to-code for simple JSON APIs](https://daveabrock.com/2020/12/04/migrate-mvc-to-route-to-code)\n- [Using action results and content negotiation with route-to-code APIs](https://andrewlock.net/using-action-results-and-content-negotiation-with-route-to-code/)\n- [Creating Discoverable HTTP APIs with ASP.NET Core 5 Web API](https://devblogs.microsoft.com/aspnet/creating-discoverable-http-apis-with-asp-net-core-5-web-api/?WT.mc_id=DOP-MVP-4025064&_lrsc=d4a12070-16f9-4d79-8171-918b6c254765&utm_campaign=elevate&utm_source=linkedin&utm_medium=social)\n- [Open source HTTP API packages and tools](https://devblogs.microsoft.com/aspnet/open-source-http-api-packages-and-tools/) - Microsoft\n- [MVC Controllers are Dinosaurs Embrace API Endpoints](https://ardalis.com/mvc-controllers-are-dinosaurs-embrace-api-endpoints/)\n- [Moving from Controllers and Actions to Endpoints with MediatR](https://ardalis.com/moving-from-controllers-and-actions-to-endpoints-with-mediatr/) - Steve Smith\n- [MVC Controllers are Dinosaurs - Embrace API Endpoints](https://ardalis.com/mvc-controllers-are-dinosaurs-embrace-api-endpoints/) - Steve Smith\n- [Feature Slices for ASP.NET Core MVC](https://docs.microsoft.com/en-us/archive/msdn-magazine/2016/september/asp-net-core-feature-slices-for-asp-net-core-mvc) - Steve Smith\n- [API Feature Folders](https://ardalis.com/api-feature-folders)\n- [What is the difference between a DTO and a POCO (or POJO)](https://ardalis.com/dto-or-poco/?_lrsc=9fbcec7f-f420-4949-8e56-46bc78620801)\n- [Give better names to your DTOs](https://cassiomolin.com/2016/02/11/give-better-names-to-your-dtos/)\n- [Immutability in DTOs?](https://jimmybogard.com/immutability-in-dtos/)\n- [Immutability in C#](https://www.codemag.com/Article/1905041/Immutability-in-C)\n- [Trying the REST Client extension for VSCode](https://asp.net-hacker.rocks/2021/03/01/rest-client-vscode.html)\n- [ASPNET Core Razor Pages – Worth Checking Out?](https://ardalis.com/aspnet-core-razor-pages-–-worth-checking-out/)\n- [How To Build A Basic HTTP API With ASP.NET Core](https://khalidabuhakmeh.com/how-to-build-a-basic-http-api-with-aspnet-core)\n- [Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html)\n- [RESTful API Design: 13 Best Practices to Make Your Users Happy](https://florimond.dev/blog/articles/2018/08/restful-api-design-13-best-practices-to-make-your-users-happy/)\n- [Best Practices for Designing a Pragmatic RESTful API](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api)\n- [The Web API Checklist -- 43 Things To Think About When Designing, Testing, and Releasing your API](https://mathieu.fenniak.net/the-api-checklist/)\n- [Design Topics](http://apistylebook.com/design/topics/)\n- [Design Guidelines](http://apistylebook.com/design/guidelines/)\n- [14 to 2 seconds: how I improved the performance of an endpoint by 82% - part 1](https://www.code4it.dev/blog/improving-application-performance-part1)\n- [14 to 2 seconds: how I improved the performance of an endpoint by 82% - part 2](https://www.code4it.dev/blog/improving-application-performance-part2)\n- [How to Ping an endpoint with C#](https://www.code4it.dev/blog/ping-endpoint-csharp)\n- [Generic and dynamically generated controllers in ASP.NET Core MVC](https://www.strathweb.com/2018/04/generic-and-dynamically-generated-controllers-in-asp-net-core-mvc/)\n- [Using HTTP Methods (GET, POST, PUT, etc.) in Web API](https://exceptionnotfound.net/using-http-methods-correctly-in-asp-net-web-api/)\n- [Routing in ASP.NET Web API](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api)\n- [Routing and Action Selection in ASP.NET Web API](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/routing-and-action-selection)\n- [Attribute Routing in ASP.NET Web API 2](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2)\n- [Create a REST API with Attribute Routing in ASP.NET Web API 2](https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/create-a-rest-api-with-attribute-routing)\n- [The ASP.NET Web API 2 HTTP Message Lifecycle in 43 Easy Steps](https://exceptionnotfound.net/the-asp-net-web-api-2-http-message-lifecycle-in-43-easy-steps-2/)\n- [HTTP Status Codes in ASP.NET Web API - A Guided Tour](https://exceptionnotfound.net/http-status-codes-in-asp-net-web-api-a-guided-tour/)\n- [Preventing fat/bloated/god controllers by following a simple endpoint pattern](https://dasith.me/2020/03/21/simple-endpoints/)\n- [Scalable and Performant ASP.NET Core Web APIs: Asynchronous Code](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-asynchronous-operations/)\n- [Scalable and Performant ASP.NET Core Web APIs: Introduction](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-introduction/)\n- [Scalable and Performant ASP.NET Core Web APIs: Profiling and Monitoring](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-profiling-and-monitoring/)\n- [Scalable and Performant ASP.NET Core Web APIs: Server Caching](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-server-caching/)\n- [Enabling [ApiController] globally in ASP.NET Core 2.2](https://www.strathweb.com/2019/01/enabling-apicontroller-globally-in-asp-net-core-2-2/)\n- [Elegant way of producing HTTP responses in ASP.NET Core outside of MVC controllers](https://www.strathweb.com/2019/03/elegant-way-of-producing-http-responses-in-asp-net-core-outside-of-mvc-controllers/)\n- [Fetch API, Streams API, NDJSON, and ASP.NET Core MVC](https://www.tpeczek.com/2019/04/fetch-api-streams-api-ndjson-and-aspnet.html)\n- [Accepting Raw Request Body Content in ASP.NET Core API Controllers](https://weblog.west-wind.com/posts/2017/Sep/14/Accepting-Raw-Request-Body-Content-in-ASPNET-Core-API-Controllers)\n- [Passing correlation id across requests](https://ankitvijay.net/2020/11/24/passing-correlation-id-across-requests/)\n- [ASP.NET CORE CORRELATION IDS](https://www.stevejgordon.co.uk/asp-net-core-correlation-ids)\n- [Asynchronous Programming with Async and Await in ASP.NET Core](https://code-maze.com/asynchronous-programming-with-async-and-await-in-asp-net-core/)\n- [Preventing Duplicate Web Requests To ASP.NET Core](https://khalidabuhakmeh.com/preventing-duplicate-web-requests-to-aspnet-core)\n- [Using Refit in ASP.NET Core to remove boilerplate code when consuming REST endpoints](https://www.vaughanreid.com/2020/10/using-refit-in-asp-net-core-to-remove-boilerplate-code-when-consuming-rest-endpoints/)\n- [Refit Basics](https://elanderson.net/2018/03/refit-basics/)\n- [Idempotency for Fault-Tolerant Web APIs](https://www.dotnetnakama.com/blog/idempotency-for-fault-tolerant-web-apis/)\n- [ASP.NET Core Endpoints. Add endpoint-enabled middleware by using IEndpointRouteBuilder extension method](https://nikiforovall.github.io/dotnet/aspnetcore/2021/03/23/endpoint-route-builder-extension-pattern.html)\n- [Open API support for ASP.NET Core Minimal API](https://dotnetthoughts.net/openapi-support-for-aspnetcore-minimal-webapi/)\n- [ASP.NET Core 5 Model Binding to C# 9 Record Types](https://www.davidhayden.me/blog/asp-net-core-5-model-binding-to-csharp-9-record-types)\n- [Building microservices with ASP.NET Core (without MVC)](https://www.strathweb.com/2017/01/building-microservices-with-asp-net-core-without-mvc/)\n- [Beautiful and compact Web APIs with C# 9, .NET 5.0 and ASP.NET Core](https://www.strathweb.com/2020/10/beautiful-and-compact-web-apis-with-c-9-net-5-0-and-asp-net-core/)\n- [Beautiful and compact Web APIs revisited – with C# 10 and .NET 6 Preview 7](https://www.strathweb.com/2021/08/beautiful-and-compact-web-apis-revisited-with-c-10-and-net-6-preview-7/)\n- [New .NET 6 APIs driven by the developer community](https://devblogs.microsoft.com/dotnet/new-dotnet-6-apis-driven-by-the-developer-community/)\n- [ASP.NET Core 6: Streaming JSON responses with IAsyncEnumerable, example with Angular](https://anthonygiretti.com/2021/09/22/asp-net-core-6-streaming-json-responses-with-iasyncenumerable-example-with-angular/)\n- [Dealing with large files in ASP.NET Web API](https://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/)\n- [Efficient file uploads with dotnet](https://josef.codes/efficient-file-uploads-with-dotnet/)\n- [You're (probably still) using HttpClient wrong and it is destabilizing your software](https://josef.codes/you-are-probably-still-using-httpclient-wrong-and-it-is-destabilizing-your-software/)\n- [How to Upload Large Files](https://scatteredcode.net/how-to-upload-large-files/)\n- [Controller action return types in ASP.NET Core web API](https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types)\n- [Werner Vogel’s 6 Rules for Good API Design](https://thenewstack.io/werner-vogels-6-rules-for-good-api-design/)\n- [REST API with ASP.NET Core](https://rafaelldi.blog/posts/rest-api-with-asp-net-core/)\n- [Building REST APIs In .Net 6 The Easy Way!](https://dev.to/djnitehawk/building-rest-apis-in-net-6-the-easy-way-3h0d)\n- [How YOU can build a Mock REST API based on JSON for ASP .NET and minimal API](https://techcommunity.microsoft.com/t5/azure-developer-community-blog/how-you-can-build-a-mock-rest-api-based-on-json-for-asp-net-and/ba-p/3196039)\n- [Developing Api’s using Http Endpoints](https://garywoodfine.com/developing-apis-using-http-endpoints/)\n- [Understanding PathBase in ASP.NET Core](https://andrewlock.net/understanding-pathbase-in-aspnetcore/)\n- [Using PathBase with .NET 6's WebApplicationBuilder](https://andrewlock.net/using-pathbase-with-dotnet-6-webapplicationbuilder/)\n- [Reducing initial request latency by pre-building services in a startup task in ASP.NET Core](https://andrewlock.net/reducing-latency-by-pre-building-singletons-in-asp-net-core/)\n- [Configuring environment specific services for dependency injection in ASP.NET Core](https://andrewlock.net/configuring-environment-specific-services-in-asp-net-core/)\n- [The Best C# .NET Web Application Tech Stack: Choosing The Back End](https://michaelscodingspot.com/web-application-csharp-server-side/)\n- [Exploring the new output caching middleware](https://dev.to/this-is-learning/exploring-the-new-output-caching-middleware-4no1)\n- [ASP.NET Core on .NET 7.0 - Output caching](https://asp.net-hacker.rocks/2022/07/26/aspnetcore7-outputcaching.html)\n- [Problem Details responses everywhere with ASP.NET Core and .NET 7](https://www.strathweb.com/2022/08/problem-details-responses-everywhere-with-asp-net-core-and-net-7/)\n- [Handle errors in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/error-handling)\n\n## 📹 Videos\n- [ASP.NET Core Series Route to Code](https://channel9.msdn.com/Shows/On-NET/ASPNET-Core-Series-Route-to-Code)\n- [NET Core 3.1 MVC REST API - Full Course](https://www.youtube.com/watch?v=fmvcAzHpsk8)\n- [ASP.NET Community Standup Flexible HTTP APIs](https://www.youtube.com/watch?v=xoYkk5jk8d0)\n- [Let's Learn .NET - Web API](https://www.youtube.com/watch?v=BEJI2fy8MpA)\n- [ASP.NET Community Standup - Building HTTP APIs](https://www.youtube.com/watch?v=Mpf0fCO6NrU)\n- [Integrating PowerApps with .NET Web APIs](https://channel9.msdn.com/Shows/On-NET/Integrating-PowerApps-with-NET-Web-APIs)\n- [BEYOND Status Codes! Better REST HTTP API Error Responses](https://www.youtube.com/watch?v=MfTLob6teJE)\n- [Build an API Gateway with Envoy and use with .NET Core APIs](https://www.youtube.com/watch?v=UsoH5cqE1OA)\n- [Hiding ASP.NET API Endpoints](https://www.youtube.com/watch?v=qRiXEjbabH4)\n- [MVC REST API Tutorial in 5 Hours | ASP.NET CORE Web API | Tutorial | .NET 5](https://www.youtube.com/watch?v=HVZMTkhonZk&list=PLgRlicSxjeMMSCYjOe2t2-BLqVxInAMM1&index=1)\n- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q)\n- [ASP.NET CORE Web API / REST API - Frank Liu, Yuotube Playlist](https://www.youtube.com/playlist?list=PLgRlicSxjeMMSCYjOe2t2-BLqVxInAMM1)\n- [Best Practices for Building Async APIs with ASP.NET Core](https://www.youtube.com/watch?v=_T3kvAxAPpQ)\n- [Building an Async API with ASP.NET Core](https://www.pluralsight.com/courses/building-async-api-aspdotnet-core)\n- [ASP.NET Core Series: Route To Code](https://www.youtube.com/watch?v=j-33Uz32hG0)\n- [ASP.NET Core Series: Endpoint Routing](https://www.youtube.com/watch?v=fSSPEM3e7yY)\n- [.NET 5 REST API Tutorial - Build From Scratch With C#](https://www.youtube.com/watch?v=ZXdFisA_hOY)\n- [.NET 5 REST API Tutorial](https://www.youtube.com/watch?v=Jvu60R-AWQc)\n- [Creating an API SDK with Refit | ASP.NET Core 5 REST API Tutorial 23](https://www.youtube.com/watch?v=grBTYaTGLv8)\n- [How to build RESTful APIs the right way](https://www.youtube.com/watch?v=Igh2KfwOT-Q)\n- [Nate Barbettini – API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg)\n- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q&ab_channel=FrankLiu)\n- [The .NET Docs Show - Controllers are Dinosaurs: The Case for API Endpoints](https://www.youtube.com/watch?v=9oroj2TmxBs)\n- [ASP.NET Community Standup - A first look at Carter on .NET 6](https://www.youtube.com/watch?v=bSJ5n7alhTs)\n- [Clean up your .NET Controllers with ApiEndpoints](https://www.youtube.com/watch?v=SDu0MA6TmuM)\n- [A new way to build CLEAN and FAST APIs in .NET](https://www.youtube.com/watch?v=z32_7KgCr6c)\n- [How Controller behaviour changed in .NET 7](https://www.youtube.com/watch?v=r5VJIz25PPY)\n- [ASP.NET Community Standup - Instant APIs](https://www.youtube.com/watch?v=mrdyDJUGSms)\n- [GUIDs and UUIDs are cool, but this is cooler](https://www.youtube.com/watch?v=tSuwe7FowzE)\n- [ASP.NET Community Standup - Controller Binding Updates in .NET 7](https://www.youtube.com/watch?v=TTpH9GjwY34)\n- [What's the point of async/await in an ASP.NET Core application?](https://www.youtube.com/watch?v=COeg6UoPe_Q)\n- [Episode 010 - Async all the things - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=CGi1bQgaqwg)\n- [Making .NET 7’s NEW output cache scale with Redis](https://www.youtube.com/watch?v=WeHZ_NMC-Jo)\n- [ASP.NET Community Standup - Building HTTP APIs](https://www.youtube.com/watch?v=Mpf0fCO6NrU) ⭐\n\n## 📦 Libraries\n- [featherhttp/framework](https://github.com/featherhttp/framework) - A lightweight low ceremony API for web services.\n- [ardalis/ApiEndpoints](https://github.com/ardalis/ApiEndpoints) - A project for supporting API Endpoints in ASP.NET Core web applications.\n- [CarterCommunity/Carter](https://github.com/CarterCommunity/Carter) - Carter is framework that is a thin layer of extension methods and functionality over ASP.NET Core allowing code to be more explicit and most importantly more enjoyable.\n- [reactiveui/refit](https://github.com/reactiveui/refit) - The automatic type-safe REST library for .NET Core, Xamarin and .NET. Heavily inspired by Square's Retrofit library, Refit turns your REST API into a live interface.\n- [canton7/RestEase](https://github.com/canton7/RestEase) - Easy-to-use typesafe REST API client library for .NET Standard 1.1 and .NET Framework 4.5 and higher, which is simple and customisable. Inspired by Refit\n- [StefH/RestEase-Client-Generator](https://github.com/StefH/RestEase-Client-Generator) - A Visual Studio Extension to generate a RestEase compatible client based on a Swagger / OpenAPI specification files\n- [HttpRepl](https://github.com/dotnet/HttpRepl) - The HTTP Read-Eval-Print Loop (REPL) is a lightweight, cross-platform command-line tool that's supported everywhere .NET Core is supported and is used for making HTTP requests to test ASP.NET Core web APIs and view their results.\n- [rest-client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) - REST Client allows you to send HTTP request and view the response in Visual Studio Code directly.\n- [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) - Swagger tools for documenting API's built on ASP.NET Core\n- [OpenAPI.NET](https://github.com/microsoft/OpenAPI.NET) - The OpenAPI.NET SDK contains a useful object model for OpenAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.\n- [NSwag](https://github.com/RicoSuter/NSwag) - The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript.\n- [Crunch.vscode-openapi](https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi) - This Visual Studio Code (VS Code) extension adds rich support for the OpenAPI Specification (OAS) (formerly known as Swagger Specification) in JSON or YAML format\n- [httpstat.us](https://github.com/Readify/httpstatus) - Easily generate different HTTP responses for testing\n- [beetlex-io/FastHttpApi](https://github.com/beetlex-io/FastHttpApi)\n- [davidfowl/uController](https://github.com/davidfowl/uController) - Code generated Web API framework for .NET Core\n- [khellang/Middleware/problemdetails](https://github.com/khellang/Middleware#problemdetails-) - Various ASP.NET Core middleware\n- [json-api-dotnet/JsonApiDotNetCore](https://github.com/json-api-dotnet/JsonApiDotNetCore) - JSON:API Framework for ASP.NET Core\n- [dasiths/SimpleEndpoints](https://github.com/dasiths/SimpleEndpoints) - A simple, convention-based, endpoint per action pattern implementation for AspNetCore 3.0+ with full support for Swagge\n- [GeorgDangl/LightQuery](https://github.com/GeorgDangl/LightQuery) - Lightweight solution for sorting and paging Asp.Net Core API results\n- [hassanhabib/InvisibleApi](https://github.com/hassanhabib/InvisibleApi) - ASP.NET Library that allows developers to add an extra layer of security on top of their existing endpoints\n- [Kahbazi/MediatR.AspNetCore.Endpoints](https://github.com/Kahbazi/MediatR.AspNetCore.Endpoints)\n- [Biarity/Sieve](https://github.com/Biarity/Sieve) - Clean & extensible Sorting, Filtering, and Pagination for ASP.NET Core\n- [alirezanet/Gridify](https://github.com/alirezanet/Gridify) - Easy and optimized way to apply Filtering, Sorting, and Pagination using text-based data.\n- [dj-nitehawk/FastEndpoints](https://github.com/dj-nitehawk/FastEndpoints) - A light-weight REST Api framework for ASP.Net 6 that implements REPR (Request-Endpoint-Response) Pattern\n- [ikyriak/IdempotentAPI](https://github.com/ikyriak/IdempotentAPI) - A .NET library that handles the HTTP write operations (POST and PATCH) that can affect only once for the given request data and idempotency-key by using an ASP.NET Core attribute (filter).\n## 🔖 Samples\n- [filipw/net60-webapi-samples](https://github.com/filipw/net60-webapi-samples)\n- [filipw/net50-webapi-samples](https://github.com/filipw/net50-webapi-samples)\n- [filipw/apress-recipes-webapi](https://github.com/filipw/apress-recipes-webapi) - Samples from ASP.NET Web API 2: Recipes book.\n- [featherhttp/tutorial](https://github.com/featherhttp/tutorial) - Quick tutorials on how you you can build easy web applications with FeatherHttp. Learn how to build lightweight server-side web applications\n- [ardalis/MediatRAspNetCore](https://github.com/ardalis/MediatRAspNetCore) - Sample showing MediatR with ASP.NET Core\n- [eShopOnWeb/PublicApi](https://github.com/dotnet-architecture/eShopOnWeb/tree/master/src/PublicApi)\n- [dj-nitehawk/MongoWebApiStarter](https://github.com/dj-nitehawk/MongoWebApiStarter) - A full-featured starter template for `dotnet new` to quickly scaffold an Asp.Net 6 Web-Api project with MongoDB as the data store.\n- [davidfowl/WebApplicationPlugins](https://github.com/davidfowl/WebApplicationPlugins) - A sample plugin model for ASP.NET Core applications\n## Templates\n- [ApiBoilerPlate](https://github.com/proudmonkey/ApiBoilerPlate) - A simple yet organized project template for building ASP.NET Core APIs in .NET Core 3.1\n- [CleanArchitecture](https://github.com/blazorhero/CleanArchitecture) - Clean Architecture Template for Blazor WebAssembly Built with MudBlazor Components.\n- [pdevito3/craftsman](https://github.com/pdevito3/craftsman) - Craftsman is the workhorse behind the Wrapt framework and provides a suite of CLI commands for quickly scaffolding out new files and projects for your .NET Web APIs with simple CLI commands and configuration files.\n\n## 📚 Books\n\n- [REST API Design Rulebook](http://shop.oreilly.com/product/0636920021575.do)\n- [The Design of Web APIs](https://www.manning.com/books/the-design-of-web-apis)\n- [ASP.NET Web API 2: Building a REST Service from Start to Finish 2nd ed. Edition](https://www.amazon.com/gp/product/1484201108/ref=as_li_qf_sp_asin_il_tl)\n- [ASP.NET Web API 2 Recipes: A Problem-Solution Approach](https://www.amazon.com/ASP-NET-Web-API-Recipes-Problem-Solution-ebook/dp/B01J9LN3DQ/ref=sr_1_15)\n"
  },
  {
    "path": "docs/web-sockets.md",
    "content": "# WebSockets\n\n## 📝 Articles\n\n- [Understanding WebSockets with ASP.NET Core](https://sahansera.dev/understanding-websockets-with-aspnetcore-5/)\n- [Using Web Sockets with ASP.NET Core](https://www.meziantou.net/using-web-sockets-with-asp-net-core.htm)\n- [WebSockets support in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-5.0)\n- [Which is best? WebSockets or SignalR](https://dotnetplaybook.com/which-is-best-websockets-or-signalr/)\n## Videos\n- [Asp.Net Core WebSockets Vs SignalR. Which should you use? (Full Course)](https://www.youtube.com/watch?v=ycVgXe6v1VQ)\n- [C# Client/Server WebSocket Application in ASP.Net Core | Visual Studio](https://www.youtube.com/watch?v=gDdPGI1c6ro)\n- [How to make a simple real time chat with ASP.NET Core (Websockets)](https://www.youtube.com/watch?v=Yntvw5c40ZY)\n- [ASP.NET Core SignalR - Introduction](https://www.youtube.com/watch?v=OwiOvNwc7qc)\n- [ASP.NET Core SignalR - WebSockets Deep Dive](https://www.youtube.com/watch?v=6W5gmRgmbuc)\n- [ASP.NET Core Websockets with SignalR Intro](https://www.youtube.com/watch?v=Fr4rWZIDdzs)\n## Samples\n- [Konard/ASP.NET-Core-WebSocket-Example](https://github.com/Konard/ASP.NET-Core-WebSocket-Example) - ASP.NET Core WebSocket example as echo server (C#) and client (JS)\n- [tcortes55/chat-app](https://github.com/tcortes55/chat-app)\n- [gpeipman/AspNetCoreChatRoom](https://github.com/gpeipman/AspNetCoreChatRoom) - WebSocket based chat room built on ASP.NET Core\n- [Elfocrash/PewChat/tree/master/PewChat](https://github.com/Elfocrash/PewChat/tree/master/PewChat) - A simple real time chat with websockets on .net core\n- [binarythistle/S02E03-WebSockets-Vs-SignalR](https://github.com/binarythistle/S02E03-WebSockets-Vs-SignalR)\n- [sahansera/WebSocketsTutorial](https://github.com/sahansera/WebSocketsTutorial)\n- [dotnet/AspNetCore.Docs/https://www.youtube.com/watch?v=gDdPGI1c6rowebsockets/samples](https://github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/fundamentals/websockets/samples)\n<div align=\"right\">\n  <b><a href=\"#contents\">↥ Back To Top</a></b>\n</div>\n"
  },
  {
    "path": "docs/webhook.md",
    "content": "# WebHook\n\n## Articles\n- [Integrate ngrok into ASP.NET Core startup and automatically update your webhook URLs](https://www.twilio.com/blog/integrate-ngrok-into-aspdotnet-core-startup-and-automatically-update-your-webhook-urls)"
  },
  {
    "path": "mkdocs.yml",
    "content": "site_name: Awesome .Net Core Educations\nsite_url: https://mehdihadeli.github.io/awesome-dotnet-core-education/\nsite_description: A curated list of awesome articles and resources for learning and practicing about .Net Core and its related technologies.\ndocs_dir: docs\nrepo_name: mehdihadeli/awesome-dotnet-core-education\nrepo_url: https://github.com/mehdihadeli/awesome-dotnet-core-education\nedit_uri: edit/main/docs/\ntheme: \n  name: material \n  #https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/\n  features:\n    - navigation.instant\n    - navigation.tracking\n    - toc.integrate \n    - navigation.top\n  font:\n    text: Sora\n  palette:\n    - media: \"(prefers-color-scheme: light)\" \n      scheme: default\n      toggle:\n        icon: material/toggle-switch-off-outline\n        name: Switch to dark mode\n    - media: \"(prefers-color-scheme: dark)\" \n      scheme: slate\n      toggle:\n        icon: material/toggle-switch\n        name: Switch to light mode\n  prev_next_buttons_location: both\n  navigation_depth: 4\n  titles_only: False\n  sticky_navigation: True\nmarkdown_extensions:\n  - smarty\n  - sane_lists\n  - fenced_code\n  - meta\n  - admonition\n  - attr_list\n  - pymdownx.arithmatex\n  - pymdownx.betterem:\n      smart_enable: all\n  - pymdownx.caret\n  - pymdownx.critic\n  - pymdownx.details\n  #- pymdownx.emoji:\n  #    emoji_index: !!python/name:pymdownx.emoji.twemoji\n  #    emoji_generator: !!python/name:pymdownx.emoji.to_svg\n  #- pymdownx.emoji:\n  #    emoji_index: !!python/name:materialx.emoji.twemoji\n  #    emoji_generator: !!python/name:materialx.emoji.to_svg\n  - pymdownx.inlinehilite\n  - pymdownx.magiclink\n  - pymdownx.mark\n  - pymdownx.smartsymbols\n  - pymdownx.superfences\n  - pymdownx.tasklist:\n      custom_checkbox: true\n  - pymdownx.tabbed\n  - pymdownx.tilde\n  - codehilite\n  - footnotes\n  - toc:\n      permalink: true\nnav:\n  - .Net:\n    - .Net : dotnet/dotnet.md\n    - .Net 9: dotnet/dotnet9.md \n    - .Net 8: dotnet/dotnet8.md \n    - .Net 7: dotnet/dotnet7.md \n    - .Net 6: dotnet/dotnet6.md     \n    - .Net 5: dotnet/dotnet5.md \n    - .Net Build: dotnet/build.md  \n    - .Net Package Management: dotnet/package-management.md\n    - .Net Standard: dotnet/dotnet-standard.md\n    - .Net Template: dotnet/dotnet-template.md\n    -  ASP.Net Core: dotnet/dotnet-core.md\n    - .Net Core Architecture: dotnet/dotnet-core-architecture.md\n    - .Net Core Tips: dotnet/dotnet-core-tips.md\n    - .Net IL: dotnet/il.md\n    -  Multi Target: dotnet/multi-target.md\n    -  MetaPack: dotnet/metapack.md\n    - global.json File: dotnet/global-json.md\n  - ASP.NET Core:\n    - ASP.NET Core: asp/asp-net.md \n    - ASP.NET Core 8 : asp/asp-net-8.md \n    - ASP.NET Core 7 : asp/asp-net-7.md \n    - ASP.NET Core 6: asp/asp-net-6.md \n  - .Net CLI: \n    - .Net CLI: dotnet-cli/dotnet-cli.md\n    - .Net Tools: dotnet-cli/dotnet-tools.md\n    - .Net Watch: dotnet-cli/dotnet-watch.md\n    - Upgrade Assistant: dotnet-cli/upgrade-assistant.md\n  - C#: \n    - C#: csharp/csharp.md\n    - C# Versions:\n      - C# 13: csharp/versions/13.md\n      - C# 12: csharp/versions/12.md\n      - C# 11: csharp/versions/11.md\n      - C# 10: csharp/versions/10.md\n      - C# 9: csharp/versions/9.md\n      - C# 8: csharp/versions/8.md\n      - C# 7: csharp/versions/7.md\n    - Async: \n      - Async And Await: csharp/async/async-and-await.md\n      - Async Best Practice: csharp/async/async-best-practice.md\n      - Analyzers: csharp/async/analyzers.md\n      - Async Collections: \n        - Async Collections: csharp/async/async-collections.md\n        - Async Stream And IEnumerableAsync: csharp/async/async-collections/async-stream-and-ienumerableasync.md\n        - Blocking Collection: csharp/async/async-collections/blocking-collection.md\n        - Iterators: csharp/async/async-collections/iterators.md\n        - Lazy Initialization: csharp/async/async-collections/lazy-initialization.md\n      - Asynchronous Messaging: csharp/async/asynchronous-messaging.md\n      - Async Local: csharp/async/asynclocal.md\n      - Awaiter: csharp/async/awaiter.md\n      - Cancellation: csharp/async/cancellation.md\n      - Channels: csharp/async/channels.md\n      - Concurrency Vs Parallelism: csharp/async/concurrency-vs-parallelism)\n      - Configure Await: csharp/async/configure-await.md\n      - Continuations.md: csharp/async/continuations.md\n      - Cpu Bound: csharp/async/cpu-bound.md\n      - Exception Handling: csharp/async/exception-handling)\n      - Io Bound: csharp/async/io-bound.md\n      - Synchronization Context: csharp/async/synchronization-context.md\n      - SemaphoreSlim: csharp/async/semaphoreslim.md\n      - State Machine: csharp/async/state-machine.md\n      - TaskCompletionSource: csharp/async/task-completion-source.md\n      - TPL & TAP: csharp/async/tpl-tap.md\n      - Parallel For & Foreach: csharp/async/parallel-for-foreach.md\n      - ThreadPool: csharp/async/thread-pool.md\n      - Thread: csharp/async/thread.md\n      - ValueTask: csharp/async/valuetask.md\n      - Sync Over Async: csharp/async/sync-over-async.md\n      - Resources: csharp/async/resources.md\n    - Locking: \n        - Lock: csharp/locking/lock.md \n        - Monitor: csharp/locking/monitor.md \n        - Mutex: csharp/locking/mutex.md \n        - Semaphore: csharp/locking/semaphore.md\n        - Thread Safty: csharp/locking/thread-safty.md\n    - Collections & Data Structure:\n      - Collections & Data Structure: csharp/collections/collection-data-structure.md\n      - Enumerable: csharp/collections/enumerable.md\n      - HashSet: csharp/collections/hashset.md\n    - Boxing: csharp/boxing.md\n    - Closure: csharp/closure.md\n    - Constant: csharp/constant.md\n    - Operator: csharp/implicit-explicit-operators.md\n    - Linq: csharp/linq.md\n    - Covariance: csharp/covariance.md\n    - Required: csharp/required.md\n    - Compiler & Lowering: compiler-lowering.md\n    - Extension Methods: csharp/extension-methods.md\n    - Nullable Reference Types : csharp/nullable-reference-types.md\n    - Reflection & Assemblies: csharp/reflection.md\n    - Null Check: csharp/null-check.md\n    - Conditional Compilation & Assert: csharp/conditional-compilation-assert.md\n    - Generic: csharp/generic.md\n    - Types : csharp/types.md\n    - Pattern Matching : csharp/pattern-matching.md\n    - Span: csharp/span.md\n    - Deconstruction: csharp/deconstruction.md\n    - Record: csharp/record.md\n    - Enum: csharp/enum.md\n  - MAUI: maui.md\n  - Blazor: blazor.md\n  - Open Api: open-api.md\n  - Source Generators: source-generators.md\n  - Performance: performance.md\n  - Health Check: health-check.md\n  - Serialization: serialization.md\n  - Generic Host: generic-host.md\n  - Hosting: hosting.md\n  - Kestrel: kestrel.md\n  - Feature Flags: feature-flags.md\n  - REST: rest.md\n  - Middleware: middleware.md\n  - Action Filters: action-filters.md\n  - Configuration & Secrets : configuration-secrets.md\n  - Options: options.md\n  - HttContext: httpcontext.md\n  - gRPC: grpc.md\n  - WebSockets: web-sockets.md\n  - SignalR: signalr.md\n  - HttpClient: httpclient.md\n  - WEB API: web-api.md\n  - Lunch Urls & launchSettings: lunch-urls-launchsettings.md\n  - Minimal API: minimal-api.md\n  - ML.Net : ml-net.md\n  - Background Tasks: background-tasks.md\n  - Razor Pages: razor-pages.md\n  - GraphQL: graphql.md\n  - GitHub:\n    - Git: github/git.md\n    - GitHub: github/github.md\n    - Release Notes: github/release-note.md\n    - Git-Flow: github/git-flow.md\n    - Conventional Commits: github/conventional-commits.md\n    - Projects: github/projects.md\n    - SSH: github/ssh.md\n    - Copilot: github/copilot.md\n    - GitHub SubModule: github/sub-module.md\n  - Elastic Search: elastic-search.md\n  - OData: odata.md\n  - Debugging: debugging.md\n  - Nuget & Pack: nuget-pack.md\n  - API Versioning: api-versioning.md\n  - Hosted Service: hosted-service.md\n  - Routing: routing.md\n  - Dependency Injection: dependency-injection.md\n  - Security: \n    - Encryption And Data Protection: security/encryption.md\n    - .Net Core Identity: security/dotnet-identity.md\n    - Identity Server: security/identity-server.md\n    - MSAL: security/msal.md\n    - Authentication: security/authentication.md\n    - Authorization: security/authorization.md\n    - OAuth & OpenID Connect: security/oauth-opencid.md\n    - Refresh Token: security/refresh-token.md\n    - Revoking Token: security/revoking-token.md\n    - Secret Management: security/secret-management.md\n  - Logging And Auditing: logging.md\n  - Distributed Tracing: distributed-tracing.md\n  - CorrelationId: correlationId.md\n  - Diagnostics: diagnostics.md\n  - Testing: \n    - Testing: testing/testing.md\n    - Unit Testing: testing/unit-testing.md\n    - Integration Testing: testing/integration-testing.md\n    - End-To-End Testing: testing/end-to-end-testing.md\n    - Acceptance Testing: testing/acceptance-testing.md\n    - Load Testing: testing/load-testing.md\n    - Snapshot Testing: testing/snapshot-testing.md\n    - Mutation Testing: testing/mutation-testing.md\n    - Architectural Testing: testing/architectural-testing.md\n    - Contract Testing: testing/contract-testing.md\n    - Test Host And WebApplicationFactory: testing/test-host.md\n    - Code Coverage & Analysis: testing/code-coverage-analysis.md\n    - Mocking: testing/mocking.md\n    - TDD: testing/tdd.md\n    - BDD: testing/bdd.md\n    - XUnit: testing/xunit.md\n  - Exception && Validation: exception-validation.md\n  - EF Core: \n    - EF Core: ef-core/ef-core.md\n    - EF Core 8: ef-core/ef-core-8.md\n    - EF Core 7: ef-core/ef-core-7.md\n    - EF Core 6: ef-core/ef-core-6.md\n    - EF Core 5: ef-core/ef-core-5.md\n    - Expression Tree: ef-core/expression-tree.md\n    - Explicit Loading: ef-core/explicit-loading.md\n    - Eager Loading: ef-core/eager-loading.md\n    - Lazy Loading: ef-core/lazy-loading.md\n    - Projection: ef-core/projection.md\n    - Performance: ef-core/performance.md\n    - Transaction: ef-core/transaction.md\n    - Soft Delete: ef-core/soft-delete.md\n    - Query Filters: ef-core/query-filter.md\n    - Reverse Engineering: ef-core/reverse-engineering.md\n    - Seed : ef-core/seed.md\n    - Own Types : ef-core/own-types.md\n    - Split Query: ef-core/split-query.md\n    - Compiled Query: ef-core/compiled-query.md\n    - Interceptor: ef-core/interceptor.md\n    - Change Tracking: ef-core/change-tracking.md\n  - Environment: environment.md\n  - ID: id.md\n  - Mediator: mediator.md\n  - Mapping: mapping.md\n  - Caching: caching.md\n  - Aspire: aspire.md\n  - Model Binding: model-binding.md\n  - Benchmarking: benchmarking.md\n  - Rate Limiting: rate-limiting.md\n  - Stronglt Type ID: strongly-type-id.md\n  - Semantic Versioning: semantic-versioning.md\n  - Migrations: migration.md\n  - Service Discovery: service-discovery.md\n  - Dapper: dapper.md\n  - Multi Tenancy: multi-tenancy.md\n  - Orleans: orleans.md\n  - Localization: localization.md\n  - WebHook: webhook.md\n  - Code Generation: code-generation.md\n  - Roslyn Analizers: roslyn-analizers.md\n  - Tools:\n    - Cake: tools/cake.md\n    - Nuke: tools/nuke.md\n  - Remote Development:\n    - DevContainers: remote-development/devcontainers.md\n    - GitHub Codespace: remote-development/github-codespace.md\n    - Gitpod: remote-development/gitpod.md\n  - IDE & Tools: \n    - Reharper & Rider: ide-tools/resharper-rider.md\n    - Decompile & DotPeek: ide-tools/decompile.md\n    - DotMemory: ide-tools/dotmemory.md\n    - DotTrace: ide-tools/dottrace.md\n    - Dotcover: ide-tools/dotcover.md\n    - DataGrip: ide-tools/datagrip.md\n    - VSCode: ide-tools/vscode.md\n    - Terminal & Dotfiles: ide-tools/terminal-dotfiles.md\n    - DotNet Intreactive: ide-tools/dotnet-interactive.md\n    - WSL: ide-tools/wsl.md\n  - Rx.Net: rx.md\n  - Regex: regex.md\n  - Documentation: documentation.md\n  - Formatting: formatting.md\n  - Others: others.md\n\n\ncopyright: 2021 <a href=\"https://github.com/mehdihadeli\">Mehdi Hadeli</a>.\n#remote_branch: gh-pages \n#remote_name: origin\nextra:\n  social:\n    - icon: fontawesome/brands/twitter\n      link: https://twitter.com/mehdi_hadeli\n    - icon: fontawesome/brands/linkedin\n      link: https://www.linkedin.com/in/mehdihadeli\n    - icon: fontawesome/brands/github-alt\n      link: https://github.com/mehdihadeli\n"
  },
  {
    "path": "moveFiles.sh",
    "content": "# sudo cp README.md docs/index.md"
  },
  {
    "path": "requirements.txt",
    "content": "mkdocs==1.2.3\nmkdocs-material\npymdown-extensions"
  }
]