Как создавать отчёты в Excel с помощью OpenXML
В статье подробно рассказывается, как программно формировать XLSX-файлы с таблицами, стилями и формулами через библиотеку DocumentFormat.OpenXml. Практические советы помогут автоматизировать создание и оформление отчётов в .NET.
Читать подробнее: https://habr.com/ru/companies/barsgroup/articles/918798/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье подробно рассказывается, как программно формировать XLSX-файлы с таблицами, стилями и формулами через библиотеку DocumentFormat.OpenXml. Практические советы помогут автоматизировать создание и оформление отчётов в .NET.
Читать подробнее: https://habr.com/ru/companies/barsgroup/articles/918798/
#ru
@dot_net_c_sharp | Другие наши каналы
❤1
Создание хоррора в Unity: опыт и сложности
Автор с базовыми знаниями C# и Unity рассказывает о создании хоррора с процедурной генерацией комнат и врагом. В статье описаны технические нюансы и трудности, с которыми он столкнулся, а также ценные уроки из процесса разработки.
Читать подробнее: https://habr.com/ru/articles/919034/
#ru
@dot_net_c_sharp | Другие наши каналы
Автор с базовыми знаниями C# и Unity рассказывает о создании хоррора с процедурной генерацией комнат и врагом. В статье описаны технические нюансы и трудности, с которыми он столкнулся, а также ценные уроки из процесса разработки.
Читать подробнее: https://habr.com/ru/articles/919034/
#ru
@dot_net_c_sharp | Другие наши каналы
Как работать с вложенными ветками в Git
Статья подробно объясняет подход использования «стековых» веток и PR для более удобного и модульного обзора кода. Такой способ помогает разбивать работу на маленькие части, ускорять ревью и не блокировать разработку. Как управлять стеком коммитов в Git: статьи рассказывают, как с помощью git-absorb и интерактивного ребейза упростить правки в сложных ветках. Эти инструменты помогают аккуратно вносить изменения и предотвращать конфликты при работе с несколькими связанными коммитами.
Подробности: https://andrewlock.net/working-with-stacked-branches-in-git-part-1/
#en
@dot_net_c_sharp | Другие наши каналы
Статья подробно объясняет подход использования «стековых» веток и PR для более удобного и модульного обзора кода. Такой способ помогает разбивать работу на маленькие части, ускорять ревью и не блокировать разработку. Как управлять стеком коммитов в Git: статьи рассказывают, как с помощью git-absorb и интерактивного ребейза упростить правки в сложных ветках. Эти инструменты помогают аккуратно вносить изменения и предотвращать конфликты при работе с несколькими связанными коммитами.
Подробности: https://andrewlock.net/working-with-stacked-branches-in-git-part-1/
#en
@dot_net_c_sharp | Другие наши каналы
Добавление поддержки обработки изображений в .NET MAUI-приложения позволяет расширить возможности взаимодействия с пользователем. Используя AI, приложение может анализировать фото и автоматически создавать задачи и проекты, обеспечивая удобный и интеллектуальный пользовательский опыт.
Подробности: https://devblogs.microsoft.com/dotnet/multimodal-vision-intelligence-with-dotnet-maui/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://devblogs.microsoft.com/dotnet/multimodal-vision-intelligence-with-dotnet-maui/
#en
@dot_net_c_sharp | Другие наши каналы
Как сборщик мусора в .NET улучшает производительность приложений
Пост: В .NET сборщик мусора автоматически освобождает память, разделяя объекты по поколениям для быстрой и эффективной очистки. Правильное использование IDisposable обеспечивает своевременное управление ресурсами и оптимизирует работу приложений.
Читать подробнее: https://habr.com/ru/articles/919438/
#ru
@dot_net_c_sharp | Другие наши каналы
Пост: В .NET сборщик мусора автоматически освобождает память, разделяя объекты по поколениям для быстрой и эффективной очистки. Правильное использование IDisposable обеспечивает своевременное управление ресурсами и оптимизирует работу приложений.
Читать подробнее: https://habr.com/ru/articles/919438/
#ru
@dot_net_c_sharp | Другие наши каналы
💊1
Разбор структуры данных в F#: кортежи, анонимные рекорды и оптимизация работы с ними. В статье рассматриваются тонкости наследования, композиции и инициализации объектов, а также нестандартные приёмы для повышения эффективности и удобства в функциональном программировании на F#.
Читать подробнее: https://habr.com/ru/companies/first/articles/919448/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/companies/first/articles/919448/
#ru
@dot_net_c_sharp | Другие наши каналы
Гибкая фильтрация и пагинация в .NET с OData и альтернативами
В статье обсуждают использование OData и других библиотек для фильтрации и сортировки данных в .NET. Рассматриваются примеры интеграции с WebAPI, настройка сложных запросов и возможности, а также ограничения популярных подходов.
Читать подробнее: https://habr.com/ru/companies/tbank/articles/919482/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье обсуждают использование OData и других библиотек для фильтрации и сортировки данных в .NET. Рассматриваются примеры интеграции с WebAPI, настройка сложных запросов и возможности, а также ограничения популярных подходов.
Читать подробнее: https://habr.com/ru/companies/tbank/articles/919482/
#ru
@dot_net_c_sharp | Другие наши каналы
👍1
Unity Job System: как оптимизировать многопоточность без лишних потоков
В статье объясняют, как Unity Job System улучшает производительность, создавая задачи вместо потоков. Это снижает конкуренцию за ядра и предотвращает ошибки с памятью, позволяя эффективно распараллеливать вычисления и управлять ресурсами.
Читать подробнее: https://habr.com/ru/articles/910460/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье объясняют, как Unity Job System улучшает производительность, создавая задачи вместо потоков. Это снижает конкуренцию за ядра и предотвращает ошибки с памятью, позволяя эффективно распараллеливать вычисления и управлять ресурсами.
Читать подробнее: https://habr.com/ru/articles/910460/
#ru
@dot_net_c_sharp | Другие наши каналы
Новый софт для управления 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