Новый софт для управления Ambilight сочетает SIMD-оптимизации и шейдеры для плавной подсветки на трёх телевизорах. Автор делится опытом снижения нагрузки в C# через нестандартные приёмы и эффективное управление памятью, улучшая производительность и надёжность системы.
Читать подробнее: https://habr.com/ru/articles/902040/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/articles/902040/
#ru
@dot_net_c_sharp | Другие наши каналы
Красно-чёрные деревья: принципы работы и применение
В статье разобраны основы красно-чёрных деревьев, их реализация на C#, особенности хранения повторяющихся ключей и балансировки. Также показано, как на их основе строятся эффективные интервальные деревья для быстрого поиска пересечений.
Читать подробнее: https://habr.com/ru/articles/920390/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье разобраны основы красно-чёрных деревьев, их реализация на C#, особенности хранения повторяющихся ключей и балансировки. Также показано, как на их основе строятся эффективные интервальные деревья для быстрого поиска пересечений.
Читать подробнее: https://habr.com/ru/articles/920390/
#ru
@dot_net_c_sharp | Другие наши каналы
Высокопроизводительный лог в .NET 8: как снизить аллокации и ускорить работу. Новые возможности InterpolatedStringHandler позволяют писать логи без лишних копий и затрат памяти, автоматически пропуская ненужные вычисления при низком уровне логирования. Новый подход в .NET 8+ позволяет вести логирование без дополнительных аллокаций и при этом сохранять удобный $"..."-синтаксис. InterpolatedStringHandler снижает нагрузку на память и ускоряет работу приложений, облегчая поддержку производительного кода.
Читать подробнее: https://habr.com/ru/companies/otus/articles/920288/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/companies/otus/articles/920288/
#ru
@dot_net_c_sharp | Другие наши каналы
👍1
Комментарии в коде: зло или спасение ?
Когда нужны комментарии в коде, а когда без них лучше. Объясняем на примерах, как писать понятные и полезные комментарии
Читать: «Комментарии в коде: зло или спасение ?»
#ru
@dot_net_c_sharp | Другие наши каналы
Когда нужны комментарии в коде, а когда без них лучше. Объясняем на примерах, как писать понятные и полезные комментарии
Читать: «Комментарии в коде: зло или спасение ?»
#ru
@dot_net_c_sharp | Другие наши каналы
Эволюция визуализации данных: опыт DDPlanet с Grafana
Команда DDPlanet заменила собственный интерфейс на Grafana и Apache Airflow для автоматизации KPI и аналитики. Благодаря гибким дашбордам и уведомлениям в мессенджерах повысилась прозрачность работы и скорость реакции руководства.
Читать подробнее: https://habr.com/ru/articles/921156/
#ru
@dot_net_c_sharp | Другие наши каналы
Команда DDPlanet заменила собственный интерфейс на Grafana и Apache Airflow для автоматизации KPI и аналитики. Благодаря гибким дашбордам и уведомлениям в мессенджерах повысилась прозрачность работы и скорость реакции руководства.
Читать подробнее: https://habr.com/ru/articles/921156/
#ru
@dot_net_c_sharp | Другие наши каналы
❤2
Работа с вложенными ветками в Git: эффективный подход для крупных фич. В статье рассказывается о преимуществах stacked branches и как упростить ребейз и пуш цепочки таких веток с помощью опции --update-refs и кастомной команды git push-stack. Как правильно ребейзить стек веток в Git после squash-слияния. В статье объясняют, как с помощью ключа --onto избежать конфликтов при ребейзе стека, если одна из веток уже объединена в main с помощью squash, и как безопасно обновить и запушить такие ветки.
Подробности: https://andrewlock.net/working-with-stacked-branches-in-git-part-2/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://andrewlock.net/working-with-stacked-branches-in-git-part-2/
#en
@dot_net_c_sharp | Другие наши каналы
Как внедрить внешний код в игру на C# без крашей
В статье рассказывается, как через Reflection и изменение ключевых функций запустить изменённый клиент Stronghold Kingdoms и создать бота для автоматизации торговли и управления ресурсами в игре. Полезный опыт интеграции и работы с внутренним API.
Читать подробнее: https://habr.com/ru/articles/225663/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье рассказывается, как через Reflection и изменение ключевых функций запустить изменённый клиент Stronghold Kingdoms и создать бота для автоматизации торговли и управления ресурсами в игре. Полезный опыт интеграции и работы с внутренним API.
Читать подробнее: https://habr.com/ru/articles/225663/
#ru
@dot_net_c_sharp | Другие наши каналы
❤3
Точный замер времени в .NET: почему Stopwatch лучше DateTime для измерения производительности. В статье объясняется, как Stopwatch с высокоточным таймером HPET помогает получить точные результаты и избежать ошибок, связанных с ограничениями DateTime и системными нюансами.
Читать подробнее: https://habr.com/ru/articles/226279/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/articles/226279/
#ru
@dot_net_c_sharp | Другие наши каналы
❤2
Как справляться с интеграциями внешних XML-сервисов
Интеграции с внешними системами часто проблемны из-за устаревших технологий и нестабильности. В статье архитектор Алексей Мерсон рассказывает, как адаптировать, тестировать и изолировать такие сервисы для повышения надежности и удобства разработки.
Читать подробнее: https://habr.com/ru/companies/karuna/articles/574420/
#ru
@dot_net_c_sharp | Другие наши каналы
Интеграции с внешними системами часто проблемны из-за устаревших технологий и нестабильности. В статье архитектор Алексей Мерсон рассказывает, как адаптировать, тестировать и изолировать такие сервисы для повышения надежности и удобства разработки.
Читать подробнее: https://habr.com/ru/companies/karuna/articles/574420/
#ru
@dot_net_c_sharp | Другие наши каналы
Автоматическое обновление версии приложения с Azure DevOps
Статья рассказывает, как настроить автоматическое увеличение номера версии приложения в .NET Core при каждом коммите в ветку main через Azure DevOps Pipeline. Это помогает точно отслеживать актуальную версию продукта в разных средах. Автоматическое обновление версии в Azure DevOps
В статье описан скрипт для автоматического увеличения номера версии AssemblyVersion при каждой CI-сборке в ветке main. Новый номер версии фиксируется в отдельной локальной ветке без запуска повторных сборок. Автоматизация CI/CD: как автоматически объединять ветки и деплоить проект в Azure DevOps. В статье подробно показан пример настройки пайплайна, который при успешной сборке выполняет merge ветки в main с помощью PowerShell и загружает изменения в удалённый репозиторий.
Читать подробнее: https://habr.com/ru/articles/576464/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья рассказывает, как настроить автоматическое увеличение номера версии приложения в .NET Core при каждом коммите в ветку main через Azure DevOps Pipeline. Это помогает точно отслеживать актуальную версию продукта в разных средах. Автоматическое обновление версии в Azure DevOps
В статье описан скрипт для автоматического увеличения номера версии AssemblyVersion при каждой CI-сборке в ветке main. Новый номер версии фиксируется в отдельной локальной ветке без запуска повторных сборок. Автоматизация CI/CD: как автоматически объединять ветки и деплоить проект в Azure DevOps. В статье подробно показан пример настройки пайплайна, который при успешной сборке выполняет merge ветки в main с помощью PowerShell и загружает изменения в удалённый репозиторий.
Читать подробнее: https://habr.com/ru/articles/576464/
#ru
@dot_net_c_sharp | Другие наши каналы
Эволюция программиста 2005–2025: от CRT-мониторов до квантовых алгоритмов
Эпохи развития программирования в России и в мире. Какие стадии прошли разработчики и к чему пришли в настоящий момент. Прогнозы на будущее.
Читать: «Эволюция программиста 2005–2025: от CRT-мониторов до квантовых алгоритмов»
#ru
@dot_net_c_sharp | Другие наши каналы
Эпохи развития программирования в России и в мире. Какие стадии прошли разработчики и к чему пришли в настоящий момент. Прогнозы на будущее.
Читать: «Эволюция программиста 2005–2025: от CRT-мониторов до квантовых алгоритмов»
#ru
@dot_net_c_sharp | Другие наши каналы
🤣1
6000 строк боли: как несистемный код убил игру с поддержкой крупного издателя. Опыт одного геймдев-разработчика показывает, что отсутствие архитектуры и хаос в коде могут погубить даже многообещающий проект. Учимся на чужих ошибках! Почему стоит постоянно учиться в геймдеве? Статья раскрывает, как страх удаления старого кода превращается в технический долг, тормозящий проект. Рост приходит через работу в команде, разбор чужого кода и постоянный фидбэк. Оставаться на месте — опаснее всего.
Читать подробнее: https://habr.com/ru/articles/922162/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/articles/922162/
#ru
@dot_net_c_sharp | Другие наши каналы
🔥4
Упрощение XAML в .NET MAUI: начиная с .NET 10 Preview 5, появилась возможность глобально объявлять пространства имён для XAML. Это избавляет от необходимости указывать xmlns и префиксы в каждом файле, делая код чище и удобнее для поддержки. Как избежать конфликтов типов в .NET MAUI XAML
В .NET MAUI могут возникать коллизии имен, например с собственными контролами и встроенными типами. В статье рассказывается, как с помощью XmlnsPrefix задать префиксы для пространств имён и избежать конфликтов в XAML. Важно учитывать, что сейчас это находится в предварительной версии с некоторыми багами.
Подробности: https://devblogs.microsoft.com/dotnet/simpler-xaml-in-dotnet-maui-10/
#en
@dot_net_c_sharp | Другие наши каналы
В .NET MAUI могут возникать коллизии имен, например с собственными контролами и встроенными типами. В статье рассказывается, как с помощью XmlnsPrefix задать префиксы для пространств имён и избежать конфликтов в XAML. Важно учитывать, что сейчас это находится в предварительной версии с некоторыми багами.
Подробности: https://devblogs.microsoft.com/dotnet/simpler-xaml-in-dotnet-maui-10/
#en
@dot_net_c_sharp | Другие наши каналы
🔥6❤2
Новый взгляд на работу с устаревшими системами: в статье описан опыт создания кастомного ORM и выбора эффективного протокола передачи данных для ускорения работы с базами Oracle и интеграции с WinForms. История борьбы с тормозами и хаосом в коде.
Читать подробнее: https://habr.com/ru/articles/922672/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/articles/922672/
#ru
@dot_net_c_sharp | Другие наши каналы
🔥2
Обзор современных инструментов логирования в .NET: почему ELK-стек востребован, несмотря на сложную настройку, и как он помогает собирать и анализировать логи через Elasticsearch и Kibana. Также рассматриваются альтернативы — Loki и .NET Aspire. Полезно для разработчиков. Настройка ELK для C#: простой способ интеграции логов и телеметрии через Elastic.Extensions.Logging и OpenTelemetry. В статье описывается запуск всех компонентов ELK через docker-compose и базовая конфигурация для сбора и визуализации данных в Kibana. Как настроить логирование в .NET с ELK и Serilog
В статье рассказывается о полезных инструментах для логирования в .NET: Filebeat для сбора логов, Serilog как продвинутый логгер и удобный Nuget-пакет Elastic для быстрой интеграции с ELK-стеком. Также упоминаются сложности и альтернативы.
Читать подробнее: https://habr.com/ru/articles/922942/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье рассказывается о полезных инструментах для логирования в .NET: Filebeat для сбора логов, Serilog как продвинутый логгер и удобный Nuget-пакет Elastic для быстрой интеграции с ELK-стеком. Также упоминаются сложности и альтернативы.
Читать подробнее: https://habr.com/ru/articles/922942/
#ru
@dot_net_c_sharp | Другие наши каналы
👍3
n8n: установка, настройка и интеграция с Python, Node.JS и PHP
Подробный туториал по установке и настройки n8n. Примеры интеграции с Python, Node.JS и PHP и взаимодействия с LLM Mistral AI.
Читать: «n8n: установка, настройка и интеграция с Python, Node.JS и PHP»
#ru
@dot_net_c_sharp | Другие наши каналы
Подробный туториал по установке и настройки n8n. Примеры интеграции с Python, Node.JS и PHP и взаимодействия с LLM Mistral AI.
Читать: «n8n: установка, настройка и интеграция с Python, Node.JS и PHP»
#ru
@dot_net_c_sharp | Другие наши каналы
.NET 10 упрощает запуск приложений: теперь для запуска C# достаточно одного файла без проекта .csproj. Этот подход облегчает изучение языка и создание утилит, позволяя новичкам и разработчикам быстро запускать и настраивать код через dotnet run app.cs. Новый опыт запуска single-file приложений в .NET 10 позволяет выполнять C#-скрипты напрямую через «dotnet app.cs» без команды run. Появилась поддержка публикации NativeAOT-приложений и удобная работа с shebang в Linux. Подробнее об обновлениях в статье.
Подробности: https://andrewlock.net/exploring-dotnet-10-preview-features-1-exploring-the-dotnet-run-app.cs/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://andrewlock.net/exploring-dotnet-10-preview-features-1-exploring-the-dotnet-run-app.cs/
#en
@dot_net_c_sharp | Другие наши каналы
👍9🔥9
Оптимизация работы с коллекциями в .NET: новые версии ускоряют метод Any() благодаря внутренним улучшениям, но в многопоточных коллекциях лучше использовать IsEmpty или итератор. В статье также представлен анализатор для автоматического поиска неэффективного кода.
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/917570/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/917570/
#ru
@dot_net_c_sharp | Другие наши каналы
🥰2
Forwarded from Типичный программист
ntfy: крутой open-source сервис для пуш-уведомлений
Эта open source тулза для пуш-уведомлений, которая позволяет отправлять уведомления на телефон или компьютер с помощью простых HTTP-запросов PUT/POST. Кто пробовал Telepush или Pushover — найдёт много общего: отправляй хоть curl’ом, хоть через свой бэкенд.
Настроить проще, чем объяснить заказчику дедлайн. Для всего, что должно всплывать мгновенно — тудушки, алёрты, CI/CD или, не дай бог, упавший прод.
Поддерживает и яблоки и андройд, так что пользуйтесь
Эта open source тулза для пуш-уведомлений, которая позволяет отправлять уведомления на телефон или компьютер с помощью простых HTTP-запросов PUT/POST. Кто пробовал Telepush или Pushover — найдёт много общего: отправляй хоть curl’ом, хоть через свой бэкенд.
Настроить проще, чем объяснить заказчику дедлайн. Для всего, что должно всплывать мгновенно — тудушки, алёрты, CI/CD или, не дай бог, упавший прод.
Поддерживает и яблоки и андройд, так что пользуйтесь
👍2❤1
Новые возможности .NET 10 и локальные AI-модели помогают быстро создавать подробные описания для изображений (AltText). Это улучшает доступность и автоматизирует процессы без задержек и ограничений облака. Простая реализация на C# демонстрирует, как улучшить UX с помощью AI.
Подробности: https://devblogs.microsoft.com/dotnet/alttext-generator-csharp-local-models/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://devblogs.microsoft.com/dotnet/alttext-generator-csharp-local-models/
#en
@dot_net_c_sharp | Другие наши каналы
❤2
Microsoft выпустил бесплатный курс по Model Context Protocol с практикой на Python, C# и Java
Microsoft запустил бесплатный практический курс по протоколу Model Context Protocol (MCP) с примерами на Python, C#, Java и TypeScript для разработки LLM-приложений и серверов MCP.
Читать: «Microsoft выпустил бесплатный курс по Model Context Protocol с практикой на Python, C# и Java»
#ru
@dot_net_c_sharp | Другие наши каналы
Microsoft запустил бесплатный практический курс по протоколу Model Context Protocol (MCP) с примерами на Python, C#, Java и TypeScript для разработки LLM-приложений и серверов MCP.
Читать: «Microsoft выпустил бесплатный курс по Model Context Protocol с практикой на Python, C# и Java»
#ru
@dot_net_c_sharp | Другие наши каналы
⚡4