🚀 Автоматизация офисных приложений в Linux: новые горизонты
Кирилл Пронин из PIX Robotics делится опытом интеграции PIX Studio с офисными приложениями в Linux. В статье рассматриваются тонкости работы с XML-форматами и выбор между XDocument и XmlDocument. Узнайте, как эффективно обрабатывать данные и управлять документацией.
Читать подробнее: https://habr.com/ru/companies/pix_robotics/articles/882242/
#ru
@dot_net_c_sharp | Другие наши каналы
Кирилл Пронин из PIX Robotics делится опытом интеграции PIX Studio с офисными приложениями в Linux. В статье рассматриваются тонкости работы с XML-форматами и выбор между XDocument и XmlDocument. Узнайте, как эффективно обрабатывать данные и управлять документацией.
Читать подробнее: https://habr.com/ru/companies/pix_robotics/articles/882242/
#ru
@dot_net_c_sharp | Другие наши каналы
Часть 2: Как оптимизировать логирование в .NET: советы и примеры
Узнайте, как оптимизировать логирование в .NET на практике. Разбираем тесты производительности, сравниваем методы и показываем, как автоматизировать переход на эффективное логирование.
Читать: «Часть 2: Как оптимизировать логирование в .NET: советы и примеры»
#ru
@dot_net_c_sharp | Другие наши каналы
Узнайте, как оптимизировать логирование в .NET на практике. Разбираем тесты производительности, сравниваем методы и показываем, как автоматизировать переход на эффективное логирование.
Читать: «Часть 2: Как оптимизировать логирование в .NET: советы и примеры»
#ru
@dot_net_c_sharp | Другие наши каналы
Новые возможности для разработки с Razor
Вам понравятся свежие обновления для Visual Studio и Visual Studio Code! Функция Extract to Component упростит создание компонентов, а токенизатор Roslyn улучшит обработку C# в Razor. Узнайте, как эти инструменты сделают ваш код чище и эффективнее.
Подробности: https://devblogs.microsoft.com/dotnet/enhancing-razor-productivity-with-new-features/
#en
@dot_net_c_sharp | Другие наши каналы
Вам понравятся свежие обновления для Visual Studio и Visual Studio Code! Функция Extract to Component упростит создание компонентов, а токенизатор Roslyn улучшит обработку C# в Razor. Узнайте, как эти инструменты сделают ваш код чище и эффективнее.
Подробности: https://devblogs.microsoft.com/dotnet/enhancing-razor-productivity-with-new-features/
#en
@dot_net_c_sharp | Другие наши каналы
👍1
🔍 Обнаружены ошибки в MSBuild от Microsoft
В рамках анализа MSBuild, инструмента для сборки приложений от Microsoft, выявлены потенциальные ошибки. Первый случай: некорректная строка формата при вызове метода Trace, что приводит к потере сообщений об ошибках. Во втором случае неправильная отписка от событий может привести к неожиданному поведению.
Читать подробнее: https://habr.com/ru/companies/pvs-studio/articles/882530/
#ru
@dot_net_c_sharp | Другие наши каналы
В рамках анализа MSBuild, инструмента для сборки приложений от Microsoft, выявлены потенциальные ошибки. Первый случай: некорректная строка формата при вызове метода Trace, что приводит к потере сообщений об ошибках. Во втором случае неправильная отписка от событий может привести к неожиданному поведению.
Читать подробнее: https://habr.com/ru/companies/pvs-studio/articles/882530/
#ru
@dot_net_c_sharp | Другие наши каналы
👍2
Погружаемся в мир делегатов C#
Делегаты в C#—это указатели на методы, хранящие ссылки в хипе и позволящие взаимодействовать с классами и их переменными. В данной статье разъясняется, как делегаты работают на низком уровне. Обсуждаются механизмы, такие как замыкания, и отличается ли их поведение с классами и структурами.
Читать подробнее: https://habr.com/ru/articles/882676/
#ru
@dot_net_c_sharp | Другие наши каналы
Делегаты в C#—это указатели на методы, хранящие ссылки в хипе и позволящие взаимодействовать с классами и их переменными. В данной статье разъясняется, как делегаты работают на низком уровне. Обсуждаются механизмы, такие как замыкания, и отличается ли их поведение с классами и структурами.
Читать подробнее: https://habr.com/ru/articles/882676/
#ru
@dot_net_c_sharp | Другие наши каналы
👍4
🔍 Делегаты в C#: что это и зачем нужно?
Делегаты в C# позволяют передавать методы как аргументы и хранить функции в переменных, что делает код более гибким и переиспользуемым. Они похожи на указатели функций в C++, но более безопасны. Из статьи вы узнаете, как использовать делегаты для логирования и динамического вызова методов.
Подробности: https://theoramalatso.hashnode.dev/understanding-delegates-in-c
#en
@dot_net_c_sharp | Другие наши каналы
Делегаты в C# позволяют передавать методы как аргументы и хранить функции в переменных, что делает код более гибким и переиспользуемым. Они похожи на указатели функций в C++, но более безопасны. Из статьи вы узнаете, как использовать делегаты для логирования и динамического вызова методов.
Подробности: https://theoramalatso.hashnode.dev/understanding-delegates-in-c
#en
@dot_net_c_sharp | Другие наши каналы
👍3
Тайны кастования в C#: изучаем детали
В статье автор делится опытом реализации кастования через оператор 'as' в C#, исследуя, при каких условиях возникают ошибки компиляции. Вопросы возникают на границе работы с интерфейсами. Почему компилятор позволяет преобразования, даже если класс не реализует интерфейс напрямую? Ответ скрыт в особенностях C#.
Читать подробнее: https://habr.com/ru/articles/882888/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье автор делится опытом реализации кастования через оператор 'as' в C#, исследуя, при каких условиях возникают ошибки компиляции. Вопросы возникают на границе работы с интерфейсами. Почему компилятор позволяет преобразования, даже если класс не реализует интерфейс напрямую? Ответ скрыт в особенностях C#.
Читать подробнее: https://habr.com/ru/articles/882888/
#ru
@dot_net_c_sharp | Другие наши каналы
🗿1
Паттерн Репозитория: Когда и как использовать
Суть статьи: Паттерн Репозитория популяризировался благодаря концепциям Domain-Driven Design, но его нередко применяют неуместно. Он эффективен для сложной логики и агрегатов, но избыточен для простых CRUD операций. Важно понимать, когда использовать репозиторий, чтобы не усложнять код. Правильное применение DDD и паттерна Repository
Текст: Domain-Driven Design — это методология, а не универсальное решение. Важно понимать контексты и создавать целостные модели, не превращая каждую таблицу в репозиторий. Ценим простоту и продуманность архитектуры для достижения лучших результатов.
Подробности: https://danyl.hashnode.dev/the-overuse-of-repositories
#en
@dot_net_c_sharp | Другие наши каналы
Суть статьи: Паттерн Репозитория популяризировался благодаря концепциям Domain-Driven Design, но его нередко применяют неуместно. Он эффективен для сложной логики и агрегатов, но избыточен для простых CRUD операций. Важно понимать, когда использовать репозиторий, чтобы не усложнять код. Правильное применение DDD и паттерна Repository
Текст: Domain-Driven Design — это методология, а не универсальное решение. Важно понимать контексты и создавать целостные модели, не превращая каждую таблицу в репозиторий. Ценим простоту и продуманность архитектуры для достижения лучших результатов.
Подробности: https://danyl.hashnode.dev/the-overuse-of-repositories
#en
@dot_net_c_sharp | Другие наши каналы
Генерация случайных строк: быстро и просто
Встретилась необходимость генерировать случайные строки для тестирования или анонимизации данных? Разработанное решение позволяет создать такие строки любой длины с абсолютной случайностью буквально за секунды. Идеально для наполнения тестовой базы данных разработчикам всех уровней. Эффективная генерация уникальных строк на C#
Реализован алгоритм, генерирующий 100 млн. уникальных строк менее чем за минуту на обычном ПК. Генерация происходит через GUID и криптохэширование с параллельной обработкой. Результат сохраняется в массив, который при записи в файл занимает около 4Гб. Код проверен на .NET8.
Читать подробнее: https://habr.com/ru/companies/alfa/articles/883226/
#ru
@dot_net_c_sharp | Другие наши каналы
Встретилась необходимость генерировать случайные строки для тестирования или анонимизации данных? Разработанное решение позволяет создать такие строки любой длины с абсолютной случайностью буквально за секунды. Идеально для наполнения тестовой базы данных разработчикам всех уровней. Эффективная генерация уникальных строк на C#
Реализован алгоритм, генерирующий 100 млн. уникальных строк менее чем за минуту на обычном ПК. Генерация происходит через GUID и криптохэширование с параллельной обработкой. Результат сохраняется в массив, который при записи в файл занимает около 4Гб. Код проверен на .NET8.
Читать подробнее: https://habr.com/ru/companies/alfa/articles/883226/
#ru
@dot_net_c_sharp | Другие наши каналы
Настройка переменных окружения в IIS без перезагрузки
Описание: Управление переменными окружения в IIS может быть сложной задачей. В статье рассматриваются различные подходы, такие как настройка на уровне системы, для служб W3SVC и WAS, а также через файл applicationHost.config. Узнайте об их преимуществах и ограничениях.
Подробности: https://andrewlock.net/setting-environment-variables-in-iis-and-avoiding-app-pool-restarts/
#en
@dot_net_c_sharp | Другие наши каналы
Описание: Управление переменными окружения в IIS может быть сложной задачей. В статье рассматриваются различные подходы, такие как настройка на уровне системы, для служб W3SVC и WAS, а также через файл applicationHost.config. Узнайте об их преимуществах и ограничениях.
Подробности: https://andrewlock.net/setting-environment-variables-in-iis-and-avoiding-app-pool-restarts/
#en
@dot_net_c_sharp | Другие наши каналы
Как улучшить производительность запросов в EF Core
Использование EF Core может быть медленным, особенно при обработке больших объемов данных. В статье обсуждается семь стратегий для оптимизации запросов. Среди них — проекция нужных данных, использование .AsSplitQuery() для работы с связанными сущностями и применение асинхронных методов для повышения отзывчивости приложений.
Подробности: https://ujjwal-ghatani-dev.hashnode.dev/boost-your-applications-performance-7-effective-strategies-for-writing-efficient-db-queries-in-ef-core
#en
@dot_net_c_sharp | Другие наши каналы
Использование EF Core может быть медленным, особенно при обработке больших объемов данных. В статье обсуждается семь стратегий для оптимизации запросов. Среди них — проекция нужных данных, использование .AsSplitQuery() для работы с связанными сущностями и применение асинхронных методов для повышения отзывчивости приложений.
Подробности: https://ujjwal-ghatani-dev.hashnode.dev/boost-your-applications-performance-7-effective-strategies-for-writing-efficient-db-queries-in-ef-core
#en
@dot_net_c_sharp | Другие наши каналы
🚀 Новый SDK для работы с Chroma в C#!
Теперь вы можете использовать Chroma как базу данных для ваших AI-приложений в .NET. Это открытый инструмент для семантического поиска и хранения данных, включая векторный и полнотекстовый поиск. Начните с ChromaDB.Client и оценивайте возможности Chroma на практике.
Подробности: https://devblogs.microsoft.com/dotnet/announcing-chroma-db-csharp-sdk/
#en
@dot_net_c_sharp | Другие наши каналы
Теперь вы можете использовать Chroma как базу данных для ваших AI-приложений в .NET. Это открытый инструмент для семантического поиска и хранения данных, включая векторный и полнотекстовый поиск. Начните с ChromaDB.Client и оценивайте возможности Chroma на практике.
Подробности: https://devblogs.microsoft.com/dotnet/announcing-chroma-db-csharp-sdk/
#en
@dot_net_c_sharp | Другие наши каналы
👍2
Осваиваем Docker и C# вместе: начнем с основ
Пост: Изучение Docker и C# может показаться сложным, но все начинается с простых шагов. Как построить докерфайл и создать консольное приложение на C#? Статья предлагает пошаговый подход, чтобы настроить ваш проект, используя базовые команды dotnet и многослойную сборку. Эффективная сборка .NET приложений
В статье рассказывается о создании простого пайплайна для сборки и деплоя .NET приложений. Используются кэширование NuGet пакетов, сборка с релизной конфигурацией и сохранение артефактов, что упрощает работу и обеспечивает только необходимые файлы для запуска.
Читать подробнее: https://habr.com/ru/articles/884084/
#ru
@dot_net_c_sharp | Другие наши каналы
Пост: Изучение Docker и C# может показаться сложным, но все начинается с простых шагов. Как построить докерфайл и создать консольное приложение на C#? Статья предлагает пошаговый подход, чтобы настроить ваш проект, используя базовые команды dotnet и многослойную сборку. Эффективная сборка .NET приложений
В статье рассказывается о создании простого пайплайна для сборки и деплоя .NET приложений. Используются кэширование NuGet пакетов, сборка с релизной конфигурацией и сохранение артефактов, что упрощает работу и обеспечивает только необходимые файлы для запуска.
Читать подробнее: https://habr.com/ru/articles/884084/
#ru
@dot_net_c_sharp | Другие наши каналы
❤3
Нововведения в .NET MAUI: снижение размера приложений и улучшение производительности
Текст: В .NET 9 для .NET MAUI появляются новые возможности, такие как поддержка NativeAOT и оптимизация кода через полное обрезание. Эти функции помогают уменьшить размер приложений и улучшить их быстродействие. Разработчики могут теперь использовать инструменты .NET для анализа производительности своих приложений. Оптимизация .NET MAUI: новые инструменты и возможности
.NET 9 приносит улучшения в производительность приложений MAUI, включая полное сокращение и поддержку NativeAOT. С помощью инструментов dotnet-trace и dotnet-gcdump разработчики могут анализировать производительность своих приложений, уменьшая их размер и улучшая время запуска.
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-9-performance-improvements-in-dotnet-maui/
#en
@dot_net_c_sharp | Другие наши каналы
Текст: В .NET 9 для .NET MAUI появляются новые возможности, такие как поддержка NativeAOT и оптимизация кода через полное обрезание. Эти функции помогают уменьшить размер приложений и улучшить их быстродействие. Разработчики могут теперь использовать инструменты .NET для анализа производительности своих приложений. Оптимизация .NET MAUI: новые инструменты и возможности
.NET 9 приносит улучшения в производительность приложений MAUI, включая полное сокращение и поддержку NativeAOT. С помощью инструментов dotnet-trace и dotnet-gcdump разработчики могут анализировать производительность своих приложений, уменьшая их размер и улучшая время запуска.
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-9-performance-improvements-in-dotnet-maui/
#en
@dot_net_c_sharp | Другие наши каналы
🔍 Новые возможности ASP.NET Core 9: отключение метрик
ASP.NET Core 9 предлагает функцию выборочного отключения http-метрик, что позволяет исключать технические endpoints из метрик. Это полезно для минимизации ненужной статистики и облегчения работы с данными в minimal API, контроллерах и middleware. В статье рассмотрены примеры и механика работы этого инструмента. Новые возможности метрик в ASP.NET Core
Вышли обновления для ASP.NET Core, позволяющие собирать метрики для приложений. Теперь разработчики могут использовать специальные приборные панели в .NET 8 и настраивать сбор данных согласно условиям. Участие в голосовании показало интерес к данным новшествам.
Читать подробнее: https://habr.com/ru/articles/880738/
#ru
@dot_net_c_sharp | Другие наши каналы
ASP.NET Core 9 предлагает функцию выборочного отключения http-метрик, что позволяет исключать технические endpoints из метрик. Это полезно для минимизации ненужной статистики и облегчения работы с данными в minimal API, контроллерах и middleware. В статье рассмотрены примеры и механика работы этого инструмента. Новые возможности метрик в ASP.NET Core
Вышли обновления для ASP.NET Core, позволяющие собирать метрики для приложений. Теперь разработчики могут использовать специальные приборные панели в .NET 8 и настраивать сбор данных согласно условиям. Участие в голосовании показало интерес к данным новшествам.
Читать подробнее: https://habr.com/ru/articles/880738/
#ru
@dot_net_c_sharp | Другие наши каналы
⚡4
📌 Оптимизация кода с битовыми операциями в C#
Автор делится успешным опытом упаковки 12 булевых и одного байтового значений в поле типа ushort для экономии памяти. В статье подробно раскрыт подход к использованию битовых операций и создания иммутабельных классов, что облегчает управление состоянием объектов в C#.
Читать подробнее: https://habr.com/ru/articles/885116/
#ru
@dot_net_c_sharp | Другие наши каналы
Автор делится успешным опытом упаковки 12 булевых и одного байтового значений в поле типа ushort для экономии памяти. В статье подробно раскрыт подход к использованию битовых операций и создания иммутабельных классов, что облегчает управление состоянием объектов в C#.
Читать подробнее: https://habr.com/ru/articles/885116/
#ru
@dot_net_c_sharp | Другие наши каналы
⚡2👍2
Узнайте возможности GitHub Copilot
Приглашаем на прямую трансляцию 27 февраля 2025 года в 10:00 по тихоокеанскому времени. Познакомьтесь с GitHub Copilot, изучите лучшие практики его использования и создайте мини-игру с нуля вместе с нами. Мы также покажем, как эффективно использовать GitHub Codespaces. Не пропустите!
Подробности: https://devblogs.microsoft.com/dotnet/lets-learn-dotnet-github-copilot-event/
#en
@dot_net_c_sharp | Другие наши каналы
Приглашаем на прямую трансляцию 27 февраля 2025 года в 10:00 по тихоокеанскому времени. Познакомьтесь с GitHub Copilot, изучите лучшие практики его использования и создайте мини-игру с нуля вместе с нами. Мы также покажем, как эффективно использовать GitHub Codespaces. Не пропустите!
Подробности: https://devblogs.microsoft.com/dotnet/lets-learn-dotnet-github-copilot-event/
#en
@dot_net_c_sharp | Другие наши каналы
⚡2
Оптимизация размера .NET приложений: отключение локализационных ресурсов
Вы хотите уменьшить размер публикуемых .NET приложений? Узнайте, как исключить ненужные локализационные ресурсы и оптимизировать выходной файл. Используйте свойство `<satelliteresourcelanguages` в проекте, чтобы контролировать, какие культуры необходимо оставить. Это не только сократит размер файлов, но и ускорит процесс деплоя.
Подробности: https://andrewlock.net/disabling-localized-satellite-assemblies-during-dotnet-publish/
#en @dot_net_c_sharp | Другие наши каналы
Вы хотите уменьшить размер публикуемых .NET приложений? Узнайте, как исключить ненужные локализационные ресурсы и оптимизировать выходной файл. Используйте свойство `<satelliteresourcelanguages` в проекте, чтобы контролировать, какие культуры необходимо оставить. Это не только сократит размер файлов, но и ускорит процесс деплоя.
Подробности: https://andrewlock.net/disabling-localized-satellite-assemblies-during-dotnet-publish/
#en @dot_net_c_sharp | Другие наши каналы
Andrew Lock | .NET Escapades
Disabling localized satellite assemblies during dotnet publish
In this post I show how to reduce the size of the publish output for .NET apps by preventing the publishing of localization resources when they're not needed
⚡2👍2❤1
Новые возможности в .NET Aspire 9.1
Вышел .NET Aspire 9.1 с улучшениями, основанными на отзывах. В дашборде появились новые функции: поддержка отношений между ресурсами, настройка языка, расширенные фильтры и прочее. Улучшена интеграция с Docker и поддержка Dev Containers. Узнайте больше об обновлении на сайте проекта!
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-aspire-9-1/
#en
@dot_net_c_sharp | Другие наши каналы
Вышел .NET Aspire 9.1 с улучшениями, основанными на отзывах. В дашборде появились новые функции: поддержка отношений между ресурсами, настройка языка, расширенные фильтры и прочее. Улучшена интеграция с Docker и поддержка Dev Containers. Узнайте больше об обновлении на сайте проекта!
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-aspire-9-1/
#en
@dot_net_c_sharp | Другие наши каналы
👍3⚡2
Вышел .NET 10 Preview 1 — первые впечатления!
Официально доступен первый предварительный выпуск .NET 10! Среди нововведений — улучшения в .NET Runtime, SDK, C#, ASP.NET Core и других компонентах. Подробности обновлений на GitHub. Установите и оцените уже сегодня!
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-10-preview-1/
#en
@dot_net_c_sharp | Другие наши каналы
Официально доступен первый предварительный выпуск .NET 10! Среди нововведений — улучшения в .NET Runtime, SDK, C#, ASP.NET Core и других компонентах. Подробности обновлений на GitHub. Установите и оцените уже сегодня!
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-10-preview-1/
#en
@dot_net_c_sharp | Другие наши каналы
⚡2🆒2
Ускорение поиска в Диадоке
Евгений Редько из команды Диадока делится опытом, как универсальный индекс и технологии Elastic и Lucene улучшили фильтрацию и поиск в системе с 150 тысячами событий в минуту. Статья описывает вызовы и решения, повышающие производительность работы с документами. Узнать подробнее — следите за нами!
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/885634/
#ru
@dot_net_c_sharp | Другие наши каналы
Евгений Редько из команды Диадока делится опытом, как универсальный индекс и технологии Elastic и Lucene улучшили фильтрацию и поиск в системе с 150 тысячами событий в минуту. Статья описывает вызовы и решения, повышающие производительность работы с документами. Узнать подробнее — следите за нами!
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/885634/
#ru
@dot_net_c_sharp | Другие наши каналы
⚡2