Главная цель .NET 9 — сделать разработку .NET более продуктивной с помощью Visual Studio, Visual Studio Code с C# Dev Kit и упростить деплой в облаке с помощью сервисов Azure.
📌 Основные тезисы из статьи:
☁️ Платформа для Cloud-Native разработчиков
☁️ Инструменты для Cloud-Native разработчиков
🤖 .NET и ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9👍4❤🔥2❤1🤔1
🤔 Остаться или уйти? Оптимальный срок работы на одном месте
Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?
Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.
Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?
👉 Расскажите о своём опыте в нашем новом опросе 👈
Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?
Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.
Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?
👉 Расскажите о своём опыте в нашем новом опросе 👈
😁10🔥4👍2👾1
🆚 Сеньор .NET-разработчик Степан Минин сравнивает
👉 Читать
Task.WhenAll
и Parallel.ForEachAsync
с помощью бенчмарков, чтобы выяснить кейсы применения каждого из двух методов. 👉 Читать
👍18🥱4🤔3
📦 Что нового в NuGet 6.9?
NuGet 6.9 включен в VS 2022 и .NET 8.0 из коробки, но вы также можете загрузить его для Windows, macOS и Linux как отдельный исполняемый файл.
Версия 6.9 добавляет поддержку команды dotnet search и дополнительные улучшения в управление пакетами для многоплатформенных проектов в VS. Подробнее читайте в анонсе.
NuGet 6.9 включен в VS 2022 и .NET 8.0 из коробки, но вы также можете загрузить его для Windows, macOS и Linux как отдельный исполняемый файл.
Версия 6.9 добавляет поддержку команды dotnet search и дополнительные улучшения в управление пакетами для многоплатформенных проектов в VS. Подробнее читайте в анонсе.
🔥10🥱5👍2
🥶 Исследование замороженных (frozen) сегментов в .NET
🔍 В .NET 8 появилась концепция специальной NonGC кучи, которую игнорирует GC. Она используется для выделения объектов, которые всегда будут живы (например, строковые литералы), что дает возможность JIT-компилятору выполнять определенные оптимизации.
⚒️ .NET-разработчик Kevin Gosse погрузился в эту тему и рассмотрел скрытый и в основном экспериментальный API, который позволяет создавать свои замороженные сегменты и использовать их по своему усмотрению.
🚀 Этот API предоставляется через приватные методы
👉 Читать
🔍 В .NET 8 появилась концепция специальной NonGC кучи, которую игнорирует GC. Она используется для выделения объектов, которые всегда будут живы (например, строковые литералы), что дает возможность JIT-компилятору выполнять определенные оптимизации.
⚒️ .NET-разработчик Kevin Gosse погрузился в эту тему и рассмотрел скрытый и в основном экспериментальный API, который позволяет создавать свои замороженные сегменты и использовать их по своему усмотрению.
🚀 Этот API предоставляется через приватные методы
GC._RegisterFrozenSegment
и GC._UnregisterFrozenSegment
. Kevin показал, как можно использовать замороженные сегменты для хранения управляемых объектов, что может быть полезно для повышения производительности. 👉 Читать
🤔8👍6😁4🎉2❤1
📦 Практическое руководство по модульным монолитам с .NET
🤔 По мнению автора, микросервисная архитектура может привести к ненужной сложности и замедлению разработки, особенно для стартапов и команд, стремящихся к быстрому развитию.
🔥 В качестве альтернативы он предлагает концепцию модульного монолита, которая сочетает преимущества монолитной архитектуры с модульностью, позволяя командам быстрее разрабатывать и развертывать приложения. Естественно, с иллюстрациями и понятными примерами на C#/.NET.
👉 Читайте гайд на Medium или в PDF (файл в комментариях)
🤔 По мнению автора, микросервисная архитектура может привести к ненужной сложности и замедлению разработки, особенно для стартапов и команд, стремящихся к быстрому развитию.
👉 Читайте гайд на Medium или в PDF (файл в комментариях)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤔4👍1💯1
🛟 Паттерн Outbox обеспечивает сохранение сообщений в хранилище данных, прежде чем они будут в конечном итоге переданы в брокер сообщений.
⚒️ Если бизнес-объект и соответствующие сообщения сохраняются в рамках одной транзакции базы данных, это гарантирует, что данные не будут потеряны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
🤔 ФП vs. ООП
Дядя Боб считает (перевод), что споры сторонников функционального и объектно-ориентированного подхода не имеют смысла, так как эти парадигмы отлично уживаются вместе.
Более того, система, которая построена на комбинации принципов ООП и ФП максимизирует гибкость, поддерживаемость, тестируемость и простоту. Если убрать одно ради добавления другого, это только ухудшит структуру системы.
💬 А вы что думаете? Похоливарим?
#холивар
Дядя Боб считает (перевод), что споры сторонников функционального и объектно-ориентированного подхода не имеют смысла, так как эти парадигмы отлично уживаются вместе.
Более того, система, которая построена на комбинации принципов ООП и ФП максимизирует гибкость, поддерживаемость, тестируемость и простоту. Если убрать одно ради добавления другого, это только ухудшит структуру системы.
💬 А вы что думаете? Похоливарим?
#холивар
👍19❤🔥3
Решив, что взаимодействие с Foundation крайне ограничено, и каких-либо существенных преимуществ от участия в проекте Avalonia UI не получил, команда посчитала правильным вернуть его в руки тех, кто искренне увлечен и заинтересован в его будущем.
👉 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Farewell to the .NET Foundation · AvaloniaUI/Avalonia · Discussion #14666
In April 2020, Avalonia proudly joined the .NET Foundation, marking a significant milestone in our journey. Our joining the Foundation was a moment of great optimism, as we hoped to contribute to a...
🤔27👍13❤2
Если у вас есть критически важный участок кода, использующий LINQ, рассмотрите возможность добавления специальных перегрузок для улучшения производительности.
Читаемость немного ухудшится, но код все еще будет высокоуровневым.
#dotnet #csharp #benchmarks #tip by Сергей Тепляков
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍6🎉1
.NET Aspire предоставляет набор инструментов и шаблонов для создания распределенных облачных приложений. Простой пример определения веб-приложения, зависящего от инстанса кэша Redis с помощью .NET Aspire:
// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);
// Add a Redis server to the application.
var cache = builder.AddRedis("cache");
// Add the frontend project to the application and configure it to use the
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
.WithReference(cache);
Плагин Rider для .NET Aspire позволяет использовать функции .NET Aspire непосредственно в IDE. Под катом — внутренние механизмы плагина и детали его взаимодействие с .NET Aspire.
👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤6👍2⚡1
💬 Расскажите, какой паттерн проектирования вы нашли наиболее полезным в вашем последнем проекте? Почему выбрали именно его? Были ли какие-то специфические проблемы, которые решил этот паттерн?
#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁3
🛠 Серия статей о профилировщике .NET под капотом от Datadog
🔸 Первая часть посвящена архитектуре и внедрению профилировщика. Вы узнаете про основные аспекты профилирования, включая CPU, wall time, exceptions, lock contention и allocations.
🔸 Во второй части рассматривается реализация профилирования CPU и wall time. Описывается, как профилировщик мониторит и семплирует потоки приложения, а также подробно объясняется реализация сбора стеков вызовов в Linux и Windows. Статья также включает пример внутреннего использования CPU профилировщика для снижения потребления CPU.
🔸 Первая часть посвящена архитектуре и внедрению профилировщика. Вы узнаете про основные аспекты профилирования, включая CPU, wall time, exceptions, lock contention и allocations.
🔸 Во второй части рассматривается реализация профилирования CPU и wall time. Описывается, как профилировщик мониторит и семплирует потоки приложения, а также подробно объясняется реализация сбора стеков вызовов в Linux и Windows. Статья также включает пример внутреннего использования CPU профилировщика для снижения потребления CPU.
👍7
🤩 С большим опозданием публикуем полную коллекцию докладов с конференции DotNext 2022 Autumn
🌐 Сергей Васильев — Анализ C# кода на Roslyn: от теории к практике
🌐 Денис Цветцих — Rich Model и Anemic Model: враги или друзья
🌐 Проблемы обучения от 0+
🌐 Дмитрий Таболич — Думай как архитектор: майндшифт инженера
🌐 Дмитрий Нестерук — Интересные подходы в реализации паттернов проектирования
🌐 Андрей Парамонов, Антон Оникийчук — MediatR не нужен
🌐 Интервью с Романом Неволиным
🌐 Марк Шевченко — Пишем функционально на C# и F#
🌐 Дмитрий Сошников — Как научить вашего ребенка программировать (и не только)
🌐 Анатолий Жмур — Пиши, как тиктокер, а не как дед. Новые конструкции языка C# в бою
🌐 Олег Сафонов — Пишем код, когда пишем код: source generator'ы
🌐 Андрей Цветцих — Zero-downtime deployment и базы данных
🌐 Интервью с Вадимом Мартыновым
🌐 Роман Просин — SkillsFlow: разработка системы управления навыками и компетенциями
🌐 Объединяем .NET-разработчиков: как запустить и развить гильдии в компании
🌐 Гурий Самарин — Тестируем код, взаимодействующий с базой данных
🌐 Интервью с Дмитрием Таболичем
🌐 Best practices для разработки Application Layer
🌐 Роман Неволин — Пишем приложения, которые не ломаются в продакшене
🌐 Андрей Акиньшин — Поговорим об описательной статистике перформанс-распределений
🌐 Игорь Лабутин — Что нового в .NET 7 и C# 11
🌐 Евгений Пешков — Алгоритмы троттлинга запросов
🌐 Вадим Мартынов — Как работает конвейер в современных процессорах
🌐 Станислав Сидристый — lock(_sync): иллюзия идеального выбора
🌐 Ольга Щербакова — Open source с точки зрения юриста
🌐 Игорь Шаталкин — Загадочный EF Core, или Как написать свое расширение
🌐 Андрей Ганичев — Архитектурные тесты
🌐 Александр Катин — [Test] + T = ❤️
🌐 Вагиф Абилов — Распределенный трейсинг OpenTelemetry вместо логирования всего подряд
🌐 Александр Кузнецов — Введение в Microsoft SignalR
Please open Telegram to view this post
VIEW IN TELEGRAM
👏22❤7👍7😁4❤🔥3
🕘 Таймкоды:
00:00:00 — Вступление
00:05:30 — Что такое тесты?
00:13:20 — Как зародились модульные тесты?
00:29:00 — FIRST принцип
00:38:00 — Развитие «после модульных тестов»
00:44:00 — Что такое «модуль»?
00:53:20 — Тестирование приватных методов
01:05:40 — Как тестировать конвертеры System.Test.Json?
01:10:10 — Mock vs Stub
01:24:00 — Random в тестах: зло или «почему нет»?
⏯️ YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка
#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9👍7❤5
🆚 Task.Run vs. TaskCompletionSource + ThreadPool.QueueUserWorkItem
Сергей Тепляков раскопал шаблон (эпохи .NET 4.0) для запуска кода в пуле потоков
#dotnet #csharp #benchmarks
Сергей Тепляков раскопал шаблон (эпохи .NET 4.0) для запуска кода в пуле потоков
#dotnet #csharp #benchmarks
👍20😁4