Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Media is too big
VIEW IN TELEGRAM
Управление состояниями в .NET с помощью Stateless
Stateless — представляет собой библиотеку для реализации конечных автоматов (state machines) в .NET. Она позволяет разработчикам легко создавать и управлять состояниями объектов и их переходами
У нее лаконичный API для определения состояний и их переходов. Также есть возможность обработки асинхронных переходов между состояниями
Пример кода:
👉 @KodBlog | #ресурсы
Stateless — представляет собой библиотеку для реализации конечных автоматов (state machines) в .NET. Она позволяет разработчикам легко создавать и управлять состояниями объектов и их переходами
У нее лаконичный API для определения состояний и их переходов. Также есть возможность обработки асинхронных переходов между состояниями
Пример кода:
using Stateless;
var stateMachine = new StateMachine<State, Trigger>(State.Off);
stateMachine.Configure(State.Off)
.Permit(Trigger.TurnOn, State.On);
stateMachine.Configure(State.On)
.Permit(Trigger.TurnOff, State.Off);
stateMachine.Fire(Trigger.TurnOn);
Console.WriteLine(stateMachine.State); // Output: On
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Media is too big
VIEW IN TELEGRAM
CRUD веб приложение на ASP.NET Core, React, EF Core, Postgresql с чистой архитектурой
Рассматриваются: введение, слой с domain-моделями, работа с базой данных, конфигурация модели, добавление репозитория, настройка класса Program, создание Docker-контейнера с PostgreSQL, слой бизнес-логики, контроллеры, фронтенд, а в конце демонстрируется результат.
📲 Cмотреть источник: тут
👉 @KodBlog | #курсы
Рассматриваются: введение, слой с domain-моделями, работа с базой данных, конфигурация модели, добавление репозитория, настройка класса Program, создание Docker-контейнера с PostgreSQL, слой бизнес-логики, контроллеры, фронтенд, а в конце демонстрируется результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Вы используете Central Package Management в .NET?
Если вы слышите об этом впервые, вас ждет интересное открытие
Управлять зависимостями для одного проекта достаточно просто
Но что, если у вас 50–100 проектов в одном решении?
Это часто встречается в случае модульных монолитов или микросервисов
Когда у вас много зависимостей в проектах, можно использовать Central Package Management
С его помощью вы можете определить все зависимости NuGet в одном файле
Этот файл содержит версии ваших NuGet-пакетов
Ваши проекты на C# просто ссылаются на необходимые пакеты без указания версии
👉 @KodBlog | #ресурсы
Если вы слышите об этом впервые, вас ждет интересное открытие
Управлять зависимостями для одного проекта достаточно просто
Но что, если у вас 50–100 проектов в одном решении?
Это часто встречается в случае модульных монолитов или микросервисов
Когда у вас много зависимостей в проектах, можно использовать Central Package Management
С его помощью вы можете определить все зависимости NuGet в одном файле
Этот файл содержит версии ваших NuGet-пакетов
Ваши проекты на C# просто ссылаются на необходимые пакеты без указания версии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🙏4❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Как передавать данные в фоновые задачи?
Это не так просто сделать с помощью встроенного
Он работает непрерывно, и вам пришлось бы сначала сохранить состояние в базе данных, чтобы использовать его в фоновой задаче
Вы можете прикрепить данные либо к самой задаче (Job), либо к триггеру (Trigger).
👉 @KodBlog | #ресурсы
Это не так просто сделать с помощью встроенного
IHostedServiceОн работает непрерывно, и вам пришлось бы сначала сохранить состояние в базе данных, чтобы использовать его в фоновой задаче
Quartz решает эту проблему, позволяя передавать данные при планировании задачиВы можете прикрепить данные либо к самой задаче (Job), либо к триггеру (Trigger).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3
Media is too big
VIEW IN TELEGRAM
Entity Framework Core на практике : репозитории, миграции, модели, связи, запросы к PostgreSQL
Видео охватывает работу с Entity Framework: создание моделей и связей, настройка DbContext, конфигурации, миграции, использование репозиториев, AsNoTracking, а также операции CRUD и пагинацию.
📲 Cмотреть источник: тут
👉 @KodBlog | #курсы
Видео охватывает работу с Entity Framework: создание моделей и связей, настройка DbContext, конфигурации, миграции, использование репозиториев, AsNoTracking, а также операции CRUD и пагинацию.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Забыл про имбу 🤖
while True: learn() — это игра-симулятор о программировании и машинном обучении.
Вы играете за программиста, который пытается создать идеальный алгоритм машинного обучения, чтобы понять своего кота. Кот общается странным образом, и игрок должен построить модели, которые смогут расшифровать его "язык".
Она не требует реальных знаний кодинга, так что играть может даже тот, кто вообще не связан с ИТ
Игра доступна в стиме, но не бесплатная - тут
👉 @KodBlog | #ресурсы
while True: learn() — это игра-симулятор о программировании и машинном обучении.
Вы играете за программиста, который пытается создать идеальный алгоритм машинного обучения, чтобы понять своего кота. Кот общается странным образом, и игрок должен построить модели, которые смогут расшифровать его "язык".
Она не требует реальных знаний кодинга, так что играть может даже тот, кто вообще не связан с ИТ
Игра доступна в стиме, но не бесплатная - тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👨💻3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8❤5🔥2👍1🤔1
5 причин, почему простой метод расширения в C# чаще всего лучше AutoMapper:
𝟭. Простота
Пишите только то, что нужно. Методы расширения позволяют выполнять точное сопоставление без лишней настройки.
𝟮. Производительность
Без рефлексии и скрытых затрат. Прямое сопоставление обеспечивает оптимальную производительность на этапе выполнения, экономя драгоценные миллисекунды.
𝟯. Читаемость
Код должен быть понятным. Методы расширения делают маппинг явным, убирая догадки о том, что куда сопоставляется.
𝟰. Гибкость
Ваш код — ваши правила. Настраивайте логику маппинга под конкретные сценарии, не ограничиваясь рамками библиотеки.
𝟱. Отладка
Можно напрямую отлаживать код маппинга без сложностей, связанных с внутренностями AutoMapper.
Простота, производительность и контроль чаще всего побеждают, особенно при создании чистого и поддерживаемого кода
👉 @KodBlog | #ресурсы
𝟭. Простота
Пишите только то, что нужно. Методы расширения позволяют выполнять точное сопоставление без лишней настройки.
𝟮. Производительность
Без рефлексии и скрытых затрат. Прямое сопоставление обеспечивает оптимальную производительность на этапе выполнения, экономя драгоценные миллисекунды.
𝟯. Читаемость
Код должен быть понятным. Методы расширения делают маппинг явным, убирая догадки о том, что куда сопоставляется.
𝟰. Гибкость
Ваш код — ваши правила. Настраивайте логику маппинга под конкретные сценарии, не ограничиваясь рамками библиотеки.
𝟱. Отладка
Можно напрямую отлаживать код маппинга без сложностей, связанных с внутренностями AutoMapper.
Простота, производительность и контроль чаще всего побеждают, особенно при создании чистого и поддерживаемого кода
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3😐2🔥1
15+ библиотек .NET, которые стоит знать:
Mediator — для реализации CQRS (GitHub)
Dapper — легковесный микро-ORM (GitHub)
Serilog и NLog — мощные инструменты для логирования (Serilog, NLog)
Bogus — генератор фейковых данных (GitHub)
FluentValidation — упрощение проверки данных (Официальный сайт)
SignalR — для взаимодействия в реальном времени (Документация)
NSubstitute — упрощает создание моков (Официальный сайт)
Hangfire и Quartz — фоновые задачи (Hangfire, Quartz)
Noda Time — лучшая библиотека для работы с датами и временем (Официальный сайт)
Autofac — контейнер для управления зависимостями (Официальный сайт)
MiniProfiler — для мониторинга производительности (Официальный сайт)
Automapper, Mapster, Mapperley — удобные инструменты для маппинга объектов (Automapper, Mapster, Mapperley)
Polly — обработка ошибок и управление сбоями (GitHub)
NewtonSoft JSON — работа с JSON-объектами (Официальный сайт)
BenchmarkDotNet — измерение производительности кода (Официальный сайт)
Swagger — удобный инструмент для документирования API (Swagger)
Эти инструменты значительно упростят и улучшат вашу разработку!
👉 @KodBlog | #ресурсы
Mediator — для реализации CQRS (GitHub)
Dapper — легковесный микро-ORM (GitHub)
Serilog и NLog — мощные инструменты для логирования (Serilog, NLog)
Bogus — генератор фейковых данных (GitHub)
FluentValidation — упрощение проверки данных (Официальный сайт)
SignalR — для взаимодействия в реальном времени (Документация)
NSubstitute — упрощает создание моков (Официальный сайт)
Hangfire и Quartz — фоновые задачи (Hangfire, Quartz)
Noda Time — лучшая библиотека для работы с датами и временем (Официальный сайт)
Autofac — контейнер для управления зависимостями (Официальный сайт)
MiniProfiler — для мониторинга производительности (Официальный сайт)
Automapper, Mapster, Mapperley — удобные инструменты для маппинга объектов (Automapper, Mapster, Mapperley)
Polly — обработка ошибок и управление сбоями (GitHub)
NewtonSoft JSON — работа с JSON-объектами (Официальный сайт)
BenchmarkDotNet — измерение производительности кода (Официальный сайт)
Swagger — удобный инструмент для документирования API (Swagger)
Эти инструменты значительно упростят и улучшат вашу разработку!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤5🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Какой самый простой способ запускать фоновые задачи в .NET?
Фоновые задачи — это процессы или операции, которые выполняются независимо от основного потока выполнения программы или приложения.
Обычно такие задачи работают в фоновом режиме, без прямого взаимодействия с пользователем, и могут выполнять различные функции, такие как:
🟡 Уведомления
🟡 Периодические задачи
🟡 Планировщики
🟡 Обработка сообщений
🟡 Асинхронная обработка
🟡 Обработка данных в реальном времени
Для реализации этого в .NET можно использовать интерфейс IHostedService.
Он включает два метода:
🟡 StartAsync
🟡 StopAsync
Вы можете добавить в него необходимые действия. Всё, что нужно сделать, — зарегистрировать эту службу в файле программы, и всё готово.
Для простых фоновых задач этого достаточно. Для более сложных сценариев вы можете использовать следующие NuGet-пакеты:
🟡 Hangfire
🟡 Quartz
👉 @KodBlog | #ресурсы
Фоновые задачи — это процессы или операции, которые выполняются независимо от основного потока выполнения программы или приложения.
Обычно такие задачи работают в фоновом режиме, без прямого взаимодействия с пользователем, и могут выполнять различные функции, такие как:
Для реализации этого в .NET можно использовать интерфейс IHostedService.
Он включает два метода:
Вы можете добавить в него необходимые действия. Всё, что нужно сделать, — зарегистрировать эту службу в файле программы, и всё готово.
Для простых фоновых задач этого достаточно. Для более сложных сценариев вы можете использовать следующие NuGet-пакеты:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1👏1
Media is too big
VIEW IN TELEGRAM
Создайте свое первое приложение C# Windows Forms
В этом пошаговом руководстве вы создадите своё первое приложение Windows Forms на языке C# с использованием Visual Studio. Windows Forms — это графический интерфейс пользователя (GUI), который позволяет создавать настольные приложения с богатым и интерактивным пользовательским интерфейсом.
📲 Cмотреть источник: тут
👉 @KodBlog | #курсы
В этом пошаговом руководстве вы создадите своё первое приложение Windows Forms на языке C# с использованием Visual Studio. Windows Forms — это графический интерфейс пользователя (GUI), который позволяет создавать настольные приложения с богатым и интерактивным пользовательским интерфейсом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤣9❤4🔥2
Библиотека устойчивости HTTP в .NET предоставляет готовые к использованию каналы устойчивости для отправки HTTP-запросов.
Стандартный канал включает следующие стратегии:
🍩 Ограничение скорости (Rate limiter)
🍩 Общий таймаут запроса (Total request timeout)
🍩 Повторная попытка (Retry)
🍩 Прерыватель цепи (Circuit breaker)
🍩 Таймаут одной попытки (Attempt timeout)
👉 @KodBlog | #ресурсы
Стандартный канал включает следующие стратегии:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4
Какие существуют способы передачи параметров в REST API?
Существует несколько способов передачи параметров в REST API:
🍩 Параметры запроса (Query Parameters):
- Добавляются в конец URL.
- Видны в URL запроса.
- Пример:
🍩 Заголовки запроса (Request Headers):
- Передаются в HTTP-заголовках.
- Используются для передачи информации, такой как токены аутентификации.
- Пример: Authorization: Bearer token123
🍩 Тело запроса (Request Body):
- Используется для передачи более сложных данных.
- Обычно применяется в запросах POST и PUT.
- Данные передаются в теле запроса в формате JSON или XML.
🍩 Параметры пути/URL (Path/URL Parameters):
- Используются для добавления динамических значений в URL.
- Являются частью пути URL.
- Пример:
👉 @KodBlog | #ресурсы
Существует несколько способов передачи параметров в REST API:
- Добавляются в конец URL.
- Видны в URL запроса.
- Пример:
https://api.example.com/resource?id=123&name=john
- Передаются в HTTP-заголовках.
- Используются для передачи информации, такой как токены аутентификации.
- Пример: Authorization: Bearer token123
- Используется для передачи более сложных данных.
- Обычно применяется в запросах POST и PUT.
- Данные передаются в теле запроса в формате JSON или XML.
- Используются для добавления динамических значений в URL.
- Являются частью пути URL.
- Пример:
https://api.example.com/client/123/department/456/employeesPlease open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥2💯2❤1
Media is too big
VIEW IN TELEGRAM
В нем рассматриваются основы модульного тестирования, включая создание тестов, использование фреймворков и лучшие практики для обеспечения качества кода. Это полезный ресурс для разработчиков, стремящихся улучшить свои навыки тестирования в C#.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🙏2
Свободный открытый деинсталятор приложений для Windows на C# 😊
Он может удалять большое количество приложений с минимальным вмешательством пользователя.
BCU может очищать остатки, обнаруживать потерянные приложения, запускать программы удаления в соответствии с готовыми списками и т. д.
⛓ Ссылка: тык
👉 @KodBlog | #ресурсы
Он может удалять большое количество приложений с минимальным вмешательством пользователя.
BCU может очищать остатки, обнаруживать потерянные приложения, запускать программы удаления в соответствии с готовыми списками и т. д.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍5❤3