Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Улучшения производительности в .NET 8

Та самая статья, которая заслуживает отдельного поста. Да что тут говорить — она тянет на мини-книгу и включает обзор более чем 500 PR, каждый из которых был направлен на то, чтобы сделать .NET 8 значительно быстрее предыдущей версии. И да, у проекта Андрея Акиньшина BenchmarkDotNet здесь просто звездный час.

🤩 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎓💼 ТОП-9 не самых очевидных компаний для стажировки в ИТ

Везде просят опыт работы... Но где его взять? Как раз об этом сейчас и расскажем!

🔗Читать статью
🔗Зеркало
👍6
🎙 Подкаст RadioDotNet: динамическая адаптация, правильные тесты, взаимодействие с JS

📌 Темы:
🔹Объявление о прекращении поддержки Visual Studio для Mac 
🔹Sisk — альтернативный HTTP-сервер .NET 
🔹Валидация или верификация электронной почты 
🔹Динамическая адаптация к размерам приложений 
🔹Освоение модульных тестов в .NET с использованием лучших практик и соглашений об именах 
🔹Node API для .NET с JavaScript + .NET Interop 
🔹Telerik Blazor REPL
🔹Кратко о разном

⏯️ YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка

#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍3
Memory_Anti_Patterns_in_C#_In_the_context_of_aiming_for_a_clean….pdf
6.9 MB
🚀Антипаттерны управления памятью: на заметку C#-разработчику

Christophe Nasarre глубоко погружен в эту тему, и делится опытом с другими. Несмотря на то, что материал 2021 года, он стоит вашего внимания:

🔻Finalizer and IDisposable usage
🔻Provide list capacity when possible
🔻Prefer StringBuilder to +/+= for string concatenation
🔻Caching strings and interning
🔻Don’t (re)create objects

📌LINQ:
🔺Prefer IEnumerable<T> to IList<T>
🔺FirstOrDefault and Any are your friends… but might not be needed
🔺Avoid unnecessary ToList()/ToArray() calls
🔺Prefer IEnumerable<>.Any to List<>.Exists
🔺Prefer Any to Count when checking for emptiness
🔺Order in extension methods might matter
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥7
⚒️ ТОП-27 плагинов для Visual Studio Code в 2023

Предлагаем список лучших расширений для VS Code в 2023 году: продуктивность, окрашивание сниппетов, контроль версий, форматирование, линтинг и отладка.

🔗Читать статью
🔗Зеркало
🥰7❤‍🔥1
Разработка максимально упрощенного клона ASP.NET Core: пошаговый гайд

Steven Giesel постарался объяснить такие непростые аспекты, как DI контейнер, middleware + роутинг, простым языком.

👀Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔1
Разбираемся с библиотекой Azure Core для .NET

Одна из целей Azure SDK — предоставить унифицированный интерфейс разработки в Azure. То есть базовые возможности должны работать одинаково, независимо от того, с каким сервисом Azure вы работаете.

Anne Thompson, Principal Software Engineer (Azure SDK), представляет обзор библиотеки, её пространств имен и ключевых типов, которые вы будете использовать при разработке приложений с Azure SDK.
👍4
Таненбаум vs Торвальдс (микроядро vs монолит)

Старый добрый профессиональный спор, который перерос в холивар. Первыми его начали известные разработчики Эндрю Таненбаум и Линус Торвальдс в начале 90-х в одной из новостных групп «Юзнета».

Таненбаум и Торвальдс холиварили из-за архитектуры ядра ОС. Первый утверждал, что лучше использовать микроядра, второй — монолитное ядро. И сколько раз они не возвращались к публичному обсуждению архитектуры ядра, каждый оставался при своём мнении.

А что сейчас? Да ничего не изменилось. Холивар разгорается при обсуждении абсолютно любой темы.

Любите холиварить?
👍 — конечно — в споре рождается истина
🤔 — ненавижу — только мешает работать
💯 — смотря где и при каких обстоятельствах

#холивар
💯98👍30🤔12
Exist vs Any в .NET

Не спите? Тогда ловите немного бенчмарков в ленту. Мы получаем такой результат, так как Any() использует reference-type enumerator.
🔥49👍10
🤔Почему .NET не пользуется популярностью среди стартапов? Видео по мотивам обсуждения на Reddit от Ника Чапсоса

Пользователь интересуется, есть ли какая-то конкретная причина, по которой стартапы в Индии не используют C#/.NET для разработки бэкенда, особенно сейчас, когда платформа является опенсорсной и кроссплатформенной.

Вместо .NET стартапы выбирают Java и Node.js. В этом, безусловно, есть доля правды, и Ник Чапсас пытается добраться до истины👇

📺 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔10👍63😁1
📌 Подборка за две недели на Code Maze:

🔹Использование HttpContext.Items для передачи данных с помощью ASP.NET Core: простая демонстрация использования HttpContext.Items для хранения и получения данных в контексте одного запроса
🔹Как использовать Stopwatch в C#: практика работы с классом, который предоставляет набор методов и свойств для точного измерения затраченного времени
🔹Методы проверки равенства чисел с плавающей точкой в C#: на что обратить внимание, чтобы не ошибиться
🔹Как использовать Moq для возврата значения, переданного в метод: пошаговый гайд для C#-разработчика
🔹Как использовать onchange event с Select DropDown в Blazor: учимся правильно отслеживать возникающие изменения
🔹Различные способы перезаписи файла в C#: обзор нескольких на практике
🔹Механизмы синхронизации в C#: Volatile vs Interlocked vs lock
🔹DateTimeOffset vs DateTime в C#: различия и сходства в деталях
🔹Различные уровни логирования в Serilog: подробное введение в популярную библиотеку
🔹Когда использовать ReaderWriterLockSlim в C#: простым языком о не самых простых аспектах

#dotnet #csharp #codemaze #матчасть
👍161
Когда речь заходит об асинхронных операциях в Unity, на ум первым делом приходит coroutine. И это не удивительно, так как большинство примеров в сети реализованы именно через них.

Но мало кто знает, что Unity поддерживает работу с async/await уже несколько лет. Залезть под капот async/await в Unity попытался автор серии статей:

🎮Часть 1: 8 причин отказаться от Coroutine в пользу Async в Unity
🎮Часть 2: 8 ошибок при использовании Async в Unity
🎮Часть 3: 😴
🔥2👍1
Стоит ли использовать эндпоинты .NET 8 Identity API?

Несмотря на то, что в недавней серии статей Эндрю Лок затрагивал эту тему, она заслуживает дополнительного внимания.

Эндрю разбирает дизайн эндпоинтов, последствия их использования и, наконец, делится мыслями о том, стоит ли их использовать. И помните — это лишь его субъективное мнение.

👀 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🤩 Команда Microsoft обновила пакет System.Text.Json в .NET 8

📌Вот краткий обзор улучшений:

🔹Значительно улучшен source generator и добавлен метод JsonTypeInfoResolver.Combine:

var options = new JsonSerializerOptions
{
TypeInfoResolver = JsonTypeInfoResolver.Combine(ContextA.Default, ContextB.Default, ContextC.Default);
};


🔹Добавлена поддержка required и init:

JsonSerializer.Deserialize("""{"Real" : 0, "Im" : 1 }""", MyContext.Default.Complex);

public record Complex
{
public required double Real { get; init; }
public required double Im { get; init; }
}

[JsonSerializable(typeof(Complex))]
public partial class MyContext : JsonSerializerContext { }


🔹Добавлен класс JsonStringEnumConverter<TEnum>
🔹Добавлена расширенная функциональность JsonSourceGenerationOptionsAttribute
🔹Добавлена возможность заполнения членов, доступных только для чтения
🔹Добавлена возможность отключения reflection по умолчанию и многое другое

👀 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🤔4
И снова бенчмарки, и снова борьба за наносекундами, но в этом случае разница в производительности весьма существенная.

#csharp #dotnet #tip by Dave Callan
👍453💯1
EF Core поддерживает несколько способов загрузки связанных данных, каждый из которых имеет свои преимущества и недостатки.

• Eager loading (жадная загрузка)
• Explicit loading (явная загрузка)
• Lazy loading (ленивая загрузка)

Maarten Balliauw, Developer Advocate в JetBrains, подробно рассматривает эту тему на примерах👇

🔗 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🥱5
🦸 9 способов настройки градиента цели для поддержания мотивации

Разбираемся, как настроить себя идти до конца, преодолевая препятствия и лень.

Читать статью

#саморазвитие
❤‍🔥2👍2🥱1