csharp_ci | Unsorted

Telegram-канал csharp_ci - C# (C Sharp) programming

18377

По всем вопросам- @haarrp C# - обучающий канал Senior C# разработчика. @ai_machinelearning_big_data - Machine learning @itchannels_telegram - 🔥лучшие ит-каналы @csharp_ci - C# академия @pythonlbooks- книги📚 Реестр РКН: https://clck.ru/3Fk3kb

Subscribe to a channel

C# (C Sharp) programming

🛠️ Инструмент для дампа памяти защищённых процессов

WSASS использует старую программу WerfaultSecure.exe для создания дампов памяти процессов, защищённых PPL, таких как LSASS.EXE. Выходные данные сохраняются в формате MINIDUMP, с автоматической заменой заголовка на PNG для удобства.

🚀 Основные моменты:
- Дамп защищённых процессов с помощью WerfaultSecure.exe
- Выход в формате Windows MINIDUMP
- Автоматическая замена заголовка файла
- Полезен для анализа безопасности

📌 GitHub: https://github.com/TwoSevenOneT/WSASS

#csharp

Читать полностью…

C# (C Sharp) programming

Твой шанс прокачаться в ИТ, заявить о себе на всю страну и побороться за призовой фонд 10 250 000 рублей 💰 Успей зарегистрироваться до 20 октября.

МТС приглашает на True Tech Champ — всероссийский чемпионат по программированию. Выбирай трек по душе или участвуй сразу в двух, чтобы увеличить шансы на победу.

Трек 1. Алгоритмический. Индивидуальный зачет
Работай со структурами данных, решай алгоритмические задачи и сражайся в лайв-кодинге с сильнейшими.

Трек 2. Программирование роботов. Командный формат
Сначала проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы.

🎁 Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка.

Тебя ждет:
— Зрелищный шоу-финал с искусственным интеллектом, цифровыми аватарами и другими технологиями.
— Конференция с лидерами индустрии, кодерские челленджи и возможность прокачать ИТ-навыки.
— Шанс лично пообщаться с HR-специалистами МТС и получить карьерный буст.

📍Шоу-финал пройдет 21 ноября в МТС Live Холл.
⏰ Успей зарегистрироваться до 20 октября

Читать полностью…

C# (C Sharp) programming

Понимание структур данных имеет основополагающее значение для разработки эффективных алгоритмов и оптимизации производительности программного обеспечения.

🗓 15 октября в 20:00 МСК

🆓 Бесплатно. Урок в рамках старта курса «C# Developer».

🎯 О чём поговорим:
✔️ Array, List, Dictionary, Queue, Stack, Hashtable и другие, - Обсудим их назначение, реализацию в .NET, методы, производительность.
✔️Как делать выбор в пользу той или иной структуры?

👥 Кому будет полезно:
- Начинающим C# разработчикам
- Действующим C# разработчикам - для структурирования знаний

🔗 Ссылка на регистрацию: https://otus.pw/e0bd/?erid=2W5zFHp1ZCL

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

C# (C Sharp) programming

☄️Как устроено автодополнение в поисковых системах?

🗓 8 октября в 20:00 МСК приглашаем на открытый урок OTUS «Как вырастить префиксное дерево». На вебинаре мы пошагово построим префиксное дерево (Trie) для слов из большого текста, добавим счётчики частот и реализуем автодополнение. Вы увидите, как по первым буквам мгновенно находятся все слова с этим префиксом и выводятся самые популярные варианты продолжений.

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

Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.

👉Зарегистрируйтесь сейчас и узнайте, как вырастить своё первое Trie-дерево:https://otus.pw/fDQX/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963

Читать полностью…

C# (C Sharp) programming

🔍 ZeroTrace: Утечка данных из браузеров и мониторинг клиентов

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

🚀 Основные моменты:
- Извлечение паролей и куки из Chrome и других браузеров
- Реальное время мониторинга клиентов с анализом соединений
- Безопасная передача данных с шифрованием
- Поддержка различных операционных систем и браузеров

📌 GitHub: https://github.com/luis22d/ZeroTrace-Stealer-13-2026

#csharp

Читать полностью…

C# (C Sharp) programming

🛡️ Запуск программ с защитой PPL

CreateProcessAsPPL — инструмент для запуска приложений с включенной защитой PPL. Позволяет выбирать уровень защиты для повышения безопасности выполнения программ.

🚀 Основные моменты:
- Поддержка нескольких уровней защиты PPL.
- Удобный интерфейс командной строки.
- Полезен для разработчиков и исследователей безопасности.

📌 GitHub: https://github.com/2x7EQ13/CreateProcessAsPPL

#csharp

Читать полностью…

C# (C Sharp) programming

Better Database Design 💡

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

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


CREATE SCHEMA Orders;
CREATE SCHEMA Shipping;

-- Orders module can only access its schema
CREATE USER OrdersUser WITH DEFAULT_SCHEMA = Orders;
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::Orders TO OrdersUser;

-- Shipping module can only access its schema
CREATE USER ShippingUser WITH DEFAULT_SCHEMA = Shipping;
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::Shipping TO ShippingUser;


⚡ Идея проста:
Создавайте отдельного пользователя для каждой схемы и используйте разные connection string в приложении. Это уменьшает риски и делает архитектуру чище.

Читать полностью…

C# (C Sharp) programming

Оживи робота своим алгоритмом и поборись за призовой фонд в 10 250 000 рублей на True Tech Champ 2025.

True Tech Champ 2025 — это третий всероссийский чемпионат по программированию от МТС с онлайн-этапами отбора и грандиозным шоу-финалом в Москве.

Тебя ждут два трека — выбирай:

I. Алгоритмический [призовой фонд 2 750 000 рублей].

Если классический олимпиадный формат — твоя стихия, этот трек для тебя. Блесни математическими навыками, покажи скилы в работе со структурами данных и написании алгоритмов — и окажись выше соперников в турнирной таблице.

II. Программирование роботов [призовой фонд 7 500 000 рублей].

Запрограммируй робота на скоростное прохождение лабиринта в симуляторе и пройди в финал. На финале участники встретятся офлайн и сразятся на четырех уровнях с полосой препятствий, вспышками света, лазерами и другими препятствиями.

Трек будет интересен начинающим и опытным разработчикам: С++, Go, Python, JS, Java, C# и не только.

Подробности на сайте. Регистрация открыта до 20 октября.

Читать полностью…

C# (C Sharp) programming

Serilog.Sinks.XUnit3 👩‍💻

Пришло время рассказывать про свои библиотеки!

Если вы пишете тесты на xUnit.v3 и логгируете через Serilog, то моё решение для вас!


Каждый на работе сталкивался с непонятным багом. Смотришь в код и видишь фигу)

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

Логгирование призвано помочь разрабу справиться со страданиями, но вот незадача! При запуске интеграционного теста с воспроизведением бага логи никуда не выводятся.

Поэтому я написал Serilog.Sinks.XUnit3!
Чтобы не выходя из IDE разработчик понимал, что происходит!

Призываю вас делится этой библиотекой и внедрять в свои тесты!

👩‍💻 GitHub: https://github.com/Stepami/serilog-sinks-xunit-v3
👩‍💻 NuGet: https://www.nuget.org/packages/Serilog.Sinks.XUnit3

Читать полностью…

C# (C Sharp) programming

Быстрый поиск подстроки: Кнут–Моррис–Пратт на практике!

Разберём алгоритм Кнута–Морриса–Пратта (КМП): почему он работает за линейное время и как «переиспользует» уже найденные совпадения. Покажем, где наивный подход теряет секунды (и деньги), а КМП — нет.

После вебинара вы:
— понимаете префикс-функцию и логику «сдвигов»;
— умеете сравнить наивный поиск и КМП на реальных данных;
— знаете, как внедрить быстрый поиск в проде.

⏰ Урок пройдёт 24 сентября в 20:00 МСК в преддверие старта курса «Алгоритмы и структуры данных». Всем участникам — персональные условия обучения.

👉 Для участия зарегистрируйтесь:
https://otus.pw/R52E/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963

Читать полностью…

C# (C Sharp) programming

❗️C# вопрос с собеседования: Middle–Senior level

Вопрос: почему возникает предупреждение о возможном null, если ProductStock здесь явно не равен null?

Код:


private static IEnumerable<Error> VerifyProductQuantities(
List<ProductStock> products,
Dictionary<string, Domain.Entities.ProductStock> stocks)
{
foreach (var product in products)
{
if (!stocks.TryGetValue(product.ProductName, out var stock))
{
yield return StockErrors.ProductNotFound(product.ProductName);
}

if (stock.AvailableQuantity < product.Quantity)
{
yield return StockErrors.InsufficientStocks(
product.ProductName, product.Quantity, stock.AvailableQuantity);
}
}
}


Компилятор выдет: «Dereference of a possibly null reference» для переменной stock.

Почему так происходит?
• Метод TryGetValue возвращает false, и тогда stock остаётся равным null.
• Даже если мы отфильтровали это через if (!TryGetValue(...)), компилятор не гарантирует, что в блоке после условия stock точно не null.
• В результате в строке if (stock.AvailableQuantity < product.Quantity) возникает предупреждение.

Как исправить?
1. Добавить continue после yield return внутри блока if (!TryGetValue(...)). Тогда компилятор поймёт, что кода после этой ветки для null не будет.
2. Либо использовать оператор !:
if (stock!.AvailableQuantity < product.Quantity) — но это безопасно только если мы уверены, что значение точно не null.
3. Более читаемый вариант — переписать логику так, чтобы работа с stock была строго в ветке, где оно гарантированно задано.

Вопрос для проверки понимания nullable reference types и поведения компилятора при анализе путей выполнения кода.

Читать полностью…

C# (C Sharp) programming

🚀 SQL Ultimate Course — бесплатный полный курс по SQL на GitHub

Если хочешь освоить SQL с нуля и дойти до продвинутого уровня — бери готовый репозиторий:

📂 Что внутри:
- datasets/ — реальные данные из ERP и CRM
- scripts/ — готовые SQL-скрипты для практики
- docs/ — документация и материалы курса

✅ MIT-лицензия — можно использовать и менять свободно
🌍 Подходит для всех СУБД (PostgreSQL, MySQL и др.)
🎥 К курсу прилагаются видео и гайды от автора

Автор: Data With Baraa — практик и ютубер, собравший в одном месте полный SQL-путь от простого SELECT до оптимизации запросов и реальных кейсов.

🔗 Репозиторий здесь: https://github.com/DataWithBaraa/sql-ultimate-course

Сохраняй, проходи и прокачивай SQL 💡

Читать полностью…

C# (C Sharp) programming

#ПятничныйКвиз #ДляСамыхМаленьких

Читать полностью…

C# (C Sharp) programming

⏹️Новая специализация, о которой почти никто не знает: проще вход, ниже конкуренция, выше чеки

В архитектурной сфере катастрофически не хватает разработчиков. Проектировщики и инженеры нуждаются в плагинах для софта, а программистов, которые умеют их писать, — единицы. Конкуренция минимальна, спрос растет, а чеки за проекты выше, чем в классическом аутсорсе.

▶️Освоив Revit API, вы сможете быстро войти в нишу, где каждый навык напрямую конвертируется в деньги.

На курсе «Программирование в Autodesk Revit» от EdTech-платформы STEMPS вы научитесь:

➡️Писать плагины и инструменты на C# для инженеров
➡️Автоматизировать рутинные процессы и проверки моделей
➡️Создавать востребованный софт для архитектурных и проектных бюро

👤Автор курса — Дмитрий Смирнов, CTO DynamicLabs, STEMPS, Atomtech, Plancy. Разрабатывал системы автоматизации и SaaS-системы для компаний на 700+ сотрудников.

🗓 Старт курса — 23 сентября.

📍Студенты получат документ о повышении квалификации.

🔥Успейте записаться на курс со скидкой 10%:
https://stemps.ru/

Читать полностью…

C# (C Sharp) programming

⚡ .NET 9 — самая быстрая платформа 2025 года

Microsoft прокачала .NET так, что он обгоняет почти все популярные фреймворки: Java, Go, Node.js, Python и даже PHP.

🚀 Что сделали:
- Мусорщик (GC) стал адаптивным → меньше пауз даже при высоких нагрузках.
- JIT-компилятор быстрее разогревает код и оптимизирует горячие участки.
- Векторизация через AVX10 и Arm SVE ускоряет циклы в несколько раз.
- Native AOT уменьшает размер бинарников и ускоряет запуск (контейнеры, IoT, edge).
- Сеть (сокеты, HTTP/3) стала работать быстрее с низкой задержкой.
- JSON обрабатывается через System.Text.Json максимально эффективно.
- Меньше аллокаций → меньше нагрузка на память и GC.
- Thread-pool и многопоточность лучше распределяют задачи по ядрам.
- Минимальные API и оптимизация исключений дали ещё +15% к скорости.

📊 Бенчмарки показывают:
- Java (Spring) — медленнее в 2.5 раза
- Go (Fiber) — в 1.3 раза
- Node.js (Fastify) — в 4 раза
- Python (FastAPI) — в 10 раз
- PHP (Laravel) — в 15 раз
- Ruby (Rails) — в 20 раз

💡 Итог: .NET 9 — быстрый старт, низкая задержка и топ-производительность. Отличный выбор для веба, микросервисов и облака.

#dotnet #performance #benchmark #backend

Читать полностью…

C# (C Sharp) programming

🧪 Как правильно строить unit-тестирование в проектах с Clean Architecture

Милан Йованович делится опытом: многие проекты терпят неудачу из-за слабого тестирования.
Когда кодовая база растёт, каждое изменение становится рискованным, а уверенность команды в релизах падает.

В Clean Architecture тестируемость — одна из ключевых идей. Unit-тесты позволяют убедиться, что use cases работают так, как задумано требованиями.

📌 Подход Милана к unit-тестированию:
- использовать NSubstitute для моков зависимостей
- проверять все happy paths
- покрывать все failure paths
- обязательно тестировать обработку исключений

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

✍️ Подробный разбор с пошаговым объяснением можно прочитать в его статье

Читать полностью…

C# (C Sharp) programming

🖥 Полезный ресурс, который содержит вопросы для подготовки к собеседованию по .NET!

🔗 Ссылка: *клик*

@csharp_ci

Читать полностью…

C# (C Sharp) programming

⚡️ .NET-приложения должны быть устойчивыми — и сделать их надежнее реально за пару минут.

В .NET 8 и выше есть библиотеки от Microsoft и обновлённый API Polly — популярной библиотеки для повышения надёжности и обработки сбоев.

С Polly можно легко настроить стратегии:
- повтор запросов (Retry)
- резервные сценарии (Fallback)
- ограничение времени (Timeout)
- контроль частоты (Rate-limiting)
- автоматическое отключение при сбоях (Circuit breaker)

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

Подробный разбор тут

Читать полностью…

C# (C Sharp) programming

❌ Exceptions ≠ Errors

Многие разработчики путают эти понятия и проектируют приложения неправильно. Давайте разберём:

Что такое исключение (exception)?
Это ситуация, из которой приложение не может восстановиться.
Пример: критическая ошибка базы данных, повреждённый файл конфигурации.

Что такое ошибка (error)?
Это ожидаемое состояние сбоя или невыполненное предусловие.
Пример: пользователь ввёл неверный пароль, файл не найден, запрос не прошёл валидацию.

👉 Использовать исключения вместо ошибок = анти-паттерн. Так появляется flow control через исключения, который делает код непредсказуемым и запутанным.

Как правильно:
- Ошибки представляем явно в коде (например, через Result, Option, Either паттерны).
- Исключения оставляем для действительно неожиданных и фатальных ситуаций.

Бонус: Явные ошибки делают намерения кода прозрачными и облегчают поддержку.

📖 Подробнее: https://milanjovanovic.tech/blog/functional-error-handling-in-dotnet-with-the-result-pattern

#dotnet #cleanCode #architecture

Читать полностью…

C# (C Sharp) programming

ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2025 ГОДУ? 🚀

Чтобы стать Senior C# разработчиком сегодня, нужно не только знать язык программирования и фреймворки. Нужно уметь строить гибкую архитектуру приложения, которую легко тестировать и менять под задачи бизнеса. Стань экспертом в построении гибкой архитектуры приложения!

👉 Стартуем 6 октября.

Курс ведет действующий архитектор и Principal Engineer Кирилл Ветчинкин.

Что будет на курсе:
✅ Создадим полноценный микросервис
✅ Разберем все тактические паттерны DDD
✅ Реализуем Use Case и Domain Service
✅ Напишем много тестов
✅ Реализуем HTTP, gRPC и Kafka адаптеры

Полная программа ТУТ 👉 https://microarch.ru/courses/ddd?utm_source=posev&amp;utm_medium=erid:2VtzquiRnay&amp;utm_campaign=5

А главное — ты с нуля разработаешь и запустишь микросервис, который максимально приближен к реальности "Диспетчеризация заказов на курьеров". Это будет крутым проектом в портфолио или основой для рабочих задач.

А еще:
— Проверим все домашки
— Поддержим в чате
— Проведем живые разборы
— Ответим на все вопросы

🔥 Не откладывай свой рост на потом: https://microarch.ru/courses/ddd?utm_source=posev&amp;utm_medium=erid:2VtzquiRnay&amp;utm_campaign=5

Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzquiRnay

Читать полностью…

C# (C Sharp) programming

А может ну это все и улететь работать в космос?👽

На станцию Контур ищут новобранцев — разработчиков, чтобы помочь предпринимателям с разных планет исправить критические ошибки в системах.

Запускайте бота и проходите миссии в течение недели. В конце квеста — розыгрыш бокса с космическим мерчем.

🚀Стажировка уже началась. Вперёд!

Читать полностью…

C# (C Sharp) programming

🚀 Git Pro совет

Хотите быстро узнать, какие файлы менялись чаще всего в репозитории?
Используйте встроенные возможности git log:


# Топ-10 самых часто меняемых файлов
git log --pretty=format: --name-only | \
sort | uniq -c | sort -nr | head -10


💡 Отличный способ найти "проблемные" файлы:
именно они чаще всего требуют правок и могут быть источником багов.

Читать полностью…

C# (C Sharp) programming

📝 TodoList gRPC: Упрощённый бэкенд для собеседований

Этот репозиторий представляет собой облегчённый форк проекта, созданного для проверки навыков кандидатов на собеседованиях. Он предоставляет чистый и компактный бэкенд на основе gRPC и ASP.NET, который используется для создания простого фронтенда, взаимодействующего с API.

🚀 Основные моменты:
- Легковесный бэкенд на C# и ASP.NET Core.
- Использует gRPC для взаимодействия с фронтендом.
- Поддерживает различные клиентские фреймворки.
- Идеален для технических собеседований и оценки навыков.

📌 GitHub: https://github.com/Steffen70/todolist-grpc

@csharp_ci

Читать полностью…

C# (C Sharp) programming

🚫 EF Core + «репозитории» = лишний слой

Часто советуют заворачивать EF Core в Repository Pattern.
Но на практике это делает код только сложнее:

- DbContext уже реализует Repository и Unit of Work
- Репозитории со временем превращаются в «монстров» с десятками методов
- Каждый новый фильтр = новая копипаста

В итоге — абстракция над абстракцией и трудности с поддержкой.

---

✅ Что вместо этого? Specification Pattern

Specification = маленький класс, описывающий правило или фильтр.
Вы комбинируете их и получаете сложные запросы без раздутых репозиториев.

Плюсы:
- 🧩 Простая композиция правил
- 🔍 Ясный и читаемый код
- ♻️ Повторное использование условий
- 🧪 Лёгкое тестирование

📌 Пример


// Бизнес-правило: активные клиенты с заказами за последние 30 дней
public sealed class ActiveCustomersSpec : Specification<Customer>
{
public ActiveCustomersSpec(DateTime since)
{
Criteria = c => c.IsActive && c.Orders.Any(o => o.CreatedAt >= since);
AddInclude(c => c.Orders);
}
}

// Применение
var spec = new ActiveCustomersSpec(DateTime.UtcNow.AddDays(-30));
var customers = await db.Set<Customer>().Apply(spec).ToListAsync();


💡 Итог:

EF Core = уже Repository + UoW

Репозитории поверх EF Core → лишняя абстракция

Specification Pattern → гибкость и читаемость без «метод-монстров»

Читать полностью…

C# (C Sharp) programming

🐧 Часто новички в Linux путаются в терминах: Terminal, Shell, Prompt, Command line.
Разберёмся по порядку 👇

- Terminal — это программа, которая запускает shell. Примеры: Terminator, Konsole.
- Shell — сам интерпретатор команд (bash, zsh, fish и др.).
- Prompt — строка перед тем, как вы начинаете вводить команду (обычно с именем пользователя, директории и т.д.).
- Command line — общее понятие: интерфейс, где можно вводить команды (есть в любой ОС).

🔑 Обычно вы открываете Terminal, видите Prompt, пишете команду — её обрабатывает Shell. Всё просто 😉

Читать полностью…

C# (C Sharp) programming

🚀 Микросервисная платформа для страхования

Yosef — это открытая микросервисная платформа для финансовой страховой отрасли, разработанная на .NET, Python, TypeScript и Golang. Она обеспечивает масштабируемость, гибкость и высокую наблюдаемость для современных страховых приложений.

🚀 Основные моменты:
- Микросервисная архитектура для легкости масштабирования
- Централизованное управление идентификацией и доступом
- Полный цикл страхования от оценки до создания полиса
- Высокая наблюдаемость с использованием Grafana и Prometheus
- Интеграция с современными инструментами безопасности

📌 GitHub: https://github.com/elyosemite/Yosef

#csharp

Читать полностью…

C# (C Sharp) programming

🎮 Клад для геймдева — Kenney Assets

Бесплатная библиотека 2D и 3D-ассетов: спрайты, текстуры, звуки, шрифты и даже модели для VR/AR. Всё под лицензией CC0 — можно использовать где угодно, включая коммерческие проекты.

📌 Плюсы:
- Регулярные обновления и новые пакеты
- Идеально для прототипов, обучения и инди-игр
- Никаких ограничений по использованию

🔥 Забирай здесь: https://kenney.nl/assets

Читать полностью…

C# (C Sharp) programming

⚡ Как выбор структур данных влияет на скорость .NET приложений

Недавно я оптимизировал 12 крупных систем на ASP .NET Core и каждый раз сталкивался с одной и той же проблемой.
Разработчики тратят много времени на оптимизацию запросов, индексов и кэша, но забывают про базу — правильный выбор коллекций.

Ошибка в выборе структуры данных может замедлить приложение в 10 раз.
Вот простые примеры:

1. Поиск по ключу
- List<T>.Find() → O(n) — медленно на больших объёмах
- ✅ Dictionary<K,V> → O(1) — быстрый доступ

2. Вставка в начало списка
- List<T>.Insert(0, item) → O(n) — сдвигает все элементы
- ✅ LinkedList<T> → O(1) — мгновенная вставка

3. Уникальные элементы
- List<T> + Contains() → O(n) на каждую проверку
- ✅ HashSet<T> → O(1) — уникальность проверяется сразу

4. Упорядоченные данные
- List<T> + Sort() → O(n log n) и нужен свой поиск
- ✅ SortedDictionary<K,V> → встроенный порядок и быстрый поиск

5. Кэширование API-ответов
- Static Dictionary → риск утечек памяти и «зависших» данных
- ✅ MemoryCache → встроенная очистка и управление временем жизни

💡 Итог: чаще всего не нужны «хитрые оптимизации». Достаточно выбрать правильную коллекцию — и производительность вырастет кратно.

👉 Вопрос к вам: какая самая серьёзная проблема с производительностью у вас решилась заменой структуры данных?

Читать полностью…

C# (C Sharp) programming

🖥 Notepads — легковесный и функциональный текстовый редактор для Windows, который является альтернативой стандартному блокноту!

💡 Это открытое приложение с современным интерфейсом, ориентированное на простоту использования, но при этом обладающее рядом полезных функций для повседневного редактирования текста и работы с кодом.

🔍 Основные особенности Notepads:

🌟 Минималистичный интерфейс с возможностью использования вкладок для работы с несколькими документами.

🌟 Поддержка синтаксической подсветки для популярных языков программирования (например, Python, JavaScript, HTML и другие).
Возможность использования темной и светлой темы.

🌟 Автосохранение документов и высокая производительность, что делает редактор удобным для работы с небольшими текстовыми файлами и кодом.

🌟 Поддержка Unicode и работы с многоязычными текстами.
Интеграция с Windows 10 API, что позволяет использовать функциональные возможности операционной системы, такие как улучшенные окна и взаимодействие с пользовательским интерфейсом.

🔐 Лицензия: MIT

🖥 Github

@csharp_ci

Читать полностью…

C# (C Sharp) programming

#ПятничныйКвиз
#ОсеньВремяЗаготавливатьОгурцы

Читать полностью…
Subscribe to a channel