Showing preview only (770K chars total). Download the full file or copy to clipboard to get everything.
Repository: mehdihadeli/awesome-dotnet-core-education
Branch: main
Commit: 323fcff1dfa8
Files: 268
Total size: 704.2 KB
Directory structure:
gitextract_lytg6_q_/
├── .github/
│ └── workflows/
│ └── ci.yml
├── .gitignore
├── LICENSE
├── Program.cs
├── README.md
├── _config.yml
├── contributing.md
├── docs/
│ ├── action-filters.md
│ ├── ai.md
│ ├── api-versioning.md
│ ├── asp/
│ │ ├── asp-net-6.md
│ │ ├── asp-net-7.md
│ │ ├── asp-net-8.md
│ │ └── asp-net.md
│ ├── aspire.md
│ ├── background-tasks.md
│ ├── benchmarking.md
│ ├── blazor.md
│ ├── caching.md
│ ├── code-generation.md
│ ├── configuration-secrets.md
│ ├── correlationId.md
│ ├── csharp/
│ │ ├── async/
│ │ │ ├── analyzers.md
│ │ │ ├── async-and-await.md
│ │ │ ├── async-best-practice.md
│ │ │ ├── async-collections/
│ │ │ │ ├── async-collections.md
│ │ │ │ ├── async-stream-and-iEnumerableAsync.md
│ │ │ │ ├── blocking-collection.md
│ │ │ │ ├── iterators.md
│ │ │ │ └── lazy-initialization.md
│ │ │ ├── asynchronous-messaging.md
│ │ │ ├── asynclocal.md
│ │ │ ├── awaiter.md
│ │ │ ├── cancellation.md
│ │ │ ├── channels.md
│ │ │ ├── concurrency -vs-parallelism.md
│ │ │ ├── configure-await.md
│ │ │ ├── continuations.md
│ │ │ ├── cpu-bound.md
│ │ │ ├── exception-handling.md
│ │ │ ├── index.md
│ │ │ ├── io-bound.md
│ │ │ ├── parallel-for-foreach.md
│ │ │ ├── recources.md
│ │ │ ├── semaphoreslim.md
│ │ │ ├── state-machine.md
│ │ │ ├── sync-over-async.md
│ │ │ ├── synchronization-context.md
│ │ │ ├── task-completion-source.md
│ │ │ ├── thread-pool.md
│ │ │ ├── thread.md
│ │ │ ├── tpl-tap.md
│ │ │ └── valuetask.md
│ │ ├── boxing.md
│ │ ├── closure.md
│ │ ├── collections/
│ │ │ ├── collection-data-structure.md
│ │ │ ├── enumerable.md
│ │ │ └── hashset.md
│ │ ├── compiler-lowering.md
│ │ ├── conditional-compilation-assert.md
│ │ ├── conditional-compilation.md
│ │ ├── constant.md
│ │ ├── covariance.md
│ │ ├── csharp.md
│ │ ├── deconstruction.md
│ │ ├── enum.md
│ │ ├── extension-methods.md
│ │ ├── generic.md
│ │ ├── implicit-explicit-operators.md
│ │ ├── index.md
│ │ ├── linq.md
│ │ ├── locking/
│ │ │ ├── lock.md
│ │ │ ├── monitor.md
│ │ │ ├── mutex.md
│ │ │ ├── semaphore.md
│ │ │ └── thread-safty.md
│ │ ├── null-check.md
│ │ ├── nullable-reference-types.md
│ │ ├── pattern-matching.md
│ │ ├── record.md
│ │ ├── reflection.md
│ │ ├── required.md
│ │ ├── span.md
│ │ ├── types.md
│ │ └── versions/
│ │ ├── 10.md
│ │ ├── 11.md
│ │ ├── 12.md
│ │ ├── 13.md
│ │ ├── 7.md
│ │ ├── 8.md
│ │ ├── 9.md
│ │ └── index.md
│ ├── dapper.md
│ ├── debugging.md
│ ├── dependency-injection.md
│ ├── diagnostics.md
│ ├── distributed-tracing.md
│ ├── documentation.md
│ ├── dotnet/
│ │ ├── build.md
│ │ ├── dotnet-core-architecture.md
│ │ ├── dotnet-core-tips.md
│ │ ├── dotnet-core.md
│ │ ├── dotnet-standard.md
│ │ ├── dotnet-template.md
│ │ ├── dotnet.md
│ │ ├── dotnet10.md
│ │ ├── dotnet5.md
│ │ ├── dotnet6.md
│ │ ├── dotnet7.md
│ │ ├── dotnet8.md
│ │ ├── dotnet9.md
│ │ ├── global-json.md
│ │ ├── il.md
│ │ ├── metapack.md
│ │ ├── multi-target.md
│ │ ├── package-management.md
│ │ └── source-links.md
│ ├── dotnet-cli/
│ │ ├── dotnet-cli.md
│ │ ├── dotnet-tools.md
│ │ ├── dotnet-watch.md
│ │ └── upgrade-assistant.md
│ ├── ef-core/
│ │ ├── change-tracking.md
│ │ ├── compiled-query.md
│ │ ├── eager-loading.md
│ │ ├── ef-core.md
│ │ ├── ef-core5.md
│ │ ├── ef-core6.md
│ │ ├── ef-core7.md
│ │ ├── ef-core8.md
│ │ ├── explicit-loading.md
│ │ ├── expression-tree.md
│ │ ├── interceptor.md
│ │ ├── lazy-loading.md
│ │ ├── own-types.md
│ │ ├── performance.md
│ │ ├── projection.md
│ │ ├── query-filter.md
│ │ ├── reverse-engineering.md
│ │ ├── seed.md
│ │ ├── soft-delete.md
│ │ ├── split-query.md
│ │ └── transaction.md
│ ├── elastic-search.md
│ ├── environment.md
│ ├── exception-validation.md
│ ├── feature-flags.md
│ ├── formatting.md
│ ├── generic-host.md
│ ├── github/
│ │ ├── branches/
│ │ │ ├── branch.md
│ │ │ ├── checkout.md
│ │ │ └── merge.md
│ │ ├── cherry-pick.md
│ │ ├── conventional-commits.md
│ │ ├── copilot.md
│ │ ├── git.md
│ │ ├── github.md
│ │ ├── inspect/
│ │ │ ├── status.md
│ │ │ └── tag.md
│ │ ├── projects.md
│ │ ├── pull-request.md
│ │ ├── release-note.md
│ │ ├── save-changes/
│ │ │ ├── add.md
│ │ │ ├── commit.md
│ │ │ ├── diff.md
│ │ │ └── stash.md
│ │ ├── ssh.md
│ │ ├── submodules.md
│ │ ├── syncing/
│ │ │ ├── fetch.md
│ │ │ ├── pull.md
│ │ │ ├── push.md
│ │ │ └── remote.md
│ │ ├── tools/
│ │ │ └── lense.md
│ │ ├── undo-changes/
│ │ │ └── revet.md
│ │ └── workflow.md
│ ├── graphql.md
│ ├── grpc.md
│ ├── health-check.md
│ ├── hosted-service.md
│ ├── hosting.md
│ ├── httpclient.md
│ ├── httpcontext.md
│ ├── id.md
│ ├── ide-tools/
│ │ ├── datagrip.md
│ │ ├── decompile.md
│ │ ├── dotcover.md
│ │ ├── dotmemory.md
│ │ ├── dotnet-interactive.md
│ │ ├── dottrace.md
│ │ ├── index.md
│ │ ├── resharper-rider.md
│ │ ├── terminal-dotfiles.md
│ │ ├── vscode.md
│ │ └── wsl.md
│ ├── index.md
│ ├── kestrel.md
│ ├── localization.md
│ ├── logging.md
│ ├── lunch-urls-launchsettings.md
│ ├── mapping.md
│ ├── maui.md
│ ├── mediator.md
│ ├── middleware.md
│ ├── migration.md
│ ├── minimal-api.md
│ ├── ml-net.md
│ ├── model-binding.md
│ ├── msbuild.md
│ ├── multi-tenancy.md
│ ├── nuget-pack.md
│ ├── odata.md
│ ├── open-api.md
│ ├── options.md
│ ├── orleans.md
│ ├── others.md
│ ├── performance.md
│ ├── rate-limiting.md
│ ├── razor-pages.md
│ ├── regex.md
│ ├── registry.md
│ ├── remote-development/
│ │ ├── devcontainers.md
│ │ ├── github-codespace.md
│ │ └── gitpod.md
│ ├── resiliency.md
│ ├── rest.md
│ ├── roslyn-analizers.md
│ ├── routing.md
│ ├── rx.md
│ ├── security/
│ │ ├── authentication.md
│ │ ├── authorization.md
│ │ ├── dotnet-identity.md
│ │ ├── encryption.md
│ │ ├── identity-server.md
│ │ ├── masl.md
│ │ ├── oauth-opencid.md
│ │ ├── refresh-token.md
│ │ ├── revoking-token.md
│ │ └── secret-management.md
│ ├── semantic-versioning.md
│ ├── serialization.md
│ ├── service-discovery.md
│ ├── signalr.md
│ ├── source-generators.md
│ ├── strongly-type-id.md
│ ├── testing/
│ │ ├── acceptance-testing.md
│ │ ├── architectural-testing.md
│ │ ├── bdd.md
│ │ ├── contract-testing.md
│ │ ├── e2e-testing.md
│ │ ├── integration-testing.md
│ │ ├── load-testing.md
│ │ ├── mocking.md
│ │ ├── mutation-testing.md
│ │ ├── snapshot-testing.md
│ │ ├── tdd.md
│ │ ├── test-coverage-analysis.md
│ │ ├── test-host.md
│ │ ├── testing.md
│ │ ├── unit-testing.md
│ │ └── xunit.md
│ ├── tools/
│ │ ├── cake.md
│ │ └── nuke.md
│ ├── transitive-dependency.md
│ ├── web-api.md
│ ├── web-sockets.md
│ └── webhook.md
├── mkdocs.yml
├── moveFiles.sh
└── requirements.txt
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/ci.yml
================================================
name: CI
on:
push:
branches:
- main
jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: gaurav-nelson/github-action-markdown-link-check@v1
build:
name: Deploy docs
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v2
- name: Make executeable
run: chmod +x ./moveFiles.sh
- name: move md files
run: ./moveFiles.sh
- name: Deploy MkDocs
uses: mhausenblas/mkdocs-deploy-gh-pages@1.24
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
================================================
FILE: .gitignore
================================================
site/
node_modules/
================================================
FILE: LICENSE
================================================
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below upon the creator
and subsequent owner(s (each and all, an "owner" of an original work of
authorship and/or a database (each, a "Work".
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons" that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer", to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights". Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s and/or performer(s;
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a, below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive; and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action, in the Work (i in all territories
worldwide, (ii for the maximum duration provided by applicable law or
treaty (including future time extensions, (iii in any current or future
medium and for any number of copies, and (iv for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver". Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i in all territories worldwide, (ii for the
maximum duration provided by applicable law or treaty (including future
time extensions, (iii in any current or future medium and for any number
of copies, and (iv for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License". The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.
================================================
FILE: Program.cs
================================================
using System;
namespace Awesome_Dot_Net_Core_Education
{
internal class Program
{
private static void Main(string[] args)
{
Console.WriteLine("This is a C# repository.");
}
}
}
================================================
FILE: README.md
================================================
# 🎨 Awesome .Net Core Education [](https://awesome.re)
[](http://creativecommons.org/publicdomain/zero/1.0/)
> Curated list of awesome articles and resources for learning and practicing about .Net Core and its related technologies, this repository will update continuously.
I 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 ✌️.
**🚀 This awesome list is available in this link:**
**[https://mehdihadeli.github.io/awesome-dotnet-core-education](https://mehdihadeli.github.io/awesome-dotnet-core-education/)**
<a href="https://mehdihadeli.github.io/awesome-dotnet-core-education">  </a>
[](https://stars.medv.io/mehdihadeli/awesome-dotnet-core-education)
## 🙏 Special Thanks
Thanks to the authors of the links for their valuable content, I gather them in one place to find topics to read easier.
## Support ⭐
Star this repository and we will be happy together :)
Thanks a bunch for supporting me!
## Contribution
Contributions 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.
Thanks 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.
<a href="https://github.com/mehdihadeli/awesome-dotnet-core-education/graphs/contributors">
<img src="https://contrib.rocks/image?repo=mehdihadeli/awesome-dotnet-core-education" />
</a>
# Contact
If you have any questions, let me know. You can reach me here:
<!-- markdown-link-check-disable-next-line -->
[](https://www.linkedin.com/in/mehdihadeli/)
[](https://twitter.com/mehdi_hadeli)
[](https://github.com/mehdihadeli/)
[](https://dotnetuniversity.com/)
================================================
FILE: _config.yml
================================================
plugins:
- jekyll-relative-links
relative_links:
enabled: true
collections: true
include:
- contributing.md
- README.md
- LICENSE
theme: jekyll-theme-cayman
================================================
FILE: contributing.md
================================================
# Contribution Guidelines
## New entry format
* Use the following format: **(LINK) | (LIBRARY) | (GitHub-UserName/GitHub-RepositoryName) - DESCRIPTION**
* 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.
* Keep descriptions concise, clear and simple
* New categories, or improvements to the existing ones are also welcome
* If you add new category you should create a new `md file` for this category in the [docs](./docs) folder.
* If you add new category don't forget to add it to [mkdocs.yml](mkdocs.yml) file in root of this project.
* Your links will check for ensuring quality.
## Pull requests workflow
* **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).
* **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.
## Research projects
If you are to include a research or academic project, please use the `**[Research]**` tag.
Thanks to all contributors(https://github.com/mehdihadeli/awesome-dotnet-core-education/graphs/contributors, you're awesome and wouldn't be possible without you!
================================================
FILE: docs/action-filters.md
================================================
# Action Filters
## 📝 Articles
- [ASP.NET Core in Action - Filters](https://andrewlock.net/asp-net-core-in-action-filters/)
- [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/)
================================================
FILE: docs/ai.md
================================================
# AI
## Samples
- [codebytes/build-with-aspire](https://github.com/codebytes/build-with-aspire)
- [Azure-Samples/aspire-semantic-kernel-basic-chat-app](https://github.com/Azure-Samples/aspire-semantic-kernel-basic-chat-app)
- [mehmetozkaya/eshop-distributed](https://github.com/mehmetozkaya/eshop-distributed)
- [vicperdana/AspireShopWithSemanticKernel](https://github.com/vicperdana/AspireShopWithSemanticKernel)
================================================
FILE: docs/api-versioning.md
================================================
# API Versioning
## 📝 Articles
- [Web API Versioning in ASP.NET Core Detailed Guide](https://procodeguide.com/programming/asp-net-core-web-api-versioning/)
- [ASP.NET Core RESTful Web API versioning made easy](https://www.hanselman.com/blog/aspnet-core-restful-web-api-versioning-made-easy)
- [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)
- [Advanced versioning in ASP.NET Core Web API](https://dejanstojanovic.net/aspnet/2018/june/advanced-versioning-in-aspnet-core-web-api/)
- [ASP.NET Core Web API versioning](https://dejanstojanovic.net/aspnet/2017/may/aspnet-core-web-api-versioning/)
- [Generating Swagger example requests with Swashbuckle](https://mattfrear.com/2016/01/25/generating-swagger-example-requests-with-swashbuckle/)
- [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/)
- [Your guide to REST API versioning in ASP.NET Core](https://www.daveabrock.com/2021/06/16/rest-api-versioning-aspnet-core/)
- [API Versioning in ASP.NET Core 3.1 – Best Practices](https://codewithmukesh.com/blog/api-versioning-in-aspnet-core-3-1/)
- [Overview of API Versioning in ASP.NET Core 3.0+](https://exceptionnotfound.net/overview-of-api-versioning-in-asp-net-core-3-0/)
- [Versioning an ASP.NET Core API](https://www.meziantou.net/versioning-an-asp-net-core-api.htm)
- [All about Web API Versioning in ASP.NET Core](https://www.dotnetnakama.com/blog/all-about-web-api-versioning-in-asp-dotnet-core/)
- [Asp.Net Core 5 - API Versioning](https://dev.to/moe23/asp-net-core-5-api-versioning-3jnp)
- [OpenAPI support in minimal APIs - ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi)
- [API Versioning with ASP.NET Core 6.0 Minimal APIs](https://dotnetthoughts.net/aspnetcore-api-versioning-with-net-6-minimal-apis/)
- [ASP.NET Core Versioning: MVC APIs](https://im5tu.io/article/2022/09/asp.net-core-versioning-mvc-apis/)
- [ASP.NET Core Versioning: Minimal APIs](https://im5tu.io/article/2022/10/asp.net-core-versioning-minimal-apis/)
- [How to configure API Versioning in .NET 8](https://dev.to/iamrule/comprehensive-guide-to-api-versioning-in-net-8-1i9j)
## 📹 Videos
- [Elegant API Versioning in ASP.NET Core (Web API)](https://www.youtube.com/watch?v=iVHtKG0eU_s)
- [Implementing versioning | ASP.NET Core 5 REST API Tutorial 2](https://www.youtube.com/watch?v=WFEE5yVJwGU)
- [Versioning ASP.NET Core MVC & Minimal APIs](https://www.youtube.com/watch?v=YRJGKyzjFlY)
## Libraries
- [mattfrear/Swashbuckle.AspNetCore.Filters](https://github.com/mattfrear/Swashbuckle.AspNetCore.Filters) - A bunch of useful filters for Swashbuckle.AspNetCore
- [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
## Samples
- [dotnet/aspnet-api-versioning/examples](https://github.com/dotnet/aspnet-api-versioning/tree/main/examples)
- [dotnet/aspnet-api-versioning/WebApi/MinimalOpenApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/MinimalOpenApiExample)
- [dotnet/aspnet-api-versioning/WebApi/OpenApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/OpenApiExample)
- [dotnet/aspnet-api-versioning/WebApi/MinimalApiExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/MinimalApiExample)
- [dotnet/aspnet-api-versioning/WebApi/BasicExample](https://github.com/dotnet/aspnet-api-versioning/tree/93bd8dc7582ec14c8ec97997c01cfe297b085e17/examples/AspNetCore/WebApi/BasicExample)
================================================
FILE: docs/asp/asp-net-6.md
================================================
## ASP.NET Core 6
## Resources
- [Migration to ASP.NET Core in .NET 6](https://gist.github.com/davidfowl/0e0372c3c1d895c3ce195ba983b1e03d)
- [Minimal APIs at a glance](https://gist.github.com/davidfowl/ff1addd02d239d2d26f4648a06158727)
## Articles
- [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)
- [ASP.NET Core updates in .NET 6 Preview 1](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-1/)
- [ASP.NET Core updates in .NET 6 Preview 2](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-2/)
- [ASP.NET Core updates in .NET 6 Preview 3](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-3/)
- [ASP.NET Core updates in .NET 6 Preview 4](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-4)
- [ASP.NET Core updates in .NET 6 Preview 5](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-5/)
- [ASP.NET Core updates in .NET 6 Preview 6](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-6/)
- [ASP.NET Core updates in .NET 6 Preview 7](https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-7/)
- [ASP.NET Core in .NET 6 - Overview](https://asp.net-hacker.rocks/2021/02/22/aspnetcore6-01.html)
- [ASP.NET Core in .NET 6 - Update on dotnet watch](https://asp.net-hacker.rocks/2021/03/25/aspnetcore6-02-dotnetwhatch.html)
- [ASP.NET Core in .NET 6 - Support for IAsyncDisposable in MVC](https://asp.net-hacker.rocks/2021/03/29/aspnetcore6-03-iasyncdisposable.html)
- [ASP.NET Core in .NET 6 - Nullable Reference Type Annotations](https://asp.net-hacker.rocks/2021/04/22/aspnetcore6-06-nullable-annotations.html)
- [ASP.NET Core in .NET 6 - Hot Reload](https://asp.net-hacker.rocks/2021/07/12/aspnetcore6-hot-reload.html)
- [ASP.NET Core in .NET 6 - Shadow-copying in IIS](https://asp.net-hacker.rocks/2021/07/19/aspnetcore6-shaddow-copy-iis.html)
- [ASP.NET Core in .NET 6 - Hot Reload](https://asp.net-hacker.rocks/2021/07/12/aspnetcore6-hot-reload.html)
- [Series: Exploring .NET Core 6](https://andrewlock.net/series/exploring-dotnet-6/)
- [Part 1 - Looking inside ConfigurationManager in .NET 6](https://andrewlock.net/exploring-dotnet-6-part-1-looking-inside-configurationmanager-in-dotnet-6/)
- [Part 2 - Comparing WebApplicationBuilder to the Generic Host](https://andrewlock.net/exploring-dotnet-6-part-2-comparing-webapplicationbuilder-to-the-generic-host/)
- [Part 3 - Exploring the code behind WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-3-exploring-the-code-behind-webapplicationbuilder/)
- [Part 4 - Building a middleware pipeline with WebApplication](https://andrewlock.net/exploring-dotnet-6-part-4-building-a-middleware-pipeline-with-webapplication/)
- [Part 5 - Supporting EF Core migrations with WebApplicationBuilder](https://andrewlock.net/exploring-dotnet-6-part-5-supporting-ef-core-tools-with-webapplicationbuilder/)
- [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/)
- [Part 7 - Analyzers for ASP.NET Core in .NET 6 ](https://andrewlock.net/exploring-dotnet-6-part-7-analyzers-for-minimal-apis/)
- [Part 8 - Improving logging performance with source generators](https://andrewlock.net/exploring-dotnet-6-part-8-improving-logging-performance-with-source-generators/)
- [Part 9 - Source generator updates: incremental generators ](https://andrewlock.net/exploring-dotnet-6-part-9-source-generator-updates-incremental-generators/)
- [Part 10 - New dependency injection features in .NET 6 ](https://andrewlock.net/exploring-dotnet-6-part-10-new-dependency-injection-features-in-dotnet-6/)
- [Part 11 - [CallerArgumentExpression] and throw helpers](https://andrewlock.net/exploring-dotnet-6-part-11-callerargumentexpression-and-throw-helpers/)
- [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/)
- [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/)
- [Cancelling await calls in .NET 6 with Task.WaitAsync()](https://andrewlock.net/cancelling-await-calls-in-dotnet-6-with-task-waitasync/)
- [Performance improvements in ASP.NET Core 6](https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-6/)
## Videos
- [ASP.NET Community Standup - ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=Mot8qAWEnj8)
- [The future of modern application development with .NET](https://www.youtube.com/watch?v=2Ky28Et3gy0)
- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)
- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)
- [ASP.NET Community Standup - ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=Mot8qAWEnj8)
- [Migrating to .NET 6 from .NET Core 3.1 | ASP.NET Core WebAPI](https://www.youtube.com/watch?v=LON-PTi2AC0)
- [Upgrading ASP.NET Core API to .NET 6](https://www.youtube.com/watch?v=juyZCgF9g2E)
- [ASP.NET Core updates in .NET 6](https://www.youtube.com/watch?v=D5xcUtPCG2s)
## Samples
- [dodyg/practical-aspnetcore/tree/net5.0/projects/net6](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)
================================================
FILE: docs/asp/asp-net-7.md
================================================
# ASP.NET Core 7
## Articles
- [ASP.NET Core Roadmap for .NET 7](https://github.com/dotnet/aspnetcore/issues/39504)
- [ASP.NET Core updates in .NET 7 Preview 1](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-7-preview-1/)
- [ASP.NET Core updates in .NET 7 Preview 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-2/)
- [ASP.NET Core updates in .NET 7 Preview 3](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-3/)
- [ASP.NET Core updates in .NET 7 Preview 4](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-4/)
- [ASP.NET Core updates in .NET 7 Preview 5](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-5/)
- [ASP.NET Core updates in .NET 7 Preview 6](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-6/)
- [ASP.NET Core updates in .NET 7 Preview 7](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-preview-7/)
- [ASP.NET Core updates in .NET 7 Release Candidate 1](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-rc-1/)
- [ASP.NET Core updates in .NET 7 Release Candidate 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-7-rc-2/)
- [Exploring the new output caching middleware](https://dev.to/this-is-learning/exploring-the-new-output-caching-middleware-4no1)
- [ASP.NET Core on .NET 7.0 - Output caching](https://asp.net-hacker.rocks/2022/07/26/aspnetcore7-outputcaching.html)
- [Performance improvements in ASP.NET Core 7](https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-7/)
- [Announcing ASP.NET Core in .NET 7](https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-7/)
- [What's new in ASP.NET Core 7.0](https://learn.microsoft.com/en-us/aspnet/core/release-notes/aspnetcore-7.0)
- [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/)
## Videos
- [ASP.NET Core in .NET 7 Preview 1 - What you need to know](https://www.youtube.com/watch?v=VgmsFck3RWU)
- [ASP.NET Community Standup - Controller Binding Updates in .NET 7](https://www.youtube.com/watch?v=TTpH9GjwY34)
================================================
FILE: docs/asp/asp-net-8.md
================================================
# ASP.NET 8
## Articles
- [Announcing ASP.NET Core in .NET 8](https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-8/)
- [ASP.NET Core updates in .NET 8 Preview 1](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-1/)
- [ASP.NET Core updates in .NET 8 Preview 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-2/)
- [ASP.NET Core Route Tooling Enhancements in .NET 8](https://devblogs.microsoft.com/dotnet/aspnet-core-route-tooling-dotnet-8/)
- [ASP.NET Core updates in .NET 8 Preview 3](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-3/)
- [ASP.NET Core updates in .NET 8 Preview 4](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-4/)
- [ASP.NET Core updates in .NET 8 Preview 5](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-5/)
- [ASP.NET Core updates in .NET 8 Preview 6](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-6/)
- [ASP.NET Core updates in .NET 8 Preview 7](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-7/)
- [ASP.NET Core updates in .NET 8 Release Candidate 2](https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-rc-2/)
- [Improvements to auth and identity in ASP.NET Core 8](https://devblogs.microsoft.com/dotnet/improvements-auth-identity-aspnetcore-8/)
================================================
FILE: docs/asp/asp-net.md
================================================
# ASP.NET Core
## Resources
- [ASP.NET Core: From 0 to overkill](https://www.youtube.com/playlist?list=PLN0oN9Azm_MMAjk3nhRnmHdr1l0160Dhs)
- [ASP.NET Core 2.2 & 3 REST API Tutorial - Nick Chapsass](https://www.youtube.com/playlist?list=PLUOequmGnXxOgmSDWU7Tl6iQTsOtyjtwU)
- [ASP.NET Core General Tutorial - Nick Chapsass](https://www.youtube.com/playlist?list=PLUOequmGnXxOFPJv8H7DNIappcta9brtN)
- [ASP.NET Core - Codewrinkles](https://www.youtube.com/playlist?list=PL2E-vlKoo_v1dfQPJX3PuzT4B1ZJulQ-p)
- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore)
## Articles
- [Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage)
- [Microsoft.AspNetCore.App for ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app)
- [Use ASP.NET Core APIs in a class library](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/target-aspnetcore)
- [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/)
- [Cancelling await calls in .NET 6 with Task.WaitAsync()](https://andrewlock.net/cancelling-await-calls-in-dotnet-6-with-task-waitasync/)
- [Using IActionConstraints in ASP.NET Core MVC](https://www.strathweb.com/2017/06/using-iactionconstraints-in-asp-net-core-mvc/)
- [Select action method based on header value - ASP.NET Core](https://josef.codes/select-action-method-based-on-header-value-asp-net-core/)
- [Request Features And ASP.NET Core 3](https://khalidabuhakmeh.com/request-features-aspnet-core-3)
- [Request Features in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/request-features)
- [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/)
- [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/)
- [Understanding PathBase in ASP.NET Core](https://andrewlock.net/understanding-pathbase-in-aspnetcore/)
- [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/)
- [Using PathBase with .NET 6's WebApplicationBuilder](https://andrewlock.net/using-pathbase-with-dotnet-6-webapplicationbuilder/)
- [How fast is really ASP.NET Core?](https://dusted.codes/how-fast-is-really-aspnet-core)
## Videos
- [ASP.NET Community Standup - Contributing to ASP.NET Core](https://www.youtube.com/watch?v=hVdwb41FPvU)
- [What's the point of async/await in an ASP.NET Core application?](https://www.youtube.com/watch?v=COeg6UoPe_Q)
- [Episode 010 - Async all the things - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=CGi1bQgaqwg)#
================================================
FILE: docs/aspire.md
================================================
# Aspire
## Aticles
- [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/)
- [How to include an Angular Project within .NET Aspire](https://timdeschryver.dev/blog/how-to-include-an-angular-project-within-net-aspire)
## Samples
- [dotnet/aspire-samples](https://github.com/dotnet/aspire-samples)
================================================
FILE: docs/background-tasks.md
================================================
# Background Tasks
## 📝 Articles
- [Background tasks with hosted services in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services)
- [Background Tasks in .NET](https://codeopinion.com/background-tasks/)
- [Mediator Pattern with Hangfire](https://codeopinion.com/mediator-pattern-hangfire/)
- [Processing commands with Hangfire and MediatR](http://www.kamilgrzybek.com/design/processing-commands-with-hangfire-and-mediatr/)
- [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/)
- [How to run Background Tasks in ASP.NET](https://www.hanselman.com/blog/how-to-run-background-tasks-in-aspnet)
- [Using Quartz.NET with ASP.NET Core and worker services](https://andrewlock.net/using-quartz-net-with-asp-net-core-and-worker-services/)
- [Creating a Quartz.NET hosted service with ASP.NET Core](https://andrewlock.net/creating-a-quartz-net-hosted-service-with-asp-net-core/)
- [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/)
- [Mediator Pattern with Hangfire](https://codeopinion.com/mediator-pattern-hangfire/)
- [Using Hangfire and MediatR as a Message Dispatcher](https://codeopinion.com/using-hangfire-and-mediatr-as-a-message-dispatcher/)
- [Background Commands with MediatR and Hangfire](https://codeopinion.com/background-commands-mediatr-hangfire/)
- [A poor person’s scheduler using .NET Background service](https://ankitvijay.net/2021/02/22/a-poor-mans-scheduler-using-net-background-serivce/)
- [Hangfire with ASP.NET Core](https://code-maze.com/hangfire-with-asp-net-core/)
- [Active-Passive Background Service In .Net 6](https://itnext.io/active-passive-background-service-in-net-6-952f3aebd1b7)
- [Securing Hangfire Dashboard using an OpenID Connect server (IdentityServer 4)](https://lurumad.github.io/securing-hangfire-dashboard-using-an-openid-connect-server-identityserver-4)
- [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/)
- [CONCURRENT HOSTED SERVICE START AND STOP IN .NET 8](https://www.stevejgordon.co.uk/concurrent-hosted-service-start-and-stop-in-dotnet-8)
- [INTRODUCING THE NEW IHOSTEDLIFECYCLESERVICE INTERFACE IN .NET 8](https://www.stevejgordon.co.uk/introducing-the-new-ihostedlifecycleservice-interface-in-dotnet-8)
## Videos
- [Background Tasks Are Finally Fixed in .NET 8](https://www.youtube.com/watch?v=XA_3CZmD9y0)
================================================
FILE: docs/benchmarking.md
================================================
# Benchmarking
## 📕 Articles
- [Profiling .Net Code with BenchmarkDotNet](https://adamsitnik.com/ETW-Profiler/)
- [Measuring Performance using BenchmarkDotNet](https://thecodeblogger.com/2022/05/05/measuring-performance-using-benchmarkdotnet/)
## 📦 Libraries
- [dotnet/BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet) - Powerful .NET library for benchmarking
- [dotnet/crank](https://github.com/dotnet/crank) - Benchmarking infrastructure for applications
## 📹 Videos
- [Benchmarking C# code using BenchmarkDotNet](https://www.youtube.com/watch?v=EWmufbVF2A4)
- [Analyzing performance with BenchmarkDotNet - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=8JOC8kN_WbU)
- [Intro to Benchmark.net - How To Benchmark C# Code](https://www.youtube.com/watch?v=mmza9x3QxYE)
================================================
FILE: docs/blazor.md
================================================
# Blazor
## Resources
- [dotnet-presentations/blazor-workshop/](https://github.com/dotnet-presentations/blazor-workshop/) - Blazor workshop
## Articles
- [Blazor in .NET 8: Full stack Web UI](https://chrissainty.com/blazor-in-dotnet-8-full-stack-web-ui/)
- [Blazor in .NET 8: Server-side and Streaming Rendering](https://chrissainty.com/blazor-in-dotnet-8-server-side-and-streaming-rendering/)
## 📺 Videos
- [Modern Web Dev with Blazor and .NET 6 with Jason Taylor](https://www.youtube.com/watch?v=aPDJkl8TNFA)
- [Blazor API Client using REST & GraphQL APIs - Full Course](https://www.youtube.com/watch?v=agIJTnpfFGA)
- [Blazor Course - Use ASP.NET Core to Build Full-Stack C# Web Apps (8 Hours Full Course)](https://www.youtube.com/watch?v=KRJFEpIJeUI)
- [Let's Learn .NET - Blazor](https://www.youtube.com/watch?v=4Xzx7Cm9ykg)
- [On .NET Live - Building Reactive UIs with Blazor](https://www.youtube.com/watch?v=EUOimtP78jQ)
- [Fluxor + C#9 - Redux Pattern in Blazor WebAssembly](https://www.youtube.com/watch?v=sAyH-O0dFaI)
- [Managing Blazor state using Redux | Blazor Tutorial 11](https://www.youtube.com/watch?v=k_c-ErPaYa8)
- [Blazor Fundamentals Tutorial Playlist - Nick Chapsas](https://www.youtube.com/playlist?list=PLUOequmGnXxPrY79JGnF72e1Pba8z93zo)
- [Modern Web Dev with Blazor and .NET 6 with Jason Taylor](https://www.youtube.com/watch?v=lRYrhj9lwQk)
- [Blazor Tutorial Playlist - Frank Liu](https://www.youtube.com/playlist?list=PLgRlicSxjeMOwJyqendhcntDqEjCBncci)
- [Enterprise-grade Blazor apps with .NET 6](https://www.youtube.com/watch?v=GKu-vRxOWr8)
- [ASP.NET Community Standup - Exploring MudBlazor](https://www.youtube.com/watch?v=GtLIpITqznA)
- [The .NET Docs Show - Micro frontends with Blazor](https://www.youtube.com/watch?v=8Ac2QMdusrs)
## 🚀 Samples
- [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.
- [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.
- [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.
- [jasontaylordev/ModernWebDevWithBlazorWasm](https://github.com/jasontaylordev/ModernWebDevWithBlazorWasm) - The sample code from my presentation Modern Web Dev with Blazor WebAsembly and ASP.NET Core 6.
- [fullstackhero/blazor-wasm-boilerplate](https://github.com/fullstackhero/blazor-wasm-boilerplate) - Blazor WebAssembly Boilerplate for .NET 6.0 using FSH API as the backend.
## Libraries
- [mrpmorris/Fluxor](https://github.com/mrpmorris/Fluxor) - Fluxor is a zero boilerplate Flux/Redux library for Microsoft .NET and Blazor.
- [enkodellc/blazorboilerplate](https://github.com/enkodellc/blazorboilerplate) - Blazor Boilerplate / Starter Template with MatBlazor
- [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.
- [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!
- [SteveSandersonMS/dotnet-wasi-sdk](https://github.com/SteveSandersonMS/dotnet-wasi-sdk) - Packages for building .NET projects as standalone WASI-compliant modules
================================================
FILE: docs/caching.md
================================================
# Caching
## 📕 Articles
- [Response caching in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/response)
- [Cache in-memory in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory)
- [Distributed caching in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed)
- [Simple In-Memory Caching in .Net Core with IMemoryCache](https://sahansera.dev/in-memory-caching-aspcore-dotnet/)
- [4 Microservices Caching Patterns at Wix](https://medium.com/wix-engineering/4-microservices-caching-patterns-at-wix-b4dfee1ae22f)
- [REDIS VS MEMCACHED: WHICH ONE TO CHOOSE?](https://www.imaginarycloud.com/blog/redis-vs-memcached)
- [Redis vs. Memcached: In-Memory Data Storage Systems](https://alibaba-cloud.medium.com/redis-vs-memcached-in-memory-data-storage-systems-3395279b0941)
- [Difference Between Redis vs Memcached](https://www.educba.com/redis-vs-memcached/)
- [Response caching in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/response)
- [Caching Best Practices](https://docs.microsoft.com/en-us/azure/architecture/best-practices/caching)
- [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)
- [Redis as Backplane to scale your Blazor applications](https://blexin.com/en/blog-en/redis-as-backplane-to-scale-your-blazor-applications/)
- [“Red(e)isign” Publish/Subscribe with Redis](https://blexin.com/en/blog-en/redeisign-publish-subscribe-with-redis/)
- [Hybrid Caching](https://github.com/dotnetcore/EasyCaching/blob/master/docs/Hybrid.md)
- [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/)
- [Cache Implementations in C# .NET](https://michaelscodingspot.com/cache-implementations-in-csharp-net/)
- [Scalable and Performant ASP.NET Core Web APIs: Server Caching](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-server-caching/)
- [Scalable and Performant ASP.NET Core Web APIs: Client Caching](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-client-caching/)
- [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/)
- [DISTRIBUTED CACHING AND DISTRIBUTED MEMORY CACHE IN .NET CORE](https://thecodeblogger.com/2021/06/08/distributed-caching-and-distributed-memory-cache-in-net-core/)
- [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/)
- [Redis Caching in ASP.NET Core – Distributed Caching Detailed](https://codewithmukesh.com/blog/redis-caching-in-aspnet-core/)
- [In-Memory Caching in ASP.NET Core – Detailed Guide](https://codewithmukesh.com/blog/in-memory-caching-in-aspnet-core/)
- [Response Caching with MediatR in ASP.NET Core – Powerful Pipeline Behavior](https://codewithmukesh.com/blog/caching-with-mediatr-in-aspnet-core/)
- [How to publish and subscribe with redis by. Net core](https://developpaper.com/how-to-publish-and-subscribe-with-redis-by-net-core/)
- [Redis for .NET Developers – Redis Pub Sub](http://taswar.zeytinsoft.com/redis-pub-sub/)
- [Intro to Redis for .NET Developers – Installing Redis on Windows](http://taswar.zeytinsoft.com/intro-to-redis-for-net-developers/)
- [Redis for .NET Developer – Connecting with C#](http://taswar.zeytinsoft.com/redis-for-net-developer-connecting-with-c/)
- [Redis for .NET Developer – String Datatype](http://taswar.zeytinsoft.com/redis-for-net-developer-string-datatype/)
- [Redis for .NET Developer – Redis String Datatype part 2](http://taswar.zeytinsoft.com/redis-net-developer-redis-string-datatype-part-2/)
- [Redis for .NET Developer – Redis Hash Datatype](http://taswar.zeytinsoft.com/redis-hash-datatype/)
- [Redis for .NET Developers – Redis running in Docker](http://taswar.zeytinsoft.com/redis-running-in-docker/)
- [Redis for .NET Developers – Redis running in Azure](http://taswar.zeytinsoft.com/redis-running-in-azure/)
- [Redis for .NET Developers – Redis Password](http://taswar.zeytinsoft.com/redis-password/)
- [Redis for .NET Developers – Redis List Datatype](http://taswar.zeytinsoft.com/redis-list/)
- [Redis for .NET Developers – Redis Sets Datatype](http://taswar.zeytinsoft.com/redis-sets-datatype/)
- [Redis for .NET Developers – Redis Sorted Sets Datatype](http://taswar.zeytinsoft.com/redis-sorted-sets-datatype/)
- [Redis for .NET Developers – Redis HyperLogLog Datatype](http://taswar.zeytinsoft.com/redis-hyperloglog/)
- [Redis for .NET Developers – Redis Pub Sub](http://taswar.zeytinsoft.com/redis-pub-sub/)
- [Redis for .NET Developers – Redis Pipeline Batching](http://taswar.zeytinsoft.com/redis-pipeline-batching/)
- [Redis for .NET Developer – Redis Transactions](http://taswar.zeytinsoft.com/redis-transactions/)
- [Redis for .NET Developers – Redis GeoSpatial](http://taswar.zeytinsoft.com/redis-geospatial/)
- [Redis for .NET Developers – Redis Sentinel](http://taswar.zeytinsoft.com/redis-sentinel/)
- [Redis for .NET Developers | Redis with AspNetCore WebAPI](http://taswar.zeytinsoft.com/redis-for-net-developers-redis-with-aspnetcore-webapi/)
- [Pub/Sub](https://redis.io/topics/pubsub)
- [Publish Subscribe](https://sodocumentation.net/stackexchange-redis/topic/1610/publish-subscribe)
- [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)
- [Caching in ASP.NET Core with LazyCache](https://lukelowrey.com/caching-in-aspnet-core-with-lazycache/)
- [Caching behavior with MediatR](https://fredrikronnehag.netlify.app/caching-mediatr/)
- [Cross-Cutting Concerns with MediatR Pipeline Behaviors](https://anderly.com/2019/12/12/cross-cutting-concerns-with-mediatr-pipeline-behaviors/)
- [Exploring the new output caching middleware](https://dev.to/this-is-learning/exploring-the-new-output-caching-middleware-4no1)
- [Redis Explained - Architecture Notes](https://architecturenotes.co/redis/)
- [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/)
- [Redis-Dependency Injection of the ConnectionMultiplexer – Best Practices](https://www.thecodebuzz.com/redis-dependency-injection-connectionmultiplexer-redis-cache-netcore-csharp/)
- [Redis Distributed Cache in C#.NET with Examples](https://www.thecodebuzz.com/redis-distributed-cache-asp-net-core-csharp-redis-examples/)
- [Get all keys from Redis Cache in C#.NET](https://www.thecodebuzz.com/get-all-keys-from-redis-cache-in-c-net/)
## Use Cases
- [Messaging](https://redislabs.com/solutions/use-cases/messaging/)
- [Real-Time Inventory Management](https://redislabs.com/solutions/use-cases/real-time-inventory/)
- [Caching](https://redislabs.com/solutions/use-cases/caching/)
- [Leaderboards](https://redislabs.com/solutions/use-cases/leaderboards/)
## 📺 Videos
- [Software Architecture Introduction (part 3): Cache explained](https://www.youtube.com/watch?v=QBMTGngjWdU)
- [Response caching using Redis | ASP.NET Core 5 REST API Tutorial 25](https://www.youtube.com/watch?v=KboCpJGa9ag)
- [How to effectively use Redis Cache in .NET Core (Framework, Standard)](https://www.youtube.com/watch?v=jwek4w6als4)
- [Redis Crash Course - the What, Why and How to use Redis as your primary database](https://www.youtube.com/watch?v=OqCK95AS-YE)
- [Can Redis be used as a Primary database?](https://www.youtube.com/watch?v=VLTPqImLapM)
- [Caching Architectures | Microservices Caching Patterns | System Design Primer | Tech Primers](https://www.youtube.com/watch?v=0x-ZV_vP73k)
- [Redis Crash Course](https://www.youtube.com/watch?v=jgpVdJB2sKQ)
- [Redis Stack: The Complete Redis for All Developers](https://www.youtube.com/watch?v=9JeAu--liMk)
## 🚀 Samples
- [taswar/RedisForNetDevelopers](https://github.com/taswar/RedisForNetDevelopers) - Source code for blog post on Redis for .NET Developer Series
- [SorenZ/Alamut.MediatR.Caching](https://github.com/SorenZ/Alamut.MediatR.Caching)
## Libraries
- [StackExchange/StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) - General purpose redis client
- [ServiceStack/ServiceStack.Redis](https://github.com/ServiceStack/ServiceStack.Redis) - .NET's leading C# Redis Client
- [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#
- [Foundatio.Redis](https://github.com/FoundatioFx/Foundatio.Redis) - Foundatio Redis
- [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.
- [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!
- [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.
- [VahidN/EFCoreSecondLevelCacheInterceptor](https://github.com/VahidN/EFCoreSecondLevelCacheInterceptor) - EF Core Second Level Cache Interceptor
- [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
- [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
================================================
FILE: docs/code-generation.md
================================================
# Code Generation
## Libraries
- [CodegenCS/CodegenCS](https://github.com/CodegenCS/CodegenCS) - C# Library for Code Generation
================================================
FILE: docs/configuration-secrets.md
================================================
# Configuration & Secrets Management
## 📝 Articles
- [Configure ASP.NET Core MVC](https://www.programmingwithwolfgang.com/configure-asp-net-core-mvc/)
- [Configuration in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration)
- [Configuration providers in .NET](https://docs.microsoft.com/en-us/dotnet/core/extensions/configuration-providers)
- [Options pattern in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options)
- [ASP. NET Core - Customize Configuration](https://girishgodage.in/blog/customize-configuration)
- [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/)
- [Customizing ASP.NET Core Part 02: Configuration](https://asp.net-hacker.rocks/2018/09/24/customizing-aspnetcore-02-configuration.html)
- [How to use configuration with C# 9 top-level programs](https://daveabrock.com/2021/01/19/config-top-level-programs)
- [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/)
- [Debugging configuration values in ASP.NET Core](https://andrewlock.net/debugging-configuration-values-in-aspnetcore/)
- [Viewing app configuration using Oakton's Describe command and Spectre.Console](https://andrewlock.net/viewing-application-configuration-using-oaktons-describe-command/)
- [Viewing overwritten configuration values in ASP.NET Core](https://andrewlock.net/viewing-overriden-configuration-values-in-aspnetcore/)
- [Strongly Typed Configuration Settings in ASP.NET Core](https://weblog.west-wind.com/posts/2016/may/23/strongly-typed-configuration-settings-in-aspnet-core)
- [Easy Configuration Binding in ASP.NET Core - revisited](https://weblog.west-wind.com/posts/2017/Dec/12/Easy-Configuration-Binding-in-ASPNET-Core-revisited)
- [Keeping Configuration Settings in Memory](https://visualstudiomagazine.com/Blogs/Tool-Tracker/2019/03/Keeping-Configuration-Settings.aspx)
- [Using Memory Configuration Provider In .NET Applications](https://thecodeblogger.com/2021/04/18/using-memory-configuration-provider-in-net-applications/)
- [Testing and Configuration in .NET Core](https://joestead.codes/posts/testing-with-configuration-dotnet/)
- [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/)
- [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/)
- [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)
- [Looking inside ConfigurationManager in .NET 6](https://andrewlock.net/exploring-dotnet-6-part-1-looking-inside-configurationmanager-in-dotnet-6/)
- [Accessing Configuration in .NET Core Test Projects](https://weblog.west-wind.com/posts/2018/Feb/18/Accessing-Configuration-in-NET-Core-Test-Projects)
- [Read appsettings JSON in .NET Core Test Project](https://www.thecodebuzz.com/read-appsettings-json-in-net-core-test-project-xunit-mstest/)
- [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)
- [Provide default configuration to your .NET applications](https://www.twilio.com/blog/provide-default-configuration-to-dotnet-applications)
- [How to better configure C# and .NET applications for Twilio](https://www.twilio.com/blog/better-configuration-csharp-dotnet-for-twilio)
- [Auto Refresh Settings Changes in ASP.NET Core Runtime](https://edi.wang/post/2019/1/5/auto-refresh-settings-changes-in-aspnet-core-runtime)
- [Adding validation to strongly typed configuration objects in .NET 6](https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-in-dotnet-6/)
- [Adding validation to strongly typed configuration objects using FluentValidation](https://andrewlock.net/adding-validation-to-strongly-typed-configuration-objects-using-flentvalidation/)
- [Azure Key Vault configuration provider in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/key-vault-configuration)
- [Safe storage of app secrets in development in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets)
- [Using User Secrets Configuration In .NET](https://dotnetcoretutorials.com/2022/04/28/using-user-secrets-configuration-in-net/)
- [Secret Management in ASP.Net 5.0 Web APIs](https://technologyleads.io/blog/asp-net-5-web-api-secret-management)
- [Secrets Management in .NET Applications](https://auth0.com/blog/secret-management-in-dotnet-applications/)
- [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/)
- [Overriding configuration in ASP.NET Core integration tests](https://blog.markvincze.com/overriding-configuration-in-asp-net-core-integration-tests/)
- [ASP.NET Core - Lost in configuration](https://www.techwatching.dev/posts/lost-in-configuration)
- [Multiple Ways To Access Configurations In .NET Applications](https://thecodeblogger.com/2021/04/20/multiple-ways-to-access-configurations-in-net-applications/)
- [Options Pattern In .NET – IOptions, IOptionsSnapshot, IOptionsMonitor](https://thecodeblogger.com/2021/04/21/options-pattern-in-net-ioptions-ioptionssnapshot-ioptionsmonitor/)
- [IOptionsMonitor Demo – Reload Configurations In .NET Applications](https://thecodeblogger.com/2021/04/22/ioptionsmonitor-demo-reload-configurations-in-net-applications/)
- [Read data from appsettings.json in asp.net core](https://dotnetdocs.ir/Post/41/خواندن-دیتاها-از-appsettings.json-در-asp.net-core)
- [Difference between IOptions, IOptionsSnapshot and IOptionsMonitor](https://dotnetdocs.ir/Post/42/difference-between-ioptions-ioptionssnapshot-and-ioptionsmonitor)
- [ASP.NET Core Configuration – Basic Concepts](https://code-maze.com/aspnet-configuration-basic-concepts/)
- [ASP.NET Core Configuration – Options Pattern](https://code-maze.com/aspnet-configuration-options/)
- [ASP.NET Core Configuration – Options Validation](https://code-maze.com/aspnet-configuration-options-validation/)
- [Validating .NET Configuration](https://chris-ayers.com/2022/12/03/validating-dotnet-configuration)
- [Using .env in .NET](https://dusted.codes/dotenv-in-dotnet) ⭐
## Videos
- [Managing your .NET app configuration like a pro](https://www.youtube.com/watch?v=J0EVd5HbtUY)
- [AZURE APP CONFIGURATION | Central Store For Application Configuration | ASP.NET Core Series](https://www.youtube.com/watch?v=VEjYW14WKRM&t=3s)
- [FEATURE FLAGS in ASP NET Core | Azure App Configuration | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=qtp90IYMRh8&)
- [ENVIRONMENT SPECIFIC APP CONFIGURATION - 5 Ways To Manage For ASP NET on AZURE | ASP.NET Core Series](https://www.youtube.com/watch?v=wTSu2aCoR7Y&)
- [Feature flags with .NET and Azure App Configuration](https://www.youtube.com/watch?v=CcbUqdh8Xw8)
- [CONFIGURATION in ASP.NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=5GlgHV_12-k)
- [SECRET MANAGER In ASP NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=PkLLP2tcd28)
- [How to manage user secrets in dot net core](https://www.youtube.com/watch?v=8zcqGaPwDW0)
- [Secretless apps with .NET and Azure Key Vault](https://www.youtube.com/watch?v=f8Hf-YUrC10)
- [How to use Azure Key Vault + .NET Core easily | Secrets, Keys and Certificates - English](https://www.youtube.com/watch?v=RTq72C10x88)
## 📦 Libraries
- [NetEscapades.Configuration](https://github.com/andrewlock/NetEscapades.Configuration)
- [bolorundurowb/dotenv.net](https://github.com/bolorundurowb/dotenv.net) - A library to read .env files in a .NET Core environment
- [tonerdo/dotnet-env](https://github.com/tonerdo/dotnet-env) - A .NET library to load environment variables from .env files
## 🔖 Samples
- [Codebytes/dotnet-configuration-in-depth](https://github.com/Codebytes/dotnet-configuration-in-depth)
- [WolfgangOfner/MVC-Core-Configure](https://github.com/WolfgangOfner/MVC-Core-Configure)
- [hashicorp/hello-vault-dotnet](https://github.com/hashicorp/hello-vault-dotnet) - Runnable C# examples of how to integrate an application with HashiCorp Vault.
- [auth0-blog/dotnet-secrets-management](https://github.com/auth0-blog/dotnet-secrets-management)
================================================
FILE: docs/correlationId.md
================================================
# CorrelationID
## Articles
- [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/)
- [.NET Core Log Correlation - Request Id](https://www.frakkingsweet.com/net-core-log-correlation-request-id/)
- [.NET Core Log Correlation - Arbitrary Log Properties](https://www.frakkingsweet.com/net-core-log-correlation-arbitrary-log-properties/)
- [.NET Core Log Correlation - Easy Access to the Correlation Id](https://www.frakkingsweet.com/net-core-log-correlation-easy-access-to-headers/)
- [.NET Core Log Correlation - HttpClient and default headers](https://www.frakkingsweet.com/net-core-log-correlation-httpclient-and-default-headers/)
- [Passing correlation id across requests](https://ankitvijay.net/2020/11/24/passing-correlation-id-across-requests/)
- [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/)
- [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/)
- [ASP.NET 5 and Log Correlation by Request Id](https://www.tugberkugurlu.com/archive/asp-net-5-and-log-correlation-by-request-id)
- [How to propagate HTTP Headers (and Correlation IDs) using HttpClients in C#](https://www.code4it.dev/blog/propagate-httpheader-and-correlation-id)
- [Capturing and forwarding correlation IDs in ASP.NET Core, the easy way](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore-version-2/)
- [ASP.NET CORE CORRELATION IDS](https://www.stevejgordon.co.uk/asp-net-core-correlation-ids)
- [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/)
- [A consistent approach to track correlation IDs through microservices](https://theburningmonk.com/2015/05/a-consistent-approach-to-track-correlation-ids-through-microservices/)
- [Capturing and forwarding correlation IDs in ASP.NET Core](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore/)
- [Header propagation using ASP.NET Core](https://craftbakery.dev/http-header-propagation-aspnet-core/)
- [Request Header Propagation In .NET Core Web Applications](https://thecodeblogger.com/2021/05/25/request-header-propagation-in-net-core-web-applications/)
## Libraries
- [Microsoft.AspNetCore.HeaderPropagation](https://www.nuget.org/packages/Microsoft.AspNetCore.HeaderPropagation/)
================================================
FILE: docs/csharp/async/analyzers.md
================================================
# Analyzers
## Articles
- [Async code smells and how to track them down with analyzers - Part I](https://cezarypiatek.github.io/post/async-analyzers-p1/)
- [Async code smells and how to track them down with analyzers - Part II](https://cezarypiatek.github.io/post/async-analyzers-p2/)
- [Detecting Sync over Async Code in ASP.NET Core](https://codeopinion.com/detecting-sync-over-async-code-in-asp-net-core/)
## Libraries
- [dotnet/roslyn-analyzers](https://github.com/dotnet/roslyn-analyzers)
- [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.
- [semihokur/AsyncFixer](https://github.com/semihokur/AsyncFixer) - Advanced async/await Diagnostics and CodeFixes for C#
- [meziantou/Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) - A Roslyn analyzer to enforce some good practices in C#.
- [JosefPihrt/Roslynator](https://github.com/JosefPihrt/Roslynator) - A collection of 500+ analyzers, refactorings and fixes for C#, powered by Roslyn.
- [hvanbakel/Asyncify-CSharp](https://github.com/hvanbakel/Asyncify-CSharp) - Visual Studio analyzer to check for potential use of Task Asynchronous Pattern
================================================
FILE: docs/csharp/async/async-and-await.md
================================================
# Async and Await
## 📘 Resources
- [Links about async/await in C#](https://www.meziantou.net/links-async-await-csharp.htm)
- [Stephen Cleary Blog](https://blog.stephencleary.com/)
- [Stephen Toub Blog](https://devblogs.microsoft.com/pfxteam/author/toub/)
- [Task-Based Asynchronous Pattern - Whitepaper](http://www.microsoft.com/en-us/download/details.aspx?id=19957)
## 📝 Articles
- [Async Overview](https://docs.microsoft.com/en-us/dotnet/standard/async)
- [Asynchronous programming patterns](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/)
- [Asynchronous programming](https://docs.microsoft.com/en-us/dotnet/csharp/async)
- [Task-based asynchronous pattern - TAP](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap)
- [Event-based Asynchronous Pattern - EAP](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/event-based-asynchronous-pattern-eap)
- [Asynchronous Programming Model - APM](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/asynchronous-programming-model-apm)
- [Task asynchronous programming model](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/task-asynchronous-programming-model)
- [Async return types (C#)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/async-return-types)
- [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/)
- [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)
- [Exploring the async/await State Machine – Series Overview](https://vkontech.com/exploring-the-async-await-state-machine-series-overview/)
- [Exploring the async/await State Machine – The Awaitable Pattern](https://vkontech.com/exploring-the-async-await-state-machine-the-awaitable-pattern/)
- [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/)
- [Exploring the async/await State Machine – Conceptual Implementation](https://vkontech.com/exploring-the-async-await-state-machine-conceptual-implementation/)
- [Dissecting the async methods in C#](https://devblogs.microsoft.com/premier-developer/dissecting-the-async-methods-in-c/)
- [Extending the async methods in C#](https://devblogs.microsoft.com/premier-developer/extending-the-async-methods-in-c/)
- [The performance characteristics of the async methods in C#](https://devblogs.microsoft.com/premier-developer/the-performance-characteristics-of-async-methods/)
- [Understanding async/await State Machine in .NET](https://mykkon.work/async-state-machine/)
- [Fixing the Sync over Async antipattern](https://makolyte.com/fixing-the-sync-over-async-antipattern/)
- [Parallel Programming BY examples](http://diranieh.com/NETCSharp/ParallelWithExamples.htm)
- [Async/Await FAQ](https://devblogs.microsoft.com/pfxteam/asyncawait-faq/)
- [Are deadlocks still possible with await?](https://devblogs.microsoft.com/pfxteam/are-deadlocks-still-possible-with-await/)
- [The Ultimate Guide to Async and Await in C# and ASP.NET](https://exceptionnotfound.net/async-await-in-asp-net-csharp-ultimate-guide/)
- [Explaining Async and Await in ASP.NET](https://exceptionnotfound.net/using-async-and-await-in-asp-net-what-do-these-keywords-mean/)
- [A Practical Example Of Asynchronous Programming in C# and ASP.NET](https://exceptionnotfound.net/asynchronous-programming-asp-net-csharp-practical-guide-refactoring/)
- [The Ultimate Guide to Async and Await in C# and ASP.NET](https://exceptionnotfound.net/async-await-in-asp-net-csharp-ultimate-guide/)
- [ConfigureAwait FAQ - Stephen Toub](https://devblogs.microsoft.com/dotnet/configureawait-faq/)
- [Async/Await Calls Gotcha with the CSharp ? Null Propagator](https://weblog.west-wind.com/posts/2021/May/15/Async-Await-with-the-Null-Propagator)
- [Asynchronous C#: Making a simple Cup of Tea](https://dev.to/paulafahmy/asynchronous-c-making-a-simple-cup-of-tea-13i)
- [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)
- [Asynchronous Programming with Async and Await in ASP.NET Core](https://code-maze.com/asynchronous-programming-with-async-and-await-in-asp-net-core/)
- [Introducing AsyncUtilities](http://blog.i3arnon.com/2018/02/05/async-utilities/)
- [Detecting Sync over Async Code in ASP.NET Core](https://codeopinion.com/detecting-sync-over-async-code-in-asp-net-core/)
- [Removing async void](https://johnthiriet.com/removing-async-void/)
- [Avoid async void methods](https://haacked.com/archive/2014/11/11/async-void-methods/)
- [Awaiting an async void method in .NET](https://www.meziantou.net/awaiting-an-async-void-method-in-dotnet.htm)
- [Eliding Async and Await](https://blog.stephencleary.com/2016/12/eliding-async-await.html)
- [A Tour of Task, Part 6: Results](https://blog.stephencleary.com/2014/12/a-tour-of-task-part-6-results.html)
- [Don't Block on Async Code](https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html)
- [Task.Run Etiquette and Proper Usage](https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html)
- [Task.Run Etiquette Examples: Don't Use Task.Run for the Wrong Thing](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-using.html)
- [Task.Run Etiquette Examples: Don't Use Task.Run in the Implementation](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-dont-use.html)
- [Should I expose synchronous wrappers for asynchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-synchronous-wrappers-for-asynchronous-methods/)
- [Should I expose asynchronous wrappers for synchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-asynchronous-wrappers-for-synchronous-methods/)
- [Why you shouldn’t create asynchronous wrappers with Task.Run()](https://www.ben-morris.com/why-you-shouldnt-create-asynchronous-wrappers-with-task-run/)
- [Using Task.Run in Conjunction with Async/Await](https://www.pluralsight.com/guides/using-task-run-async-await)
- [Advanced Tips for Using Task.Run With Async/Await](https://www.pluralsight.com/guides/advanced-tips-using-task-run-async-wait)
- [Scalable and Performant ASP.NET Core Web APIs: Asynchronous Code](https://www.carlrippon.com/scalable-and-performant-asp-net-core-web-apis-asynchronous-operations/)
- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)
- [There Is No Thread](https://blog.stephencleary.com/2013/11/there-is-no-thread.html)
- [Top 7 Common Async Mistakes](https://hamidmosalla.com/2018/04/21/top-7-common-async-mistakes/)
- [What Is SynchronizationContext](https://hamidmosalla.com/2018/06/24/what-is-synchronizationcontext/)
- [ASP.NET Core SynchronizationContext](https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html)
- [Using Task.WhenAny And Task.WhenAll](https://hamidmosalla.com/2018/04/27/using-task-whenany-and-task-whenall/)
- [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)
- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/Article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)
- [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/)
- [Keeping up with .NET: learning about new features and APIs](https://andrewlock.net/keeping-up-with-dotnet-learning-about-new-features-and-apis/)
- [C# async await explained](https://blog.ndepend.com/c-async-await-explained/)
- [ASP.NET Core - Why async await is useful](https://steven-giesel.com/blogPost/b925c8c1-03ba-4eb6-9b81-f09df56e0158)
- [No, No, No - Tasks are not threads and they are not for performance!](https://steven-giesel.com/blogPost/d095383f-7ea9-4419-96b8-889c6981cce0)
- [Asynchronous Programming Patterns in .NET](https://code-maze.com/asynchronous-programming-patterns-dotnet/)
- [How Async/Await Really Works in C#](https://devblogs.microsoft.com/dotnet/how-async-await-really-works/)
- [C# async await Explained](https://blog.ndepend.com/c-async-await-explained/) ⭐
## 📹 Videos
- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q&ab_channel=FrankLiu)
- [Best Practices for Using async and await, by Damir Arh](https://www.youtube.com/watch?v=4JHwBX_qQE0)
- [Making async code run faster in C#](https://www.youtube.com/watch?v=gW19LaAYczI)
- [Why is Async Code Hard to Debug?](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Why-is-Async-Code-Hard-to-Debug)
- [Async Debugging Part 2](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Async-Debugging-Part-2)
- [Async vs Thread | C# Interview Questions with Answers | Csharp Interview Questions](https://www.youtube.com/watch?v=G3tz9rxts8E)
- [What are Async and Await ( .NET 4.5 Interview question with answers)?](https://www.youtube.com/watch?v=V2sMXJnDEjM)
- [C# Async/Await/Task Explained (Deep Dive)](https://www.youtube.com/watch?v=il9gl8MH17s)
- [Asynchronous Programming in C# Explained (Task.Run, Task.WaitAll, Async and Await)](https://www.youtube.com/watch?v=CrUrvVatAxo)
- [Better C# - Parallelization (with Dataflow)](https://www.youtube.com/watch?v=zdD7o8Z6MMY)
- [Best Practices - When to use async void | The Xamarin Show](https://www.youtube.com/watch?v=xxifTwQaA0s)
- [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)
- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q&t=923s)
- [What's the point of async/await in an ASP.NET Core application?](https://www.youtube.com/watch?v=COeg6UoPe_Q)
- [Episode 010 - Async all the things - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=CGi1bQgaqwg)
- [C# async and await from zero to hero](https://www.youtube.com/watch?v=88e9uMlLCf8)
- [Stephen Cleary — Asynchronous streams](https://www.youtube.com/watch?v=-Tq4wLyen7Q)
## Libraries
- [Nito.AsyncEx](https://github.com/StephenCleary/AsyncEx) - A helper library for the Task-Based Asynchronous Pattern (TAP).
- [AsyncEnumerator](https://github.com/Dasync/AsyncEnumerable) - Introduces `IAsyncEnumerable`, `IAsyncEnumerator`, `ForEachAsync()`, and `ParallelForEachAsync()` and other useful stuff to use with async-await
- [AsyncIO.DotNet](https://github.com/firenero/AsyncIO) - Easy-to-use library for common async IO file system operations.
- [NeoSmart.AsyncLock](https://github.com/neosmart/AsyncLock) - A C# lock replacement for async/await, supporting recursion/re-entrance and asynchronous waits.
- [Open-NET-Libraries/Open.ChannelExtensions](https://github.com/Open-NET-Libraries/Open.ChannelExtensions) - A set of extensions for optimizing/simplifying System.Threading.Channels usage.
- [timonkrebs/MemoizR](https://github.com/timonkrebs/MemoizR) - Declarative Structured Concurrency for C#
================================================
FILE: docs/csharp/async/async-best-practice.md
================================================
# Async Best Practice
## 📘 Resources
- [davidfowl/AspNetCoreDiagnosticScenarios](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios) - This repository has examples of broken patterns in ASP.NET Core applications
## 📕 Articles
- [Async Guidance](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md)
- [Async and Await: Here be dragons](https://gist.github.com/ghuntley/e5b5642ecc4428255e61185bb79856e4)
- [Top 7 Common Async Mistakes](https://hamidmosalla.com/2018/04/21/top-7-common-async-mistakes/)
- [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)
- [Common C# async and await misconceptions](https://saebamini.com/common-async-and-await-misconceptions/)
- [Cancel Asynchronous Operation In Csharp](https://b2n.ir/n06328) - John Thiriet
- [C# Async Tips and Tricks](https://cpratt.co/async-tips-tricks/) - Chris Pratt
- [Eliding Async and Await](https://blog.stephencleary.com/2016/12/eliding-async-await.html) - Stephen Cleary
- [Async code smells and how to track them down with analyzers - Part I](https://cezarypiatek.github.io/post/async-analyzers-p1/)
- [Async code smells and how to track them down with analyzers - Part II](https://cezarypiatek.github.io/post/async-analyzers-p2/)
- [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/)
- [Asynchronous C#: Cherry on the top 🍒 (Tips and Tricks)](https://dev.to/paulafahmy/asynchronous-c-cherry-on-the-top-tips-and-tricks-4eod)
- []()
## 📺 Videos
- [Is awaiting a Task instead of returning it directly in C# actually slower?](https://www.youtube.com/watch?v=Q2zDatDVnO0)
- [Best Practices for Using async and await, by Damir Arh](https://www.youtube.com/watch?v=4JHwBX_qQE0)
- [Brandon Minnick - Async/Await Best Practices](https://docs.microsoft.com/en-us/shows/on-net/brandon-minnick-asyncawait-best-practices)
- [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/)
- [Best Practices - When to use async void | The Xamarin Show](https://www.youtube.com/watch?v=xxifTwQaA0s)
- [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)
================================================
FILE: docs/csharp/async/async-collections/async-collections.md
================================================
# Async Collections
================================================
FILE: docs/csharp/async/async-collections/async-stream-and-iEnumerableAsync.md
================================================
# Async Stream And IEnumerableAsync
## 📝 Articles
- [Use streaming in ASP.NET Core SignalR](https://docs.microsoft.com/en-us/aspnet/core/signalr/streaming?view=aspnetcore-5.0)
- [Async Streams](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/async-streams)
- [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)
- [Async Streams with IAsyncEnumerable in .NET Core 3](https://anthonychu.ca/post/async-streams-dotnet-core-3-iasyncenumerable/)
- [IAsyncEnumerable Is Your Friend, Even In .NET Core 2.x](https://btburnett.com/csharp/2019/12/01/iasyncenumerable-is-your-friend.html)
- [Asynchronous streams in C# 8.0](https://dev.to/mbernard/asynchronous-streams-in-c-8-0-33la)
- [gRPC and C# 8 Async stream](https://laurentkempe.com/2019/09/18/gRPC-and-csharp-8-Async-stream/)
- [gRPC and C# 8 Async stream cancellation](https://laurentkempe.com/2019/09/25/gRPC-and-csharp-8-Async-stream-cancellation/)
- [IAsyncEnumerable with yield in C#](https://code-maze.com/csharp-async-enumerable-yield/)
- [ASP.NET Core 6 and IAsyncEnumerable - Async Streamed JSON vs NDJSON](https://www.tpeczek.com/2021/07/aspnet-core-6-and-iasyncenumerable.html)
- [.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)
- [Async Enumerable in C# (Part 1)](https://markheath.net/post/async-enumerable-1)
- [Consuming JSON Objects Stream (NDJSON) With HttpClient](https://www.tpeczek.com/2020/10/consuming-json-objects-stream-ndjson.html)
## 📺 Videos
- [C# Async Yield Return: IAsyncEnumerable will change your life!!!](https://www.youtube.com/watch?v=w3hc7nxXxf4)
- [Is Parallel.For/ForEach in C# actually worth it? (and how to modernize it)](https://www.youtube.com/watch?v=lHuyl_WTpME)
## Libraries
- [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).
================================================
FILE: docs/csharp/async/async-collections/blocking-collection.md
================================================
# BlockingCollection
## 📝 Articles
- [BlockingCollection Overview](https://docs.microsoft.com/en-us/dotnet/standard/collections/thread-safe/blockingcollection-overview)
- [Event-driven .NET: Concurrent Producer/Consumer using BlockingCollection](https://makolyte.com/event-driven-dotnet-concurrent-producer-consumer-using-blockingcollection/)
- [An introduction to BlockingCollection](https://weblogs.asp.net/morteza/an-introduction-to-blockingcollection)
================================================
FILE: docs/csharp/async/async-collections/iterators.md
================================================
# Iterators
## 📝 Articles
- [Iterators](https://bettersolutions.com/csharp/collections/iterators.htm)
- [Iterators (C#)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/iterators)
- [yield (C# Reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield)
- [Iterators, iterator blocks and data pipelines](https://csharpindepth.com/articles/StreamingAndIterators)
- [IEnumerator Interface](https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerator?view=net-5.0)
- [IEnumerableT Interface](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1?view=net-5.0)
## 📺 Videos
- [C# Yield Return: What is it and how does it work?](https://www.youtube.com/watch?v=HRXkeaeImGs)
================================================
FILE: docs/csharp/async/async-collections/lazy-initialization.md
================================================
# Lazy Initialization
## 📝 Articles
- [Lazy Initialization](https://docs.microsoft.com/en-us/dotnet/framework/performance/lazy-initialization)
================================================
FILE: docs/csharp/async/asynchronous-messaging.md
================================================
# Asynchronous Messaging
## 📝 Articles
- [Asynchronous Messaging, Part 1: Basic Distributed Architecture](https://blog.stephencleary.com/2021/01/asynchronous-messaging-1-basic-distributed-architecture.html)
- [Asynchronous Messaging, Part 2: Durable Queues](https://blog.stephencleary.com/2021/01/asynchronous-messaging-2-durable-queues.html)
- [Asynchronous Messaging, Part 3: Backend Service](https://blog.stephencleary.com/2021/01/asynchronous-messaging-3-backend-processor.html)
================================================
FILE: docs/csharp/async/asynclocal.md
================================================
# AsyncLocal
## 📝 Articles
- [AsyncLocalT in .NET 4.6](https://www.tabsoverspaces.com/233526-asynclocal-t-in-net-46)
- [Implicit Async Context ("AsyncLocal")](https://blog.stephencleary.com/2013/04/implicit-async-context-asynclocal.html)
- [Multithreaded shared variables and AsyncLocal](https://programmer.help/blogs/multithreaded-shared-variables-and-asynclocal.html)
- [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)
- [Storing Context Data in C# using AsyncLocal](https://vainolo.com/2022/02/23/storing-context-data-in-c-using-asynclocal/)
================================================
FILE: docs/csharp/async/awaiter.md
================================================
# Awaiter
## 📝 Articles
- [A Tour of Task, Part 6: Results](https://blog.stephencleary.com/2014/12/a-tour-of-task-part-6-results.html)
- [Task.Wait() Vs Task.GetAwaiter().GetResult()](https://jaliyaudagedara.blogspot.com/2019/06/taskwait-vs-taskgetawaitergetresult.html)
- [Avoid GetAwaiter().GetResult() at all cost](https://gsferreira.com/archive/2020/08/avoid-getawaiter-getresult-at-all-cost/)
- [Understanding C# async / await (2) The Awaitable-Awaiter Pattern](https://weblogs.asp.net/dixin/understanding-c-sharp-async-await-2-awaitable-awaiter-pattern)
================================================
FILE: docs/csharp/async/cancellation.md
================================================
# Cancellation
## 📝 Articles
- [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)
- [Cancel asynchronous operation in csharp](https://johnthiriet.com/cancel-asynchronous-operation-in-csharp/)
- [Aborting Thread Vs Cancelling Task](https://www.c-sharpcorner.com/article/aborting-thread-vs-cancelling-task/)
- [Task cancellation](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-cancellation)
- [Cancellation in Managed Threads](https://docs.microsoft.com/en-us/dotnet/standard/threading/cancellation-in-managed-threads)
- [Destroying threads](https://docs.microsoft.com/en-us/dotnet/standard/threading/destroying-threads)
- [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)
- [Using CancellationTokens in ASP.NET Core MVC controllers](https://andrewlock.net/using-cancellationtokens-in-asp-net-core-mvc-controllers/)
- [Canceling HTTP Requests in ASP.NET Core with CancellationToken](https://code-maze.com/canceling-http-requests-in-asp-net-core-with-cancellationtoken/)
- [Recommended patterns for CancellationToken](https://devblogs.microsoft.com/premier-developer/recommended-patterns-for-cancellationtoken/)
- [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/)
- [Cancellation, Part 1: Overview](https://blog.stephencleary.com/2022/02/cancellation-1-overview.html)
- [Cancellation, Part 2: Requesting Cancellation](https://blog.stephencleary.com/2022/03/cancellation-2-requesting-cancellation.html)
- [Cancellation, Part 3: Detecting Cancellation](https://blog.stephencleary.com/2022/03/cancellation-3-detecting-cancellation.html)
- [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)
## 📺 Videos
- [Stop wasting server resources by properly using CancellationToken in .NET](https://www.youtube.com/watch?v=b5dyPJ3zyRg)
- [How to Cancel Tasks in C# - Using CancellationTokenSource and CancellationToken](https://www.youtube.com/watch?v=TKc5A3exKBQ&list=PLG8rj6Rr0BU9NXQX3YXtQhVXBD2co2HUQ&index=14)
## 🔖 Samples
- [johnthiriet/AsyncTips](https://github.com/johnthiriet/AsyncTips)
================================================
FILE: docs/csharp/async/channels.md
================================================
# Channels
## 📝 Articles
- [An Introduction to System.Threading.Channels - Stephen Toub](https://devblogs.microsoft.com/dotnet/an-introduction-to-system-threading-channels/)
- [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/)
- [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/)
- [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/)
- [AN INTRODUCTION TO SYSTEM.THREADING.CHANNELS](https://www.stevejgordon.co.uk/an-introduction-to-system-threading-channels)
- [Producer/consumer pipelines with System.Threading.Channels](https://blog.maartenballiauw.be/post/2020/08/26/producer-consumer-pipelines-with-system-threading-channels.html)
- [C# Channels - Publish / Subscribe Workflows](https://deniskyashif.com/2019/12/08/csharp-channels-part-1/)
- [C# Channels - Timeout and Cancellation](https://deniskyashif.com/2019/12/11/csharp-channels-part-2/)
- [C# Channels - Async Data Pipelines](https://deniskyashif.com/2020/01/07/csharp-channels-part-3/)
- [How to implement Producer/Consumer with System.Threading.Channels](https://www.davideguida.com/how-to-implement-producer-consumer-with-system-threading-channels/)
- [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/)
- [What's the Difference between Channel and ConcurrentQueue in C#?](https://jeremybytes.blogspot.com/2021/02/whats-difference-between-channel-and.html)
- [Producer/consumer pipelines with System.Threading.Channels](https://blog.maartenballiauw.be/post/2020/08/26/producer-consumer-pipelines-with-system-threading-channels.html)
- [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/)
- [C# Job Queue Implementations in Depth – Part 1](https://michaelscodingspot.com/c-job-queues/)
- [C# Job Queues (part 2) with Reactive Extensions and Channels](https://michaelscodingspot.com/c-job-queues-with-reactive-extensions-and-channels/)
- [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/)
- [Building pipelines with System.Threading.Channels](https://nikiforovall.github.io/dotnet/async/2024/04/21/channels-composition.html)
## 📹 Videos
- [C# Channels Explained (System.Threading.Channels)](https://www.youtube.com/watch?v=E0Ld7ZgE4oY)
- [Working with Channels in .NET](https://channel9.msdn.com/Shows/On-NET/Working-with-Channels-in-NET)
- [Better Parallel Code with C# Channels With Jeremy Clark | Hampton Roads .NET Users Group](https://www.youtube.com/watch?v=VtP31OUJqbY)
## Libraries
- [Open-NET-Libraries/Open.ChannelExtensions](https://github.com/Open-NET-Libraries/Open.ChannelExtensions) - A set of extensions for optimizing/simplifying System.Threading.Channels usage.
## 🔖 Samples
- [deniskyashif/trydotnet-channels](https://github.com/deniskyashif/trydotnet-channels) - Interactive examples of common C# concurrency patterns using channels.
- [NikiforovAll/channels-composition-and-otel](https://github.com/NikiforovAll/channels-composition-and-otel)
================================================
FILE: docs/csharp/async/concurrency -vs-parallelism.md
================================================
# Concurrency Vs Parallelism
## 📝 Articles
- [Concurrency Vs Parallelism](https://hamidmosalla.com/2018/03/16/concurrency-vs-parallelism/)
- [Concurrency, part 1: Parallelism, Asynchrony, and Multi-threading Explained](https://blog.slaks.net/2014-12-23/parallelism-async-threading-explained/)
- [Serial vs Parallel task execution](https://www.davidguida.net/serial-vs-parallel-task-execution/)
- [Difference between Concurrency and Parallelism](https://www.geeksforgeeks.org/difference-between-concurrency-and-parallelism/)
- [Concurrency vs. Parallelism](http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html)
- [Concurrency vs. Parallelism — A brief view](https://medium.com/@itIsMadhavan/concurrency-vs-parallelism-a-brief-review-b337c8dac350) ⭐
- [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)
- [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)
- [Inside the Concurrent Collections](https://www.red-gate.com/simple-talk/blogs/inside-the-concurrent-collections/)
- [Inside the Concurrent Collections: ConcurrentDictionary](https://www.red-gate.com/simple-talk/blogs/inside-the-concurrent-collections-concurrentdictionary/)
- [Difference Between Asynchronous Programming and Multithreading in C#](https://code-maze.com/csharp-async-vs-multithreading/)
- [What is the difference between concurrency, parallelism and asynchronous methods?](https://stackoverflow.com/a/61225458/581476) ⭐
- [Concurrency vs Parallelism](https://www.baeldung.com/cs/concurrency-vs-parallelism)
- [Concurrency vs Parallelism](https://freecontent.manning.com/concurrency-vs-parallelism/) ⭐
- [Asynchronous programming with async and await](https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/) ⭐
## Videos
- [Concurrency vs Parallelism](https://www.youtube.com/watch?v=FChZP09Ba4E)
- [Concurrency vs Parallelism | C# Interview Questions | Csharp Interview Questions and Answers](https://www.youtube.com/watch?v=8Je1W82vwYM)
- [Asynchronous vs Multithreading and Multiprocessing Programming (The Main Difference)](https://www.youtube.com/watch?v=0vFgKr5bjWI)
================================================
FILE: docs/csharp/async/configure-await.md
================================================
# Configure Await
## 📝 Articles
- [Using ConfigureAwait to improve your application](https://johnthiriet.com/configure-await/)
- [ConfigureAwait FAQ - Stephen Toub](https://devblogs.microsoft.com/dotnet/configureawait-faq/)
- [Which do I use, ConfigureAwait True or False?](https://brianlagunas.com/which-do-i-use-configureawait-true-or-false/)
- [ASP.NET Core SynchronizationContext](https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html)
- [Async, Await, and ConfigureAwait – Oh My!](https://corebts.com/blog/async-await-configureawait/)
- [ConfigureAwait in .NET 8](https://blog.stephencleary.com/2023/11/configureawait-in-net-8.html)
## 📺 Videos
- [Which do I use, ConfigureAwait True or False?](https://www.youtube.com/watch?v=F9_8MJbsnzg)
- [Understanding ConfigureAwait](https://www.youtube.com/watch?v=avhLfcgIwbg)
================================================
FILE: docs/csharp/async/continuations.md
================================================
# Continuations
## 📝 Articles
- [A Tour of Task, Part 7: Continuations](https://blog.stephencleary.com/2015/01/a-tour-of-task-part-7-continuations.html)
- [Chaining tasks using continuation tasks](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/chaining-tasks-by-using-continuation-tasks)
================================================
FILE: docs/csharp/async/cpu-bound.md
================================================
# Cpu-Bound
## 📝 Articles
- [Compute-bound tasks](https://b2n.ir/481224)
- [Task.Run Etiquette and Proper Usage](https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html)
- [Should I expose asynchronous wrappers for synchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-asynchronous-wrappers-for-synchronous-methods/)
- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://b2n.ir/489838)
- [Task.Run vs Task.Factory.StartNew](https://devblogs.microsoft.com/pfxteam/task-run-vs-task-factory-startnew/)
- [Implementing the Task-based Asynchronous Pattern](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern)
- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)
================================================
FILE: docs/csharp/async/exception-handling.md
================================================
# Exception Handling
## 📝 Articles
- [Exception Handling In Asynchronous Code](https://hamidmosalla.com/2018/06/19/exception-handling-in-asynchronous-code/)
- [Exception Handling in C# Asynchronous Programming](https://www.c-sharpcorner.com/UploadFile/dacca2/asynchronous-programming-in-C-Sharp-5-0-part-4-exception-handlin/)
- [Exception handling (Task Parallel Library)](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/exception-handling-task-parallel-library)
- [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)
- [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)
- [Finding concurrency bugs in a .NET application using Coyote](https://www.meziantou.net/finding-concurrency-bugs-in-a-dotnet-application-using-coyote.htm)
- [Why exceptions in async methods are “dangerous” in C#](https://medium.com/@alexandre.malavasi/why-exceptions-in-async-methods-are-dangerous-in-c-fda7d382b0ff)
- [Handling Async Await Exceptions](https://codeopinion.com/handling-async-await-exceptions/)
- [A Tour of Task, Part 6: Results](https://blog.stephencleary.com/2014/12/a-tour-of-task-part-6-results.html)
- [.NET 7's ProblemDetailsService](https://seekatar.github.io/2023/01/06/problem-details.html)
- [Handling Web API Exceptions with ProblemDetails middleware](https://andrewlock.net/handling-web-api-exceptions-with-problemdetails-middleware/)
================================================
FILE: docs/csharp/async/index.md
================================================
- [.Net Async](index.md)
- [Async And Await](async-and-await.md)
- [Async Best Practice](async-best-practice.md)
- [Async Collections](async-collections.md)
- [Async Stream And IEnumerableAsync](async-collections/async-stream-and-ienumerableasync.md)
- [Blocking Collection](async-collections/blocking-collection.md)
- [Iterators](async-collections/iterators.md)
- [Lazy Initialization](async-collections/lazy-initialization.md)
- [Asynchronous Messaging](asynchronous-messaging.md)
- [Async Local](asynclocal.md)
- [Awaiter](awaiter.md)
- [Cancellation](cancellation.md)
- [Channels](channels.md)
- [Concurrency Vs Parallelism](concurrency-vs-parallelism)
- [Configure Await](configure-await.md)
- [Continuations.md](continuations.md)
- [Cpu Bound](cpu-bound.md)
- [Exception Handling](exception-handling)
- [Io Bound](io-bound.md)
- [Synchronization Context](synchronization-context.md)
- [State Machine](state-machine.md)
- [TaskCompletionSource](task-completion-source.md)
- [Task](task.md)
- [ThreadPool](thread-pool.md)
- [Thread Safty](thread-safty.md)
- [Thread](thread.md)
- [ValueTask](valuetask.md)
- [Recources](resources.md)
================================================
FILE: docs/csharp/async/io-bound.md
================================================
# Io-Bound
## 📝 Articles
- [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)
- [I/O-bound tasks](http://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern#io-bound-tasks)
- [Why you should not create asynchronous wrappers with Task.Run()](https://www.ben-morris.com/why-you-shouldnt-create-asynchronous-wrappers-with-task-run/)
- [Asynchronous file access (C#)](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/using-async-for-file-access)
- [C# : TASK PARALLEL LIBRARY (TPL) WITH ASYNC AWAIT AND TASKCOMPLETIONSOURCE FOR ASYNC I/O OPERATIONS](https://b2n.ir/686253)
- [There Is No Thread](https://blog.stephencleary.com/2013/11/there-is-no-thread.html)
- [Wrapping Other Asynchronous Patterns in Awaitable Tasks](http://www.damirscorner.com/blog/posts/20130722-WrappingOtherAsynchronousPatternsInAwaitableTasks.html)
- [Task.Factory.StartNew vs Task.Factory.FromAsync](https://stackoverflow.com/questions/17432306/task-factory-startnew-vs-task-factory-fromasync)
- [Task.Run vs Task.Factory.StartNew](https://devblogs.microsoft.com/pfxteam/task-run-vs-task-factory-startnew/)
- [Implementing the Task-based Asynchronous Pattern](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern)
- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)
================================================
FILE: docs/csharp/async/parallel-for-foreach.md
================================================
# Parallel For & Foreach
## Articles
- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)
- [Parallel Foreach async in C#](https://scatteredcode.net/parallel-foreach-async-in-c/)
- [Parallel.ForEachAsync in .NET 6](https://www.hanselman.com/blog/parallelforeachasync-in-net-6)
- [Parallel For in C#](https://dotnettutorials.net/lesson/parallel-for-method-csharp/)
- [Parallel Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel)
- [Parallel.For Method](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.for)
- [Parallel.ForEach Method](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.foreach)
- [Parallel.ForEachAsync Method](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.parallel.foreachasync)
## Videos
- [Is Parallel.For/ForEach in C# actually worth it? (and how to modernize it)](https://www.youtube.com/watch?v=lHuyl_WTpME)
- [4 new useful APIs in .NET 6](https://www.youtube.com/watch?v=3YCdSvDXGJA)
================================================
FILE: docs/csharp/async/recources.md
================================================
# Resources
- [Stephen Toub Blog](https://devblogs.microsoft.com/pfxteam/author/toub/)
- [Links about async/await in C#](https://www.meziantou.net/links-async-await-csharp.htm)
- [Marc Gravell Blog](https://blog.marcgravell.com/)
## Books
- [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)
- [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)
- [Pro Asynchronous Programming with .NET 1st ed. Edition](https://www.amazon.com/Asynchronous-Programming-NET-Richard-Blewett-ebook/dp/B00I01FWGS/ref=sr_1_10)
- [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)
- [C# in Depth: Fourth Edition 4th Edition](https://www.amazon.com/C-Depth-Jon-Skeet/dp/1617294535/ref=sr_1_13)
================================================
FILE: docs/csharp/async/semaphoreslim.md
================================================
# SemaphoreSlim
## Articles
- [Using SemaphoreSlim to Make Parallel HTTP Requests in .NET Core](https://mustafatulun.com/using-semaphoreslim-to-make-parallel-http-requests-in-net-core/)
- [SemaphoreSlim Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphoreslim)
- [C# – Use SemaphoreSlim for throttling threads](https://makolyte.com/csharp-use-semaphoreslim-for-throttling-threads/)
- [C# – How to make concurrent requests with HttpClient](https://makolyte.com/csharp-how-to-make-concurrent-requests-with-httpclient/)
- [Thread synchronisation with SemaphoreSlim and async delegate calls](https://blog.georgekosmidis.net/thread-synchronisation-with-semaphoreslim-and-async-await.html)
- [Using SemaphoreSlim and HttpClient](https://talkdotnet.wordpress.com/2019/04/16/using-semaphoreslim-and-httpclient/)
================================================
FILE: docs/csharp/async/state-machine.md
================================================
# State Machine
## 📕 Articles
- [Exploring the async/await State Machine – The Awaitable Pattern](https://vkontech.com/exploring-the-async-await-state-machine-the-awaitable-pattern/)
- [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/)
- [Exploring the async/await State Machine – Conceptual Implementation](https://vkontech.com/exploring-the-async-await-state-machine-conceptual-implementation/)
- [Exploring the async/await State Machine – Concrete Implementation](https://vkontech.com/exploring-the-async-await-state-machine-concrete-implementation/)
- [Exploring the async/await State Machine – Series Overview](https://vkontech.com/exploring-the-async-await-state-machine-series-overview/)
- [Exploring the async/await State Machine – Synchronization Context](https://vkontech.com/exploring-the-async-await-state-machine-synchronization-context/)
- [Dissecting the async methods in C#](https://devblogs.microsoft.com/premier-developer/dissecting-the-async-methods-in-c/)
- [Understanding async/await State Machine in .NET](https://mykkon.work/async-state-machine/)
================================================
FILE: docs/csharp/async/sync-over-async.md
================================================
# Sync Over Async
## Articles
- [Should I expose synchronous wrappers for asynchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-synchronous-wrappers-for-asynchronous-methods/)
- [Should I expose asynchronous wrappers for synchronous methods?](https://devblogs.microsoft.com/pfxteam/should-i-expose-asynchronous-wrappers-for-synchronous-methods/)
- [Why you shouldn’t create asynchronous wrappers with Task.Run()](https://www.ben-morris.com/why-you-shouldnt-create-asynchronous-wrappers-with-task-run/)
- [Task.Run Etiquette and Proper Usage](https://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html)
- [Task.Run Etiquette Examples: Don't Use Task.Run for the Wrong Thing](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-using.html)
- [Task.Run Etiquette Examples: Don't Use Task.Run in the Implementation](https://blog.stephencleary.com/2013/11/taskrun-etiquette-examples-dont-use.html)
## Videos
- [Fixing sync over async issues in .NET / C# with Visual Studio 2022](https://www.youtube.com/watch?v=Yvt83lPRCys)
================================================
FILE: docs/csharp/async/synchronization-context.md
================================================
# Synchronization Context
## 📝 Articles
- [Await, SynchronizationContext, and Console Apps](https://devblogs.microsoft.com/pfxteam/await-synchronizationcontext-and-console-apps/)
- [ASP.NET Core SynchronizationContext](https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html)
- [What Is SynchronizationContext](https://hamidmosalla.com/2018/06/24/what-is-synchronizationcontext/)
- [Exploring the async/await State Machine – Synchronization Context](https://vkontech.com/exploring-the-async-await-state-machine-synchronization-context/)
- [ExecutionContext vs SynchronizationContext](https://devblogs.microsoft.com/pfxteam/executioncontext-vs-synchronizationcontext/)
================================================
FILE: docs/csharp/async/task-completion-source.md
================================================
# TaskCompletionSource
## 📝 Articles
- [Should I expose asynchronous wrappers for synchronous methods?](https://b2n.ir/959223)
- [Using TaskCompletionSource to change the semantics of async calls](http://vannevel.net/posts/using-taskcompletionsource-to-change-the-semantics-of-async-calls/)
- [TaskCompletionSource in real life (part 1 of 2)](https://www.fmork.net/software/writing/2012/TaskCompletionSource-in-real-life-(part-1-of-2).htm)
- [TaskCompletionSource in real life (part 2 of 2)](https://www.fmork.net/software/writing/2012/TaskCompletionSource-in-real-life-(part-2-of-2).htm)
- [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/)
- [Task.Run Vs TaskCompletionSource Vs Task.Factory.FromAsync](https://hamidmosalla.com/2018/05/27/task-run-vs-taskcompletionsource-vs-task-factory-fromasync/)
- [The Nature of TaskCompletionSource](https://devblogs.microsoft.com/pfxteam/the-nature-of-taskcompletionsourcetresult/) - Stephen Toub
- [When should TaskCompletionSourceT be used?](https://stackoverflow.com/questions/15316613/when-should-taskcompletionsourcet-be-used)
- [Instance of Task class (Task.Factory.StartNew or TaskCompletionSource)](https://stackoverflow.com/questions/5674895/instance-of-task-class-task-factory-startnew-or-taskcompletionsource)
- [Wrapping Other Asynchronous Patterns in Awaitable Tasks](https://b2n.ir/871581)
- [The danger of TaskCompletionSource class](https://devblogs.microsoft.com/premier-developer/the-danger-of-taskcompletionsourcet-class/)
- [Mechanisms for Creating Tasks](https://devblogs.microsoft.com/pfxteam/mechanisms-for-creating-tasks/)
- [Wrap Event based functions into awaitable Tasks - Meet TaskCompletionSource](https://steven-giesel.com/blogPost/9ad214ff-1f32-4ed0-a5ac-1b996e1e9a68)
## Videos
- [When and how you can use TaskCompletionSource in Async?](https://www.youtube.com/watch?v=OOPOHTEhiUg)
================================================
FILE: docs/csharp/async/thread-pool.md
================================================
# ThreadPool
## 📕 Articles
- [Thread Pooling Step By Step](https://www.learncsharptutorial.com/threadpooling-csharp-example.php)
- [Asynchronous Programming with Async and Await in ASP.NET Core](https://code-maze.com/asynchronous-programming-with-async-and-await-in-asp-net-core/)
- [The Thread Pool and Asynchronous Methods](https://jonskeet.uk/csharp/threads/threadpool.html)
- [The managed thread pool](https://docs.microsoft.com/en-us/dotnet/standard/threading/the-managed-thread-pool)
- [Thread Pooling in C#](https://dotnettutorials.net/lesson/thread-pooling/)
- [C# Threadpool](https://codewithshadman.com/thread-pool-in-csharp/)
## 📺 Videos
- [Diagnosing thread pool exhaustion issues in .NET Core apps](https://www.youtube.com/watch?v=isK8Cel3HP0)
- [Why Asynchronous Web API Endpoints | RESTful | async await](https://www.youtube.com/watch?v=TnfCu7Osy-Q&t=923s)
================================================
FILE: docs/csharp/async/thread.md
================================================
# Thread
## 📝 Articles
- [Threading in C#: GETTING STARTED](https://www.albahari.com/threading/)
- [Multithreading Basics](http://diranieh.com/NETThreading/MultithreadingBasics.htm)
- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/Article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)
- [.NET ThreadPool starvation, and how queuing makes it worse](https://techblog.criteo.com/net-threadpool-starvation-and-how-queuing-makes-it-worse-512c8d570527)
## Videos
- [C# Threading Training | C# Interview Questions | Csharp Thread Step by Step | C# Threading Tutorial](https://www.youtube.com/watch?v=tphdNUTwk9U)
- [C#/.NET Fundamentals Training | C# Tutorial | Threads in C# | Async & Await in C# | C# for Beginners](https://www.youtube.com/watch?v=j3cNlZM9kgo)
- [Async vs Thread | C# Interview Questions with Answers | Csharp Interview Questions](https://www.youtube.com/watch?v=G3tz9rxts8E)
================================================
FILE: docs/csharp/async/tpl-tap.md
================================================
# TPL & TAP
## 📕 Articles
- [Task-based asynchronous programming](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-based-asynchronous-programming)
- [Task Parallel Library (TPL)](https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-parallel-library-tpl)
- [Implementing the Task-based Asynchronous Pattern](https://docs.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/implementing-the-task-based-asynchronous-pattern)
- [Mechanisms for Creating Tasks](https://devblogs.microsoft.com/pfxteam/mechanisms-for-creating-tasks/)
- [Task Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task)
- [New Task APIs in .NET 4.6](https://devblogs.microsoft.com/pfxteam/new-task-apis-in-net-4-6/)
- [Tasks, Monads, and LINQ](https://devblogs.microsoft.com/pfxteam/tasks-monads-and-linq/)
- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/Article/1211071/Tasks-and-Parallelism-The-New-Wave-of-Multithreading)
## Videos
- [What is TPL ( Task Parallel Library) and how it differs from threads (c# interview questions) ?](https://www.youtube.com/watch?v=No7QqSc5cl8)
================================================
FILE: docs/csharp/async/valuetask.md
================================================
# ValueTask
## 📝 Articles
- [ValueTask Struct](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.valuetask)
- [Understanding the Whys, Whats, and Whens of ValueTask](https://devblogs.microsoft.com/dotnet/understanding-the-whys-whats-and-whens-of-valuetask/)
- [ValueTask Restrictions - Stephen Cleary](https://blog.stephencleary.com/2020/03/valuetask.html)
- [How to use ValueTask in C#](https://morioh.com/p/da3a36ccbe3b)
- [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/)
- [.NET 5 and pooling for ValueTasks - Scooletz](https://blog.scooletz.com/2020/06/01/pooling-for-value-tasks-in-net5)
## 📹 Videos
- [Understanding how to use Task and ValueTask](https://www.youtube.com/watch?v=fj-LVS8hqIE)
- [When to use ValueTask instead of Task and save precious memory in C#](https://www.youtube.com/watch?v=mEhkelf0K6g)
- [Task vs ValueTask: When Should I use ValueTask?](https://www.youtube.com/watch?v=dCj7-KvaIJ0)
- [C# Language Highlights ValueTask](https://www.youtube.com/watch?v=IN4dRdKlISI)
================================================
FILE: docs/csharp/boxing.md
================================================
# Boxing
## 📺 Videos
- [What is Boxing in C# and how it affects memory and speed](https://www.youtube.com/watch?v=GVJ5EUhWQBc)
================================================
FILE: docs/csharp/closure.md
================================================
# Closure
## 📕 Articles
- [Delegates, Lambda Expressions & Closures in C#](https://www.alanzucconi.com/2021/03/13/delegates-lambda-closures/)
- [Understanding Closures in C#](https://codinghelmet.com/articles/understanding-closures-in-cs)
- [A Simple Explanation of C# Closures](https://www.simplethread.com/c-closures-explained/)
- [Understanding C# Features (6) Closure](https://weblogs.asp.net/dixin/understanding-csharp-features-6-closure)
- [The Intuitive Guide to Understanding Closures in C#](https://vkontech.com/the-intuitive-guide-to-understanding-closures-in-c/)
- [C# – Closures capture variables, not values](https://makolyte.com/csharp-closures-capture-variables-not-values/)
- [Closures and the Lambdas](https://app.pluralsight.com/guides/closures-and-lambdas-csharp)
- [What's In A Closure?](https://web.archive.org/web/20150707082707/http://diditwith.net/PermaLink,guid,235646ae-3476-4893-899d-105e4d48c25b.aspx)
## 📺 Videos
- [What are Closures in C# and why you NEED to know about them](https://www.youtube.com/watch?v=h3MsnBRqzcY)
================================================
FILE: docs/csharp/collections/collection-data-structure.md
================================================
# Collections & Data Structures
## 📘 Resources
- [An overview of c# collections - RIP Tutorial](https://riptutorial.com/csharp/topic/2344/an-overview-of-csharp-collections)
## 📕 Articles
- [Collections and Data Structures](https://docs.microsoft.com/en-us/dotnet/standard/collections/)
- [Selecting a Collection Class](https://docs.microsoft.com/en-us/dotnet/standard/collections/selecting-a-collection-class)
- [Know your data structures – List vs Dictionary vs HashSet](https://www.davidguida.net/know-your-data-structures-list-vs-dictionary-vs-hashset/)
- [Thread-Safe Collections](https://docs.microsoft.com/en-us/dotnet/standard/collections/thread-safe/)
- [Fastest way to enumerate a List<T>](https://www.meziantou.net/fastest-way-to-enumerate-a-list-t.htm)
- [The .NET Dictionary](https://www.red-gate.com/simple-talk/blogs/the-net-dictionary/)
- [5 C# Collections that Every C# Developer Must Know](https://programmingwithmosh.com/net/csharp-collections/)
- [Return the most specific type, accept the most generic type](https://enterprisecraftsmanship.com/posts/return-the-most-specific-type/)
- [IEnumerable interface in .NET and LSP](https://enterprisecraftsmanship.com/posts/ienumerable-interface-in-net-and-lsp/)
- [IEnumerable vs IReadOnlyList](https://enterprisecraftsmanship.com/posts/ienumerable-vs-ireadonlylist/)
- [What types should I use to pass collections in C#?](https://markheath.net/post/passing-collections-csharp)
- [What types should I use to pass collections in C#?](https://markheath.net/post/passing-collections-csharp)
- [Guidelines for Collections](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/guidelines-for-collections)
- [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)
## Libraries
- [dadhi/ImTools](https://github.com/dadhi/ImTools) - Fast and memory-efficient immutable collections and helper data structures
- [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>.
================================================
FILE: docs/csharp/collections/enumerable.md
================================================
# Enumerable
## 📕 Articles
- [Enumeration in .NET](https://blog.usejournal.com/enumeration-in-net-d5674921512e)
- [Enumeration in .NET II — Count()](https://antao-almada.medium.com/enumeration-in-net-ii-9fd8e72cf83f)
- [Enumeration in .NET III — Enumerable.Empty<T>()](https://antao-almada.medium.com/enumeration-in-net-iii-enumerable-empty-t-1bfcd53739a7)
- [Enumeration in .NET IV — Finding an item](https://antao-almada.medium.com/enumeration-iv-finding-an-item-ff1dc4a7467d)
- [Enumeration in .NET V ToList() or not ToList()?](https://antao-almada.medium.com/enumeration-in-net-v-tolist-and-toarray-395ce615ecfd)
- [Array iteration performance in C# — Branching and parallelization](https://antao-almada.medium.com/array-iteration-performance-in-c-branching-and-parallelization-d0705adbf425)
- [Array iteration performance in C#](https://antao-almada.medium.com/array-iteration-performance-in-c-f9801a2c7a3c)
- [Fastest way to enumerate a List<T>](https://www.meziantou.net/fastest-way-to-enumerate-a-list-t.htm)
- [Return the most specific type, accept the most generic type](https://enterprisecraftsmanship.com/posts/return-the-most-specific-type/)
- [What types should I use to pass collections in C#?](https://markheath.net/post/passing-collections-csharp)
- [IEnumerable<> vs List<> as a parameter](https://stackoverflow.com/questions/65570281/ienumerable-vs-list-as-a-parameter/65570426#65570426)
- [ITERATE, DAMN YOU!](https://codeblog.jonskeet.uk/2010/07/27/iterate-damn-you/)
- [Generic types are for arguments, specific types are for return values](https://enterprisecraftsmanship.com/posts/generic-types-arguments-specific-types-return-values/)
================================================
FILE: docs/csharp/collections/hashset.md
================================================
# HashSet
================================================
FILE: docs/csharp/compiler-lowering.md
================================================
# Compiler & Lowering
## Articles
- [Lowering in the C# Compiler (and what happens when you misuse it)](https://mattwarren.org/2017/05/25/Lowering-in-the-C-Compiler/)
- ['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)
- [Lowering in C# (JIT)](https://libredd.it/r/csharp/comments/l3glbk/lowering_in_c_jit/)
- [Lowering in language design, part one](https://ericlippert.com/2014/04/28/lowering-in-language-design-part-one/)
- [Lowering in language design, part two](https://ericlippert.com/2014/05/01/lowering-in-language-design-part-two/)
- [C# Lowering](https://steven-giesel.com/blogPost/69dc05d1-9c8a-4002-9d0a-faf4d2375bce)
- [What is the difference between C#, .NET, IL and JIT?](https://steven-giesel.com/blogPost/aa23a1c9-8ab2-4b05-9bd2-52624af7b684)
## Videos
- [Lowering in C#: What's really going on in your code? - David Wengier](https://www.youtube.com/watch?v=pxDczZYe6F8)
- [Lowering in C# and the ability to predict code performance](https://www.youtube.com/watch?v=3oGBMGDRXVw)
- [Lowering in the C# Compiler](https://www.youtube.com/watch?v=1n_C30t363U)
================================================
FILE: docs/csharp/conditional-compilation-assert.md
================================================
# Conditional Compilation && Assert
## Videos
- [Write safer C# with conditional compilation](https://www.youtube.com/watch?v=ErrABoJ9HZw)
- [Debug.Assert Everyone!](https://lowleveldesign.org/2018/02/01/debug-assert-everyone/)
================================================
FILE: docs/csharp/conditional-compilation.md
================================================
# Conditional Compilation & Assert
## Videos
- [Write safer C# with conditional compilation](https://www.youtube.com/watch?v=ErrABoJ9HZw)
- [Debug.Assert Everyone!](https://lowleveldesign.org/2018/02/01/debug-assert-everyone/)
================================================
FILE: docs/csharp/constant.md
================================================
# Constant
## 📕 Articles
- [Group Your Constants and Enums](https://ardalis.com/group-your-constants-and-enums/?utm_sq=gkum31ably)
================================================
FILE: docs/csharp/covariance.md
================================================
# Covariance
## Articles
- [Covariance and Contravariance in .NET C#](https://levelup.gitconnected.com/covariance-and-contravariance-in-net-c-c2b8576b2155)
================================================
FILE: docs/csharp/csharp.md
================================================
# C#
## Resources
- [Learn to code C#](https://dotnet.microsoft.com/en-us/learntocode)
## 📕 Articles
- [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)
- [CREATING, INSPECTING AND DECOMPILING THE WORLD’S SMALLEST C# PROGRAM](https://www.stevejgordon.co.uk/creating-inspecting-decompiling-the-worlds-smallest-csharp-program)
- [What is the difference between C#, .NET, IL and JIT?](https://steven-giesel.com/blogPost/aa23a1c9-8ab2-4b05-9bd2-52624af7b684)
## Videos
- [Get Started Quick with the .NET Coding Pack for VS Code](https://www.youtube.com/watch?v=gmMCAyNcB3Q)
## Samples
- [dotnet/csharp-notebooks](https://github.com/dotnet/csharp-notebooks) - Get started learning C# with C# notebooks powered by .NET Interactive and VS Code.
================================================
FILE: docs/csharp/deconstruction.md
================================================
# Deconstruction
## Articles
- [Deconstructing tuples and other types](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/deconstruct)
- [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)
- [Deconstructors for non-tuple types in C# 7.0](https://andrewlock.net/deconstructors-for-non-tuple-types-in-c-7-0/)
- [Deconstructing in record types](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/functional/deconstruct#record-types)
================================================
FILE: docs/csharp/enum.md
================================================
# Enum
## 📕 Articles
- [Smart enums / Type-safe enums in .NET](https://www.meziantou.net/smart-enums-type-safe-enums-in-dotnet.htm)
- [Series: Enumeration Classes – DDD and beyond](https://ankitvijay.net/2020/06/12/series-enumeration-classes-ddd-and-beyond/)
- [Enumeration classes](https://lostechies.com/jimmybogard/2008/08/12/enumeration-classes/)
- [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)
- [Introduction to Enumeration Classes](https://ankitvijay.net/2020/05/21/introduction-enumeration-class/)
- [Enumeration class and JSON Serialization](https://ankitvijay.net/2020/06/01/enumeration-class-serialization/)
- [Reference data as code](https://enterprisecraftsmanship.com/posts/reference-data-as-code/)
- [Enum Alternatives in C#](https://ardalis.com/enum-alternatives-in-c/)
- [Listing Strongly Typed Enum Options in C#](https://ardalis.com/listing-strongly-typed-enum-options-in-c/)
## 📦 Libraries
- [ardalis/SmartEnum](https://github.com/ardalis/SmartEnum) - A base class for quickly and easily creating strongly typed enum replacements in C#.
================================================
FILE: docs/csharp/extension-methods.md
================================================
# Extension Methods
## 📕 Articles
- [Extension Methods Best Practices (Extension Methods Part 6)](https://devblogs.microsoft.com/vbteam/extension-methods-best-practices-extension-methods-part-6/)
- [Extension Methods Guidelines in C# .NET](https://michaelscodingspot.com/extension-methods/)
- [EXTENSION METHOD NAMING CONVENTIONS BEST PRACTICES](https://www.hack-the-planet.net/2010/01/13/extension-method-naming-conventions-best-practices/)
- [The 6 best practices for writing LINQ extension methods](http://firstclassthoughts.co.uk/Articles/Design/LINQExtensionMethodsBestPractices.html)
================================================
FILE: docs/csharp/generic.md
================================================
# Generic
## 📕 Articles
- [Difference between IsGenericType and IsGenericTypeDefinition](https://stackoverflow.com/questions/31772922/difference-between-isgenerictype-and-isgenerictypedefinition)
- [Open and Closed Generic Types in C#](https://www.pluralsight.com/guides/open-and-closed-generic-types-in-c)
- [Reflection and Generic Types](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/reflection-and-generic-types)
- [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)
- [Open Generics in ASPNET Core Dependency Injection -Part2](https://www.codeguru.co.in/2021/05/open-generics-in-aspnet-core-dependency_30.html)
- [What exactly is an “open generic type” in .NET?](https://stackoverflow.com/questions/2173107/what-exactly-is-an-open-generic-type-in-net)
- [Partially closed generic types](https://lostechies.com/jimmybogard/2009/09/01/partially-closed-generic-types/)
- [Generics: open vs closed types](https://blogs.msmvps.com/luisabreu/blog/2011/03/14/generics-open-vs-closed-types/)
- [Detect if a generic type is open?](https://stackoverflow.com/questions/25811514/detect-if-a-generic-type-is-open)
- [Fluent Generics in C#](https://tyrrrz.me/blog/fluent-generics)
================================================
FILE: docs/csharp/implicit-explicit-operators.md
================================================
# Implicit & Explicit Operators
## 📺 Videos
- [Automatic type conversion with Implicit and Explicit operators in C#](https://www.youtube.com/watch?v=-6NpI15erqY&ab_channel=NickChapsas)
================================================
FILE: docs/csharp/index.md
================================================
- [C#](csharp.md)
- [Closure](closure.md)
- [Collections & Data Structures](collection-data-structure.md)
- [Constant](constant.md)
- [Versions](versions/versioning.md)
- [C# 7](versions/7.md)
- [C# 8](versions/8.md)
- [C# 9](versions/9.md)
- [Reflection](reflection.md)
- [LINQ](linq.md)
- [Boxing](boxing.md)
- [Null Check](null-check.md)
- [Implicit & Explicit Operators](implicit-explicit-operators.md)
- [Types](types.md)
================================================
FILE: docs/csharp/linq.md
================================================
# LINQ
## Resources
- [EDULINQ – THE E-BOOK](https://codeblog.jonskeet.uk/category/edulinq/)
## 📕 Articles
- [Monadic Comprehension Syntax via LINQ in C#](https://tyrrrz.me/blog/monadic-comprehension-via-linq)
- [Evolution of An Async LINQ operator](http://blog.i3arnon.com/2021/07/12/async-linq-operator/)
- [Calling functions in LINQ queries](http://tomasp.net/blog/linq-expand.aspx/)
- [LINQ: Building an IQueryable provider series](https://docs.microsoft.com/en-us/archive/blogs/mattwar/linq-building-an-iqueryable-provider-series)
- [LINQ explained with sketches](https://steven-giesel.com/blogPost/d65c5411-a69b-489f-b73f-18ce0ed8678d)
## 📺 Videos
- [When LINQ is not LINQ](https://www.youtube.com/watch?v=t2NA1hHT1JE)
## Libraries
- [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>.
- [dotnet/reactive](https://github.com/dotnet/reactive) - The Reactive Extensions for .NET
- [reegeek/StructLinq](https://github.com/reegeek/StructLinq) - Implementation in C# of LINQ concept with struct
- [nessos/Streams](https://github.com/nessos/Streams) - A lightweight F#/C# library for efficient functional-style pipelines on streams of data.
- [YairHalberstadt/SpanLinq](https://github.com/YairHalberstadt/SpanLinq) - Linq for Span<T> using SourceGenerators
- [kevin-montrose/LinqAF](https://github.com/kevin-montrose/LinqAF) - Low allocation re-implementation of LINQ-to-Objects
- [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.
- [jackmott/LinqFaster](https://github.com/jackmott/LinqFaster) - Linq-like extension functions for Arrays, Span<T>, and List<T> that are faster and allocate less.
- [manofstick/Cistern.ValueLinq](https://github.com/manofstick/Cistern.ValueLinq)
- [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.
- [i3arnon/MoreAsyncLINQ](https://github.com/i3arnon/MoreAsyncLINQ) - Additional async LINQ to objects operators for IAsyncEnumerable<T>
## 🚀 Samples
- [NetFabric/LinqBenchmarks](https://github.com/NetFabric/LinqBenchmarks) - Benchmarking LINQ and alternative implementations
================================================
FILE: docs/csharp/locking/lock.md
================================================
# Lock
## Articles
- [Thread Synchronization Using Locking in C#](https://dotnettutorials.net/lesson/locking-in-multithreading/)
- [BASIC SYNCHRONIZATION: Locking](https://www.albahari.com/threading/part2.aspx#_Locking)
- [lock statement (C# reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/statements/lock)
- [Async Waiting inside C# Locks](https://blog.cdemi.io/async-waiting-inside-c-sharp-locks/)
================================================
FILE: docs/csharp/locking/monitor.md
================================================
# Monitor
## Articles
- [Monitor Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.monitor)
- [BASIC SYNCHRONIZATION - Locking](https://www.albahari.com/threading/part2.aspx#_Locking)
================================================
FILE: docs/csharp/locking/mutex.md
================================================
# Mutex
## Articles
- [Mutex Class in C#](https://dotnettutorials.net/lesson/mutex-in-multithreading/)
- [Mutex Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.mutex)
- [BASIC SYNCHRONIZATION - Mutex](https://www.albahari.com/threading/part2.aspx#_Mutex)
================================================
FILE: docs/csharp/locking/semaphore.md
================================================
# Semaphore
## Articles
- [Semaphore Class in C#](https://dotnettutorials.net/lesson/semaphore-in-multithreading/)
- [Semaphore Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphore)
- [SemaphoreSlim Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphoreslim)
- [C# Semaphore](https://dotnetpattern.com/threading-semaphore)
- [BASIC SYNCHRONIZATION - Semaphore](https://www.albahari.com/threading/part2.aspx#_Semaphore)
- [C# – Use SemaphoreSlim for throttling threads](https://makolyte.com/csharp-use-semaphoreslim-for-throttling-threads/)
- [C# – How to make concurrent requests with HttpClient](https://makolyte.com/csharp-how-to-make-concurrent-requests-with-httpclient/)
- [C# – Use SemaphoreSlim for throttling threads](https://makolyte.com/csharp-use-semaphoreslim-for-throttling-threads/)
- [Async Waiting inside C# Locks](https://blog.cdemi.io/async-waiting-inside-c-sharp-locks/)
- [What are the practical uses of semaphores?](https://stackoverflow.com/questions/21736741/what-are-the-practical-uses-of-semaphores)
## Videos
- [Semaphore Explained C#](https://www.youtube.com/watch?v=GKjM4AX8NME)
================================================
FILE: docs/csharp/locking/thread-safty.md
================================================
# Thread Safey
## 📝 Articles
- [Thread Safety](https://hamidmosalla.com/2018/07/09/thread-safety/)
- [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/)
- [A guide to writing real-life thread-safe code](https://www.educative.io/answers/a-guide-to-writing-real-life-thread-safe-code)
- [Making the calculator thread-safe](https://andrewlock.net/creating-a-simple-moving-average-calculator-in-csharp-2-making-the-calculator-thread-safe/)
- [BASIC SYNCHRONIZATION: Thread Safety](https://www.albahari.com/threading/part2.aspx#_Thread_Safety)
- [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)
- [The no-lock deadlock](https://ericlippert.com/2013/01/31/the-no-lock-deadlock/)
## Videos
- [c# (Csharp) and .NET :- Multithreading and thread safe objects.](https://www.youtube.com/watch?v=J-jNcUhi9xw)
================================================
FILE: docs/csharp/null-check.md
================================================
# Null Check
## Articles
- [What's new in C# 8.0](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8)
- [The 8 most missing features in C#](https://tooslowexception.com/the-8-most-missing-features-in-c/)
- [Nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references)
- [Tutorial: Migrate existing code with nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/upgrade-to-nullable-references)
- [How Do C#’s Nullable Reference Types Work?](https://www.cloudsavvyit.com/6649/how-do-cs-nullable-reference-types-work/)
- [Nullable Reference types in C# – Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)
- [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)
- [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)
- [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)
- [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)
- [C# 8.0 nullable references: NotNull](https://endjin.com/blog/2020/06/dotnet-csharp-8-nullable-references-notnull)
- [C# 8.0 nullable references: conditional post-conditions](https://endjin.com/blog/2020/07/dotnet-csharp-8-nullable-references-conditional-post-conditions)
- [C# 11.0 Preview: Parameter Null Checking](https://jaliyaudagedara.blogspot.com/2022/03/c-110-preview-parameter-null-checking.html)
- [Bite-Size C# 10 - Null Parameter Checking](https://exceptionnotfound.net/bite-size-csharp-10-null-parameter-checking/)
- [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)
- [C# 11.0 preview: parameter null checking](https://endjin.com/blog/2022/02/csharp-11-preview-parameter-null-checking)
- [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)
- [C#: Different ways to Check for Null](https://www.thomasclaudiushuber.com/2020/03/12/c-different-ways-to-check-for-null/)
## Videos
- [No more null exceptions in C# with null-coalescing, ?? and ??= operators](https://www.youtube.com/watch?v=7KJmdE93HkI)
- [How null checks have changed in C#](https://www.youtube.com/watch?v=lRUfRlp5BXc)
================================================
FILE: docs/csharp/nullable-reference-types.md
================================================
# Nullable Reference Types
## 📕 Articles
- [C#: Different ways to Check for Null](https://www.thomasclaudiushuber.com/2020/03/12/c-different-ways-to-check-for-null/)
- [Different ways to check if a value is null in C#](https://www.meziantou.net/null-check-in-csharp.htm)
- [Nullable Reference types in C# - Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)
- [Nullable reference types (C# reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-reference-types)
- [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)
- [How Do C#’s Nullable Reference Types Work?](https://www.cloudsavvyit.com/6649/how-do-cs-nullable-reference-types-work/)
- [Nullable Reference types in C# – Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)
- [C# 8: Nullable Reference Types](https://www.meziantou.net/csharp-8-nullable-reference-types.htm)
- [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)
- [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)
- [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/)
- [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)
- [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)
- [C# 8.0 nullable references: inferred (non-)nullness](https://endjin.com/blog/2020/04/dotnet-csharp-8-nullable-references-inferred-non-nullness)
- [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)
- [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)
- [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)
- [C# 8.0 nullable references: NotNull](https://endjin.com/blog/2020/06/dotnet-csharp-8-nullable-references-notnull)
- [C# 8.0 nullable references: conditional post-conditions](https://endjin.com/blog/2020/07/dotnet-csharp-8-nullable-references-conditional-post-conditions)
- [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)
- [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)
- [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)
- [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)
- [Getting Started on Nullable Reference Types](https://thecodeblogger.com/2022/05/26/getting-started-on-nullable-reference-types/)
- [Approaches for Resolving Nullable Warnings on Existing Codebase](https://thecodeblogger.com/2022/05/31/approaches-for-resolving-nullable-warnings-on-existing-codebase/)
- [Tips for Estimating the Null Reference Migrations](https://thecodeblogger.com/2022/06/09/tips-for-estimating-the-null-reference-migrations/)
- [Nullable Reference Migration – How to decide the nullability ?](https://thecodeblogger.com/2022/08/16/nullable-reference-migration-how-to-decide-the-nullability/)
## Videos
- [C# Nullable reference types – No more null reference exceptions!](https://www.youtube.com/watch?v=NDweaZZZcbc)
================================================
FILE: docs/csharp/pattern-matching.md
================================================
# Pattern Matching
## Videos
- [C# 9.0: Pattern Matching](https://www.youtube.com/watch?v=9lvx6mzCAE4)
================================================
FILE: docs/csharp/record.md
================================================
# Record
## 📕 Articles
- [Create record types](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/records)
- [Records (C# reference)](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/record)
- [C# 9.0 on the record](https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/)
- [C# 9 Deep Dive: Records](https://www.daveabrock.com/2020/07/06/c-sharp-9-deep-dive-records/)
- [Avoid C# 9 Record Gotchas](https://khalidabuhakmeh.com/avoid-csharp-9-record-gotchas)
- [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/)
- [Record Types in C# 9.0](https://lukemerrett.com/record-types-in-c-9-0/)
- [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/)
- [Explicit validation in C# just got simpler!](https://event-driven.io/en/explicit_validation_in_csharp_just_got_simpler/)
- [Introducing C# 10: Record struct](https://anthonygiretti.com/2021/08/03/introducing-c-10-record-struct/)
- [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)
- [Are C# 9 records immutable by default?](https://www.daveabrock.com/2020/11/02/csharp-9-records-immutable-default/)
- [Using records when implementing the builder pattern in C#](https://josef.codes/using-records-when-implementing-the-builder-pattern-in-c-sharp/)
- [Deconstructing a C# record with properties](https://alexanderzeitler.com/articles/deconstructing-a-csharp-record-with-properties/)
- [C# Record Explained](https://blog.ndepend.com/c-record-explained/)
## 📺 Videos
- [C# 9.0: Record types](https://www.youtube.com/watch?v=oSQDZ7GpKwg)
- [What are record types in C# and how they ACTUALLY work](https://www.youtube.com/watch?v=9v6RENPk5iM)
- [Records Deep Dive: What, Why and How - David Wengier - NDC Melbourne 2021](https://www.youtube.com/watch?v=lxwNcg2q1-Y)
================================================
FILE: docs/csharp/reflection.md
================================================
# Reflection & Assemblies
## 📘 Resources
- [Reflection - RIP Tutorial](https://riptutorial.com/csharp/topic/28/reflection)
## 📕 Articles
- [Dynamic Programming in the .NET Framework](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/)
- [Reflection in .NET](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/reflection)
- [Reflection and Generic Types](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/reflection-and-generic-types)
- [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)
- [Dynamically Loading and Using Types](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamically-loading-and-using-types)
- [Emitting Dynamic Methods and Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/emitting-dynamic-methods-and-assemblies)
- [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)
- [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)
- [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)
- [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)
- [Compile and generate dynamic source cod](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamic-source-code-generation-and-compilation)
- [Using the CodeDOM](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/using-the-codedom)
- [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)
- [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)
- [Dynamic Language Runtime Overview](https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamic-language-runtime-overview)
- [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)
- [.NET, REFLECTION AND MULTIPLE ASSEMBLIES](https://cephas.net/blog/2004/01/14/net-reflection-and-multiple-assemblies/)
- [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)
- [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)
- [Collectible assemblies in .NET Core 3.0](https://www.strathweb.com/2019/01/collectible-assemblies-in-net-core-3-0/)
- [DLR using Reflection.Emit (In Depth) Part 1](http://www.abhisheksur.com/2010/10/dlr-using-reflectionemit-in-depth-part.html)
- [DLR using Reflection.Emit (In Depth) Part 2](http://www.abhisheksur.com/2010/10/dlr-using-reflectionemit-in-depth-part_24.html)
- [Dynamically loading types from assembly files in .NET Core and Standard](https://siderite.dev/blog/dynamically-loading-types-from-assembly.html/)
- [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/)
- [.NET Core Plugins - Nate McMaster](https://natemcmaster.com/blog/2018/07/25/netcore-plugins/)
- [Understanding System.Runtime.Loader.AssemblyLoadContext](https://docs.microsoft.com/en-us/dotnet/core/dependency-loading/understanding-assemblyloadcontext)
- [Create a .NET Core application with plugins](https://docs.microsoft.com/en-us/dotnet/core/tutorials/creating-app-with-plugin-support)
- [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/)
- [AssemblyBuilder Class](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.assemblybuilder)
- [System.Reflection.Emit Namespace](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit)
- [Reflection and Reflection.Emit in C#](https://www.c-sharpcorner.com/uploadfile/puranindia/reflection-and-reflection-emit-in-C-Sharp/)
- [Chapter 5. Generating code with Reflection.Emit](https://livebook.manning.com/book/metaprogramming-in-dot-net/chapter-5/)
- [Reflection Part 1: Discovery and Execution](https://www.codemag.com/article/0211161/Reflection-Part-1-Discovery-and-Execution)
- [Reflection Part 2: Emit](https://www.codemag.com/article/0301051/Reflection-Part-2-Emit)
- [Benchmarking 4 reflection methods for calling a constructor in .NET](https://andrewlock.net/benchmarking-4-reflection-methods-for-calling-a-constructor-in-dotnet/)
- [Get All C# Classes Implementing an Interface](https://garywoodfine.com/get-c-classes-implementing-interface/)
- [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)
- [Get a generic method and invoke it](https://riptutorial.com/csharp/example/10206/get-a-generic-method-and-invoke-it)
- [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-)
- [IL Generation in .NET with Sigil](https://www.infoq.com/news/2016/01/sigil-intermediate-language/)
- [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)
- [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)
- [How to call a generic async method using reflection](https://stackoverflow.com/questions/39674988/how-to-call-a-generic-async-method-using-reflection/39679855)
- [Dynamic method invocation with .NET Core](https://www.davidguida.net/dynamic-method-invocation-with-net-core/)
- [Using .NET Generics with a type derived at runtime](https://www.thereformedprogrammer.net/using-net-generics-with-a-type-derived-at-runtime/)
- [How to call a generic extension method with reflection?](https://stackoverflow.com/questions/15927028/how-to-call-a-generic-extension-method-with-reflection)
- [Using reflection to invoke generic method passing lambda expression](https://stackoverflow.com/questions/19302513/using-reflection-to-invoke-generic-method-passing-lambda-expression)
- [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)
- [Get All Types in an Assembly](https://haacked.com/archive/2012/07/23/get-all-types-in-an-assembly.aspx/) ⭐
- [Getting Assemblies Is Harder Than You Think In C#](https://dotnetcoretutorials.com/2020/07/03/getting-assemblies-is-harder-than-you-think-in-c/) ⭐⭐
- [C# Reflection: Get *all* active assemblies in a solution?](https://stackoverflow.com/questions/851248/c-sharp-reflection-get-all-active-assemblies-in-a-solution) ⭐
- [.NET How-Tos: find all application Assemblies](https://www.davidguida.net/how-to-find-all-application-assemblies) ⭐⭐
- [How to prevent ReflectionTypeLoadException when calling Assembly.GetTypes()](https://stackoverflow.com/questions/7889228/how-to-prevent-reflectiontypeloadexception-when-calling-assembly-gettypes) ⭐
- [GetReferencedAssemblies not returning all referenced assemblies](https://mihalech.com/2016/03/22/getreferencedassemblies-not-returning-all-referenced-assemblies/) ⭐⭐
- [Best Practices for Assembly Loading](https://learn.microsoft.com/en-us/dotnet/framework/deployment/best-practices-for-assembly-loading) ⭐
- [Application domains](https://learn.microsoft.com/en-us/dotnet/framework/app-domains/application-domains) ⭐
- [AssemblyLoadContext Class](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.loader.assemblyloadcontext?view=net-7.0)
- [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) ⭐⭐⭐
- [Assembly.GetExecutingAssembly()](https://johnlnelson.com/tag/assembly-getexecutingassembly/)
- [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) ⭐
- [Assembly Loadcontext](https://github.com/dotnet/runtime/blob/main/docs/design/features/assemblyloadcontext.md) ⭐
- [Create a .NET Core application with plugins](https://learn.microsoft.com/en-us/dotnet/core/tutorials/creating-app-with-plugin-support)
- [Understanding How Assemblies Load in C# .NET](https://michaelscodingspot.com/assemblies-load-in-dotnet/) ⭐⭐
- [How to resolve .NET reference and NuGet package version conflicts](https://michaelscodingspot.com/how-to-resolve-net-reference-and-nuget-package-version-conflicts/)
- [How the Runtime Locates Assemblies](https://learn.microsoft.com/en-us/dotnet/framework/deployment/how-the-runtime-locates-assemblies) ⭐
- [MONO.CECIL (PART I): OVERVIEW](http://www.swat4net.com/mono-cecil-overview-part-i/)
- [MONO.CECIL (PART II): BASIC OPERATIONS](http://www.swat4net.com/mono-cecil-part-ii-basic-operations/)
- [BUILDING A .NET BYTE CODE INSPECTOR](https://21-lessons.com/building-a-net-byte-code-inspector/)
## 📺 Videos
- [Achieving compile-time performance with Reflection in C#](https://www.youtube.com/watch?v=er9nD-usM1A)
- [Dynamically invoking a generic method with Reflection in .NET C#](https://www.youtube.com/watch?v=ZfS4WnITx08)
- [C# Reflection Explained (Claim generation example)](https://www.youtube.com/watch?v=cdG2JxuZvNI)
- [.NET IL Weaving Demo with Mono.Cecil](https://www.youtube.com/watch?v=L-RQmSPy7Qo)
## Tools
- [Process Explorer](https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer)
## Libraries
- [natemcmaster/DotNetCorePlugins](https://github.com/natemcmaster/DotNetCorePlugins) - .NET Core library for dynamically loading code
- [kevin-montrose/Sigil](https://github.com/kevin-montrose/Sigil) - A fail-fast validating helper for .NET CIL generation
- [skbkontur/gremit](https://github.com/skbkontur/gremit) - .NET Reflection.Emit extensions
- [ekonbenefits/dynamitey](https://github.com/ekonbenefits/dynamitey) - (pronounced dyna-mighty) flexes DLR muscle to do meta-mazing things in .net
- [ReflectionMagic/ReflectionMagic](https://github.com/ReflectionMagic/ReflectionMagic) - Framework to drastically simplify your private reflection code using C# dynamic
- [jbevain/mono.reflection](https://github.com/jbevain/mono.reflection) - Some useful reflection helpers, including an IL disassembler.
- [buunguyen/fasterflect](https://github.com/buunguyen/fasterflect) - .NET Reflection Made Fast and Simple ⛺
- [RicoSuter/Namotion.Reflection](https://github.com/RicoSuter/Namotion.Reflection) - .NET library with advanced reflection APIs.
- [osoykan/FluentAssemblyScanner](https://github.com/osoykan/FluentAssemblyScanner) - Fluent assembly and type scanner 🔍 for .Net
- [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.
- [jbevain/cecil](https://github.com/jbevain/cecil) - Cecil is a library to inspect, modify and create .NET programs and libraries
- [adrianoc/cecilifier](https://github.com/adrianoc/cecilifier) - A tool aiming to make it a little bit easier to learn Mono.Cecil
## Samples
- [jbevain/cecil.samples](https://github.com/jbevain/cecil.samples) - Samples for Cecil
## 📚 Books
- [MetaProgramming in .Net](https://livebook.manning.com/book/metaprogramming-in-dot-net/)
================================================
FILE: docs/csharp/required.md
================================================
# Required
## Articles
- [required modifier (C# Reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/required)
- [Working with Nullable Reference Types](https://learn.microsoft.com/en-us/ef/core/miscellaneous/nullable-reference-types)
- [C# 11 required members](https://blog.ndepend.com/c-11-required-members/)
================================================
FILE: docs/csharp/span.md
================================================
# Span
## 📺 Videos
- [What is Span in C# and why you should be using it](https://www.youtube.com/watch?v=FM5dpxJMULY)
================================================
FILE: docs/csharp/types.md
================================================
# Types
## 📕 Articles
## 📺 Videos
- [Where are types allocated in .NET and why people get it so wrong](https://www.youtube.com/watch?v=jONSIhMST9E)
================================================
FILE: docs/csharp/versions/10.md
================================================
# C# 10
## Resources
- [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)
## 📕 Articles
- [What's new in C# 10](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-10)
- [C# 10.0: Introducing Global Usings](https://jaliyaudagedara.blogspot.com/2021/05/c-100-introducing-global-usings.html)
- [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)
- [Introducing C# 10](https://kenbonny.net/introducing-csharp-10)
- [Introducing C# 10: Record struct](https://anthonygiretti.com/2021/08/03/introducing-c-10-record-struct/)
- [A quick review of C# 10 new language features](https://thomaslevesque.com/2021/11/04/a-quick-review-of-csharp-10-new-language-features/)
- [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/)
- [File Scoped Namespaces In C# 10](https://dotnetcoretutorials.com/2021/09/20/file-scoped-namespaces-in-c-10/)
- [Global Using Statements In C#10](https://dotnetcoretutorials.com/2021/08/19/global-using-statements-in-c10)
- [String Interpolation in C# 10 and .NET 6](https://devblogs.microsoft.com/dotnet/string-interpolation-in-c-10-and-net-6/)
- [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)
- [Static Abstract Members In C# 10 Interfaces](https://khalidabuhakmeh.com/static-abstract-members-in-csharp-10-interfaces)
- [Bite-Size C# 10 - Null Parameter Checking](https://exceptionnotfound.net/bite-size-csharp-10-null-parameter-checking/)
- [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)
- [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)
- [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/)
- [CallerArgumentExpression Attribute In C# 10](https://www.ilkayilknur.com/CallerArgumentExpression-attribute-in-csharp-10)
- [C# 10 new feature CallerArgumentExpression, argument check and more](https://weblogs.asp.net/dixin/csharp-10-new-feature-callerargumentexpression-argument-check-and-more)
- [[CallerArgumentExpression] and throw helpers](https://andrewlock.net/exploring-dotnet-6-part-11-callerargumentexpression-and-throw-helpers/)
- [Global Usings – A Look at New Language Features in C# 1](https://blog.jetbrains.com/dotnet/2021/11/18/global-usings-in-csharp-10/)
## Videos
- [Every feature added in C# 10 with examples](https://www.youtube.com/watch?v=Vft4QDUpyWY)
## 🚀 Samples
- [okyrylchuk/dotnet6_features](https://github.com/okyrylchuk/dotnet6_features)
- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)
- [NikiforovAll/whats-new-in-dotnet6](https://github.com/NikiforovAll/whats-new-in-dotnet6)
- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)
- [khalidabuhakmeh/CsharpTenFeatures](https://github.com/khalidabuhakmeh/CsharpTenFeatures) - C# 10 Features in one console application
================================================
FILE: docs/csharp/versions/11.md
================================================
# C# 11
## 📝 Articles
- [What's new in C# 11](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-11)
- [Early peek at C# 11 features](https://devblogs.microsoft.com/dotnet/early-peek-at-csharp-11-features/)
- [C# 11.0 Preview: Parameter Null Checking](https://jaliyaudagedara.blogspot.com/2022/03/c-110-preview-parameter-null-checking.html)
- [C# 11.0 preview: parameter null checking](https://endjin.com/blog/2022/02/csharp-11-preview-parameter-null-checking)
- [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)
- [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/)
- [Members, the imperfectly awesome feature](https://gsferreira.com/archive/2022/csharp-11-required-members-the-imperfectly-awesome-feature/)
- [Refactor code to use new C# language features](https://blog.jetbrains.com/dotnet/2022/08/30/refactor-code-to-use-new-c-language-features/)
- [C# 11 required members](https://blog.ndepend.com/c-11-required-members/)
- [Twelve C# 11 Features](https://blog.okyrylchuk.dev/twelve-csharp-11-features)
## Videos
- [C# 11’s new List Patterns are a bit too powerful](https://www.youtube.com/watch?v=z7bW83Xr1R0)
- [C# 11: The Highlights | .NET Conf: Focus on MAUI](https://www.youtube.com/watch?v=1K44Nu9_7U8)
- [C# 11 Required Members - Exciting or not?](https://www.youtube.com/watch?v=OE0McfZ64Z4)
## Samples
- [okyrylchuk/dotnet7_features](https://github.com/okyrylchuk/dotnet7_features)
- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)
- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)
================================================
FILE: docs/csharp/versions/12.md
================================================
# C# 12
## Articles
- [What's new in C# 12](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-12)
- [Announcing C# 12](https://devblogs.microsoft.com/dotnet/announcing-csharp-12/)
- [Check out new C# 12 preview features!](https://devblogs.microsoft.com/dotnet/check-out-csharp-12-preview
- [New C# 12 preview features](https://devblogs.microsoft.com/dotnet/new-csharp-12-preview-features/)
================================================
FILE: docs/csharp/versions/13.md
================================================
# C# 13
## Articles
- [What's new in C# 13](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-13)
================================================
FILE: docs/csharp/versions/7.md
================================================
# C# 7
## Resources
- [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)
- [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/)
- [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)
- [C# 7.0 - Visual Studio 2017](https://github.com/dotnet/csharplang/blob/main/Language-Version-History.md#c-70---visual-studio-2017)
## 📝 Articles
- [What’s New in C# 7.0](https://devblogs.microsoft.com/dotnet/whats-new-in-csharp-7-0/)
- [New Features in C# 7.0](https://devblogs.microsoft.com/dotnet/new-features-in-c-7-0/)
- [What's new in C# 7.0 through C# 7.3](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7)
- [Pattern Matching for C# 7](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.0/pattern-matching)
- [AN INTRODUCTION TO OPTIMISING CODE USING SPAN<T>](https://www.stevejgordon.co.uk/an-introduction-to-optimising-code-using-span-t)
- [How to use Span<T> and Memory<T>](https://antao-almada.medium.com/how-to-use-span-t-and-memory-t-c0b126aae652)
## 📺 Videos
- [Connect; 2017 C# 7 2 Understanding Span](https://www.youtube.com/watch?v=mbLIplmHzdk)
- [A (brief) overview of Span≤T≥ - David Wengier](https://www.youtube.com/watch?v=byvoPD15CXs)
- [Jeffrey Richter «Efficient Buffer Manipulation using C# 7.2's Span»](https://www.youtube.com/watch?v=gWcyXGIbRDI)
================================================
FILE: docs/csharp/versions/8.md
================================================
# C# 8
## Resources
- [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)
## 📝 Articles
- [What's new in C# 8.0](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8)
- [The 8 most missing features in C#](https://tooslowexception.com/the-8-most-missing-features-in-c/)
- [Nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references)
- [Tutorial: Migrate existing code with nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/upgrade-to-nullable-references)
- [How Do C#’s Nullable Reference Types Work?](https://www.cloudsavvyit.com/6649/how-do-cs-nullable-reference-types-work/)
- [Nullable Reference types in C# – Best practices](https://www.dotnetcurry.com/csharp/nullable-reference-types-csharp)
- [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)
- [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)
- [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)
- [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)
- [C# 8.0 nullable references: NotNull](https://endjin.com/blog/2020/06/dotnet-csharp-8-nullable-references-notnull)
- [C# 8.0 nullable references: conditional post-conditions](https://endjin.com/blog/2020/07/dotnet-csharp-8-nullable-references-conditional-post-conditions)
## 📺 Videos
- [C# Nullable reference types – No more null reference exceptions!](https://www.youtube.com/watch?v=NDweaZZZcbc)
## Samples
- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)
- [gsferreira/dotnet-playground](https://github.com/gsferreira/dotnet-playground)
================================================
FILE: docs/csharp/versions/9.md
================================================
# C# 9
## Resources
- [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)
## 📝 Articles
- [What's new in C# 9.0](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9)
- [Top-level programs in C# 9.0](https://gunnarpeipman.com/csharp-top-level-programs/)
- [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
- [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)
- [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/)
- [C# 9 new features for methods and functions](https://developers.redhat.com/blog/2021/04/13/c-9-new-features-for-methods-and-functions/)
- [How to use configuration with C# 9 top-level programs](https://www.daveabrock.com/2021/01/19/config-top-level-programs/)
- [C# 9 Deep Dive: Top-Level Programs](https://www.daveabrock.com/2020/07/09/c-sharp-9-top-level-programs/)
- [C# 9 Deep Dive: Pattern Matching](https://www.daveabrock.com/2020/07/06/c-sharp-9-pattern-matching/)
- [C# 9 Deep Dive: Records](https://www.daveabrock.com/2020/07/06/c-sharp-9-deep-dive-records/)
- [C# 9 Deep Dive: Init-only features](https://www.daveabrock.com/2020/06/29/c-sharp-9-deep-dive-inits/)
- [C# 9 Deep Dive: Target Typing and Covariant Returns](https://www.daveabrock.com/2020/07/14/c-sharp-9-target-typing-covariants/)
- [Avoid C# 9 Record Gotchas](https://khalidabuhakmeh.com/avoid-csharp-9-record-gotchas)
- [C# 9.0 on the record](https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/)
- [C# 9.0 Features and Expectations of C# 10](https://dev.to/dotnetsafer/c-9-0-features-and-expectations-of-c-10-n7c)
- [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/)
- [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/)
- [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/)
- [C# 9.0: Pattern Matching in Switch Expressions](https://www.thomasclaudiushuber.com/2021/02/25/c-9-0-pattern-matching-in-switch-expressions/)
- [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/)
- [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/)
- [C# 9.0: Improved Pattern Matching](https://www.thomasclaudiushuber.com/2021/02/18/c-9-0-improved-pattern-matching/)
- [C# 9.0: Init-only properties](https://blog.miguelbernard.com/c-9-0-init-only-properties)
- [ICYMI C# 9 New Features: Top-level Statements](http://dontcodetired.com/blog/post/ICYMI-C-9-New-Features-Top-level-Statements)
- [Pattern-matching changes for C# 9.0](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/patterns3)
- [Record Types in C# 9.0](https://lukemerrett.com/record-types-in-c-9-0/)
## 📺 Videos
- [The Top 10 Best New Features in C# Version 6 to 9, by Chris Klug](https://www.youtube.com/watch?v=Iy6WS4mWlx4)
- [C# 9 New Features - Top level code, Records, Init Setters](https://www.youtube.com/watch?v=EU2zcrbBi4s)
- [C# 9.0: Record types](https://www.youtube.com/watch?v=oSQDZ7GpKwg)
- [C# 9 Language Highlights](https://www.youtube.com/watch?v=G2q3j9cwqYI&ab_channel=MohamadLawand)
- [The top 10 best new features in C# version 6 to 9 - Chris Klug](https://www.youtube.com/watch?v=hIQa7SsWYUE)
- [What's new in .NET 5 and C# 9](https://www.youtube.com/watch?v=K32WV452o5c)
- [C# 9.0: Pattern Matching](https://www.youtube.com/watch?v=9lvx6mzCAE4)
## Samples
- [okyrylchuk/csharp9_features](https://github.com/okyrylchuk/csharp9_features)
- [dodyg/practical-aspnetcore](https://github.com/dodyg/practical-aspnetcore/tree/net5.0/projects/net6)
================================================
FILE: docs/csharp/versions/index.md
================================================
# [C#](index.md)
- [C# 7](c7.md)
- [C# 8](c8.md)
- [C# 9](c9.md)
- [C# 10](c10.md)
================================================
FILE: docs/dapper.md
================================================
# Dapper
## Resources
- [LearnDapper](https://www.learndapper.com/)
## Articles
- [Using Dapper with ASP.NET Core Web API](https://code-maze.com/using-dapper-with-asp-net-core-web-api/)
- [A Practical Guide to Dapper](https://www.red-gate.com/simple-talk/development/dotnet-development/a-practical-guide-to-dapper/)
## Videos
- [Learn Dapper in an Hour! (.NET Core 5)](https://www.youtube.com/watch?v=IVsN0WlufWc)
## Samples
- [beautifulcoder/practical-dapper](https://github.com/beautifulcoder/practical-dapper)
================================================
FILE: docs/debugging.md
================================================
# Debugging
## 📕 Articles
- [Simplify debugging with DebuggerDisplay attribute dotNET](https://www.code4it.dev/blog/debuggerdisplay-attribute)
- [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)
- [Debugging Enhancements in .NET 8](https://devblogs.microsoft.com/dotnet/debugging-enhancements-in-dotnet-8/)
================================================
FILE: docs/dependency-injection.md
================================================
# Dependency Injection
## 📝 Articles
- [Dependency injection guidelines](https://docs.microsoft.com/en-us/dotnet/core/extensions/dependency-injection-guidelines)
- [Dependency injection in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection)
- [.NET Core Dependency Injection: Everything You Ought To Know](https://www.blog.jamesmichaelhickey.com/NET-Core-Dependency-Injection/)
- [ASP.NET CORE DEPENDENCY INJECTION AND SERVICE LIFETIMES](https://peakup.org/blog/asp-net-core-dependency-injection-and-service-lifetimes/)
- [Dependency Resolving Mastery in ASP.NET Core Apps](https://levelup.gitconnected.com/dependency-resolving-mastery-in-asp-net-core-apps-f3515ab40fd2) ⭐⭐⭐
- [Top Misconceptions About Dependency Injection in ASP.NET Core](https://levelup.gitconnected.com/top-misconceptions-about-dependency-injection-in-asp-net-core-c6a7afd14eb4) ⭐⭐⭐
- [Advanced Dependency Injection Techniques in ASP.NET Core](https://medium.com/geekculture/advanced-dependency-injection-techniques-in-asp-net-core-3e6e9e0c541a) ⭐⭐⭐
- [Captive Dependency](https://blog.ploeh.dk/2014/06/02/captive-dependency/)
- [Inversion of Control Containers and the Dependency Injection pattern](https://martinfowler.com/articles/injection.html)
- [Having Fun with Microsoft IoC Container for .NET Core](https://sahansera.dev/dotnet-core-ioc-container/)
- [ASP. NET Core - Dependency-injection](https://girishgodage.in/blog/customize-dependency-injection)
- [Customizing ASP.NET Core Part 03: Dependency Injection](https://asp.net-hacker.rocks/2018/09/27/customizing-aspnetcore-03-dependency-injection.html)
- [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)
- [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)
- [ASP.NET CORE DEPENDENCY INJECTION – REGISTERING IMPLEMENTATIONS USING DELEGATES](https://www.stevejgordon.co.uk/asp-net-core-dependency-injection-registering-implementations-using-delegates)
- [Choosing a ServiceLifetime](https://jimmybogard.com/choosing-a-servicelifetime/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+GrabBagOfT+%28Jimmy+Bogard%29)
- [ASP.NET Core and the Strategy Pattern](https://adamstorr.azurewebsites.net/blog/aspnetcore-and-the-strategy-pattern)
- [6 Ways To Implement The Strategy Pattern In C# (Basic To Advanced)](https://www.blog.jamesmichaelhickey.com/strategy-pattern-implementations/)
- [Dependency Injection in ASP.NET Core 3.1](https://procodeguide.com/programming/dependency-injection-in-asp-net-core-3/)
- [Understanding Disposables In .NET Dependency Injection – Part 2](http://stevetalkscode.co.uk/disposables-in-di-part-2)
- [Understanding Disposables In .NET Dependency Injection – Part 1](https://stevetalkscode.co.uk/disposables-in-di-part-1)
- [Should I be Checking Injected Dependencies for Null?](http://stevetalkscode.co.uk/null-injection)
- [Getting Dependencies by Name or Key using the .NET Core Container (Part 1)](http://stevetalkscode.co.uk/named-dependencies-part-1#comment-750)
- [ASP.NET CORE DEPENDENCY INJECTION WHAT IS THE ISERVICECOLLECTION?](https://www.stevejgordon.co.uk/aspnet-core-dependency-injection-what-is-the-iservicecollection)
- [Avoiding Startup service injection in ASP.NET Core 3](https://andrewlock.net/avoiding-startup-service-injection-in-asp-net-core-3/)
- [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)
- [Resolve and Initialize the Instances within ConfigServices of ASP.NET Core](https://www.thecodebuzz.com/resolve-instances-within-configservices-method-asp-net-core/)
- [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)
- [Access services inside ConfigureServices using IConfigureOptions in ASP.NET Core](https://andrewlock.net/access-services-inside-options-and-startup-using-configureoptions/)
- [Using dependency injection while configuring services](https://benjamincollins.com/blog/using-dependency-injection-while-configuring-services/)
- [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)
- [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/)
- [A .NET Core ServiceProvider that allows adding of services after it was created](https://siderite.dev/blog/a-net-core-serviceprovider-that-allows.html/)
- [The difference between GetService() and GetRequiredService() in ASP.NET Core](https://andrewlock.net/the-difference-between-getservice-and-getrquiredservice-in-asp-net-core/)
- [Resolve Services In ASP.NET Core Startup](https://khalidabuhakmeh.com/resolve-services-in-aspnet-core-startup)
- [Automatic factory with Microsoft.Extensions.DependencyInjection and Castle DynamicProxy](https://thomaslevesque.com/2020/09/27/automatic-factory-with-microsoft-extensions-dependencyinjection-and-castle-dynamicproxy/)
- [Singleton vs Dependency Injection](https://enterprisecraftsmanship.com/posts/singleton-vs-dependency-injection/)
- [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)
- [ASP.NET Core Dependency Injection Best Practices, Tips & Tricks](https://medium.com/volosoft/asp-net-core-dependency-injection-best-practices-tips-tricks-c6e9c67f9d96)
- [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)
- [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/)
- [Dependency Injection lifetimes in .NET - my epiphany](https://www.code4it.dev/blog/dependency-injection-lifetimes)
- [SOLID Wash Tunnel - IoC Container](https://www.ledjonbehluli.com/posts/wash-tunnel/ioc_container/)
- [SOLID Wash Tunnel - Dependency Injection](https://www.ledjonbehluli.com/posts/wash-tunnel/dependency_injection/)
- [Service Lifetimes in ASP.NET Core DI Explained](https://referbruv.com/blog/posts/exploring-aspnet-core-fundamentals-understanding-singleton-transient-and-scoped-service-lifetimes)
- [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/)
- [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/)
- [Using scoped services inside singletons](https://samwalpole.com/using-scoped-services-inside-singletons)
- [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)
- [Resolving instances with ASP.NET Core DI in static classes](https://www.davidezoccarato.cloud/resolving-instances-with-asp-net-core-di-in-static-classes/)
- [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)
- [ASP.NET Core Dependency Injection – Cannot consume scoped service](https://codingblast.com/asp-net-core-dependency-injection-cannot-consume-scoped-service/)
- [Introducing Scrutor - Convention based registration for Microsoft.Extensions.DependencyInjection](https://kristian.hellang.com/introducing-scrutor/)
- [Constrained Open Generics Support Merged in .NET Core DI Container](https://jimmybogard.com/constrained-open-generics-support-merged-in-net-core-di-container/)
- [Captive Dependency with ASP.NET Core](https://medium.com/dotnet-hub/captive-dependency-with-asp-net-core-what-is-captive-dependency-8698b588e048)
- [.NET Core and DI – Beware of Captive Dependency](https://ankitvijay.net/2020/03/17/net-core-and-di-beware-of-captive-dependency/)
- [Top Misconceptions About Dependency Injection in ASP.NET Core](https://levelup.gitconnected.com/top-misconceptions-about-dependency-injection-in-asp-net-core-c6a7afd14eb4)
- [Configure Dependency Injection for .NET 5 Console Applications](https://www.programmingwithwolfgang.com/configure-dependency-injection-for-net-5-console-applications/)
- [New dependency injection features in .NET 6 ](https://andrewlock.net/exploring-dotnet-6-part-10-new-dependency-injection-features-in-dotnet-6/)
- [Dependency Injection Lifetimes in ASP.NET Core](https://code-maze.com/dependency-injection-lifetimes-aspnet-core/)
- [Advanced Dependency Injection Techniques in ASP.NET Core](https://medium.com/geekculture/advanced-dependency-injection-techniques-in-asp-net-core-3e6e9e0c541a)
- [Four ways to dispose IDisposables in ASP.NET Core](https://andrewlock.net/four-ways-to-dispose-idisposables-in-asp-net-core/)
- [Composition Root](https://blog.ploeh.dk/2011/07/28/CompositionRoot/)
- [Dependency Injection Composition Root: Are We Just Moving the Coupling?](https://jeremybytes.blogspot.com/2013/03/dependency-injection-composition-root.html)
- [Understanding the Composition Root](https://freecontent.manning.com/dependency-injection-in-net-2nd-edition-understanding-the-composition-root/)
- [Configuring environment specific services for dependency injection in ASP.NET Core](https://andrewlock.net/configuring-environment-specific-services-in-asp-net-core/)
- [Is Dependency Injection dead? - Part 1](https://www.davidguida.net/is-dependency-injection-dead-part-1)
- [Is Dependency Injection dead? - Part 2: Service Lifetimes](https://www.davidguida.net/is-dependency-injection-dead-part-2-service-lifetimes)
- [Is Dependency Injection dead? - Part 3: Anti-Patterns](https://www.davidguida.net/is-dependency-injection-dead-part-3-anti-patterns)
- [Controller activation and dependency injection in ASP.NET Core MVC](https://andrewlock.net/controller-activation-and-dependency-injection-in-asp-net-core-mvc/)
- [New in ASP.NET Core 3: Service provider validation](https://andrewlock.net/new-in-asp-net-core-3-service-provider-validation/) ⭐⭐
- [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/)
- [Injecting services into ValidationAttributes in ASP.NET Core](https://andrewlock.net/injecting-services-into-validationattributes-in-asp-net-core/)
- [Structure and order your DI container](https://steven-giesel.com/blogPost/f557493c-0919-44fc-8073-40b4fb90d53e)
- [Building a Console App with .NET Generic Host](https://dfederm.com/building-a-console-app-with-.net-generic-host/)
- [How To Enable Logging In .NET Console Applications](https://thecodeblogger.com/2021/05/11/how-to-enable-logging-in-net-console-applications/)
- [USING HOSTBUILDER AND THE GENERIC HOST IN .NET CORE MICROSERVICES](https://www.stevejgordon.co.uk/using-generic-host-in-dotnet-core-console-based-microservices)
- [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)
- [Verifying your DI Container](https://steven-giesel.com/blogPost/ce948083-974a-4c16-877f-246b8909fa6d)
- [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) ⭐⭐
- [Dependency injection guidelines](https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection-guidelines)
- [Keyed Services in .NET8's Dependency Injection](https://dev.to/xelit3/keyed-services-in-net8s-dependency-injection-2gni)
- [How to configure true dependency injection in System.CommandLine](https://anthonysimmon.com/true-dependency-injection-with-system-commandline/)
## 📺 Videos
- [.NET Core Dependency Injection – The Booster Jab - Steve Collins - NDC London 2021](https://www.youtube.com/watch?v=JwVtscL9H9k)
- [Dependency Injection Explained](https://www.youtube.com/watch?v=ASDmrUaO5cE)
- [.NET Core Dependency Injection - The Booster Jab - with Steve Collins](https://www.youtube.com/watch?v=99Gp9khfgiY)
- [Asp.Net Core - Dependency Injection - Deep Dive](https://www.youtube.com/watch?v=ORAfsRukNc4)
- [Dependency Injection in ASP.NET Core 6 - Pluralsight](https://www.pluralsight.com/courses/dependency-injection-asp-dot-net-core-6)
- [Validate your dependencies correctly in .NET](https://www.youtube.com/watch?v=8JkHgymp2R4)
## Libraries
- [khellang/Scrutor](https://github.com/khellang/Scrutor) - Assembly scanning and decoration extensions for Microsoft.Extensions.DependencyInjection
- [AnthonyGiretti/calzolari-dependencyinjection-extensions](https://github.com/AnthonyGiretti/calzolari-dependencyinjection-extensions) - Extensions for ASP.NET Core dependency injection
- [YairHalberstadt/stronginject](https://github.com/YairHalberstadt/stronginject) - compile time dependency injection for .NET
- [pakrym/jab](https://github.com/pakrym/jab) - C# Source Generator based dependency injection container implementation.
- [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
- [castleproject/Core](https://github.com/castleproject/Core) - Castle Core, including Castle DynamicProxy, Logging Services and DictionaryAdapter
- [devlooped/DependencyInjection.Attributed](https://github.com/devlooped/DependencyInjection.Attributed) - Provides compile-time discovery and code generation of service registrations from attributed types
================================================
FILE: docs/diagnostics.md
================================================
# Diagnostics
## 📕 Articles
- [DiagnosticSource User's Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md)
- [Activity User Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md)
- [Diagnostic Source in.Net Core](https://www.fatalerrors.org/a/diagnostic-source-in.net-core.html)
- [Improve Activity API usability and OpenTelemetry integration](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements.md)
- [Improve Activity API usability and OpenTelemetry integration (Part 2)](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements-2.md)
- [What diagnostic tools are available in .NET Core?](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/)
- [.NET distributed tracing concepts](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-concepts)
- [Adding distributed tracing instrumentation](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs)
- [Collect a distributed trace](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs)
- [Activity Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activity)
- [ActivityListener Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitylistener)
- [ActivitySource Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitysource)
- [ActivityLink Struct](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitylink)
- [EventListener Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventlistener)
- [EventSource Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventsource)
- [Introducing diagnostics improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/introducing-diagnostics-improvements-in-net-core-3-0/)
- [Diagnostics improvements in .NET 5](https://devblogs.microsoft.com/dotnet/diagnostics-improvements-in-net-5/)
- [Logging using DiagnosticSource in ASP.NET Core](https://andrewlock.net/logging-using-diagnosticsource-in-asp-net-core/)
- [Using the DiagnosticSource in .NET Core: Theory](https://sudonull.com/post/3671-Using-the-DiagnosticSource-in-NET-Core-Theory)
- [Dumps](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dumps)
- [EventCounters in .NET Core](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/event-counters)
- [.NET Core logging and tracing](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing)
- [.NET Diagnostics Tools: dump vs. gcdump](https://www.stefangeiger.ch/2020/04/21/dotnet-diagnostics-tools-gcdump-vs-dump.html)
- [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/)
- [.NET Tip: Performance Counters for MemoryCache](https://www.stefangeiger.ch/2019/11/25/dotnet-tip-memorycache-perfcounter.html)
- [Investigate performance counters (dotnet-counters)](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-counters)
- [Use Performance Counters in .NET to measure Memory, CPU, and Everything – Full Guide](https://michaelscodingspot.com/performance-counters/)
- [Reporting Metrics Using .Net (Core) EventSource and EventCounte](https://dev.to/expecho/reporting-metrics-using-net-core-eventsource-and-eventcounter-23dn)
- [Creating a Custom ETW EventSource for Debugging High-Performance Code in C#](https://aaronstannard.com/creating-your-own-ETW-source/)
- [Tracing with EventSource in .NET 4.5](http://dev.goshoom.net/2013/04/tracing-with-eventsource/)
- [Exploring EventSource Activity (correlation and causation) Features](https://docs.microsoft.com/en-us/archive/blogs/vancem/exploring-eventsource-activity-correlation-and-causation-features)
- [DiagnosticSource User's Guide](https://github.com/dotnet/runtime/blob/main/src/libraries/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md)
- [Output Diagnostic Source to Event Source](https://sourceexample.com/output-diagnostic-source-to-event-source-84888/)
- [MassTransit DiagnosticSource](https://masstransit-project.com/advanced/monitoring/diagnostic-source.html)
- [MassTransit Performance counters](https://masstransit-project.com/advanced/monitoring/perfcounters.html)
- [Introducing Ukadc.Diagnostics](http://www.thejoyofcode.com/Introducing_Ukadc_Diagnostics.aspx)
- [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)
- [Cross-platform diagnostic tools for .NET Core](https://www.hanselman.com/blog/crossplatform-diagnostic-tools-for-net-core)
- [Observing .NET Core Counters (in CloudWatch)](https://www.nocture.dk/2020/05/16/observing-.net-core-counters-in-cloudwatch/)
- [A Lap Around ActivitySource and ActivityListener in .NET 5](https://jimmybogard.com/activitysource-and-listener-in-net-5/)
- [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/)
- [Add SkyWalking + SkyApm-dotnet distributed link tracking system to the microservice framework Demo.MicroServer](https://www.programmersought.com/article/76773716203/)
- [Using System.Diagnostic.DiagnosticSource to intercept database requests](https://bartwullems.blogspot.com/2021/01/using-systemdiagnosticdiagnosticsource.html)
- [Diagnostic log Diagnosticsource in .NET CORE](https://www.programmersought.com/article/68718725762/)
- [EventSource? DiagnosticSource? Both?](https://github.com/dotnet/aspnetcore/issues/2312)
- [.NET Core 2.2: Runtime Events](https://jaliyaudagedara.blogspot.com/2019/01/net-core-22-runtime-events.html)
- [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps/)
- [OpenTelemetry .NET API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md)
- [OpenTelemetry in .NET](https://lightstep.com/blog/opentelemetry-net-all-you-need-to-know/)
- [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/)
- [Monitoring background task](https://rafaelldi.blog/posts/monitoring-background-task/)
- [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/)
- [A brief introduction to DiagnosticSource](https://andrewlock.net/a-brief-introduction-to-diagnostic-source/)
- [Consuming anonymous types with DiagnosticListener in .NET 6](https://andrewlock.net/consuming-anonymous-types-with-diagnosticlistener-in-dotnet6/)
## 📺 Videos
- [Diagnostics Improvements in .NET Core 3.0](https://www.youtube.com/watch?v=fkjetdIdcyg)
- [Introducing the Diagnostics Client Library for .NET Core](https://www.youtube.com/watch?v=Rei6d9nKaFQ)
- [Cool things you can do with .NET Core 3 Tooling - Jonathan Mezach](https://www.youtube.com/watch?v=MSCRzPiGKr8)
- [DiagnosticSource and Activity, Tracing in .NET Part 1 - .NET Concept of the Week - Episode 18](https://www.youtube.com/watch?v=y52l8XR3XK4)
- [.NET Design Review: System.Diagnostics.Activity](https://www.youtube.com/watch?v=a3xPdYi6jYU)
- [Diagnosing .NET 6 issues from sidecar containers using dotnet-monitor](https://www.youtube.com/watch?v=oCY9BsAw5oU)
- [dotnet-monitor Fundamentals - Accessing .NET Diagnostics Easier](https://www.youtube.com/watch?v=pG0t19bEYJw)
- [dotnet-monitor: Enabling a diagnostics sidecar in AKS](https://www.youtube.com/watch?v=3nzZO34nUFQ)
## 🚀 Samples
- [gregkalapos/DiagnosticSource](https://github.com/gregkalapos/DotNetConceptOfTheWeek/tree/master/18_DiagnosticSource)
- [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)
- [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)
- [SkyAPM-dotnet/SkyApm.Diagnostics.AspNetCore/HostingDiagnosticProcessor](https://github.com/SkyAPM/SkyAPM-dotnet/blob/master/src/SkyApm.Diagnostics.AspNetCore/HostingDiagnosticProcessor.cs)
- [dotnet/runtime/DiagnosticsHandler](https://github.com/dotnet/runtime/blob/4f9ae42d861fcb4be2fcd5d3d55d5f227d30e723/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs#L98)
- [dotnet/aspnetcore/HostingApplicationDiagnostics](https://github.com/dotnet/aspnetcore/blob/master/src/Hosting/Hosting/src/Internal/HostingApplicationDiagnostics.cs#L314)
- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.StackExchangeRedis](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis/README.md)
- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.SqlClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.SqlClient)
- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore)
- [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http)
- [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient)
- [jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry)
- [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources)
## Libraries
- [open-telemetry/opentelemetry-dotnet](https://github.com/open-telemetry/opentelemetry-dotnet) - The OpenTelemetry .NET Client
- [Azure/diagnostics-eventflow](https://github.com/Azure/diagnostics-eventflow) - Microsoft Diagnostics EventFlow
- [bluekiri/bluekiri-diagnostics-prometheus](https://github.com/bluekiri/bluekiri-diagnostics-prometheus) - Exposes Diagnostic Source events as prometheus metrics using prometheus-net underneath
- [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.
- [SkyAPM/SkyAPM-dotnet](https://github.com/SkyAPM/SkyAPM-dotnet)
- [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.StackExchangeRedis](https://github.com/open-telemet
gitextract_lytg6_q_/ ├── .github/ │ └── workflows/ │ └── ci.yml ├── .gitignore ├── LICENSE ├── Program.cs ├── README.md ├── _config.yml ├── contributing.md ├── docs/ │ ├── action-filters.md │ ├── ai.md │ ├── api-versioning.md │ ├── asp/ │ │ ├── asp-net-6.md │ │ ├── asp-net-7.md │ │ ├── asp-net-8.md │ │ └── asp-net.md │ ├── aspire.md │ ├── background-tasks.md │ ├── benchmarking.md │ ├── blazor.md │ ├── caching.md │ ├── code-generation.md │ ├── configuration-secrets.md │ ├── correlationId.md │ ├── csharp/ │ │ ├── async/ │ │ │ ├── analyzers.md │ │ │ ├── async-and-await.md │ │ │ ├── async-best-practice.md │ │ │ ├── async-collections/ │ │ │ │ ├── async-collections.md │ │ │ │ ├── async-stream-and-iEnumerableAsync.md │ │ │ │ ├── blocking-collection.md │ │ │ │ ├── iterators.md │ │ │ │ └── lazy-initialization.md │ │ │ ├── asynchronous-messaging.md │ │ │ ├── asynclocal.md │ │ │ ├── awaiter.md │ │ │ ├── cancellation.md │ │ │ ├── channels.md │ │ │ ├── concurrency -vs-parallelism.md │ │ │ ├── configure-await.md │ │ │ ├── continuations.md │ │ │ ├── cpu-bound.md │ │ │ ├── exception-handling.md │ │ │ ├── index.md │ │ │ ├── io-bound.md │ │ │ ├── parallel-for-foreach.md │ │ │ ├── recources.md │ │ │ ├── semaphoreslim.md │ │ │ ├── state-machine.md │ │ │ ├── sync-over-async.md │ │ │ ├── synchronization-context.md │ │ │ ├── task-completion-source.md │ │ │ ├── thread-pool.md │ │ │ ├── thread.md │ │ │ ├── tpl-tap.md │ │ │ └── valuetask.md │ │ ├── boxing.md │ │ ├── closure.md │ │ ├── collections/ │ │ │ ├── collection-data-structure.md │ │ │ ├── enumerable.md │ │ │ └── hashset.md │ │ ├── compiler-lowering.md │ │ ├── conditional-compilation-assert.md │ │ ├── conditional-compilation.md │ │ ├── constant.md │ │ ├── covariance.md │ │ ├── csharp.md │ │ ├── deconstruction.md │ │ ├── enum.md │ │ ├── extension-methods.md │ │ ├── generic.md │ │ ├── implicit-explicit-operators.md │ │ ├── index.md │ │ ├── linq.md │ │ ├── locking/ │ │ │ ├── lock.md │ │ │ ├── monitor.md │ │ │ ├── mutex.md │ │ │ ├── semaphore.md │ │ │ └── thread-safty.md │ │ ├── null-check.md │ │ ├── nullable-reference-types.md │ │ ├── pattern-matching.md │ │ ├── record.md │ │ ├── reflection.md │ │ ├── required.md │ │ ├── span.md │ │ ├── types.md │ │ └── versions/ │ │ ├── 10.md │ │ ├── 11.md │ │ ├── 12.md │ │ ├── 13.md │ │ ├── 7.md │ │ ├── 8.md │ │ ├── 9.md │ │ └── index.md │ ├── dapper.md │ ├── debugging.md │ ├── dependency-injection.md │ ├── diagnostics.md │ ├── distributed-tracing.md │ ├── documentation.md │ ├── dotnet/ │ │ ├── build.md │ │ ├── dotnet-core-architecture.md │ │ ├── dotnet-core-tips.md │ │ ├── dotnet-core.md │ │ ├── dotnet-standard.md │ │ ├── dotnet-template.md │ │ ├── dotnet.md │ │ ├── dotnet10.md │ │ ├── dotnet5.md │ │ ├── dotnet6.md │ │ ├── dotnet7.md │ │ ├── dotnet8.md │ │ ├── dotnet9.md │ │ ├── global-json.md │ │ ├── il.md │ │ ├── metapack.md │ │ ├── multi-target.md │ │ ├── package-management.md │ │ └── source-links.md │ ├── dotnet-cli/ │ │ ├── dotnet-cli.md │ │ ├── dotnet-tools.md │ │ ├── dotnet-watch.md │ │ └── upgrade-assistant.md │ ├── ef-core/ │ │ ├── change-tracking.md │ │ ├── compiled-query.md │ │ ├── eager-loading.md │ │ ├── ef-core.md │ │ ├── ef-core5.md │ │ ├── ef-core6.md │ │ ├── ef-core7.md │ │ ├── ef-core8.md │ │ ├── explicit-loading.md │ │ ├── expression-tree.md │ │ ├── interceptor.md │ │ ├── lazy-loading.md │ │ ├── own-types.md │ │ ├── performance.md │ │ ├── projection.md │ │ ├── query-filter.md │ │ ├── reverse-engineering.md │ │ ├── seed.md │ │ ├── soft-delete.md │ │ ├── split-query.md │ │ └── transaction.md │ ├── elastic-search.md │ ├── environment.md │ ├── exception-validation.md │ ├── feature-flags.md │ ├── formatting.md │ ├── generic-host.md │ ├── github/ │ │ ├── branches/ │ │ │ ├── branch.md │ │ │ ├── checkout.md │ │ │ └── merge.md │ │ ├── cherry-pick.md │ │ ├── conventional-commits.md │ │ ├── copilot.md │ │ ├── git.md │ │ ├── github.md │ │ ├── inspect/ │ │ │ ├── status.md │ │ │ └── tag.md │ │ ├── projects.md │ │ ├── pull-request.md │ │ ├── release-note.md │ │ ├── save-changes/ │ │ │ ├── add.md │ │ │ ├── commit.md │ │ │ ├── diff.md │ │ │ └── stash.md │ │ ├── ssh.md │ │ ├── submodules.md │ │ ├── syncing/ │ │ │ ├── fetch.md │ │ │ ├── pull.md │ │ │ ├── push.md │ │ │ └── remote.md │ │ ├── tools/ │ │ │ └── lense.md │ │ ├── undo-changes/ │ │ │ └── revet.md │ │ └── workflow.md │ ├── graphql.md │ ├── grpc.md │ ├── health-check.md │ ├── hosted-service.md │ ├── hosting.md │ ├── httpclient.md │ ├── httpcontext.md │ ├── id.md │ ├── ide-tools/ │ │ ├── datagrip.md │ │ ├── decompile.md │ │ ├── dotcover.md │ │ ├── dotmemory.md │ │ ├── dotnet-interactive.md │ │ ├── dottrace.md │ │ ├── index.md │ │ ├── resharper-rider.md │ │ ├── terminal-dotfiles.md │ │ ├── vscode.md │ │ └── wsl.md │ ├── index.md │ ├── kestrel.md │ ├── localization.md │ ├── logging.md │ ├── lunch-urls-launchsettings.md │ ├── mapping.md │ ├── maui.md │ ├── mediator.md │ ├── middleware.md │ ├── migration.md │ ├── minimal-api.md │ ├── ml-net.md │ ├── model-binding.md │ ├── msbuild.md │ ├── multi-tenancy.md │ ├── nuget-pack.md │ ├── odata.md │ ├── open-api.md │ ├── options.md │ ├── orleans.md │ ├── others.md │ ├── performance.md │ ├── rate-limiting.md │ ├── razor-pages.md │ ├── regex.md │ ├── registry.md │ ├── remote-development/ │ │ ├── devcontainers.md │ │ ├── github-codespace.md │ │ └── gitpod.md │ ├── resiliency.md │ ├── rest.md │ ├── roslyn-analizers.md │ ├── routing.md │ ├── rx.md │ ├── security/ │ │ ├── authentication.md │ │ ├── authorization.md │ │ ├── dotnet-identity.md │ │ ├── encryption.md │ │ ├── identity-server.md │ │ ├── masl.md │ │ ├── oauth-opencid.md │ │ ├── refresh-token.md │ │ ├── revoking-token.md │ │ └── secret-management.md │ ├── semantic-versioning.md │ ├── serialization.md │ ├── service-discovery.md │ ├── signalr.md │ ├── source-generators.md │ ├── strongly-type-id.md │ ├── testing/ │ │ ├── acceptance-testing.md │ │ ├── architectural-testing.md │ │ ├── bdd.md │ │ ├── contract-testing.md │ │ ├── e2e-testing.md │ │ ├── integration-testing.md │ │ ├── load-testing.md │ │ ├── mocking.md │ │ ├── mutation-testing.md │ │ ├── snapshot-testing.md │ │ ├── tdd.md │ │ ├── test-coverage-analysis.md │ │ ├── test-host.md │ │ ├── testing.md │ │ ├── unit-testing.md │ │ └── xunit.md │ ├── tools/ │ │ ├── cake.md │ │ └── nuke.md │ ├── transitive-dependency.md │ ├── web-api.md │ ├── web-sockets.md │ └── webhook.md ├── mkdocs.yml ├── moveFiles.sh └── requirements.txt
SYMBOL INDEX (2 symbols across 1 files)
FILE: Program.cs
class Program (line 5) | internal class Program
method Main (line 7) | private static void Main(string[] args)
Condensed preview — 268 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (745K chars).
[
{
"path": ".github/workflows/ci.yml",
"chars": 635,
"preview": "name: CI\non:\n push:\n branches:\n - main\n\njobs:\n\n markdown-link-check:\n runs-on: ubuntu-latest\n steps:\n "
},
{
"path": ".gitignore",
"chars": 20,
"preview": "site/\nnode_modules/\n"
},
{
"path": "LICENSE",
"chars": 7022,
"preview": "Creative Commons Legal Code\n\nCC0 1.0 Universal\n\n CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE\n"
},
{
"path": "Program.cs",
"chars": 225,
"preview": "using System;\n\nnamespace Awesome_Dot_Net_Core_Education\n{\n internal class Program\n {\n private static void M"
},
{
"path": "README.md",
"chars": 2607,
"preview": "# 🎨 Awesome .Net Core Education [](https://awesome.re)\n\n[\n- [Azure-Samples/aspire"
},
{
"path": "docs/api-versioning.md",
"chars": 3947,
"preview": "# API Versioning\n\n## 📝 Articles\n\n- [Web API Versioning in ASP.NET Core Detailed Guide](https://procodeguide.com/programm"
},
{
"path": "docs/asp/asp-net-6.md",
"chars": 5533,
"preview": "## ASP.NET Core 6\n\n## Resources\n- [Migration to ASP.NET Core in .NET 6](https://gist.github.com/davidfowl/0e0372c3c1d895"
},
{
"path": "docs/asp/asp-net-7.md",
"chars": 2279,
"preview": "# ASP.NET Core 7\n\n## Articles\n- [ASP.NET Core Roadmap for .NET 7](https://github.com/dotnet/aspnetcore/issues/39504)\n- ["
},
{
"path": "docs/asp/asp-net-8.md",
"chars": 1433,
"preview": "# ASP.NET 8\n\n## Articles\n- [Announcing ASP.NET Core in .NET 8](https://devblogs.microsoft.com/dotnet/announcing-asp-net-"
},
{
"path": "docs/asp/asp-net.md",
"chars": 2920,
"preview": "# ASP.NET Core\n\n## Resources\n- [ASP.NET Core: From 0 to overkill](https://www.youtube.com/playlist?list=PLN0oN9Azm_MMAjk"
},
{
"path": "docs/aspire.md",
"chars": 436,
"preview": "# Aspire\n\n## Aticles\n- [Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8](https://devblogs.micr"
},
{
"path": "docs/background-tasks.md",
"chars": 2633,
"preview": "# Background Tasks\n\n## 📝 Articles\n- [Background tasks with hosted services in ASP.NET Core](https://docs.microsoft.com/e"
},
{
"path": "docs/benchmarking.md",
"chars": 799,
"preview": "# Benchmarking\n\n## 📕 Articles\n- [Profiling .Net Code with BenchmarkDotNet](https://adamsitnik.com/ETW-Profiler/)\n- [Meas"
},
{
"path": "docs/blazor.md",
"chars": 3790,
"preview": "# Blazor\n\n## Resources\n- [dotnet-presentations/blazor-workshop/](https://github.com/dotnet-presentations/blazor-workshop"
},
{
"path": "docs/caching.md",
"chars": 10125,
"preview": "\n# Caching\n\n## 📕 Articles\n- [Response caching in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/performance/"
},
{
"path": "docs/code-generation.md",
"chars": 128,
"preview": "# Code Generation\n\n## Libraries\n- [CodegenCS/CodegenCS](https://github.com/CodegenCS/CodegenCS) - C# Library for Code Ge"
},
{
"path": "docs/configuration-secrets.md",
"chars": 8737,
"preview": "# Configuration & Secrets Management\n\n## 📝 Articles\n\n- [Configure ASP.NET Core MVC](https://www.programmingwithwolfgang."
},
{
"path": "docs/correlationId.md",
"chars": 2474,
"preview": "# CorrelationID\n\n## Articles\n- [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with"
},
{
"path": "docs/csharp/async/analyzers.md",
"chars": 1302,
"preview": "# Analyzers \n\n## Articles\n- [Async code smells and how to track them down with analyzers - Part I](https://cezarypiatek."
},
{
"path": "docs/csharp/async/async-and-await.md",
"chars": 11376,
"preview": "# Async and Await\n\n## 📘 Resources\n- [Links about async/await in C#](https://www.meziantou.net/links-async-await-csharp.h"
},
{
"path": "docs/csharp/async/async-best-practice.md",
"chars": 2472,
"preview": "# Async Best Practice\n\n## 📘 Resources\n- [davidfowl/AspNetCoreDiagnosticScenarios](https://github.com/davidfowl/AspNetCor"
},
{
"path": "docs/csharp/async/async-collections/async-collections.md",
"chars": 19,
"preview": "# Async Collections"
},
{
"path": "docs/csharp/async/async-collections/async-stream-and-iEnumerableAsync.md",
"chars": 2204,
"preview": "# Async Stream And IEnumerableAsync\n\n## 📝 Articles\n\n- [Use streaming in ASP.NET Core SignalR](https://docs.microsoft.com"
},
{
"path": "docs/csharp/async/async-collections/blocking-collection.md",
"chars": 462,
"preview": "# BlockingCollection \n\n## 📝 Articles\n\n- [BlockingCollection Overview](https://docs.microsoft.com/en-us/dotnet/standard/c"
},
{
"path": "docs/csharp/async/async-collections/iterators.md",
"chars": 775,
"preview": "# Iterators\n\n## 📝 Articles\n\n- [Iterators](https://bettersolutions.com/csharp/collections/iterators.htm)\n- [Iterators (C#"
},
{
"path": "docs/csharp/async/async-collections/lazy-initialization.md",
"chars": 143,
"preview": "# Lazy Initialization\n\n## 📝 Articles\n- [Lazy Initialization](https://docs.microsoft.com/en-us/dotnet/framework/performan"
},
{
"path": "docs/csharp/async/asynchronous-messaging.md",
"chars": 485,
"preview": "# Asynchronous Messaging\n\n## 📝 Articles\n\n- [Asynchronous Messaging, Part 1: Basic Distributed Architecture](https://blog"
},
{
"path": "docs/csharp/async/asynclocal.md",
"chars": 647,
"preview": "# AsyncLocal\n\n## 📝 Articles\n- [AsyncLocalT in .NET 4.6](https://www.tabsoverspaces.com/233526-asynclocal-t-in-net-46)\n- "
},
{
"path": "docs/csharp/async/awaiter.md",
"chars": 562,
"preview": "# Awaiter\n\n## 📝 Articles\n\n- [A Tour of Task, Part 6: Results](https://blog.stephencleary.com/2014/12/a-tour-of-task-part"
},
{
"path": "docs/csharp/async/cancellation.md",
"chars": 2496,
"preview": "# Cancellation\n\n## 📝 Articles\n- [Task cancellation in C# and things you should know about it](https://binary-studio.com/"
},
{
"path": "docs/csharp/async/channels.md",
"chars": 3678,
"preview": "\n# Channels\n\n## 📝 Articles\n- [An Introduction to System.Threading.Channels - Stephen Toub](https://devblogs.microsoft.co"
},
{
"path": "docs/csharp/async/concurrency -vs-parallelism.md",
"chars": 2384,
"preview": "# Concurrency Vs Parallelism\n\n## 📝 Articles\n\n- [Concurrency Vs Parallelism](https://hamidmosalla.com/2018/03/16/concurre"
},
{
"path": "docs/csharp/async/configure-await.md",
"chars": 849,
"preview": "# Configure Await\n\n## 📝 Articles\n- [Using ConfigureAwait to improve your application](https://johnthiriet.com/configure-"
},
{
"path": "docs/csharp/async/continuations.md",
"chars": 312,
"preview": "# Continuations\n\n## 📝 Articles\n\n- [A Tour of Task, Part 7: Continuations](https://blog.stephencleary.com/2015/01/a-tour-"
},
{
"path": "docs/csharp/async/cpu-bound.md",
"chars": 908,
"preview": "# Cpu-Bound\n\n## 📝 Articles\n- [Compute-bound tasks](https://b2n.ir/481224)\n- [Task.Run Etiquette and Proper Usage](https:"
},
{
"path": "docs/csharp/async/exception-handling.md",
"chars": 1616,
"preview": "# Exception Handling\n\n## 📝 Articles\n\n- [Exception Handling In Asynchronous Code](https://hamidmosalla.com/2018/06/19/exc"
},
{
"path": "docs/csharp/async/index.md",
"chars": 1200,
"preview": "- [.Net Async](index.md)\n - [Async And Await](async-and-await.md)\n - [Async Best Practice](async-best-practice.md)\n -"
},
{
"path": "docs/csharp/async/io-bound.md",
"chars": 1643,
"preview": "# Io-Bound\n\n## 📝 Articles\n\n- [Deeper Dive into Tasks for an I/O-Bound Operation](http://docs.microsoft.com/en-us/dotnet/"
},
{
"path": "docs/csharp/async/parallel-for-foreach.md",
"chars": 1112,
"preview": "# Parallel For & Foreach\n\n## Articles\n- [Tasks and Parallelism: The New Wave of Multithreading](https://www.codemag.com/"
},
{
"path": "docs/csharp/async/recources.md",
"chars": 1115,
"preview": "# Resources\n\n- [Stephen Toub Blog](https://devblogs.microsoft.com/pfxteam/author/toub/)\n- [Links about async/await in C#"
},
{
"path": "docs/csharp/async/semaphoreslim.md",
"chars": 829,
"preview": "# SemaphoreSlim\n\n## Articles\n- [Using SemaphoreSlim to Make Parallel HTTP Requests in .NET Core](https://mustafatulun.co"
},
{
"path": "docs/csharp/async/state-machine.md",
"chars": 1198,
"preview": "# State Machine\n\n## 📕 Articles\n- [Exploring the async/await State Machine – The Awaitable Pattern](https://vkontech.com/"
},
{
"path": "docs/csharp/async/sync-over-async.md",
"chars": 1077,
"preview": "# Sync Over Async\n\n## Articles\n- [Should I expose synchronous wrappers for asynchronous methods?](https://devblogs.micro"
},
{
"path": "docs/csharp/async/synchronization-context.md",
"chars": 691,
"preview": "# Synchronization Context\n\n## 📝 Articles\n- [Await, SynchronizationContext, and Console Apps](https://devblogs.microsoft."
},
{
"path": "docs/csharp/async/task-completion-source.md",
"chars": 2015,
"preview": "# TaskCompletionSource\n\n## 📝 Articles\n- [Should I expose asynchronous wrappers for synchronous methods?](https://b2n.ir/"
},
{
"path": "docs/csharp/async/thread-pool.md",
"chars": 872,
"preview": "# ThreadPool\n\n## 📕 Articles\n- [Thread Pooling Step By Step](https://www.learncsharptutorial.com/threadpooling-csharp-exa"
},
{
"path": "docs/csharp/async/thread.md",
"chars": 938,
"preview": "# Thread\n\n## 📝 Articles\n- [Threading in C#: GETTING STARTED](https://www.albahari.com/threading/)\n- [Multithreading Basi"
},
{
"path": "docs/csharp/async/tpl-tap.md",
"chars": 1176,
"preview": "# TPL & TAP\n\n## 📕 Articles\n- [Task-based asynchronous programming](https://docs.microsoft.com/en-us/dotnet/standard/para"
},
{
"path": "docs/csharp/async/valuetask.md",
"chars": 1193,
"preview": "# ValueTask\n\n## 📝 Articles\n- [ValueTask Struct](https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.value"
},
{
"path": "docs/csharp/boxing.md",
"chars": 127,
"preview": "# Boxing\n\n## 📺 Videos\n- [What is Boxing in C# and how it affects memory and speed](https://www.youtube.com/watch?v=GVJ5E"
},
{
"path": "docs/csharp/closure.md",
"chars": 1052,
"preview": "# Closure\n\n## 📕 Articles\n- [Delegates, Lambda Expressions & Closures in C#](https://www.alanzucconi.com/2021/03/13/deleg"
},
{
"path": "docs/csharp/collections/collection-data-structure.md",
"chars": 2224,
"preview": "# Collections & Data Structures\n\n## 📘 Resources\n- [An overview of c# collections - RIP Tutorial](https://riptutorial.com"
},
{
"path": "docs/csharp/collections/enumerable.md",
"chars": 1660,
"preview": "# Enumerable\n\n## 📕 Articles\n- [Enumeration in .NET](https://blog.usejournal.com/enumeration-in-net-d5674921512e)\n- [Enum"
},
{
"path": "docs/csharp/collections/hashset.md",
"chars": 9,
"preview": "# HashSet"
},
{
"path": "docs/csharp/compiler-lowering.md",
"chars": 1183,
"preview": "# Compiler & Lowering\n\n## Articles\n- [Lowering in the C# Compiler (and what happens when you misuse it)](https://mattwar"
},
{
"path": "docs/csharp/conditional-compilation-assert.md",
"chars": 228,
"preview": "# Conditional Compilation && Assert\n\n## Videos\n- [Write safer C# with conditional compilation](https://www.youtube.com/w"
},
{
"path": "docs/csharp/conditional-compilation.md",
"chars": 227,
"preview": "# Conditional Compilation & Assert\n\n## Videos\n- [Write safer C# with conditional compilation](https://www.youtube.com/wa"
},
{
"path": "docs/csharp/constant.md",
"chars": 131,
"preview": "# Constant\n\n## 📕 Articles\n- [Group Your Constants and Enums](https://ardalis.com/group-your-constants-and-enums/?utm_sq="
},
{
"path": "docs/csharp/covariance.md",
"chars": 156,
"preview": "# Covariance\n\n## Articles\n- [Covariance and Contravariance in .NET C#](https://levelup.gitconnected.com/covariance-and-c"
},
{
"path": "docs/csharp/csharp.md",
"chars": 891,
"preview": "# C#\n\n## Resources\n- [Learn to code C#](https://dotnet.microsoft.com/en-us/learntocode)\n\n## 📕 Articles\n- [Introducing Th"
},
{
"path": "docs/csharp/deconstruction.md",
"chars": 572,
"preview": "# Deconstruction\n\n## Articles\n- [Deconstructing tuples and other types](https://docs.microsoft.com/en-us/dotnet/csharp/f"
},
{
"path": "docs/csharp/enum.md",
"chars": 1196,
"preview": "# Enum\n\n## 📕 Articles\n- [Smart enums / Type-safe enums in .NET](https://www.meziantou.net/smart-enums-type-safe-enums-in"
},
{
"path": "docs/csharp/extension-methods.md",
"chars": 590,
"preview": "# Extension Methods\n\n## 📕 Articles\n- [Extension Methods Best Practices (Extension Methods Part 6)](https://devblogs.micr"
},
{
"path": "docs/csharp/generic.md",
"chars": 1346,
"preview": "# Generic\n\n## 📕 Articles\n- [Difference between IsGenericType and IsGenericTypeDefinition](https://stackoverflow.com/ques"
},
{
"path": "docs/csharp/implicit-explicit-operators.md",
"chars": 185,
"preview": "# Implicit & Explicit Operators\n\n## 📺 Videos\n- [Automatic type conversion with Implicit and Explicit operators in C#](ht"
},
{
"path": "docs/csharp/index.md",
"chars": 455,
"preview": "- [C#](csharp.md)\n - [Closure](closure.md)\n - [Collections & Data Structures](collection-data-structure.md)\n - [Const"
},
{
"path": "docs/csharp/linq.md",
"chars": 2420,
"preview": "# LINQ\n\n## Resources\n- [EDULINQ – THE E-BOOK](https://codeblog.jonskeet.uk/category/edulinq/)\n\n## 📕 Articles\n- [Monadic "
},
{
"path": "docs/csharp/locking/lock.md",
"chars": 430,
"preview": "# Lock\n\n## Articles\n- [Thread Synchronization Using Locking in C#](https://dotnettutorials.net/lesson/locking-in-multith"
},
{
"path": "docs/csharp/locking/monitor.md",
"chars": 202,
"preview": "# Monitor\n\n## Articles\n- [Monitor Class](https://docs.microsoft.com/en-us/dotnet/api/system.threading.monitor)\n- [BASIC "
},
{
"path": "docs/csharp/locking/mutex.md",
"chars": 275,
"preview": "# Mutex\n\n## Articles\n- [Mutex Class in C#](https://dotnettutorials.net/lesson/mutex-in-multithreading/)\n- [Mutex Class]("
},
{
"path": "docs/csharp/locking/semaphore.md",
"chars": 1156,
"preview": "# Semaphore \n\n## Articles\n- [Semaphore Class in C#](https://dotnettutorials.net/lesson/semaphore-in-multithreading/)\n- ["
},
{
"path": "docs/csharp/locking/thread-safty.md",
"chars": 984,
"preview": "# Thread Safey\n\n## 📝 Articles\n\n- [Thread Safety](https://hamidmosalla.com/2018/07/09/thread-safety/)\n- [What is this thi"
},
{
"path": "docs/csharp/null-check.md",
"chars": 2787,
"preview": "# 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- "
},
{
"path": "docs/csharp/nullable-reference-types.md",
"chars": 4567,
"preview": "# Nullable Reference Types \n\n## 📕 Articles\n- [C#: Different ways to Check for Null](https://www.thomasclaudiushuber.com/"
},
{
"path": "docs/csharp/pattern-matching.md",
"chars": 103,
"preview": "# Pattern Matching\n\n## Videos\n- [C# 9.0: Pattern Matching](https://www.youtube.com/watch?v=9lvx6mzCAE4)"
},
{
"path": "docs/csharp/record.md",
"chars": 2029,
"preview": "# Record\n\n## 📕 Articles\n- [Create record types](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/reco"
},
{
"path": "docs/csharp/reflection.md",
"chars": 12380,
"preview": "# Reflection & Assemblies\n\n## 📘 Resources\n- [Reflection - RIP Tutorial](https://riptutorial.com/csharp/topic/28/reflecti"
},
{
"path": "docs/csharp/required.md",
"chars": 346,
"preview": "# Required\n\n## Articles\n- [required modifier (C# Reference)](https://docs.microsoft.com/en-us/dotnet/csharp/language-ref"
},
{
"path": "docs/csharp/span.md",
"chars": 118,
"preview": "# 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",
"chars": 149,
"preview": "# Types\n\n## 📕 Articles\n\n## 📺 Videos\n- [Where are types allocated in .NET and why people get it so wrong](https://www.you"
},
{
"path": "docs/csharp/versions/10.md",
"chars": 3477,
"preview": "# C# 10\n\n## Resources\n- [C# 10.0 - .NET 6 and Visual Studio 2022 version 17.0](https://github.com/dotnet/csharplang/blob"
},
{
"path": "docs/csharp/versions/11.md",
"chars": 1765,
"preview": "# 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- [Ea"
},
{
"path": "docs/csharp/versions/12.md",
"chars": 405,
"preview": "# 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- [Ann"
},
{
"path": "docs/csharp/versions/13.md",
"chars": 113,
"preview": "# 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",
"chars": 1592,
"preview": "# C# 7\n\n## Resources\n- [C# 7.3 - Visual Studio 2017 version 15.7](https://github.com/dotnet/csharplang/blob/main/Languag"
},
{
"path": "docs/csharp/versions/8.md",
"chars": 2260,
"preview": "# 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"
},
{
"path": "docs/csharp/versions/9.md",
"chars": 4476,
"preview": "\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/"
},
{
"path": "docs/csharp/versions/index.md",
"chars": 90,
"preview": "# [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",
"chars": 516,
"preview": "# Dapper\n\n## Resources\n- [LearnDapper](https://www.learndapper.com/)\n\n## Articles\n- [Using Dapper with ASP.NET Core Web "
},
{
"path": "docs/debugging.md",
"chars": 456,
"preview": "# Debugging\n\n## 📕 Articles\n- [Simplify debugging with DebuggerDisplay attribute dotNET](https://www.code4it.dev/blog/deb"
},
{
"path": "docs/dependency-injection.md",
"chars": 14494,
"preview": "\n# Dependency Injection\n\n## 📝 Articles\n- [Dependency injection guidelines](https://docs.microsoft.com/en-us/dotnet/core/"
},
{
"path": "docs/diagnostics.md",
"chars": 12715,
"preview": "# Diagnostics\n\n## 📕 Articles\n- [DiagnosticSource User's Guide](https://github.com/dotnet/corefx/blob/master/src/System.D"
},
{
"path": "docs/distributed-tracing.md",
"chars": 11134,
"preview": "# Distributed Tracing\n\n## 📕 Articles\n- [Collect a distributed trace](https://docs.microsoft.com/en-us/dotnet/core/diagno"
},
{
"path": "docs/documentation.md",
"chars": 1553,
"preview": "# Documentation\n\n## 📕 Articles\n- [C# Comments: A Complete Guide, Including Examples](https://blog.submain.com/c-comments"
},
{
"path": "docs/dotnet/build.md",
"chars": 1670,
"preview": "# .Net Build\n\n## Articles\n- [Setting up a build with NUKE](https://blog.codingmilitia.com/2020/10/24/2020-10-24-setting-"
},
{
"path": "docs/dotnet/dotnet-core-architecture.md",
"chars": 1487,
"preview": "\n# DotNet Core Architecture\n\n## 📝 Articles\n\n- [ASP.NET CORE ANATOMY – HOW DOES USESTARTUP WORK?](https://www.stevejgordo"
},
{
"path": "docs/dotnet/dotnet-core-tips.md",
"chars": 509,
"preview": "\n# .Net Core Tips\n\n## 📝 Articles\n\n- [davidfowl/AspNetCoreGuidance](https://github.com/davidfowl/AspNetCoreDiagnosticScen"
},
{
"path": "docs/dotnet/dotnet-core.md",
"chars": 3792,
"preview": "# ASP.Net Core\n\n## 📘 Resources\n\n- [ASP.NET Core Application Architecture](https://dotnet.microsoft.com/learn/aspnet/arch"
},
{
"path": "docs/dotnet/dotnet-standard.md",
"chars": 421,
"preview": "# .Net Standard\n\n## 📝 Articles\n- [.NET Standard - Microsoft](https://learn.microsoft.com/en-us/dotnet/standard/net-stand"
},
{
"path": "docs/dotnet/dotnet-template.md",
"chars": 7862,
"preview": "# .Net Template\n\n## Resources\n- [.Net Template Engine GitHub](https://github.com/dotnet/templating)\n\n## 📕 Articles\n- [Cu"
},
{
"path": "docs/dotnet/dotnet.md",
"chars": 1616,
"preview": "# .NET\n\n## 📘 Resources \n- [Introducing The .NET Coding Pack for VS Code - Getting Started with C# for Beginners](https:/"
},
{
"path": "docs/dotnet/dotnet10.md",
"chars": 1426,
"preview": "# .Net 10\n\n## Articles\n\n- [.NET 10 Preview 1 is now available!](https://devblogs.microsoft.com/dotnet/dotnet-10-preview-"
},
{
"path": "docs/dotnet/dotnet5.md",
"chars": 1313,
"preview": "# .Net 5\n\n## 📝 Articles\n\n- [Announcing .NET 5.0 - DevBlogs](https://devblogs.microsoft.com/dotnet/announcing-net-5-0/)\n-"
},
{
"path": "docs/dotnet/dotnet6.md",
"chars": 4751,
"preview": "# .Net 6\n\n## Resources\n- [Migration to ASP.NET Core in .NET 6](https://gist.github.com/davidfowl/0e0372c3c1d895c3ce195ba"
},
{
"path": "docs/dotnet/dotnet7.md",
"chars": 2670,
"preview": "# .Net 7\n\n## Articles\n- [ASP.NET Core updates in .NET 7 Preview 1](https://devblogs.microsoft.com/dotnet/asp-net-core-up"
},
{
"path": "docs/dotnet/dotnet8.md",
"chars": 3461,
"preview": "# .Net 8\n\n## Articles\n- [Announcing .NET 8](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/)\n- [What's new in"
},
{
"path": "docs/dotnet/dotnet9.md",
"chars": 965,
"preview": "# .Net 9\n\n## Articles\n- [Announcing .NET 9](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/)\n- [What's new in"
},
{
"path": "docs/dotnet/global-json.md",
"chars": 298,
"preview": "# global.json File\n\n## Articles\n- [global.json overview](https://learn.microsoft.com/en-us/dotnet/core/tools/global-json"
},
{
"path": "docs/dotnet/il.md",
"chars": 455,
"preview": "# .Net IL\n\n## 📕 Articles\n- [.NET IL Generation - Writing DeepCopy](https://reubenbond.github.io/posts/codegen-2-il-booga"
},
{
"path": "docs/dotnet/metapack.md",
"chars": 1184,
"preview": "\n# MetaPack\n\n## 📝 Articles\n\n- [Microsoft.AspNetCore.App for ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/f"
},
{
"path": "docs/dotnet/multi-target.md",
"chars": 409,
"preview": "# Multi Target\n\n## Articles\n- [Support multiple .NET Framework versions in your project file](https://learn.microsoft.co"
},
{
"path": "docs/dotnet/package-management.md",
"chars": 4432,
"preview": "# .Net Package Management\n\n## Articles\n- [Directory.Build.props: C# 9 for all your projects](https://blog.johnnyreilly.c"
},
{
"path": "docs/dotnet/source-links.md",
"chars": 318,
"preview": "# Source Links\n\n## Articles\n- [Go To Definition improvements for external source in Roslyn](https://devblogs.microsoft.c"
},
{
"path": "docs/dotnet-cli/dotnet-cli.md",
"chars": 1581,
"preview": "\n# .Net CLI\n\n## 📝 Articles\n\n- [.NET CLI overview](https://docs.microsoft.com/en-us/dotnet/core/tools/)\n- [Custom templat"
},
{
"path": "docs/dotnet-cli/dotnet-tools.md",
"chars": 1599,
"preview": "\n# .Net Tools\n\n## 📝 Articles\n\n- [Using .NET Core Tools to Create Reusable and Shareable Tools & Apps](https://weblog.wes"
},
{
"path": "docs/dotnet-cli/dotnet-watch.md",
"chars": 698,
"preview": "# .Net Watch\n\n## 📕 Articles\n- [watch for ASP .NET Core projects](https://dev.to/juxant/auto-refresh-with-dotnet-watch-fo"
},
{
"path": "docs/dotnet-cli/upgrade-assistant.md",
"chars": 634,
"preview": "# Upgrade Assistant\n\n## 📕 Articles\n- [Overview of the .NET Upgrade Assistant](https://docs.microsoft.com/en-us/dotnet/co"
},
{
"path": "docs/ef-core/change-tracking.md",
"chars": 1795,
"preview": "# Change Tracking\n\n## Articles\n- [Change Tracking in EF Core](https://docs.microsoft.com/en-us/ef/core/change-tracking/)"
},
{
"path": "docs/ef-core/compiled-query.md",
"chars": 489,
"preview": "# Compiled Query\n\n## Articles\n- [Compiled queries (LINQ to Entities)](https://learn.microsoft.com/en-us/dotnet/framework"
},
{
"path": "docs/ef-core/eager-loading.md",
"chars": 297,
"preview": "# Eager Loading\n\n## Articles\n- [Eager Loading of Related Data](https://docs.microsoft.com/en-us/ef/core/querying/related"
},
{
"path": "docs/ef-core/ef-core.md",
"chars": 10932,
"preview": "\n# EF Core\n\n## 📝 Articles\n\n- [Entity Framework Core health check](https://www.michalbialecki.com/2020/03/13/entity-frame"
},
{
"path": "docs/ef-core/ef-core5.md",
"chars": 4362,
"preview": "\n# EF Core 5\n\n## 📝 Articles\n\n- [Announcing the Release of EF Core 5.0](https://devblogs.microsoft.com/dotnet/announcing-"
},
{
"path": "docs/ef-core/ef-core6.md",
"chars": 886,
"preview": "# EF Core 6\n\n## 📕 Articles\n- [Announcing Entity Framework Core 6.0 Preview 4: Performance Edition](https://devblogs.micr"
},
{
"path": "docs/ef-core/ef-core7.md",
"chars": 2017,
"preview": "# EF Core 7\n\n## Articles\n- [Announcing Entity Framework 7 Preview 1](https://devblogs.microsoft.com/dotnet/announcing-en"
},
{
"path": "docs/ef-core/ef-core8.md",
"chars": 1206,
"preview": "# EF Core 8\n\n## Articles\n- [EF Core 8 Preview 1: Raw, lazy, and on-time](https://devblogs.microsoft.com/dotnet/announcin"
},
{
"path": "docs/ef-core/explicit-loading.md",
"chars": 141,
"preview": "# Explicit Loading\n\n## Articles\n- [Explicit Loading of Related Data](https://docs.microsoft.com/en-us/ef/core/querying/r"
},
{
"path": "docs/ef-core/expression-tree.md",
"chars": 2179,
"preview": "# Expression Tree\n\n## 📕 Articles\n- [Expression Trees](https://docs.microsoft.com/en-us/dotnet/csharp/expression-trees)\n-"
},
{
"path": "docs/ef-core/interceptor.md",
"chars": 399,
"preview": "# Interceptor\n\n## Articles\n- [Entity Framework Core 5 Interceptors](https://khalidabuhakmeh.com/entity-framework-core-5-"
},
{
"path": "docs/ef-core/lazy-loading.md",
"chars": 481,
"preview": "# lazy Loading\n\n## Articles\n- [Lazy Loading of Related Data](https://docs.microsoft.com/en-us/ef/core/querying/related-d"
},
{
"path": "docs/ef-core/own-types.md",
"chars": 809,
"preview": "# Own Types\n\n## Articles\n- [Owned Entity Types](https://learn.microsoft.com/en-us/ef/core/modeling/owned-entities)\n- [Su"
},
{
"path": "docs/ef-core/performance.md",
"chars": 1944,
"preview": "# Performance\n\n## 📕 Articles\n- [Improve Entity Framework Core Performance](https://khalidabuhakmeh.com/improve-entity-fr"
},
{
"path": "docs/ef-core/projection.md",
"chars": 946,
"preview": "# Projection\n\n## Articles\n- [Expression and Projection Magic for Entity Framework Core](https://benjii.me/2018/01/expres"
},
{
"path": "docs/ef-core/query-filter.md",
"chars": 572,
"preview": "# Query Filters\n\n## Articles\n- [Global Query Filters](https://docs.microsoft.com/en-us/ef/core/querying/filters)\n- [Glob"
},
{
"path": "docs/ef-core/reverse-engineering.md",
"chars": 356,
"preview": "# Reverse Engineering\n\n## Articles\n- [Reverse Engineering](https://learn.microsoft.com/en-us/ef/core/managing-schemas/sc"
},
{
"path": "docs/ef-core/seed.md",
"chars": 355,
"preview": "# 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"
},
{
"path": "docs/ef-core/soft-delete.md",
"chars": 534,
"preview": "# Soft Delete\n\n## Articles\n- [EF Core In depth – Soft deleting data with Global Query Filters](https://www.thereformedpr"
},
{
"path": "docs/ef-core/split-query.md",
"chars": 559,
"preview": "# Split Query\n\n## Articles\n- [Split queries](https://learn.microsoft.com/en-us/ef/core/querying/single-split-queries)\n- "
},
{
"path": "docs/ef-core/transaction.md",
"chars": 1951,
"preview": "# Transaction\n\n## 📕 Articles\n- [Entity Framework Core and LINQ to Entities in Depth (7) Data Changes and Transactions](h"
},
{
"path": "docs/elastic-search.md",
"chars": 3335,
"preview": "# Elastic Search\n\n## Resources\n- [dzharii/awesome-elasticsearch](https://github.com/dzharii/awesome-elasticsearch)\n\n## 📕"
},
{
"path": "docs/environment.md",
"chars": 1620,
"preview": "# Environment\n\n## 📝 Articles\n- [Use multiple environments in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core"
},
{
"path": "docs/exception-validation.md",
"chars": 11228,
"preview": "# Exception && Validation\n\n## 📝 Articles\n\n- [My take on the Result class](https://josef.codes/my-take-on-the-result-clas"
},
{
"path": "docs/feature-flags.md",
"chars": 1863,
"preview": "\n# Feature Flags\n\n## 📝 Articles\n- [Use feature flags in an ASP.NET Core app](https://docs.microsoft.com/en-us/azure/azur"
},
{
"path": "docs/formatting.md",
"chars": 3213,
"preview": "# Formatting\n\n## Resources\n- [Cybermaxs/awesome-analyzers](https://github.com/Cybermaxs/awesome-analyzers) - A curated l"
},
{
"path": "docs/generic-host.md",
"chars": 3152,
"preview": "\n# Generic Host And Web Host\n\n## 📝 Articles\n\n- [ASP.NET Core Web Host](https://docs.microsoft.com/en-us/aspnet/core/fund"
},
{
"path": "docs/github/branches/branch.md",
"chars": 301,
"preview": "# Git Branch\n\n## Resources\n- [pcottle/learnGitBranching](https://github.com/pcottle/learnGitBranching) - An interactive "
},
{
"path": "docs/github/branches/checkout.md",
"chars": 113,
"preview": "# Git Checkout\n\n## Articles\n- [Git Checkout](https://www.atlassian.com/git/tutorials/using-branches/git-checkout)"
},
{
"path": "docs/github/branches/merge.md",
"chars": 564,
"preview": "# Git Merge\n\n## Articles\n- [Git Merge](https://www.atlassian.com/git/tutorials/using-branches/git-merge)\n- [Git merge co"
},
{
"path": "docs/github/cherry-pick.md",
"chars": 238,
"preview": "# Git Cherry Pick\n\n## Articles\n- [Git Cherry Pick](https://www.atlassian.com/git/tutorials/cherry-pick)\n- [How to merge "
},
{
"path": "docs/github/conventional-commits.md",
"chars": 5002,
"preview": "# Conventional Commits\n\n## Articles\n- [Automate Semantic Versioning with Conventional Commits](https://medium.com/@jsilv"
},
{
"path": "docs/github/copilot.md",
"chars": 819,
"preview": "# Copilot\n\n## Refrences\n\n## Articles\n- [Getting Started with GitHub Copilot in JetBrains](https://github.com/github/copi"
},
{
"path": "docs/github/git.md",
"chars": 5776,
"preview": "# Git\n\n## Resources\n- [Learn Git - GitKraken](https://www.gitkraken.com/learn/git)\n- [Git Tutorials - GitKraken](https:/"
},
{
"path": "docs/github/github.md",
"chars": 863,
"preview": "# GitHub\n\n## Articles\n- [Search on GitHub documentation](https://docs.github.com/en/search-github)\n- [Searching for repo"
},
{
"path": "docs/github/inspect/status.md",
"chars": 130,
"preview": "# Git Status\n\n## Articles\n- [Git Status: Inspecting a repository](https://www.atlassian.com/git/tutorials/inspecting-a-r"
},
{
"path": "docs/github/inspect/tag.md",
"chars": 107,
"preview": "# Git Tag\n\n## Articles\n- [git tag](https://www.atlassian.com/git/tutorials/inspecting-a-repository/git-tag)"
},
{
"path": "docs/github/projects.md",
"chars": 1094,
"preview": "# Projects\n\n## Articles\n- [About projects](https://docs.github.com/en/issues/trying-out-the-new-projects-experience/abou"
},
{
"path": "docs/github/pull-request.md",
"chars": 120,
"preview": "# 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",
"chars": 6250,
"preview": "# Release Notes\n\n## Resources\n- [keep a changelog](https://keepachangelog.com/en/1.1.0/)\n\n## Articles\n- [A new public be"
},
{
"path": "docs/github/save-changes/add.md",
"chars": 112,
"preview": "# 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",
"chars": 107,
"preview": "# 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",
"chars": 102,
"preview": "## 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",
"chars": 105,
"preview": "# Git Stash\n\n## Articles\n- [Git stash](https://www.atlassian.com/git/tutorials/saving-changes/git-stash)\n"
},
{
"path": "docs/github/ssh.md",
"chars": 474,
"preview": "# SSH\n\n## Articles\n- [Generating a new SSH key and adding it to the ssh-agent](https://docs.github.com/en/authentication"
},
{
"path": "docs/github/submodules.md",
"chars": 1066,
"preview": "# Git SubModules\n\n## Articles\n- [Git submodules](https://www.atlassian.com/git/tutorials/git-submodule)\n- [Add a submodu"
},
{
"path": "docs/github/syncing/fetch.md",
"chars": 97,
"preview": "# Git Fetch\n\n## Articles\n- [git fetch](https://www.atlassian.com/git/tutorials/syncing/git-fetch)"
},
{
"path": "docs/github/syncing/pull.md",
"chars": 94,
"preview": "# Git Pull\n\n## Articles\n- [git pull](https://www.atlassian.com/git/tutorials/syncing/git-pull)"
},
{
"path": "docs/github/syncing/push.md",
"chars": 94,
"preview": "# Git Push\n\n## Articles\n- [git push](https://www.atlassian.com/git/tutorials/syncing/git-push)"
},
{
"path": "docs/github/syncing/remote.md",
"chars": 90,
"preview": "# Git Remote\n\n## Articles\n- [git syncing](https://www.atlassian.com/git/tutorials/syncing)"
},
{
"path": "docs/github/tools/lense.md",
"chars": 200,
"preview": "# Git Lense\n\n## Videos\n- [GitLens Extension in Visual Studio Code](https://www.youtube.com/watch?v=C6wMNoe78oc)\n- [10 th"
},
{
"path": "docs/github/undo-changes/revet.md",
"chars": 107,
"preview": "# Git Revet\n\n## Articles\n- [Git Revert](https://www.atlassian.com/git/tutorials/undoing-changes/git-revert)"
},
{
"path": "docs/github/workflow.md",
"chars": 5942,
"preview": "# Git Workflow \n\n## Articles\n- [Comparing Workflows](https://www.atlassian.com/git/tutorials/comparing-workflows)\n- [Git"
},
{
"path": "docs/graphql.md",
"chars": 6764,
"preview": "# GraphQL\n\n## 📘 Resources\n- [chentsulin/awesome-graphql](https://github.com/chentsulin/awesome-graphql) - Awesome list o"
},
{
"path": "docs/grpc.md",
"chars": 9459,
"preview": "\n# gRPC\n\n## 📘 Resources\n- [Awesome gRPC](https://github.com/grpc-ecosystem/awesome-grpc)\n- [gRPC for WCF developers e-bo"
},
{
"path": "docs/health-check.md",
"chars": 2002,
"preview": "# Health Check\n\n## 📕 Articles\n- [Health monitoring](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/i"
},
{
"path": "docs/hosted-service.md",
"chars": 1340,
"preview": "# Hosted Service\n\n## 📝 Articles\n\n- [Background tasks with hosted services in ASP.NET Core](https://docs.microsoft.com/en"
},
{
"path": "docs/hosting.md",
"chars": 776,
"preview": "\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-u"
},
{
"path": "docs/httpclient.md",
"chars": 8379,
"preview": "\n# HttpClient\n\n## 📝 Articles\n- [Make HTTP requests using IHttpClientFactory in ASP.NET Core](https://docs.microsoft.com/"
},
{
"path": "docs/httpcontext.md",
"chars": 2063,
"preview": "# HttpContext && HttpContextAccessor\n\n## 📝 Articles\n- [Accessing HttpContext outside of framework components in ASP.NET "
},
{
"path": "docs/id.md",
"chars": 1150,
"preview": "# ID\n\n## Articles\n- [ULIDs and Primary Keys](https://blog.daveallie.com/ulid-primary-keys)\n\n## Libraries\n- [RobThree/NUl"
},
{
"path": "docs/ide-tools/datagrip.md",
"chars": 134,
"preview": "# DataGrip\n\n## Resources\n- [DataGrip Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUaY35luxpL"
},
{
"path": "docs/ide-tools/decompile.md",
"chars": 191,
"preview": "# Decompile & DotPeek\n\n## Resources\n- [dotPeek Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyI"
},
{
"path": "docs/ide-tools/dotcover.md",
"chars": 134,
"preview": "# DotCover\n\n## Resources\n- [dotCover Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUZXzTVWvzK"
},
{
"path": "docs/ide-tools/dotmemory.md",
"chars": 409,
"preview": "# DotMemory\n\n## Resources\n- [DotMemory Playlist - JetBrainsTv](https://www.youtube.com/playlist?list=PLQ176FUIyIUY7z-5Uw"
},
{
"path": "docs/ide-tools/dotnet-interactive.md",
"chars": 1310,
"preview": "# .NET Interactive\n\n## 📘 Resources\n- [GitHub Repository](https://github.com/dotnet/interactive) \n- [dotnet/try](https://"
},
{
"path": "docs/ide-tools/dottrace.md",
"chars": 321,
"preview": "# DotTrace\n\n## Resources\n- [DotTrace Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUbfsTxYqjl"
},
{
"path": "docs/ide-tools/index.md",
"chars": 175,
"preview": "- [IDE & Tools](index.md)\n - [DotMemory](dotmemory.md)\n - [GitHub](github.md)\n - [Resharper & Rider](resharper-rider."
},
{
"path": "docs/ide-tools/resharper-rider.md",
"chars": 3129,
"preview": "# Resharper Tips\n\n## Resources\n- [Rider Playlist - JetBrainsTV](https://www.youtube.com/playlist?list=PLQ176FUIyIUbcAs90"
},
{
"path": "docs/ide-tools/terminal-dotfiles.md",
"chars": 11873,
"preview": "# Terminal & Dotfiles\n\n## Resources\n- [webpro/awesome-dotfiles](https://github.com/webpro/awesome-dotfiles) - A curated "
},
{
"path": "docs/ide-tools/vscode.md",
"chars": 3516,
"preview": "# VS Code\n\n## Articles\n- [Development container CLI](https://code.visualstudio.com/docs/remote/devcontainer-cli)\n- [VS C"
},
{
"path": "docs/ide-tools/wsl.md",
"chars": 2166,
"preview": "# WSL\n\n## 📕 Articles\n- [Install Linux on Windows with WSL](https://learn.microsoft.com/en-us/windows/wsl/install) ⭐\n- [S"
},
{
"path": "docs/index.md",
"chars": 2313,
"preview": "# 🎨 Awesome .Net Core Education [](https://awesome.re)\n\n[\n\n## 📝 Articles\n- [Loggi"
},
{
"path": "docs/lunch-urls-launchsettings.md",
"chars": 2630,
"preview": "# Lunch Urls & launchSettings & Watch\n\n## Articles\n- [5 ways to set the URLs for an ASP.NET Core app](https://andrewlock"
},
{
"path": "docs/mapping.md",
"chars": 1468,
"preview": "# Mapping\n\n## 📝 Articles\n\n- [Let's talk about mapping objects in c-sharp (C#)](https://josef.codes/lets-talk-about-mappi"
},
{
"path": "docs/maui.md",
"chars": 704,
"preview": "# MAUI\n\n## Resources\n- [dotnet-presentations/dotnet-maui-workshop](https://github.com/dotnet-presentations/dotnet-maui-w"
}
]
// ... and 68 more files (download for full content)
About this extraction
This page contains the full source code of the mehdihadeli/awesome-dotnet-core-education GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 268 files (704.2 KB), approximately 202.7k tokens, and a symbol index with 2 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.