Тестирование кода на ZIIoT Oil&Gas
Андрей Федотов делится уникальным опытом юнит и интеграционного тестирования в разработке платформы ZIIoT Oil&Gas. В статье изложены методы улучшения качества кода и снижения количества багов через продуманное тестирование. Узнайте, как команда преодолела трудности и добилась успеха.
Читать подробнее: https://habr.com/ru/companies/zyfra/articles/847502/
#ru
@dot_net_c_sharp | Другие наши каналы
Андрей Федотов делится уникальным опытом юнит и интеграционного тестирования в разработке платформы ZIIoT Oil&Gas. В статье изложены методы улучшения качества кода и снижения количества багов через продуманное тестирование. Узнайте, как команда преодолела трудности и добилась успеха.
Читать подробнее: https://habr.com/ru/companies/zyfra/articles/847502/
#ru
@dot_net_c_sharp | Другие наши каналы
# Invo: Новый инструмент для малого бизнеса
Дэни Бенсон, молодой разработчик, представляет "Invo" — приложение для упрощения управления финансами малых предприятий и фрилансеров. Invo повысит продуктивность и трансформирует процессы выставления счетов. Следите за его путешествием от идеи до реализации!
Подробности: https://dannybensonblog.hashnode.dev/from-ideas-to-reality-building-invo-a-tool-for-small-businesses
#en
@dot_net_c_sharp | Другие наши каналы
Дэни Бенсон, молодой разработчик, представляет "Invo" — приложение для упрощения управления финансами малых предприятий и фрилансеров. Invo повысит продуктивность и трансформирует процессы выставления счетов. Следите за его путешествием от идеи до реализации!
Подробности: https://dannybensonblog.hashnode.dev/from-ideas-to-reality-building-invo-a-tool-for-small-businesses
#en
@dot_net_c_sharp | Другие наши каналы
📊 "Enums vs Таблицы: Какой метод выбрать?"
В статье рассмотрены два основных подхода для выделения типов в моделях: использование перечислений (enums) и таблиц. При небольшом количестве типов (до 5) рекомендуется использовать enums, а для сложных многоуровневых структур — таблицы. Подробный анализ с примерами и тестированием поможет сделать выбор! Преимущества использования Enums при добавлении записей в БД
Исследование показало, что добавление записей в базу данных с использованием Enums быстрее на 13% по сравнению с табличным подходом. Наиболее оптимально использовать пакеты запросов по ≤ 500. Однако, Enums не рекомендуется для изменений и многообразных типов данных.
Читать подробнее: https://habr.com/ru/articles/847614/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье рассмотрены два основных подхода для выделения типов в моделях: использование перечислений (enums) и таблиц. При небольшом количестве типов (до 5) рекомендуется использовать enums, а для сложных многоуровневых структур — таблицы. Подробный анализ с примерами и тестированием поможет сделать выбор! Преимущества использования Enums при добавлении записей в БД
Исследование показало, что добавление записей в базу данных с использованием Enums быстрее на 13% по сравнению с табличным подходом. Наиболее оптимально использовать пакеты запросов по ≤ 500. Однако, Enums не рекомендуется для изменений и многообразных типов данных.
Читать подробнее: https://habr.com/ru/articles/847614/
#ru
@dot_net_c_sharp | Другие наши каналы
🎓 Деревья выражений в C#/.NET: от теории к практике
Деревья выражений — мощный инструмент в C#/.NET для динамического создания и выполнения кода. Они представляют код в виде дерева, что позволяет анализировать и преобразовывать запросы, как в LINQ to SQL или Entity Framework, в SQL-запросы. Узнайте больше о применении и возможностях этого подхода!
Читать подробнее: https://habr.com/ru/articles/847642/
#ru
@dot_net_c_sharp | Другие наши каналы
Деревья выражений — мощный инструмент в C#/.NET для динамического создания и выполнения кода. Они представляют код в виде дерева, что позволяет анализировать и преобразовывать запросы, как в LINQ to SQL или Entity Framework, в SQL-запросы. Узнайте больше о применении и возможностях этого подхода!
Читать подробнее: https://habr.com/ru/articles/847642/
#ru
@dot_net_c_sharp | Другие наши каналы
👍3
Применение Принципа Единственной Ответственности (SRP) на практике
Статья рассказывает, как использовать принцип единственной ответственности (SRP) для улучшения кода. Автор делится опытом по рефакторингу класса Orchestrator, который управлял логикой работы с инвойсами. Реорганизация кода позволила сделать его более поддерживаемым и гибким. \
Подробности: https://evolving-engineer.hashnode.dev/single-responsibility-principle-practical-example
#en
@dot_net_c_sharp | Другие наши каналы
Статья рассказывает, как использовать принцип единственной ответственности (SRP) для улучшения кода. Автор делится опытом по рефакторингу класса Orchestrator, который управлял логикой работы с инвойсами. Реорганизация кода позволила сделать его более поддерживаемым и гибким. \
Подробности: https://evolving-engineer.hashnode.dev/single-responsibility-principle-practical-example
#en
@dot_net_c_sharp | Другие наши каналы
Учебное пособие по Semantic Kernel с PostgreSQL и PGVector
В статье рассмотрены основы использования Semantic Kernel от Microsoft для создания AI-приложений. Пошагово показано, как настроить базу данных PostgreSQL с PGVector, создать C# Web API и использовать AzureOpenAI для создания векторных представлений. Узнайте, как расширить возможности вашего проекта с помощью этих технологий!
Подробности: https://davek.dev/beginners-guide-to-semantic-kernel-with-dapper-postgresql-and-pgvector-in-c
#en
@dot_net_c_sharp | Другие наши каналы
В статье рассмотрены основы использования Semantic Kernel от Microsoft для создания AI-приложений. Пошагово показано, как настроить базу данных PostgreSQL с PGVector, создать C# Web API и использовать AzureOpenAI для создания векторных представлений. Узнайте, как расширить возможности вашего проекта с помощью этих технологий!
Подробности: https://davek.dev/beginners-guide-to-semantic-kernel-with-dapper-postgresql-and-pgvector-in-c
#en
@dot_net_c_sharp | Другие наши каналы
📚 Типы в программировании как математические множества
В статье рассматривается подход к пониманию типов данных как математических множеств. Пример с целочисленными типами иллюстрирует их как подмножества, где каждая переменная принадлежит определённому диапазону целых чисел. Такой взгляд помогает осознать взаимосвязи между типами и безопасное преобразование данных. 📚 Погружение в мир подмножеств и интерфейсов
Статья рассказывает о концепции подмножеств в программировании на примере транспортных средств и электронных устройств. Также рассмотрен принцип Барбары Лисков и примеры работы с интерфейсами. Узнайте, как все связано через теорию множеств и применимо в ООП. Откройте для себя Теорию Типов
Увлеклись ежедневной рутиной в программировании? Попробуйте взглянуть на привычные аспекты по-новому. Обсуждаем принцип наследования и его нарушения на примере квадратов и прямоугольников. Заинтересовались? Начните свой путь в Теорию Типов с рекомендованной статьи.
Читать подробнее: https://habr.com/ru/articles/847958/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье рассматривается подход к пониманию типов данных как математических множеств. Пример с целочисленными типами иллюстрирует их как подмножества, где каждая переменная принадлежит определённому диапазону целых чисел. Такой взгляд помогает осознать взаимосвязи между типами и безопасное преобразование данных. 📚 Погружение в мир подмножеств и интерфейсов
Статья рассказывает о концепции подмножеств в программировании на примере транспортных средств и электронных устройств. Также рассмотрен принцип Барбары Лисков и примеры работы с интерфейсами. Узнайте, как все связано через теорию множеств и применимо в ООП. Откройте для себя Теорию Типов
Увлеклись ежедневной рутиной в программировании? Попробуйте взглянуть на привычные аспекты по-новому. Обсуждаем принцип наследования и его нарушения на примере квадратов и прямоугольников. Заинтересовались? Начните свой путь в Теорию Типов с рекомендованной статьи.
Читать подробнее: https://habr.com/ru/articles/847958/
#ru
@dot_net_c_sharp | Другие наши каналы
👍1
Создание чата с Microsoft Orleans: шаг за шагом
Изучите, как создать чат-приложение с использованием Microsoft Orleans! В статье рассказывается о настройке серверной и клиентской частей с Grains и Silo, а также о подключении через Blazor. Подробности внедрения и примеры кода доступны на GitHub. Узнайте больше о состоянии и кластерах!
Подробности: https://codewithhans.com/learn-to-build-a-chat-application-using-microsoft-orleans
#en
@dot_net_c_sharp | Другие наши каналы
Изучите, как создать чат-приложение с использованием Microsoft Orleans! В статье рассказывается о настройке серверной и клиентской частей с Grains и Silo, а также о подключении через Blazor. Подробности внедрения и примеры кода доступны на GitHub. Узнайте больше о состоянии и кластерах!
Подробности: https://codewithhans.com/learn-to-build-a-chat-application-using-microsoft-orleans
#en
@dot_net_c_sharp | Другие наши каналы
Динамическая фильтрация в C#: решение для ASP.NET Core
Статья раскрывает возможности деревьев выражений для создания динамической фильтрации продуктов в C# на ASP.NET Core. Используя минимальный API и EF Core, можно легко настраивать запросы по параметрам, таким как цена и активность, улучшая эффективность работы с данными. Подробности на GitHub.
Читать подробнее: https://habr.com/ru/articles/848446/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья раскрывает возможности деревьев выражений для создания динамической фильтрации продуктов в C# на ASP.NET Core. Используя минимальный API и EF Core, можно легко настраивать запросы по параметрам, таким как цена и активность, улучшая эффективность работы с данными. Подробности на GitHub.
Читать подробнее: https://habr.com/ru/articles/848446/
#ru
@dot_net_c_sharp | Другие наши каналы
👍1
Понимание HttpContextAccessor в .NET
В мире ASP.NET Core важен доступ к состоянию HTTP-запросов и ответов. HttpContextAccessor — это мощный инструмент, позволяющий разработчикам управлять данными HTTP вне контроллеров и middleware. Узнайте, как эффективно использовать эту службу в своих веб-приложениях.
Подробности: https://dannybensonblog.hashnode.dev/exploring-httpcontextaccessor-in-net-a-developers-guide-part-1
#en
@dot_net_c_sharp | Другие наши каналы
В мире ASP.NET Core важен доступ к состоянию HTTP-запросов и ответов. HttpContextAccessor — это мощный инструмент, позволяющий разработчикам управлять данными HTTP вне контроллеров и middleware. Узнайте, как эффективно использовать эту службу в своих веб-приложениях.
Подробности: https://dannybensonblog.hashnode.dev/exploring-httpcontextaccessor-in-net-a-developers-guide-part-1
#en
@dot_net_c_sharp | Другие наши каналы
👍2
Интеграция C-библиотек в C# с помощью P/Invoke
В статье рассказывается об использовании механизма P/Invoke в C# для вызова нативных библиотек. Это позволяет эффективно взаимодействовать с кодом на C/C++ и системными API, такими как Windows API, без переписывания их на C#. P/Invoke особенно полезен для работы с платформоспецифичными функциями.
Читать подробнее: https://habr.com/ru/articles/848714/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье рассказывается об использовании механизма P/Invoke в C# для вызова нативных библиотек. Это позволяет эффективно взаимодействовать с кодом на C/C++ и системными API, такими как Windows API, без переписывания их на C#. P/Invoke особенно полезен для работы с платформоспецифичными функциями.
Читать подробнее: https://habr.com/ru/articles/848714/
#ru
@dot_net_c_sharp | Другие наши каналы
Политики авторизации в ASP.Net Core
Погрузитесь в создание гибкой системы безопасности с помощью политик авторизации в ASP.Net Core. Узнайте, как регистрировать политики, реализовывать требования и обработчики. Создавайте собственные политики для вашего веб-приложения, используя шаблон ASP.Net Core.
Подробности: https://seoguy.hashnode.dev/how-to-use-policy-based-authorization-in-aspnet-core
#en
@dot_net_c_sharp | Другие наши каналы
Погрузитесь в создание гибкой системы безопасности с помощью политик авторизации в ASP.Net Core. Узнайте, как регистрировать политики, реализовывать требования и обработчики. Создавайте собственные политики для вашего веб-приложения, используя шаблон ASP.Net Core.
Подробности: https://seoguy.hashnode.dev/how-to-use-policy-based-authorization-in-aspnet-core
#en
@dot_net_c_sharp | Другие наши каналы
Почему .NET станет основным выбором в 2024 году
Текст: В 2024 году спрос на .NET только растет. Благодаря его кроссплатформенности, высокой безопасности и мощной поддержке сообщества, платформа привлекает бизнесы всех размеров. Удобство интеграции с облачными сервисами и Microsoft Azure делает его идеальным выбором для масштабируемых решений.
Подробности: https://witquick.hashnode.dev/why-is-net-most-demanded
#en
@dot_net_c_sharp | Другие наши каналы
Текст: В 2024 году спрос на .NET только растет. Благодаря его кроссплатформенности, высокой безопасности и мощной поддержке сообщества, платформа привлекает бизнесы всех размеров. Удобство интеграции с облачными сервисами и Microsoft Azure делает его идеальным выбором для масштабируемых решений.
Подробности: https://witquick.hashnode.dev/why-is-net-most-demanded
#en
@dot_net_c_sharp | Другие наши каналы
💊6🤣3
Октябрьские обновления .NET и .NET Framework
Вышли новые обновления для .NET и .NET Framework за октябрь 2024 года. Основные изменения связаны с улучшением безопасности, включая исправление нескольких уязвимостей. Детали обновлений для версий .NET 6.0, 8.0 и фреймворка можно найти в опубликованных заметках.
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-october-2024-servicing-updates/
#en
@dot_net_c_sharp | Другие наши каналы
Вышли новые обновления для .NET и .NET Framework за октябрь 2024 года. Основные изменения связаны с улучшением безопасности, включая исправление нескольких уязвимостей. Детали обновлений для версий .NET 6.0, 8.0 и фреймворка можно найти в опубликованных заметках.
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-october-2024-servicing-updates/
#en
@dot_net_c_sharp | Другие наши каналы
Новые возможности Microsoft.Extensions.AI для .NET
Microsoft представила библиотеки Microsoft.Extensions.AI.Abstractions и Microsoft.Extensions.AI, которые упрощают интеграцию AI-сервисов в .NET. Они предоставляют единые интерфейсы для взаимодействия с языковыми моделями, что позволяет разработчикам легко использовать AI-технологии без привязки к конкретному провайдеру. Попробуйте уже сегодня!
Подробности: https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview/
#en
@dot_net_c_sharp | Другие наши каналы
Microsoft представила библиотеки Microsoft.Extensions.AI.Abstractions и Microsoft.Extensions.AI, которые упрощают интеграцию AI-сервисов в .NET. Они предоставляют единые интерфейсы для взаимодействия с языковыми моделями, что позволяет разработчикам легко использовать AI-технологии без привязки к конкретному провайдеру. Попробуйте уже сегодня!
Подробности: https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview/
#en
@dot_net_c_sharp | Другие наши каналы
Выпущен .NET 9 Release Candidate 2
Microsoft анонсировала второй кандидат на релиз .NET 9, который включает в себя улучшения производительности и стабильности. Разработчики могут использовать его в продакшене с поддержкой. Финальный выпуск ожидается в ноябре, так что попробуйте новинку и оставляйте отзывы!
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-9-rc-2/
#en
@dot_net_c_sharp | Другие наши каналы
Microsoft анонсировала второй кандидат на релиз .NET 9, который включает в себя улучшения производительности и стабильности. Разработчики могут использовать его в продакшене с поддержкой. Финальный выпуск ожидается в ноябре, так что попробуйте новинку и оставляйте отзывы!
Подробности: https://devblogs.microsoft.com/dotnet/dotnet-9-rc-2/
#en
@dot_net_c_sharp | Другие наши каналы
❤2
Совмещаем SQL и C# с помощью EF Core
Текст: Узнайте, как интегрировать скалярные SQL функции в проекты на ASP.NET Core с EF Core. На примере функции GetTotalUnitPriceBySpecialOfferId показано, как упростить обработку данных в базе AdventureWorks2019 и расширить функциональность вашего приложения.
Читать подробнее: https://habr.com/ru/articles/849256/
#ru
@dot_net_c_sharp | Другие наши каналы
Текст: Узнайте, как интегрировать скалярные SQL функции в проекты на ASP.NET Core с EF Core. На примере функции GetTotalUnitPriceBySpecialOfferId показано, как упростить обработку данных в базе AdventureWorks2019 и расширить функциональность вашего приложения.
Читать подробнее: https://habr.com/ru/articles/849256/
#ru
@dot_net_c_sharp | Другие наши каналы
❤3
🚀 Масштабируемые приложения с Kubernetes и ArgoCD
В статье рассматривается проект автоматизации развёртывания приложений на AWS EC2 с использованием Kubernetes и ArgoCD. Описан процесс установки ключевых компонентов, включая Docker, Kind и ArgoCD, с использованием Kubernetes Dashboard для управления ресурсами и развертывания приложений.
Подробности: https://harshitsahu2311.hashnode.dev/kubernetes-devops-project-using-argocd
#en
@dot_net_c_sharp | Другие наши каналы
В статье рассматривается проект автоматизации развёртывания приложений на AWS EC2 с использованием Kubernetes и ArgoCD. Описан процесс установки ключевых компонентов, включая Docker, Kind и ArgoCD, с использованием Kubernetes Dashboard для управления ресурсами и развертывания приложений.
Подробности: https://harshitsahu2311.hashnode.dev/kubernetes-devops-project-using-argocd
#en
@dot_net_c_sharp | Другие наши каналы
👍3
Векторная революция в .NET с Arm SVE
Dotnet-разработчикам представили поддержку Arm Scalable Vector Extension (SVE), что открывает новые горизонты в написании эффективного кода. Новый API упрощает обработку данных, адаптируя операции через ConditionalSelect, и помогает справляться с предикатами. Подробности в статье.
Подробности: https://devblogs.microsoft.com/dotnet/engineering-sve-in-dotnet/
#en
@dot_net_c_sharp | Другие наши каналы
Dotnet-разработчикам представили поддержку Arm Scalable Vector Extension (SVE), что открывает новые горизонты в написании эффективного кода. Новый API упрощает обработку данных, адаптируя операции через ConditionalSelect, и помогает справляться с предикатами. Подробности в статье.
Подробности: https://devblogs.microsoft.com/dotnet/engineering-sve-in-dotnet/
#en
@dot_net_c_sharp | Другие наши каналы
❤2
🔍 Понимание паттерна проектирования "Посредник" в C#
Усложнение программных систем приводит к запутанным взаимосвязям между объектами. Паттерн "Посредник" помогает сохранять объекты слабо связанными, централизуя их коммуникацию через единый объект-посредник. Это упрощает код и улучшает его поддержку в C#.
Подробности: https://devwithjosh.com/understanding-the-mediator-design-pattern-in-c
#en
@dot_net_c_sharp | Другие наши каналы
Усложнение программных систем приводит к запутанным взаимосвязям между объектами. Паттерн "Посредник" помогает сохранять объекты слабо связанными, централизуя их коммуникацию через единый объект-посредник. Это упрощает код и улучшает его поддержку в C#.
Подробности: https://devwithjosh.com/understanding-the-mediator-design-pattern-in-c
#en
@dot_net_c_sharp | Другие наши каналы
👍2🤔2