Библиотека шарписта | 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
🔥Повышение производительности Enum в .NET 8. Как вам? 💬

#dotnet8
🔥974👍2
👶 Когда ребенок ищет в холодильнике, что бы такое съесть, могут возникнуть различные неприятности:

🔸Ребенок может забыть закрыть дверь холодильника
🔸Может взять то, что ему запрещено
🔸Может даже наткнуться на просроченные продукты

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

💬Как вам такое объяснение Dependency Injection?

Применительно к написанию кода, этот совет можно перефразировать так: каждый компонент приложения перекладывает ответственность предоставления требуемых ему зависимостей на специальную инфраструктуру. Можно даже провести параллель «ребенок» — «компонент»/«класс», а «родители” — «инфраструктура».

👉По мотивам статьи о Pure.DI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🥱9😁3
💬 Подкаст RadioDotNet: зелёные потоки, быстрая восьмёрка, наглость Unity

📌 Темы:
🎤 Анонс .NET 8 RC1
🎤 Visual Studio 2022 17.8 Preview 2
🎤 Доступ к закрытым членам без reflection в C#
🎤 Улучшение производительности .NET 8
🎤 Unity обновляет цены
🎤 Результаты эксперимента с green threads
🎤 Кратко о разном

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

#подкасты
13👍4🔥1
📌 Подборка за две недели на Code Maze:

🔹Создание криптографического числа с помощью RandomNumberGenerator: теория, практика и сравнение с System.Random
🔹Использование переменной discard в C# (7+): обзор различий с обычной переменной и некоторые практические аспекты применения
🔹Оптимизация памяти с помощью ArrayPool в C#: подробное руководство по улучшению управления памятью в приложениях на C#
🔹Database First Development с EF Core Power Tools: упрощаем рабочий процесс разработки при использовании EF Core в приложениях .NET
🔹22 лучших практики C#: подборка советов, которые улучшат читабельность кода
🔹Тестирование time-dependent кода с помощью TimeProvider в .NET: первое знакомство с новой фичей, которая появилась в C# 12 и .NET 8
🔹Выбор узлов Xml с помощью XPath в C#: как использовать XPath для выбора данных из XML-документа на C#
🔹Рефакторинг необязательных фрагментов кода C#: улучшаем код с помощью практических методов рефакторинга
🔹Преобразование шестнадцатеричной строки в байтовый массив в C#: разбор нескольких методов на практике
🔹Глобальная обработка исключений для запросов MediatR: как предотвратить сбои приложения и несанкционированное раскрытие конфиденциальных данных пользователям
🔹Замена разрывов строк в C#: string Replace() vs string ReplaceLineEndings() vs Regular Expressions Replace()

#dotnet #csharp #codemaze #матчасть
💯10👍3
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
👀 Практический взгляд на использование Rider для разработки на .NET MAUI

Daniel Hindrikes, разработчик и архитектор .NET, кратко затрагивает аспекты разработки на .NET MAUI с помощью Rider: от запуска, отладки и управления Android SDK до обработки специфичных для платформы файлов (info.plist, storyboards и др.) и использования функции Hot Reload.

📺 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
💡Структурированная конкурентность в C# на практике: что это, почему полезно и как может выглядеть в C#

Это концепция, которая помогает писать более надежный и легко поддерживаемый асинхронный код. Хотя в ней нет ничего нового, она не так широко известна среди .NET-разработчиков. Основная идея заключается в группировке асинхронных операций и гарантии их завершения.

В .NET это может быть реализовано с использованием конструкций, аналогичных Task или Async/Await. Подобно тому как в других языках используется Task Scope, в .NET можно использовать блоки try-catch-finally для управления жизненным циклом асинхронных задач и гарантирования их завершения.

👉 Подробнее в гайде от Steven Giesel
👍143🥱1
📌System.Text.Json JsonConverter Test Helpers: на заметку C#-разработчику

Khalid Abuhakmeh представляет методы расширения, которые упрощают тестирование любого JsonConverter, а также дополнительный класс, упрощающий работу со значениями в двойных кавычках.

🔗 Читать
👍32🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🛞Учитель из России Татьяна Ерухимова уехала в США и занимается тем, чем должен заниматься любой нормальный учитель — прививает любовь к знаниям своим ученикам.

💬Всем бы таких учителей… А вы помните своего любимого учителя и предмет, который больше всего на вас повлиял?

#холивар
🥱40👏32👍65❤‍🔥1
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

🐘PHP

Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека шарписта
Библиотека мобильного разработчика
Библиотека хакера
Библиотека devops’a
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook
🔸Instagram
👍71
💬 Подкаст RadioDotNet: Reflection в AOT, новый Identity, тестирование в ASP

📌 Темы:
🎤 Reflection с .NET 8: обзор нового способа
🎤 Что нового в System.Text.Json в .NET 8
🎤 Green Threads Technical Report
🎤 C# Dev Kit
🎤 Стоит ли использовать .NET 8 Identity API endpoints?
🎤 Mocking dependencies в тестах ASP.NET Core
🎤 Кратко о разном

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

#подкасты
👍9
🎉.NET 8 уже совсем близко. Стали известны темы докладов и все подробности, которые ждут участников .NET Conf 2023. А мы разбираемся, что из себя представляет второй релиз-кандидат новой версии платформы:

🔹 Анонс .NET 8 RC2
🔹 Обновления ASP.NET Core .NET 8 RC 2
🔹 Анонс .NET MAUI в .NET 8 RC 2
🔹 EF Core 8 RC 2

☑️ Смотрите также серию видеоуроков Learn Live, которая охватывает основы C# для новичков:
📺 Написание первой программу на C#
📺 Разработка и запуск простого приложения на C#
📺 Добавление логики в консольное приложение
📺 Работа с переменными данными в консольных приложениях C#

#чтопроисходит #матчасть
🔥9👍5🤩41🤔1
Отладка распространенных проблем с файлами Cookie в ASP.NET Core: гайд для C#-разработчика.

👉 Читать
👍94
👩‍💻 Если вы работаете над веб-приложением в Visual Studio и хотите запустить его в режиме инкогнито, просто используйте “Browse With…”.

#tools #tip by Dave Callan
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5492
Discriminated Unions в C#

Discriminated Unions — давняя потребность в C#. Хотя этот функционал пока недоступен напрямую C#-разработчикам, Maarten Balliauw, Developer Advocate в JetBrains, представляет краткое введение в концепцию и два способа, которые вы можете использовать уже сейчас👇

🔗Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🤔 Newtownsoft vs System.Text.Json

Как вам производительность встроенного инструмента для сериализации и десериализации JSON?

#csharp #benchmarks by Nabi Karampoor
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥55👍5🥱41
From_Junior_to_Genius_an_optimization_story_by_Israel_Lot_ITNEXT.pdf
8.5 MB
🤔 Что будет, если разработчики разного уровня (джун, мидл, сеньор, хакер, эксперт и гений) реализуют простой метод вычисления контрольной суммы?

Получится довольно любопытная история оптимизации. Версия джуна выглядит следующим образом👇


public static uint Checksum(ReadOnlySpan<byte> arr)
{
if (arr.Length == 0) return 0;

uint sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0;

for(var i = 0; i<arr.Length; i++)
{
switch (i % 4)
{
case 0: sum0 += arr[i]; break;
case 1: sum1 += arr[i]; break;
case 2: sum2 += arr[i]; break;
case 3: sum3 += arr[i]; break;
}
}

var sum = sum3+ (sum2 << 8) + (sum1 << 16) + (sum0 << 24);

return sum;
}


Интересно, как этот простой метод можно существенно улучшить и оптимизировать? Тогда читайте подробнее — вас ждет много кода и бенчмарков.

#csharp #benchmarks
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112🔥1
🤔.NET Framework vs .NET Core Environment Configuration

• .NET Framework применяет конфигурации окружения на этапе сборки, преобразуя файлы, зависящие от окружения, чтобы создать единый файл конфигурации для развернутого приложения. Приложение знает, в каком окружении оно должно работать, независимо от того, где оно развернуто.

• .NET/Core применяет конфигурации окружения во время выполнения, используя конкретную переменную окружения, и может использовать множество источников конфигурации. Приложение спрашивает, в какой среде оно развернуто.

👌Build once, deploy to many

🔧С первого взгляда все кажется простым и понятным, но команда .NET сделала огромную работу, полностью изменив принцип работы конфигурации в .NET/Core и решив множество проблем.

👉 Читайте подробнее о том, что именно изменилось и как это должно работать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔2
🚀Самый быстрый способ запуска тестов в .NET: гайд по работе с Meziantou.Xunit.ParallelTestFramework от Ника Чапсаса.

📺Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7