💡Структурированная конкурентность в C# на практике: что это, почему полезно и как может выглядеть в C#
Это концепция, которая помогает писать более надежный и легко поддерживаемый асинхронный код. Хотя в ней нет ничего нового, она не так широко известна среди .NET-разработчиков. Основная идея заключается в группировке асинхронных операций и гарантии их завершения.
В .NET это может быть реализовано с использованием конструкций, аналогичных Task или Async/Await. Подобно тому как в других языках используется Task Scope, в .NET можно использовать блоки try-catch-finally для управления жизненным циклом асинхронных задач и гарантирования их завершения.
👉 Подробнее в гайде от Steven Giesel
Это концепция, которая помогает писать более надежный и легко поддерживаемый асинхронный код. Хотя в ней нет ничего нового, она не так широко известна среди .NET-разработчиков. Основная идея заключается в группировке асинхронных операций и гарантии их завершения.
В .NET это может быть реализовано с использованием конструкций, аналогичных Task или Async/Await. Подобно тому как в других языках используется Task Scope, в .NET можно использовать блоки try-catch-finally для управления жизненным циклом асинхронных задач и гарантирования их завершения.
👉 Подробнее в гайде от Steven Giesel
👍14❤3🥱1
📌System.Text.Json JsonConverter Test Helpers: на заметку C#-разработчику
Khalid Abuhakmeh представляет методы расширения, которые упрощают тестирование любого JsonConverter, а также дополнительный класс, упрощающий работу со значениями в двойных кавычках.
🔗 Читать
Khalid Abuhakmeh представляет методы расширения, которые упрощают тестирование любого JsonConverter, а также дополнительный класс, упрощающий работу со значениями в двойных кавычках.
🔗 Читать
Khalid Abuhakmeh’s Blog
System.Text.Json JsonConverter Test Helpers
A set of extension methods to test JsonConverter Test Helpers
👍3❤2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🛞Учитель из России Татьяна Ерухимова уехала в США и занимается тем, чем должен заниматься любой нормальный учитель — прививает любовь к знаниям своим ученикам.
💬Всем бы таких учителей… А вы помните своего любимого учителя и предмет, который больше всего на вас повлиял?
#холивар
💬Всем бы таких учителей… А вы помните своего любимого учителя и предмет, который больше всего на вас повлиял?
#холивар
🥱40👏32👍6❤5❤🔥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
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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
🔸Дзен
👍7❤1
💬 Подкаст 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 Подкасты | Яндекс Музыка
#подкасты
📌 Темы:
🎤 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#
#чтопроисходит #матчасть
🔹 Анонс .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🤩4❤1🤔1
#tools #tip by Dave Callan
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54❤9⚡2
Discriminated Unions в C#
Discriminated Unions — давняя потребность в C#. Хотя этот функционал пока недоступен напрямую C#-разработчикам, Maarten Balliauw, Developer Advocate в JetBrains, представляет краткое введение в концепцию и два способа, которые вы можете использовать уже сейчас👇
🔗Читать
Discriminated Unions — давняя потребность в C#. Хотя этот функционал пока недоступен напрямую C#-разработчикам, Maarten Balliauw, Developer Advocate в JetBrains, представляет краткое введение в концепцию и два способа, которые вы можете использовать уже сейчас
🔗Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Maarten Balliauw {blog}
Discriminated Unions in C#
Discriminated unions have been a long-standing request for C#. While F# users have had discriminated unions for years, C# developers will have to wait a bit longer.
👍9
Как вам производительность встроенного инструмента для сериализации и десериализации JSON?
#csharp #benchmarks by Nabi Karampoor
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥55👍5🥱4❤1
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
👍11❤2🔥1
• .NET Framework применяет конфигурации окружения на этапе сборки, преобразуя файлы, зависящие от окружения, чтобы создать единый файл конфигурации для развернутого приложения. Приложение знает, в каком окружении оно должно работать, независимо от того, где оно развернуто.
• .NET/Core применяет конфигурации окружения во время выполнения, используя конкретную переменную окружения, и может использовать множество источников конфигурации. Приложение спрашивает, в какой среде оно развернуто.
👌Build once, deploy to many
🔧С первого взгляда все кажется простым и понятным, но команда .NET сделала огромную работу, полностью изменив принцип работы конфигурации в .NET/Core и решив множество проблем.
👉 Читайте подробнее о том, что именно изменилось и как это должно работать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Softwaremeadows
.NET Framework Vs Core Environment Configuration | Software Meadows
👍10🤔2
🚀Самый быстрый способ запуска тестов в .NET: гайд по работе с Meziantou.Xunit.ParallelTestFramework от Ника Чапсаса.
📺 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Ловите записи докладов с 91-й встречи SpbDotNet:
🌐 Станислав Сидристый (известный .NET-разработчик, автор онлайн-книги .NET Platform Architecture): «Реактивная сборка огромного проекта»
• При стремительном росте проекта возникает ряд трудностей не только у разработки, но и у DevOps. Станислав решил помочь коллегам и сделал очень быструю сборку всех проектов.
• В итоге удалось ускорить сборку с 400 машиноминут (20 агентов, 20 минут) до диапазона (30 сек, 1 мин 30 сек) в зависимости от количества изменений. Через что пришлось пройти, все неудачные варианты и результат — в докладе.
🌐 Евгений Пешков (ранее разрабатывал JetBrains Rider, занимался инфраструктурой в Контуре): «Убийцы производительности»
• Одна из причин низкой производительности .NET-приложений — некачественные сторонние библиотеки или неправильное их использование. Например, обычное логирование может превратить всю программу в однопоточную, если неправильно сконфигурировано.
• Увы, некоторые подобные проблемы кочуют из библиотеки в библиотеку, и из проекта в проект. В докладе Евгений показывает примеры таких проблем и рассказывает, как их избежать.
#чтопроисходит
• При стремительном росте проекта возникает ряд трудностей не только у разработки, но и у DevOps. Станислав решил помочь коллегам и сделал очень быструю сборку всех проектов.
• В итоге удалось ускорить сборку с 400 машиноминут (20 агентов, 20 минут) до диапазона (30 сек, 1 мин 30 сек) в зависимости от количества изменений. Через что пришлось пройти, все неудачные варианты и результат — в докладе.
• Одна из причин низкой производительности .NET-приложений — некачественные сторонние библиотеки или неправильное их использование. Например, обычное логирование может превратить всю программу в однопоточную, если неправильно сконфигурировано.
• Увы, некоторые подобные проблемы кочуют из библиотеки в библиотеку, и из проекта в проект. В докладе Евгений показывает примеры таких проблем и рассказывает, как их избежать.
#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍8
Каким терминалом/интерпретатором командной строки пользуетесь? Пользователи Windows, поделитесь опытом👇
Anonymous Poll
38%
CMD
35%
PowerShell
28%
Windows Terminal
20%
Всеми — в зависимости от задачи
3%
Другим (напишу в комментариях)
7%
Посмотреть результаты
❤3
📈Каким бы противоречивым ни был индекс TIOBE, который отслеживает показатель популярности языков программирования, но согласно ему C# потихоньку обгоняет Java.
«Разрыв между C# и Java никогда не был таким маленьким», — говорится в последнем выпуске. «В настоящее время разница составляет всего 1,2 процента, и если тенденция сохранится, C# превзойдёт Java примерно через 2 месяца».
📌Почему этим данным можно верить?
💬Снижение популярности Java может быть вызвано решением Oracle ввести модель платного лицензирования после Java 8 и ростом популярности Kotlin. .NET/C# в свою очередь повернулся в сторону открытого исходного кода и сообщества.
«Разрыв между C# и Java никогда не был таким маленьким», — говорится в последнем выпуске. «В настоящее время разница составляет всего 1,2 процента, и если тенденция сохранится, C# превзойдёт Java примерно через 2 месяца».
📌Почему этим данным можно верить?
💬Снижение популярности Java может быть вызвано решением Oracle ввести модель платного лицензирования после Java 8 и ростом популярности Kotlin. .NET/C# в свою очередь повернулся в сторону открытого исходного кода и сообщества.
👍43❤11👏3
✅C# и System.Reflection.Assembly
✅C# и MemoryStream()
✅C#, память и неуправляемый код
✅Конвертация в JScript
✅Специальные лоадеры
👉Читать
#pentest #redteam
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Диск – это лава. Исследуем методы выполнения пейлоада в памяти
Привет, Хабр! Меня зовут Миша, я работаю экспертом в центре инноваций Future Crew в команде тестирования на проникновение. В ходе пентестов очень часто приходится бороться с антивирусами. Увы, это...
👍3
Использование паттерна Outbox для надежного обмена сообщениями микросервисов: на заметку C#-разработчику
#dotnet #csharp #tip by Milan Jovanović
#dotnet #csharp #tip by Milan Jovanović
👍17🤔3😁2
default(T)
. Что, если мы хотим сделать то же самое во время выполнения? Каково значение по умолчанию для любого System.Type
?👉Разбирается Microsoft MVP/разработчик из Ubisoft Gérald Barré
Please open Telegram to view this post
VIEW IN TELEGRAM
Meziantou's blog
Get the default value of a type at runtime - Gérald Barré
In this post, I describe how to get the default value of a type at runtime in .NET.
❤2👍2❤🔥1