Разбираем паттерн Chain of Responsibility в C#
Chain of Responsibility — поведенческий паттерн, позволяющий передавать запросы через цепочку обработчиков. Каждый обработчик может либо обработать запрос, либо передать его дальше. Узнайте, как реализовать этот подход в C# и какие преимущества он дает.
Подробности: https://devwithjosh.com/understanding-the-chain-of-responsibility-pattern-in-c
#en
@dot_net_c_sharp | Другие наши каналы
Chain of Responsibility — поведенческий паттерн, позволяющий передавать запросы через цепочку обработчиков. Каждый обработчик может либо обработать запрос, либо передать его дальше. Узнайте, как реализовать этот подход в C# и какие преимущества он дает.
Подробности: https://devwithjosh.com/understanding-the-chain-of-responsibility-pattern-in-c
#en
@dot_net_c_sharp | Другие наши каналы
Современный C#: Интерфейсы и наследование
Интерфейсы играют важную роль в традиционном ООП, обеспечивая гибкость и тестируемость. Однако современные подходы в C# позволяют чаще использовать функциональное программирование, что упрощает код и улучшает читаемость. Узнайте, как это сделать, не теряя преимуществ интерфейсов.
Подробности: https://danyl.hashnode.dev/interfaces-and-inheritance-in-modern-c-revisited
#en
@dot_net_c_sharp | Другие наши каналы
Интерфейсы играют важную роль в традиционном ООП, обеспечивая гибкость и тестируемость. Однако современные подходы в C# позволяют чаще использовать функциональное программирование, что упрощает код и улучшает читаемость. Узнайте, как это сделать, не теряя преимуществ интерфейсов.
Подробности: https://danyl.hashnode.dev/interfaces-and-inheritance-in-modern-c-revisited
#en
@dot_net_c_sharp | Другие наши каналы
Обзор современных веб-фреймворков: плюсы и минусы
В статье анализируется текущее состояние веб-фреймворков. Многие инструменты предлагают только часть функций, необходимых для полноценной разработки, что приводит к сложностям в интеграции и поддержке. Например, Next.js требует использования дополнительных библиотек для полной функциональности.
Подробности: https://blazenby.com/a-critical-look-at-modern-web-frameworks
#en
@dot_net_c_sharp | Другие наши каналы
В статье анализируется текущее состояние веб-фреймворков. Многие инструменты предлагают только часть функций, необходимых для полноценной разработки, что приводит к сложностям в интеграции и поддержке. Например, Next.js требует использования дополнительных библиотек для полной функциональности.
Подробности: https://blazenby.com/a-critical-look-at-modern-web-frameworks
#en
@dot_net_c_sharp | Другие наши каналы
❤2👍1
Бесшовное деплой .NET приложений в Docker без пайплайнов
Статья рассказывает, как автоматически обновлять контейнеры .NET приложений из GIT, избегая сложных пайплайнов. Автор предлагает использовать хеш последнего коммита в Dockerfile, что позволяет автоматически подтягивать и пересобирать контейнер при обновлениях кода.
Подробности: https://abowden.hashnode.dev/how-to-deploy-net-applications-continuously-in-docker-without-pipelines
#en
@dot_net_c_sharp | Другие наши каналы
Статья рассказывает, как автоматически обновлять контейнеры .NET приложений из GIT, избегая сложных пайплайнов. Автор предлагает использовать хеш последнего коммита в Dockerfile, что позволяет автоматически подтягивать и пересобирать контейнер при обновлениях кода.
Подробности: https://abowden.hashnode.dev/how-to-deploy-net-applications-continuously-in-docker-without-pipelines
#en
@dot_net_c_sharp | Другие наши каналы
Узнайте о .NET Aspire
Если вам интересно узнать о новом инструменте для разработки облачных приложений от Microsoft, стоит обратить внимание на .NET Aspire. Это решение упрощает создание, развёртывание и управление распределёнными приложениями. .NET Aspire обеспечивает встроенные средства для логирования, метрик и трассировки, облегчая мониторинг вашего ПО.
Подробности: https://milanjovanovic.hashnode.dev/net-aspire-a-game-changer-for-cloud-native-development
#en
@dot_net_c_sharp | Другие наши каналы
Если вам интересно узнать о новом инструменте для разработки облачных приложений от Microsoft, стоит обратить внимание на .NET Aspire. Это решение упрощает создание, развёртывание и управление распределёнными приложениями. .NET Aspire обеспечивает встроенные средства для логирования, метрик и трассировки, облегчая мониторинг вашего ПО.
Подробности: https://milanjovanovic.hashnode.dev/net-aspire-a-game-changer-for-cloud-native-development
#en
@dot_net_c_sharp | Другие наши каналы
Оптимизация маппера в .NET: ключевые решения
Статья освещает реальный случай, когда неэффективный код маппера замедлил Web API. Автор предлагает заменить .Split() и линейный поиск на .AsSpan() и FrozenDictionary для повышения производительности. Подробности и код примера доступны на GitHub.
#Программирование #ОптимизацияCode
Читать подробнее: https://habr.com/ru/articles/843842/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья освещает реальный случай, когда неэффективный код маппера замедлил Web API. Автор предлагает заменить .Split() и линейный поиск на .AsSpan() и FrozenDictionary для повышения производительности. Подробности и код примера доступны на GitHub.
#Программирование #ОптимизацияCode
Читать подробнее: https://habr.com/ru/articles/843842/
#ru
@dot_net_c_sharp | Другие наши каналы
Исправление проблемы MAX_PATH в GitLab
В Windows ограничения на длину пути MAX_PATH в 260 символов могут создавать проблемы при работе с GitLab. Чтобы обойти эту проблему, в Git можно включить поддержку длинных путей с помощью `core.longpaths=true`. В GitLab 16+ это можно дополнительно настроить через `hooks:pre_get_sources_noscript`.
Подробности: https://andrewlock.net/fixing-max_path-issues-in-gitlab/
#en
@dot_net_c_sharp | Другие наши каналы
В Windows ограничения на длину пути MAX_PATH в 260 символов могут создавать проблемы при работе с GitLab. Чтобы обойти эту проблему, в Git можно включить поддержку длинных путей с помощью `core.longpaths=true`. В GitLab 16+ это можно дополнительно настроить через `hooks:pre_get_sources_noscript`.
Подробности: https://andrewlock.net/fixing-max_path-issues-in-gitlab/
#en
@dot_net_c_sharp | Другие наши каналы
Создаем свое приложение zsh_stats
Как создать собственное приложение командной строки для анализа частоты использования команд терминала? В статье рассмотрен процесс создания такого приложения на языке F# с использованием .NET. Разработчик рассказывает о чтении и обработке файла истории команд zsh. Прочитайте статью и узнайте больше! Создаем клон zsh_stats на F#
В статье разобран процесс создания аналога функции zsh_stats на языке F#. Программа анализирует историю команд, подсчитывает их частоту и выводит топ-10. Важный шаг в изучении F# и работы с последовательностями данных. Узнайте больше о функциональном программировании и CLI!
Подробности: https://kevgathuku.dev/building-our-own-zsh-stats-cli-app
#en
@dot_net_c_sharp | Другие наши каналы
Как создать собственное приложение командной строки для анализа частоты использования команд терминала? В статье рассмотрен процесс создания такого приложения на языке F# с использованием .NET. Разработчик рассказывает о чтении и обработке файла истории команд zsh. Прочитайте статью и узнайте больше! Создаем клон zsh_stats на F#
В статье разобран процесс создания аналога функции zsh_stats на языке F#. Программа анализирует историю команд, подсчитывает их частоту и выводит топ-10. Важный шаг в изучении F# и работы с последовательностями данных. Узнайте больше о функциональном программировании и CLI!
Подробности: https://kevgathuku.dev/building-our-own-zsh-stats-cli-app
#en
@dot_net_c_sharp | Другие наши каналы
Автоматизация SAP с помощью C# и Primo RPA
Существует эффективный способ автоматизации интерфейса SAP через скрипты в C# благодаря Primo RPA. Это важно для проектов, связывающих внешние API с интерфейсом SAP. В статье автор делится опытом использования предоставленных Primo RPA скриптов, необходимых для работы в MS Visual Studio. Подробнее: ссылка на статью.
Читать подробнее: https://habr.com/ru/articles/844346/
#ru
@dot_net_c_sharp | Другие наши каналы
Существует эффективный способ автоматизации интерфейса SAP через скрипты в C# благодаря Primo RPA. Это важно для проектов, связывающих внешние API с интерфейсом SAP. В статье автор делится опытом использования предоставленных Primo RPA скриптов, необходимых для работы в MS Visual Studio. Подробнее: ссылка на статью.
Читать подробнее: https://habr.com/ru/articles/844346/
#ru
@dot_net_c_sharp | Другие наши каналы
Обновление в .NET Smart Components
.NET Smart Components теперь доступны на GitHub! Эти AI-ориентированные компоненты облегчают интеграцию умных функций в ваши приложения. Ознакомьтесь с кодом, документацией и примерами, чтобы начать использовать AI в своих проектах, и делитесь своими идеями на GitHub.
Подробности: https://devblogs.microsoft.com/dotnet/join-the-dotnet-smart-components-ecosystem/
#en
@dot_net_c_sharp | Другие наши каналы
.NET Smart Components теперь доступны на GitHub! Эти AI-ориентированные компоненты облегчают интеграцию умных функций в ваши приложения. Ознакомьтесь с кодом, документацией и примерами, чтобы начать использовать AI в своих проектах, и делитесь своими идеями на GitHub.
Подробности: https://devblogs.microsoft.com/dotnet/join-the-dotnet-smart-components-ecosystem/
#en
@dot_net_c_sharp | Другие наши каналы
👍3❤1
Узнайте экономическую историю с помощью .NET MAUI Stacked Area Chart
Хотите узнать, как визуализировать более 100 лет экспорта экономических сверхдержав? Воспользуйтесь .NET MAUI Stacked Area Chart! Статья расскажет, как собрать данные, настроить график и добавить аннотации для лучшего понимания. Откройте для себя ключевые моменты мировой экономики через data visualization.
Подробности: https://syncfusion-blogs.hashnode.dev/view-100-years-of-economic-superpowers-exports-with-net-maui-stacked-area-chart
#en
@dot_net_c_sharp | Другие наши каналы
Хотите узнать, как визуализировать более 100 лет экспорта экономических сверхдержав? Воспользуйтесь .NET MAUI Stacked Area Chart! Статья расскажет, как собрать данные, настроить график и добавить аннотации для лучшего понимания. Откройте для себя ключевые моменты мировой экономики через data visualization.
Подробности: https://syncfusion-blogs.hashnode.dev/view-100-years-of-economic-superpowers-exports-with-net-maui-stacked-area-chart
#en
@dot_net_c_sharp | Другие наши каналы
👍1
Работа с конфигурацией в ASP.NET Core: практическое руководство с настройками MongoDB
MongoDB — популярная NoSQL база данных, которая хранит данные в формате документов. В статье расскажем, как настроить конфигурацию в ASP.NET Core с использованием паттерна Options.
Читать: «Работа с конфигурацией в ASP.NET Core: практическое руководство с настройками MongoDB»
#ru
@dot_net_c_sharp | Другие наши каналы
MongoDB — популярная NoSQL база данных, которая хранит данные в формате документов. В статье расскажем, как настроить конфигурацию в ASP.NET Core с использованием паттерна Options.
Читать: «Работа с конфигурацией в ASP.NET Core: практическое руководство с настройками MongoDB»
#ru
@dot_net_c_sharp | Другие наши каналы
👍3
Модернизация старых веб-приложений с HTMX 2.0
В статье рассказывается, как с помощью библиотеки Htmx.js можно обновить старые приложения на ASP.NET MVC 5, добавив современные интерактивные элементы. Примеры на основе настольной игры "Шпион" помогут освоить основные функции. Узнайте, как вдохнуть новую жизнь в ваш проект!
Читать подробнее: https://habr.com/ru/articles/844932/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье рассказывается, как с помощью библиотеки Htmx.js можно обновить старые приложения на ASP.NET MVC 5, добавив современные интерактивные элементы. Примеры на основе настольной игры "Шпион" помогут освоить основные функции. Узнайте, как вдохнуть новую жизнь в ваш проект!
Читать подробнее: https://habr.com/ru/articles/844932/
#ru
@dot_net_c_sharp | Другие наши каналы
Улучшение системы регистрации в онлайн-игре "Шпион"
В новой статье о разработке гипермедиа-приложения рассказано, как улучшить архитектуру и производительность кода. Описаны методы обновления статуса готовности игроков, исключения из игры и смены имени. Узнайте, как динамически управлять игроками и оформление страницы. Читайте подробнее!
Читать подробнее: https://habr.com/ru/articles/844964/
#ru
@dot_net_c_sharp | Другие наши каналы
В новой статье о разработке гипермедиа-приложения рассказано, как улучшить архитектуру и производительность кода. Описаны методы обновления статуса готовности игроков, исключения из игры и смены имени. Узнайте, как динамически управлять игроками и оформление страницы. Читайте подробнее!
Читать подробнее: https://habr.com/ru/articles/844964/
#ru
@dot_net_c_sharp | Другие наши каналы
Обновления в игре SpyOnlineGame
В игре SpyOnlineGame появились новые интерактивные элементы и обновленные вебмодели. Добавлены кнопки для голосования и скрытые задания. Проведен рефакторинг для упрощения кода. Узнайте больше о новых функциях и улучшениях в нашем обзоре!
Читать подробнее: https://habr.com/ru/articles/844984/
#ru
@dot_net_c_sharp | Другие наши каналы
В игре SpyOnlineGame появились новые интерактивные элементы и обновленные вебмодели. Добавлены кнопки для голосования и скрытые задания. Проведен рефакторинг для упрощения кода. Узнайте больше о новых функциях и улучшениях в нашем обзоре!
Читать подробнее: https://habr.com/ru/articles/844984/
#ru
@dot_net_c_sharp | Другие наши каналы
dotnet на Linux: Чем отличается производительность?
Иногда приложения на dotnet потребляют больше CPU на Linux, чем на Windows. Это связано с различиями в реализации примитивов и логики ОС. Особое внимание — асинхронной работе и тредпулу, что часто приводит к деградации производительности на Linux.
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/844502/
#ru
@dot_net_c_sharp | Другие наши каналы
Иногда приложения на dotnet потребляют больше CPU на Linux, чем на Windows. Это связано с различиями в реализации примитивов и логики ОС. Особое внимание — асинхронной работе и тредпулу, что часто приводит к деградации производительности на Linux.
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/844502/
#ru
@dot_net_c_sharp | Другие наши каналы
👍1
Docker: Новые возможности для разработчиков
Docker — инструмент, который позволяет безопасно и быстро разрабатывать, тестировать и запускать приложения в изолированных контейнерах. Он упрощает развертывание инфраструктурных компонентов и мониторинг ресурсов. Даже сложные системы, такие как микросервисы, становятся доступнее и управляемее благодаря Docker.
Читать подробнее: https://habr.com/ru/articles/845270/
#ru
@dot_net_c_sharp | Другие наши каналы
Docker — инструмент, который позволяет безопасно и быстро разрабатывать, тестировать и запускать приложения в изолированных контейнерах. Он упрощает развертывание инфраструктурных компонентов и мониторинг ресурсов. Даже сложные системы, такие как микросервисы, становятся доступнее и управляемее благодаря Docker.
Читать подробнее: https://habr.com/ru/articles/845270/
#ru
@dot_net_c_sharp | Другие наши каналы
Почему стоит избегать рефлексии в юнит-тестах C#
Рефлексия в C# позволяет работать с типами на этапе выполнения, но при юнит-тестировании она вызывает проблемы. Например, она нарушает инкапсуляцию и делает тесты более уязвимыми и медленными. Вместо этого лучше тестировать публичные методы или использовать рефакторинг кода.
Подробности: https://osamaabubaker.hashnode.dev/why-you-should-avoid-reflection-in-c-unit-testing-best-practices-for-robust-and-maintainable-code
#en
@dot_net_c_sharp | Другие наши каналы
Рефлексия в C# позволяет работать с типами на этапе выполнения, но при юнит-тестировании она вызывает проблемы. Например, она нарушает инкапсуляцию и делает тесты более уязвимыми и медленными. Вместо этого лучше тестировать публичные методы или использовать рефакторинг кода.
Подробности: https://osamaabubaker.hashnode.dev/why-you-should-avoid-reflection-in-c-unit-testing-best-practices-for-robust-and-maintainable-code
#en
@dot_net_c_sharp | Другие наши каналы
Асинхронное программирование в C#
Асинхронное программирование в C# позволяет выполнять задачи параллельно, не блокируя основной поток. Это улучшает отзывчивость и продуктивность приложений, особенно в случае длительных операций. Узнайте, как ключевые слова async и await упрощают разработку и повышают производительность.
Подробности: https://techkeys.hashnode.dev/c-asynchronous-programming
#en
@dot_net_c_sharp | Другие наши каналы
Асинхронное программирование в C# позволяет выполнять задачи параллельно, не блокируя основной поток. Это улучшает отзывчивость и продуктивность приложений, особенно в случае длительных операций. Узнайте, как ключевые слова async и await упрощают разработку и повышают производительность.
Подробности: https://techkeys.hashnode.dev/c-asynchronous-programming
#en
@dot_net_c_sharp | Другие наши каналы
👍2
Expression-bodied Member и Field Declaration в C#
В статье объясняется разница между двумя способами объявления в C#. Expression-bodied Member позволяет создать свойство, доступное только для чтения, тогда как Field Declaration создаёт поле, которое можно изменять напрямую. Выбор зависит от необходимости контролируемого доступа или прямого хранения данных.
Подробности: https://techkeys.hashnode.dev/expression-bodied-member-and-field-declaration
#en
@dot_net_c_sharp | Другие наши каналы
В статье объясняется разница между двумя способами объявления в C#. Expression-bodied Member позволяет создать свойство, доступное только для чтения, тогда как Field Declaration создаёт поле, которое можно изменять напрямую. Выбор зависит от необходимости контролируемого доступа или прямого хранения данных.
Подробности: https://techkeys.hashnode.dev/expression-bodied-member-and-field-declaration
#en
@dot_net_c_sharp | Другие наши каналы
👎2
Интеграция AI для умного поиска мест в .NET MAUI
Узнайте, как интегрировать OpenAI с .NET MAUI Maps от Syncfusion для создания умного поиска мест на основе ИИ. В статье рассматривается настройка Azure OpenAI для генерации маркеров на карте, использование .NET MAUI Autocomplete и создание кастомных маркеров с подсказками. Интеграция умного поиска на AI в .NET MAUI Maps
В блоге описывается процесс интеграции умного поиска с использованием AI в .NET MAUI Maps. Примеры кода показывают, как настроить автозаполнение и обработку запросов для получения географической информации. Узнать больше можно на GitHub и в последних релизах Syncfusion.
Подробности: https://syncfusion-blogs.hashnode.dev/ai-driven-smart-location-search-in-net-maui-maps
#en
@dot_net_c_sharp | Другие наши каналы
Узнайте, как интегрировать OpenAI с .NET MAUI Maps от Syncfusion для создания умного поиска мест на основе ИИ. В статье рассматривается настройка Azure OpenAI для генерации маркеров на карте, использование .NET MAUI Autocomplete и создание кастомных маркеров с подсказками. Интеграция умного поиска на AI в .NET MAUI Maps
В блоге описывается процесс интеграции умного поиска с использованием AI в .NET MAUI Maps. Примеры кода показывают, как настроить автозаполнение и обработку запросов для получения географической информации. Узнать больше можно на GitHub и в последних релизах Syncfusion.
Подробности: https://syncfusion-blogs.hashnode.dev/ai-driven-smart-location-search-in-net-maui-maps
#en
@dot_net_c_sharp | Другие наши каналы
👍3