KeyValuePair<TK,TV>
не стоит использовать в качестве ключа хеш-таблиц, так как он не переопределяет методы Equals
/HashCode
.Это может привести к снижению производительности в 100 раз, так как хеш-код KVP будет одинаковым, если ключ и значение совпадают. Почему?
Потому что по умолчанию для blittable структур хеш-код является просто операцией XOR (^) всех полей (смотрите третий скрин).
Большое время обработки вызвано коллизиями и последовательным поиском, а также огромными выделениями памяти, связанным с упаковкой каждого экземпляра для вызова метода
Equals
.👉 Подробнее
#dotnet #csharp #performance #tip #benchmarks
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🤔6😁1
Инструмент эффективно устраняет следующие наиболее распространенные ошибки и предупреждения NuGet:
☑️ NU1107 – Unable to resolve dependency constraints between packages.
☑️ NU1202 – A dependency package doesn’t contain any assets compatible with the project.
☑️ NU1605 – A dependency package specified a version constraint on a higher version of a package than restore ultimately resolved.
☑️ NU1701 – PackageTargetFallback / AssetTargetFallback was used to select assets from a package.
👉 Анонс инструмента
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔13👍7❤1
Антон Антонов, сеньор фуллстек-разработчик, рассматривает кейс реализации обработки ошибок с исполованием IExceptionHandler в .NET Core 8.0.
Этот подход следует похожим паттернам предыдущих методов обработки ошибок в ASP.NET Core, но добавляет дополнительную возможность внедрения кастомной логики обработки исключений в exception handling middleware.
📌 Exception handling middleware эффективно управляет несколькими ключевыми аспектами:
✅ Он обрабатывает случаи, когда клиент закрывает запрос (499 Client Closed Request) или когда ответ уже начал отправляться.
✅ Он также очищает контекст HTTP, устанавливает соответствующий HTTP-код, логирует ошибку и добавляет диагностику.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Обработка ошибок с помощью IExceptionHandler в ASP.NET Core 8.0
Давайте рассмотрим, как вы можете реализовать обработку ошибок, используя IExceptionHandler в .NET Core 8.0. Этот подход следует похожим паттернам предыдущих методов обработки ошибок в ASP.NET Core,...
👍18❤1
FirstOrDefault
отлично подходит для запросов к базе данных, метод Find
, специально разработанный для экземпляров List<T>
, может предложить повышение производительности при работе со списками в памяти. #dotnet #csharp #tip by Adem Sahin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤35👍33🤔10
This media is not supported in your browser
VIEW IN TELEGRAM
🛠️ Interceptors
Новая статья в серии от JetBrains про возможности C# 12 и то, как ReSharper и Rider упрощают их внедрение в вашу кодовую базу.
Новая статья в серии от JetBrains про возможности C# 12 и то, как ReSharper и Rider упрощают их внедрение в вашу кодовую базу.
👍5🌚2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы
Мы уже умеем довольно много, и наша база содержит полезную информацию. А еще она умеет проверять новые данные, когда мы их добавляем. Пора разобраться, как их обрабатывать, чтобы узнать из данных что-то интересное.
👉 Читать статью
👉 Часть 1
👉 Часть 2
Мы уже умеем довольно много, и наша база содержит полезную информацию. А еще она умеет проверять новые данные, когда мы их добавляем. Пора разобраться, как их обрабатывать, чтобы узнать из данных что-то интересное.
👉 Читать статью
👉 Часть 1
👉 Часть 2
😁26🤔2
Улучшения производительности JsonSerializer в .NET 8 на практике
#dotnet #csharp #benchmarks by Dave Callan
#dotnet #csharp #benchmarks by Dave Callan
🔥28👍10💯1
🔹 SQL-Server: Exploration of datetime2(7) precision (C#)
🔹 Reveal Data provider parameter values at run time
🔹 C# Generic Math
🔹 Working with .zip files in C#
🔹 Working with the using directive in C#
🔹 C# .NET Tools with System.CommandLine
🔹 C# Language extensions
🔹 Tips on interacting with a database with C#
🔹 Update Bootstrap in Visual Studio
🔹 C# Different way to join string array
🔹 ASP.NET Core/Razor Pages export to Excel
🔹 Using FluentScheduler with C#
🔹 Visual Studio debugging windows services
🔹 C# User-defined explicit and implicit conversion operators
🔹 Gentle introduction for generics (C#)
🔹 Bogus custom Dataset
🔹 Gentle introduction to Generic Repository Pattern with C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Какие критерии экспертности для вас важны?
Anonymous Poll
52%
Опыт работы
39%
Успешные кейсы
4%
Известность в сообществе
26%
Умение обучать других
9%
Образование
3%
Наличие сертификатов
57%
Глубокие знания в специализированной области
0%
Свой вариант (напишу в комментарии)
22%
Посмотреть результаты
🔥10👍4🎉3
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
💰⬆️ 10 факторов, влияющих на зарплату программиста
Узнайте 10 факторов, как превратиться из рядового программиста в высокооплачиваемого специалиста и научиться аргументированно запрашивать зарплату выше рынка.
Читать статью
#новость
Узнайте 10 факторов, как превратиться из рядового программиста в высокооплачиваемого специалиста и научиться аргументированно запрашивать зарплату выше рынка.
Читать статью
#новость
👍6🙏1🥱1
Так вот, в новой веб-версии магазина приложений для Windows 10/11 под названием Microsoft Store команда перешла во фронтенде с React на Shoelace + Lit + Vite, а также перенесла серверную часть на ASP.NET.
Обновлённая веб-версия Microsoft Store разработана как замена существующему способу поиска приложений Windows в интернете, при котором ссылки с сайта открываются в клиенте Microsoft Store в Windows 10 или Windows 11.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🥱2🤔1
1️⃣ Для .NET Core достаточно установить свойство
MSBuild
'ServerGarbageCollection
'.2️⃣ Для .NET вам придется либо изменить
app.config
, либо использовать nuget-пакет MSTest, который делает тестовый проект исполняемым. В этом случае вы можете добавить app.config
с включенным серверным GC.Другие способы: установить переменную окружения
COMPlus_gcServer
или DOTNET_gcServer
#dotnet #csharp #tip by Сергей Тепляков
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Представьте, что вы оказались в сложной ситуации, и вам нужно принять решение. Какого сотрудника вы возьмете в команду?
Anonymous Poll
22%
С достойным портфолио и хард-скиллами, но неприятного в общении
52%
Легкого в общении и целеустремленного, но проседающего в технических навыках
26%
Посмотреть результаты
😁12💯1
📌 Из доклада вы узнаете о механизмах работы Blazor (Server и WebAssembly), возможностях Razor и библиотек компонентов для него.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22👍3🥱2🔥1
⏯ YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка
#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
⚡Свежие и обновленные статьи: подборка для C#-разработчика с Code Maze
🔸 Модификатор доступа к файлу в C#: какие проблемы решает и как использовать
🔸 Получение данных из MongoDB с использованием ObjectId в C#: логическое продолжение руководства «Начало работы с ASP.NET Core и MongoDB»
🔸 Отладка и профилирование многопоточных приложений .NET: обзор инструментов, доступных в Visual Studio
🔸 Как сериализовать объект в query string format в C#: проблемы, которые могут возникнуть при работе с вложенными объектами и массивами, и способы их решения
🔸 Service discovery в .NET: что это и как использовать
🔸 Как получить имена свойств JSON в C#: использование Newtonsoft.Json и System.Text.Json
🔸 Реализация кастомного Authorization Policy Provider с помощью ASP.NET Core: как получить и предоставить политику авторизации для определенного имени политики
🔸 Значения по умолчанию для лямбда-выражений в C#: обзор одного из многих улучшений, появившихся в C# 12
🔸 Управление точностью десятичных чисел в C#: от теории к практике
🔸 Как инициализировать параметры record в C#: простой гайд с примерами
🔸 Различия между NUnit, xUnit and MSTest: на заметку C#-разработчику
🔸 Архитектурный паттерн «клиент-сервер» на C#: как работает паттерн, его компоненты, преимущества и проблемы, которые он создает
🔸 Согласованное байтовое представление строк без явного указания кодировки: рабочий кейс для C#-разработчика
🔸 Как добавить или обновить значения строки запроса в C#: обзор различных способов решения задачи
🔸 Создание распределенных приложений с помощью .NET Aspire: использование нового стека на практике
🔸 Thread.Sleep vs. Task.Delay: сравнение двух часто используемых механизмов для введения задержек в коде
🔸 Как экранировать символ '\' в C#: обзор лучших практик
🔸 Как сохранить список в текстовый файл на C#: использование StreamWriter и File
🔸 Как проверить валидность строки в формате JSON на C#: практика работы с популярным форматом данных
🔸 Как откатить изменения в миграции EF Core: что делать, если накосячил
🔸 Как сравнить два списка по одному свойству в C#: обзор нескольких методов для понимания контекста
🔸 Как добавить custom claims к access токену в Duende Identity Server: практика работы с интерфейсом IProfileService
🔸 Как обрезать строку в .NET: сравнение различных методов с акцентом на производительность
🔸 Как получить значение свойства по имени в C#: использование рефлексии на практике
🔸 Самый быстрый способ преобразования JObject в словарь на C#: пример сценариев, в которых словарь является более подходящей структурой данных
#чтопроисходит
🔸 Модификатор доступа к файлу в C#: какие проблемы решает и как использовать
🔸 Получение данных из MongoDB с использованием ObjectId в C#: логическое продолжение руководства «Начало работы с ASP.NET Core и MongoDB»
🔸 Отладка и профилирование многопоточных приложений .NET: обзор инструментов, доступных в Visual Studio
🔸 Как сериализовать объект в query string format в C#: проблемы, которые могут возникнуть при работе с вложенными объектами и массивами, и способы их решения
🔸 Service discovery в .NET: что это и как использовать
🔸 Как получить имена свойств JSON в C#: использование Newtonsoft.Json и System.Text.Json
🔸 Реализация кастомного Authorization Policy Provider с помощью ASP.NET Core: как получить и предоставить политику авторизации для определенного имени политики
🔸 Значения по умолчанию для лямбда-выражений в C#: обзор одного из многих улучшений, появившихся в C# 12
🔸 Управление точностью десятичных чисел в C#: от теории к практике
🔸 Как инициализировать параметры record в C#: простой гайд с примерами
🔸 Различия между NUnit, xUnit and MSTest: на заметку C#-разработчику
🔸 Архитектурный паттерн «клиент-сервер» на C#: как работает паттерн, его компоненты, преимущества и проблемы, которые он создает
🔸 Согласованное байтовое представление строк без явного указания кодировки: рабочий кейс для C#-разработчика
🔸 Как добавить или обновить значения строки запроса в C#: обзор различных способов решения задачи
🔸 Создание распределенных приложений с помощью .NET Aspire: использование нового стека на практике
🔸 Thread.Sleep vs. Task.Delay: сравнение двух часто используемых механизмов для введения задержек в коде
🔸 Как экранировать символ '\' в C#: обзор лучших практик
🔸 Как сохранить список в текстовый файл на C#: использование StreamWriter и File
🔸 Как проверить валидность строки в формате JSON на C#: практика работы с популярным форматом данных
🔸 Как откатить изменения в миграции EF Core: что делать, если накосячил
🔸 Как сравнить два списка по одному свойству в C#: обзор нескольких методов для понимания контекста
🔸 Как добавить custom claims к access токену в Duende Identity Server: практика работы с интерфейсом IProfileService
🔸 Как обрезать строку в .NET: сравнение различных методов с акцентом на производительность
🔸 Как получить значение свойства по имени в C#: использование рефлексии на практике
🔸 Самый быстрый способ преобразования JObject в словарь на C#: пример сценариев, в которых словарь является более подходящей структурой данных
#чтопроисходит
Code Maze
File Access Modifier in C# - Code Maze
In this article, we will learn about the “file” access modifier recently introduced in C# 11. Let’s dive in.
❤7👍6🥱2🥰1
⚡️ Команда .NET представила MSTest Runner, новый легковесный инструмент для запуска тестов MSTest
📌 Его цель — сделать тесты более портативными и надежными, ускорить их выполнение и предоставить расширяемый опыт тестирования.
🛠 MSTest Runner — это способ создания и запуска тестов MSTest как независимого портативного исполняемого файла.
Для размещения и запуска тестов используется простое консольное приложение, поэтому для их выполнения не требуются внешние инструменты, такие как
Это делает MSTest Runner идеальным инструментом для написания тестов для устройств с ограниченной мощностью или памятью.
📌 Установка: MSTest Runner поставляется вместе с пакетом NuGet
После этих изменений пересоберите тестовый проект, и ваши тесты создадут исполняемый файл, который напрямую их запускает.
📌 Его цель — сделать тесты более портативными и надежными, ускорить их выполнение и предоставить расширяемый опыт тестирования.
🛠 MSTest Runner — это способ создания и запуска тестов MSTest как независимого портативного исполняемого файла.
Для размещения и запуска тестов используется простое консольное приложение, поэтому для их выполнения не требуются внешние инструменты, такие как
vstest.console
, dotnet test
или Visual Studio
. Это делает MSTest Runner идеальным инструментом для написания тестов для устройств с ограниченной мощностью или памятью.
📌 Установка: MSTest Runner поставляется вместе с пакетом NuGet
MSTest.TestAdapter
начиная с версии 3.2.0
. Для его включения в ваш проект достаточно установить обновленный пакет и установить два свойства MSBuild: <EnableMSTestRunner>
и <OutputType>
.После этих изменений пересоберите тестовый проект, и ваши тесты создадут исполняемый файл, который напрямую их запускает.
🤔12🔥6🥱6🌚1
💬 А вы отключаете top-level statements в своем проекте?
Top-level statements позволяют отказаться от некоторых формальностей при написании приложений и сделать код проще.
Возможно, это не очень будет заметно при написании сложных приложений, но может хорошо сэкономить время при проведении исследований, создании небольших утилит и прототипов.
👍 — конечно отключаю
🤔 — не отключаю
🥱 — не знаю, что это такое
Top-level statements позволяют отказаться от некоторых формальностей при написании приложений и сделать код проще.
Возможно, это не очень будет заметно при написании сложных приложений, но может хорошо сэкономить время при проведении исследований, создании небольших утилит и прототипов.
👍 — конечно отключаю
🤔 — не отключаю
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145🤔98🥱66👏3❤2