Библиотека шарписта | C#, F#, .NET, ASP.NET
22.6K subscribers
1.26K photos
26 videos
82 files
3.55K links
Все самое полезное для C#-разработчика в одном канале.

Список наших каналов: https://teleg.eu/proglibrary/8353
Учиться у нас: https://proglib.io/w/907158ab

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
🤔 Может ли модификатор readonly ускорить код?

Модификатор readonly — это ключевое слово в C#, которое можно применять к полям. Когда поле помечено как readonly, это означает, что ему можно присвоить значение только во время объявления или в конструкторе класса. Steven Giesel разбирается, как readonly влияет на производительность.

👉 TLDR
Выигрыш в производительности есть, но он незначительный. Основная причина использования readonly полей — сделать код более надежным и сопровождаемым, а не быстрым.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧰 MSBuild Structured Log Viewer — расширение VS Code для просмотра структурированных логов MS Build, которое отображает содержимое бинарных файлов логов MSBuild (.binlog) в виде дерева.

👉 Ключевые фичи:

Множественный поиск по одному binlog
Возможность добавлять закладки для записей лога при изучении binlog
Открытие длинных записей лога во вкладках редактора

📦 Скачать
Please open Telegram to view this post
VIEW IN TELEGRAM
Забавно, что .NET Aspire еще находится в предварительной версии, а некоторые вакансии уже требуют опыт работы...
🦾🧠🏋️Качаем мозги к лету!

Курс «Алгоритмы и структуры данных» для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.

➡️ Алгоритмы и структуры данных 35 990 ₽ 21 594

⭐️ Переходите и активируйте бесплатные вводные занятия курсаhttps://proglib.io/w/da6727d1

Вас ждут:

– 150 практических заданий и 47 видеолекций

– бессрочный доступ к обучению

– поддержка преподавателя в чате

А также очень харизматичный спикер из Яндекса 🙌🏻
rider.pdf
32.9 KB
👩‍💻 JetBrains Rider: советы и трюки

Dan Clarke, разработчик и популярный ютубер, делится полезными шорткатами для управления IDE и кодом.

📺 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Удается ли вам отдыхать вне работы?

👍 — да, почти всегда
🙏 — да, иногда
🤔 — нет, всегда работа в голове
🥱 — какой отдых? Я же айтишник

#холивар
💡 Атрибут [MemberNotNullWhen] помогает компилятору указать, при каких условиях указанное поле или свойство не имеет значения NULL, что улучшает статический анализ кода.

#csharp #tip by Łukasz Żabski
Please open Telegram to view this post
VIEW IN TELEGRAM
👌 Рефакторинг C#-кода с помощью primary constructors

Primary constructors позволяют уменьшить количество шаблонного кода. Узнайте подробнее об инструментах рефакторинга в Visual Studio и VS Code с помощью нового синтаксиса, представленного в C# 12/.NET 8.

👉 Читать
🧰EntityFrameworkCore.Exceptions.PostgreSQL — инструмент для обработки ошибок базы данных при работе с Entity Framework Core. Поддерживает SQLServer, PostgreSQL, SQLite, Oracle и MySql.

При использовании EF Core для доступа к данным все исключения БД оборачиваются в DbUpdateException. Если вам нужно выяснить, было ли исключение вызвано уникальным ограничением, слишком длинным значением или отсутствием значения для обязательного столбца, вам нужно будет изучить конкретный экземпляр подкласса DbException и проверить код ошибки, чтобы определить точную причину.

EntityFramework.Exceptions упрощает это, обрабатывая все специфичные для базы данных детали и выбрасывая разные исключения. Всё, что вам нужно сделать, это настроить DbContext, вызвав UseExceptionProcessor, и обработать такие исключения, как UniqueConstraintException, CannotInsertNullException, MaxLengthExceededException, NumericOverflowException, ReferenceConstraintException.

В случае UniqueConstraintException и ReferenceConstraintException вы можете получить имя связанного ограничения с помощью свойства ConstraintName. ConstraintProperties будет содержать свойства, которые являются частью ограничения.

📦 NuGet
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😉 55 промтов для ChatGPT, которые помогут подготовиться к собеседованию

Вы когда-нибудь задумывались, как можно использовать искусственный интеллект для того, чтобы подготовиться к техническим собеседованиям лучше, быстрее и эффективнее? Мы вот — да! И поэтому подготовили 55 промтов, которые помогут сделать это.

В статье собраны шаблоны запросов, которые желательно «докрутить» под себя.

🔗 Читать статью
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
🧮 Разработка и использование парсера .NET AsciiMath в расширении Markdig

Эндрю Лок изучил несколько существующих решений, позволяющих конвертировать в MathML и отображать математические формулы, но ничего лучше портирования реализации Ruby AsciiDoctor на .NET не нашел.

Читайте подробнее о реализации и том, как автор использовал ChatGPT для упрощения рутинных задач.
🅾️ Что такое «О» большое: объясняем на простых примерах

«О» большое (Big O notation) — это математическая нотация, которая позволяет оценить, как изменяется время выполнения алгоритма или объём используемой памяти в зависимости от размера входных данных.

Мы написали подробный гайд по видам сложности, проиллюстрировав их понятными примерами.

🔗 Читать статью
🔗 Зеркало
🤔 Сталкивались ли вы когда-нибудь с исключением System.InvalidOperationException: Collection was modified; enumeration operation may not execute.?

Чтобы узнать, что List был изменен, Steven Giesel предложил ввести механизм версионности, который заключается в следующем:

☑️ В классе списка вводится поле version, которое инкрементируется каждый раз при изменении списка (добавлении, удалении элементов или изменении существующих).
☑️ При создании итератора для перечисления элементов списка запоминается текущее значение version.
☑️ В каждом вызове метода MoveNext() итератора происходит проверка: если текущее значение version списка отличается от значения, зафиксированного при создании итератора, генерируется исключение InvalidOperationException. Это предотвращает непредвиденные последствия от изменения коллекции во время её перебора.

Таким образом, при попытке изменить список в процессе его перечисления, система обнаруживает несоответствие версий и активно препятствует продолжению некорректной операции, защищая от ошибок выполнения и потенциальных багов в программе.
🚫 Как потреблять API с ограничением по RPS в .NET приложениях

Сеньор .NET-разработчик Степан Минин рассказывает, как отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.

👉 Читать
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
The Best Dell Monitor for Your Needs