fa
Feedback
C# 1001 notes

C# 1001 notes

رفتن به کانال در Telegram

Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого. admin - @haarrp

نمایش بیشتر
6 539
مشترکین
-324 ساعت
-17 روز
-230 روز
آرشیو پست ها

Реактивное программирование в C# Advanced: сложные операторы, обработка ошибок и холодные/горячие Observable Асинхронность в
Реактивное программирование в C# Advanced: сложные операторы, обработка ошибок и холодные/горячие Observable Асинхронность в C# может быть простой, если знать, как с ней работать правильно. На открытом вебинаре курса OTUS C# Developer. Advanced Елена Сычева покажет, как реактивное программирование помогает избавиться от Callback Hell и писать код, который сам реагирует на данные и события. 📌 26 ноября, 20:00 Реактивное программирование в C# Advanced — продвинутые операторы Rx.NET: Switch, GroupBy, Buffer, Throttle — устойчивые к сбоям системы: Catch, Retry, Finally — холодные и горячие Observable: Publish, Replay, RefCount — управление подписками и жизненным циклом реактивных компонентов Вебинар будет полезен разработчикам на C#, работающим с асинхронным кодом, потоками данных и событиями. Участники узнают, как проектировать реактивные системы, способные восстанавливаться после ошибок, и писать декларативный, читаемый и эффективный код. 👉 Зарегистрируйтесь: https://otus.pw/kdEI/?erid=2W5zFJeYfSx Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

ASP .NET 10 получил новую возможность — Server-Sent Events (SSE) В свежем ASP .NET 10 появилась поддержка Server-Sent Events
ASP .NET 10 получил новую возможность — Server-Sent Events (SSE) В свежем ASP .NET 10 появилась поддержка Server-Sent Events — современного способа стримить данные в браузер без WebSockets. Что такое SSE - Односторонний канал: сервер → браузер - Идеально подходит для потоковых обновлений, логов, нотификаций, live-данных - Работает поверх обычного HTTP, без сложной настройки протокола Почему это круто - Проще, чем WebSockets - Легче масштабировать - Отлично подходит для real-time интерфейсов и hypermedia-приложений - Встроено прямо в ASP .NET 10, без сторонних библиотек Это может стать большим шагом для разработки динамичных и интерактивных UI — особенно там, где нужен непрерывный поток данных, но WebSockets избыточны. #dotnet #aspnet #csharp #backend #webdev

Один навык сделает вас ценным в любой команде — умение находить и устранять узкие места производительности. Скорость приложен
Один навык сделает вас ценным в любой команде — умение находить и устранять узкие места производительности. Скорость приложения — это не просто «хорошо иметь». Это деньги, стабильность и доверие пользователей. И чем больше система, тем больнее становятся проблемы с производительностью. В микросервисной архитектуре это особенно заметно: запросы ходят между сервисами, сетевые задержки накапливаются, логика размазана — и понять, где именно тормозит, становится значительно труднее. Почему так происходит? - распределённая архитектура усложняет путь запроса - один медленный сервис замедляет десяток других - локально всё работает быстро, а в продакшене исчезает производительность - классические логи дают только фрагменты картины Но есть хороший инструмент, который решает эту проблему — трейсинг с OpenTelemetry. Он позволяет пройти вместе с запросом через всю цепочку сервисов и увидеть, где именно начинается задержка. Это настоящий рентген системы. Если вы хотите внедрить распределённый трейcинг, автор подготовил пошаговый гайд, который можно адаптировать под любой .NET-проект. Вот отличная отправная точка: milanjovanovic.tech/blog/introduction-to-distributed-tracing-with-opentelemetry-in-dotnet

⚡ Быстрый совет для Cursor Хочешь, чтобы Cursor писал точнее и в твоём стиле? 🧠 Просто создай файл `.cursorrules` в корне пр
⚡ Быстрый совет для Cursor Хочешь, чтобы Cursor писал точнее и в твоём стиле? 🧠 Просто создай файл `.cursorrules` в корне проекта и опиши в нём: - правила кодстайла, которые ты используешь - предпочтения по структуре, форматированию, именованию Чем конкретнее, тем лучше работает автогенерация. 🔥 Это помогает избежать «галлюцинаций» и потери контекста при создании кода.

⚡️ Когда стоит применять паттерн Idempotent Consumer? В распределённых системах всё непредсказуемо: сообщения могут прийти по
+2
⚡️ Когда стоит применять паттерн Idempotent Consumer? В распределённых системах всё непредсказуемо: сообщения могут прийти поздно, в неправильном порядке или продублироваться. Если надеяться, что каждое сообщение обработается «строго один раз», рано или поздно появятся тихие ошибки в данных. Производитель может частично решить проблему: многие брокеры (Azure Service Bus, Amazon SQS) сами отбрасывают дубликаты, если у сообщения есть уникальный MessageId. Но у потребителя ответственность больше. Паттерн Idempotent Consumer предотвращает повторные побочные эффекты: 1. Перед обработкой проверяем локальную таблицу с ключом (MessageId, ConsumerName). 2. Если записи нет - выполняем логику, коммитим транзакцию и записываем факт обработки. 3. Если запись уже есть - сообщение повторное, просто выходим. Что делать с внешними сервисами? Некоторые поддерживают idempotency key (например, email-сервисы), и тогда повторный запрос просто игнорируется. Если сервис это не умеет, можно сохранять намерение локально и выполнять действие отдельным надёжным процессом. Важно: не все обработчики нуждаются в этом паттерне. Если операция сама по себе безопасна при повторе (обновить статус, пересобрать кэш) — дополнительные проверки не нужны. Используйте Idempotent Consumer там, где повторное выполнение может привести к деньгам, ошибкам или сбоям в бизнес-логике. milanjovanovic.tech/blog/the-idempotent-consumer-pattern-in-dotnet-and-why-you-need-it

Управление зависимостями в ASP.NET Core: меньше рутины, больше автоматизации. Ручное добавление сервисов через AddScoped и Ad
Управление зависимостями в ASP.NET Core: меньше рутины, больше автоматизации. Ручное добавление сервисов через AddScoped и AddSingleton превращает Program.cs в бесконечный список регистраций. Но есть способ проще — библиотека Scrutor. На открытом вебинаре курса OTUS C# ASP.NET Core разработчик Михаил Дмитриев покажет, как автоматизировать регистрацию сервисов и расширить стандартный IoC контейнер. 📌 18 ноября, 20:00 Управление зависимостями в ASP.NET Core с помощью Scrutor — массовая регистрация сервисов по правилам — использование паттерна декоратор — добавление кэширования без переписывания кода — реальные примеры для продакшн-проектов Вебинар бесплатный и будет полезен ASP.NET Core-разработчикам, которые хотят упростить настройку зависимостей и сделать код чище. 👉 Регистрируйтесь: https://otus.pw/HpwY/?erid=2W5zFJ5eURW Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

🖥 Полезный Совет по Visual Studio: Когда вы создаете метод, который возвращает JSON через raw string literal, добавьте /* la
🖥 Полезный Совет по Visual Studio: Когда вы создаете метод, который возвращает JSON через raw string literal, добавьте /* lang=json*/ Этот момент нигде не задокументирован. Если в JSON будет синтаксическая ошибка вроде пропущенной запятой, Visual Studio подсветит её.

Основы обобщений (Generics) в C#: классы, интерфейсы, методы и делегаты Generics — это фундамент гибкого и переиспользуемого
Основы обобщений (Generics) в C#: классы, интерфейсы, методы и делегаты Generics — это фундамент гибкого и переиспользуемого кода в C#. На открытом вебинаре курса OTUS C# Developer. Professional Павел Нилов объяснит, как работают обобщения, зачем они нужны и как с их помощью писать код, который не боится масштабирования. 📌 18 ноября, 20:00 Основы обобщений (Generics) в C# — классы, интерфейсы, методы и делегаты — ковариантность, контравариантность и ограничения — эффективное использование List и Dictionary — примеры и разбор типичных ошибок Вебинар бесплатный и подойдёт начинающим .NET-разработчикам, студентам и джунам, готовящимся к собеседованиям, а также тем, кто хочет систематизировать знания по Generics. 👉 Регистрируйтесь: https://otus.pw/SjQq/?erid=2W5zFH97jxt Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Что выведет код? Пишите ответ в комментариях
Что выведет код? Пишите ответ в комментариях

Гид по Redis в C# ASP.NET: ускоряем приложения и снижаем нагрузку на базу данных. Redis — быстрая база данных в памяти, котор
Гид по Redis в C# ASP.NET: ускоряем приложения и снижаем нагрузку на базу данных. Redis — быстрая база данных в памяти, которая помогает масштабировать системы и ускорять доступ к данным. На открытом вебинаре курса OTUS C# ASP.NET Core разработчик Андрей Сорокин покажет, как интегрировать Redis в ASP.NET Core 8 и внедрить кэширование в реальных проектах. 📌 12 ноября, 20:00 Гид по Redis в C# ASP.NET — настройка Redis в Docker — кэширование ответов API — хранение данных для быстрого доступа — ускорение обработки запросов и снижение нагрузки на БД Вебинар бесплатный и будет полезен C#-разработчикам, архитекторам и тимлидам, которые хотят повысить производительность приложений и упростить масштабирование. 👉 Регистрируйтесь: https://otus.pw/7CFj/?erid=2W5zFHZ3J6k Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

⚡️ Вышел pgbalancer 1.0 - интеллектуальный балансировщик нагрузки для PostgreSQL Представлен первый стабильный релиз pgbalanc
⚡️ Вышел pgbalancer 1.0 - интеллектуальный балансировщик нагрузки для PostgreSQL Представлен первый стабильный релиз pgbalancer 1.0 — балансировщика нагрузки для PostgreSQL, построенного на основе pgpool-II с существенными доработками. Проект позиционируется как решение с элементами адаптивной маршрутизации запросов, управляемое через REST API и поддерживающее MQTT для потоковой передачи событий в реальном времени. Ключевые особенности: • Управление пулом соединений и распределение нагрузки между репликами PostgreSQL; •Поддержка HTTP/REST для конфигурации и мониторинга; • Интеграция с MQTT для стриминга метрик и событий; • Реализация на языке C с сохранением производительности оригинального pgpool-II; • Распространяется под открытой лицензией PostgreSQL. https://www.pgelephant.com/pgbalancer

Повышение надёжности .NET-приложений: как обрабатывать сбои и предотвращать каскадные ошибки. Даже самые стабильные системы л
Повышение надёжности .NET-приложений: как обрабатывать сбои и предотвращать каскадные ошибки. Даже самые стабильные системы ломаются — вопрос лишь в том, насколько вы готовы к этому. Библиотека Polly позволяет гибко управлять сбоями и повышать устойчивость микросервисов и API. На открытом вебинаре курса OTUS C# ASP.NET Core разработчик Виктор Дзицкий покажет, как использовать Polly и HttpClientFactory для защиты приложений от временных отказов и непредсказуемых сетевых ошибок. 📌 6 ноября, 20:00 Повышение надежности .NET-приложений с Polly — ключевые стратегии и политики Polly — настройка и комбинирование стратегий для сложных сценариев — защита от каскадных сбоев и готовые паттерны устойчивости — улучшения в .NET 8 Вебинар бесплатный и подойдёт .NET-разработчикам, работающим с микросервисами и внешними API, которые хотят сделать свои системы по-настоящему отказоустойчивыми. 👉 Регистрируйтесь: https://otus.pw/Ketn/?erid=2W5zFJKZcBJ Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

🚀 5 мощных приёмов рефакторинга в C#, которые сделают ваш код чище, проще и надёжнее Больше не пишите “спагетти” — превращай
🚀 5 мощных приёмов рефакторинга в C#, которые сделают ваш код чище, проще и надёжнее Больше не пишите “спагетти” — превращайте запутанный код в красивую архитектуру. ✅ Уберите дублирование ✅ Разбейте методы ✅ Используйте DI и фабрики ✅ Спрячьте логику в объекты ✅ Упростите условия 👉 Пример до/после — на картинке: из хаоса в чистый, тестируемый, поддерживаемый код. 📌 Подробнее

Нашёл отличный учебник по основам Computer Science - настоящая находка! Он охватывает всё самое важное: от классики вроде алг
Нашёл отличный учебник по основам Computer Science - настоящая находка! Он охватывает всё самое важное: от классики вроде алгоритма Евклида до продвинутых тем — динамическое программирование, криптография, анализ сложности и не только. Материал подан чётко, логично и последовательно: каждая концепция — с примерами, интуитивными пояснениями и строгими доказательствами. Идеально подойдёт тем, кто хочет выйти за рамки синтаксиса и глубоко понять, как устроен код изнутри. https://eecs376.github.io/notes/algorithms.html

‼️ Хотите стать разработчиком на C# и создавать игры или бэкенд-приложения? Не знаете, с чего начать? 🎯 Курс «C# Developer»
‼️ Хотите стать разработчиком на C# и создавать игры или бэкенд-приложения? Не знаете, с чего начать? 🎯 Курс «C# Developer» состоит из двух ступеней, с практикой в Scrum-команде и реальными кейсами. Вы освоите не только основы C# и .NET Core, но и научитесь применять LINQ, работать с SQL и использовать Git для управления версиями. 🦾 Это обучение поможет вам перейти с нуля на Middle. Вы изучите продвинутые инструменты бэкенда, повысите качество кода, освоите Scrum и сможете работать в высококачественной команде. А еще вы получите диплом OTUS, который ценят в крупных IT-компаниях. ➡️ Оставьте заявку и получите скидку на обучение, старт уже 29 октября: https://otus.pw/vIeG/?erid=2W5zFJTwJNk Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Что выведет код? 1 — Выбросит исключение 2 — Произойдет взаимоблокировка 3 — Напечатает слово "test" 4 — Напечатает слово "te
Что выведет код? 1 — Выбросит исключение 2 — Произойдет взаимоблокировка 3 — Напечатает слово "test" 4 — Напечатает слово "test" бесконечное число раз

EF Core: Что скрывают за репозиторием? Entity Framework Core — мощный инструмент, но его часто оборачивают в Repository Patte
EF Core: Что скрывают за репозиторием? Entity Framework Core — мощный инструмент, но его часто оборачивают в Repository Pattern, не задумываясь, действительно ли это нужно. На открытом вебинаре курса OTUS C# Developer. Professional Виктор Дзицкий покажет, когда репозиторий оправдан, а когда он только мешает. 📌 5 ноября, 20:00EF Core: Что скрывают за репозиторием? — когда Repository Pattern избыточен — реализация Specification Pattern для гибких запросов — как объединить оба подхода для чистой архитектуры Вебинар бесплатный и будет полезен C# и .NET-разработчикам, которые активно используют EF Core и хотят сделать код доступа к данным тестируемым и поддерживаемым. 👉 Регистрируйтесь: https://otus.pw/LsRF/?erid=2W5zFJBmqU4 Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

🧩 Несколько DbContext в одном приложении на EF Core — когда это нужно Использовать несколько DbContext в одном приложении —
🧩 Несколько DbContext в одном приложении на EF Core — когда это нужно Использовать несколько DbContext в одном приложении — не ошибка, а часто отличное архитектурное решение. Вот когда это оправдано: - 🗃 Работа с несколькими базами данных - 🧠 Разделение областей ответственности - 🧩 Архитектура modular monolith - ⚡ Использование read replicas Автор применил это при создании модульного монолита: каждый модуль имел собственную схему в БД и отдельный DbContext в коде. Самое интересное — как EF Core справляется с миграциями и разными схемами баз данных. Разбор и пошаговое решение — здесь: 🔗 https://milanjovanovic.tech/blog/using-multiple-ef-core-dbcontext-in-single-application #DotNet #EFCore #CSharp #Backend #Architecture #DesignPatterns

🖥 Гайд по PostgreSQL для продвинутых разработчиков PostgreSQL – одна из самых мощных СУБД с открытым исходным кодом. Этот га
🖥 Гайд по PostgreSQL для продвинутых разработчиков PostgreSQL – одна из самых мощных СУБД с открытым исходным кодом. Этот гайд подробно охватывает ключевые аспекты PostgreSQL: от внутренней архитектуры до приёмов оптимизации. Мы рассмотрим администрирование, производительность, расширения, инструменты, а также сравним популярные ORM для Python и Go. В конце приведён список продвинутых вопросов, часто встречающихся на собеседованиях. 🟠Гайд