https://github.com/ClosedXML/ClosedXML/wiki/Finding-and-extracting-the-data
Ссылки из хрома
C# и MongoDB
https://metanit.com/nosql/mongodb/4.1.php
https://docs.microsoft.com/ru-ru/aspnet/core/index?view=aspnetcore-3.1#recommended-learning-path
https://docs.microsoft.com/ru-ru/dotnet/architecture/microservices/multi-container-microservice-net-applications/microservice-application-design
Февраль — вкладки
Обзор Asp.Net Core
https://docs.microsoft.com/ru-ru/aspnet/core/index?view=aspnetcore-3.1#recommended-learning-path
Доп разделы в MVC
https://docs.microsoft.com/ru-ru/aspnet/core/data/ef-mvc/advanced?view=aspnetcore-3.1
Шаблон репозитория и единиц работы
https://docs.microsoft.com/ru-ru/aspnet/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application
Создание веб-API
https://docs.microsoft.com/ru-ru/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio
Создание веб-API с помощью ASP.NET Core и MongoDB
https://docs.microsoft.com/ru-ru/aspnet/core/tutorials/first-mongo-app?view=aspnetcore-3.1&tabs=visual-studio
Асинхронное программирование с использованием ключевых слов async и await
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/concepts/async/
https://docs.microsoft.com/ru-ru/dotnet/standard/async
Микрослужбы
https://docs.microsoft.com/ru-ru/dotnet/architecture/microservices/architect-microservice-container-applications/asynchronous-message-based-communication
Проект на контейнерах
https://github.com/dotnet-architecture/eShopOnContainers
Отправка файлов
https://docs.microsoft.com/ru-ru/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.1
Идентити
https://docs.microsoft.com/en-Us/aspnet/core/security/authentication/social/?view=aspnetcore-3.1&tabs=visual-studio
https://kenhaggerty.com/articles/article/aspnet-core-22-razor-pages-logout-behavior
Настройка Identity
https://docs.microsoft.com/en-Us/aspnet/core/security/authentication/identity-configuration?view=aspnetcore-3.1
Contains для IQueryable и IEnumerable
Когда Contains вызывается для коллекции IEnumerable, используется реализация .NET Core. Когда Contains вызывается для объекта IQueryable, используется реализация базы данных.
Вызов Contains для IQueryable обычно предпочтительнее по соображениям производительности. При использовании IQueryable фильтрация выполняется сервером базы данных. Если сначала создается IEnumerable, все строки должны возвращаться с сервера базы данных.
Вызов ToUpper снижает производительность. Код ToUpper добавляет функцию в предложение WHERE TSQL-оператора SELECT. Добавленная функция не позволяет оптимизатору использовать индекс. Учитывая, что SQL устанавливается без учета регистра, рекомендуется не использовать вызов ToUpper, когда он не требуется.
Отсюда: https://docs.microsoft.com/ru-ru/aspnet/core/data/ef-rp/sort-filter-page?view=aspnetcore-3.1
Динамические вкладки в WPF
Сделала проект с этим кодом.
https://www.technical-recipes.com/2017/adding-tab-items-dynamically-in-wpf/