Media is too big
VIEW IN TELEGRAM
Как запустить проект? ASP.NET Core + React + NGINX + Docker Compose
Видео объясняет процесс создания и развертывания веб-приложения с использованием API на FastAPI, клиентской части на React и проксирования через Nginx, с контейнеризацией всех компонентов в Docker.
📲 Cмотреть источник: тут
👉 @KodBlog | #видео
Видео объясняет процесс создания и развертывания веб-приложения с использованием API на FastAPI, клиентской части на React и проксирования через Nginx, с контейнеризацией всех компонентов в Docker.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤4🔥1
Мой простой подход к созданию отчетов: конвертация HTML → PDF
Это просто и хорошо работает во многих случаях.
Моя любимая библиотека для этого – IronPDF.
Она платная, поэтому, если вам нужен бесплатный вариант, обратите внимание на Puppeteer Sharp.
Но в чем идея использования HTML-шаблона?🤔
Вы получаете больше контроля над форматированием документа. Можно использовать CSS для стилизации HTML-разметки, и эти стили будут применены при экспорте в PDF.
Я использовал этот подход с MVC views в нескольких проектах и получил отличные результаты.
Вот как легко создавать PDF в .NET: тык
👉 @KodBlog | #ресурсы
Это просто и хорошо работает во многих случаях.
Моя любимая библиотека для этого – IronPDF.
Она платная, поэтому, если вам нужен бесплатный вариант, обратите внимание на Puppeteer Sharp.
Но в чем идея использования HTML-шаблона?
Вы получаете больше контроля над форматированием документа. Можно использовать CSS для стилизации HTML-разметки, и эти стили будут применены при экспорте в PDF.
Я использовал этот подход с MVC views в нескольких проектах и получил отличные результаты.
Вот как легко создавать PDF в .NET: тык
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4
Это случилось
.NET 9 вводит CreateUnboundedPrioritized в System.Threading.Channels!😇
В отличие от каналов FIFO, он сначала извлекает элемент с наивысшим приоритетом, используя
Вы используете каналы? Для каких случаев?
👉 @KodBlog
.NET 9 вводит CreateUnboundedPrioritized в System.Threading.Channels!
В отличие от каналов FIFO, он сначала извлекает элемент с наивысшим приоритетом, используя
Comparer<T>.Default или пользовательский IComparer<T>.Вы используете каналы? Для каких случаев?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥3
Изучите SignalR в .NET Core для общения в чате в реальном времени.
Держи статью в которой рассматриваются основы SignalR, создание хаба для чата, работа с группами для сообщений, а также использование строго типизированных хабов.👋
Также затрагиваются вопросы масштабирования и использования IHubContext для отправки событий. Приводятся примеры кода для каждой стадии.
⏩ Читать:
https://dev.to/saurabhkhade/signalr-real-time-communication-in-net-core-26hb
👉 @KodBlog | #cтатья
Держи статью в которой рассматриваются основы SignalR, создание хаба для чата, работа с группами для сообщений, а также использование строго типизированных хабов.
Также затрагиваются вопросы масштабирования и использования IHubContext для отправки событий. Приводятся примеры кода для каждой стадии.
https://dev.to/saurabhkhade/signalr-real-time-communication-in-net-core-26hb
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6🔥1
Ключевые слова, которые стоит запомнить в C#:
👉 @KodBlog | #ресурсы
🟡 sealed: Предотвращает наследование класса.🟡 abstract: Определяет класс, который не может быть инстанцирован и должен быть унаследован, или метод, который должен быть реализован в производных классах.🟡 override: Предоставляет новую реализацию для унаследованного метода в производном классе.🟡 virtual: Позволяет переопределить метод или свойство в производном классе.🟡 static: Объявляет член, который принадлежит самому типу, а не конкретному объекту, или класс, который не может быть инстанцирован.🟡 const: Определяет константу времени компиляции.🟡 readonly: Объявляет поле, которое может быть присвоено только во время инициализации или в конструкторе.🟡 async: Помечает метод как асинхронный и позволяет использовать ключевое слово await внутри него.🟡 var: Определяет тип переменной на основе выражения с правой стороны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤6🔥4
Media is too big
VIEW IN TELEGRAM
MediatR + CQRS - использование паттернов для разделения запросов и модификаций
В видео объясняются паттерны проектирования "Медиатор" и "CQRS" (разделение операций чтения и записи), а также их использование в разработке веб-приложения для заметок с помощью библиотеки MediatR.
📲 Cмотреть источник: тут
👉 @KodBlog | #видео
В видео объясняются паттерны проектирования "Медиатор" и "CQRS" (разделение операций чтения и записи), а также их использование в разработке веб-приложения для заметок с помощью библиотеки MediatR.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
BlazorToolkit — это набор инструментов для разработки на Blazor.
Он включает утилиты для упрощения сетевых операций, такие как вызовы REST API, сервисы для модульного кода и инструменты для валидации форм.
Этот набор доступен через NuGet и лицензирован по MIT License.
🔜 Смотри сам: клик
👉 @KodBlog | #ресурсы
Он включает утилиты для упрощения сетевых операций, такие как вызовы REST API, сервисы для модульного кода и инструменты для валидации форм.
Этот набор доступен через NuGet и лицензирован по MIT License.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥2
Подробный план упражнений по освоению многозадачности и параллельного программирования на C#.
Он охватывает основы, такие как многопоточность и синхронизация, а затем переход к более сложным темам, таким как асинхронное программирование, Parallel LINQ и шаблоны "производитель-потребитель".
Каждый этап включает примеры кода и практические задачи для закрепления знаний.😊
⏩ Читать: клик
👉 @KodBlog | #cтатья
Он охватывает основы, такие как многопоточность и синхронизация, а затем переход к более сложным темам, таким как асинхронное программирование, Parallel LINQ и шаблоны "производитель-потребитель".
Каждый этап включает примеры кода и практические задачи для закрепления знаний.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥2😐1
Вы правильно прочитали.
Знаете ли вы, что можно использовать паттерн запрос-ответ в обмене сообщениями?
Одна служба, запросчик, отправляет сообщение запроса и ожидает соответствующее сообщение-ответ.
Это синхронный подход к коммуникации со стороны запросчика.
На фото диаграмма, как выглядит этот процесс.
Хорошие стороны:
Плохие стороны:
Вот как это можно реализовать: клик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😐3🔥2
Программирование на C# с нуля до уровня профессионала (для начинающих)
Эта книга - поможет вам выучить C# быстро и без лишней траты времени.👍
Она учит основам, таким как создание приложений, работа с различными типами переменных (массивы, списки, строки и числа), использование условных операторов и циклов, а также применению принципов объектно-ориентированного программирования (наследование, полиморфизм, инкапсуляция).
⏩ Получите свой экземпляр:
https://www.smashwords.com/books/view/1279123
👉 @KodBlog | #books
Эта книга - поможет вам выучить C# быстро и без лишней траты времени.
Она учит основам, таким как создание приложений, работа с различными типами переменных (массивы, списки, строки и числа), использование условных операторов и циклов, а также применению принципов объектно-ориентированного программирования (наследование, полиморфизм, инкапсуляция).
https://www.smashwords.com/books/view/1279123
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
Media is too big
VIEW IN TELEGRAM
Это ресурс с краткими справочниками (шпаргалками) по программированию
Там можно найти полезные материалы по языкам программирования, инструментам и командам, например:
🟡 Python, JavaScript, C, C#, Java
🟡 SQL, Bash, Regex
🟡 Git, Docker, Linux-команды и многое другое
Каждая шпаргалка содержит основные команды, синтаксис и примеры кода, что удобно для быстрого ознакомления или напоминания.👍
Глянь сам: тут
👉 @KodBlog | #ресурсы
Там можно найти полезные материалы по языкам программирования, инструментам и командам, например:
Каждая шпаргалка содержит основные команды, синтаксис и примеры кода, что удобно для быстрого ознакомления или напоминания.
Глянь сам: тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4
Media is too big
VIEW IN TELEGRAM
Полный курс. От нуля и до создания игры на Unity и C# 2024
Рассматриваются интерфейс Unity, работа с объектами и их компонентами, основы программирования (переменные, операторы, циклы, корутины), использование префабов и GetComponent, механики перемещения и взаимодействия (Input, стрельба, камера, анимация), а также создание врагов, эффектов, интерфейса и внутриигрового магазина.
📲 Cмотреть источник: тут
👉 @KodBlog | #видео
Рассматриваются интерфейс Unity, работа с объектами и их компонентами, основы программирования (переменные, операторы, циклы, корутины), использование префабов и GetComponent, механики перемещения и взаимодействия (Input, стрельба, камера, анимация), а также создание врагов, эффектов, интерфейса и внутриигрового магазина.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4🔥2
Это библиотека для управления авторизацией и правами доступа в
Она поддерживает настраиваемые роли, multi-tenant архитектуру, обновляемые JWT-токены и гибкие схемы аутентификации. Администраторы могут менять разрешения ролей без перезапуска, а данные хранятся с шардированием или в общей базе.
🔜 Ссылка: тут
👉 @KodBlog | #ресурсы
ASP.NET Core. Она поддерживает настраиваемые роли, multi-tenant архитектуру, обновляемые JWT-токены и гибкие схемы аутентификации. Администраторы могут менять разрешения ролей без перезапуска, а данные хранятся с шардированием или в общей базе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🔥1👏1
Примеры .NET DateOnly и TimeOnly
Мне очень нравятся эти новые типы, добавленные в dotnet 6.
Они позволяют нам лучше выражать намерения в коде и делают его более понятным для других разработчиков, показывая, что нас интересует только дата или только время.
До .NET 6 мы часто просто использовали DateTime и отбрасывали часть с временем для таких переменных, как DateOfBirth или OrderDate.
А ты часто их используешь?🤔
👉 @KodBlog
Мне очень нравятся эти новые типы, добавленные в dotnet 6.
Они позволяют нам лучше выражать намерения в коде и делают его более понятным для других разработчиков, показывая, что нас интересует только дата или только время.
До .NET 6 мы часто просто использовали DateTime и отбрасывали часть с временем для таких переменных, как DateOfBirth или OrderDate.
А ты часто их используешь?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤9🔥6
Media is too big
VIEW IN TELEGRAM
Планирование фоновых задач в .NET с помощью Quartz
Видео посвящено настройке и использованию Quartz.NET в .NET для создания фоновых задач. Рассматриваются внедрение зависимостей, конфигурация Quartz, создание и планирование заданий с IJob, настройка ожидания завершения задач, предотвращение одновременного выполнения с DisallowConcurrentExecution и использование IConfigureOptions для управления фоновыми заданиями.
📲 Cмотреть источник: тут
👉 @KodBlog | #видео
Видео посвящено настройке и использованию Quartz.NET в .NET для создания фоновых задач. Рассматриваются внедрение зависимостей, конфигурация Quartz, создание и планирование заданий с IJob, настройка ожидания завершения задач, предотвращение одновременного выполнения с DisallowConcurrentExecution и использование IConfigureOptions для управления фоновыми заданиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2
Как мы сделали такую простую идею такой сложной? 🤔
CQRS — это один из самых простых паттернов.
CQRS разделяет операции записи и чтения в приложении.
Это разделение может быть логическим ИЛИ физическим.
CQRS имеет множество преимуществ:
🟡 Управление сложностью
🟡 Повышенная производительность
🟡 Масштабируемость
🟡 Гибкость
🟡 Безопасность
Мой предпочтительный подход — начинать с логического CQRS.
Одна база данных + отдельные потоки для записей и чтений.
Вы можете разработать модель данных, оптимизированную для каждой операции.
Многие разработчики избегают CQRS, боясь его сложности.
Они думают, что для реализации CQRS нужен MediatR.
Это не так.
⏩ Вот почему: клик
👉 @KodBlog
CQRS — это один из самых простых паттернов.
CQRS разделяет операции записи и чтения в приложении.
Это разделение может быть логическим ИЛИ физическим.
CQRS имеет множество преимуществ:
Мой предпочтительный подход — начинать с логического CQRS.
Одна база данных + отдельные потоки для записей и чтений.
Вы можете разработать модель данных, оптимизированную для каждой операции.
Многие разработчики избегают CQRS, боясь его сложности.
Они думают, что для реализации CQRS нужен MediatR.
Это не так.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
Процесс компиляции в .NET для C#, включая этапы от написания исходного кода до его выполнения.
Описание охватывает компиляцию в Common Intermediate Language (CIL), хранение в сборке, а также Just-In-Time (JIT) компиляцию в Common Language Runtime (CLR). Также упоминается Ahead-Of-Time (AOT) компиляция для оптимизации производительности.
⏩ Читать: клик
👉 @KodBlog | #cтатья
Описание охватывает компиляцию в Common Intermediate Language (CIL), хранение в сборке, а также Just-In-Time (JIT) компиляцию в Common Language Runtime (CLR). Также упоминается Ahead-Of-Time (AOT) компиляция для оптимизации производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
SimpleAuth4Net — легковесная, но мощная библиотека для аутентификации в .NET-приложениях!
Быстро интегрирует авторизацию через OAuth или OpenID Connect, без сложной настройки и написания лишнего кода
🟡 поддержка нескольких провайдеров аутентификации
🟡 минимальная конфигурация, понятный API
🟡 возможность адаптации под нужды проекта
👉 @KodBlog
Быстро интегрирует авторизацию через OAuth или OpenID Connect, без сложной настройки и написания лишнего кода
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥1
Как стать AWS Data Engineer
В Amazon Web Services доступно сотни сервисов, но вам не нужно изучать их все.
Достаточно сосредоточиться на 10-20 сервисах, которые используются в работе дата-инженера, а также на сервисах для сетевого взаимодействия и управления доступом.
AWS-сервисы для дата-инженеров:👇
☑ Simple Storage Service (S3):
Это объектное хранилище (можно хранить любые данные) и, по сути, центр вашей работы. Вся поступающая информация будет храниться здесь для дальнейшей обработки.
☑ AWS Glue:
Хотите писать ETL-скрипты (Extract, Transform, Load) на Python/Spark без забот о серверах? Glue — это серверлесс-сервис, где вам нужно сосредоточиться только на коде, а AWS возьмет на себя всё остальное.
☑ Amazon Redshift:
Обработали данные и написали ETL-скрипт — куда их загружать? В хранилище данных! Amazon Redshift — это управляемый сервис для работы с Data Warehouse, который позволяет анализировать данные с помощью SQL и инструментов BI.
☑ Amazon EMR (Elastic MapReduce):
Если у вас уже есть скрипты обработки данных на локальных серверах с использованием Hadoop/Spark и вы хотите перенести их в облако, EMR — ваш выбор.
Этот сервис упрощает обработку больших объемов данных с помощью фреймворков с открытым исходным кодом, таких как Apache Hadoop и Apache Spark.
☑ AWS Lambda:
Хотите запускать короткие скрипты по расписанию, событиям или триггерам? Lambda — ваш лучший друг!
AWS Lambda — это серверлесс-сервис, позволяющий запускать код без управления серверами. Используется для автоматизации процессов и обработки данных в реальном времени.
☑ Amazon Athena:
Зачем загружать данные в хранилище, если можно просто выполнять SQL-запросы прямо по файлам? Athena — это сервис для выполнения ad-hoc SQL-запросов непосредственно по данным, хранящимся в S3.
☑ Kinesis:
Хотите обрабатывать, анализировать и сохранять потоковые данные в реальном времени? Kinesis — ваш инструмент!
Аналог Apache Kafka, позволяет работать с потоковыми данными.
☑ DMS (Data Migration Service):
Работа с миграцией данных становится намного проще благодаря DMS. Если вам нужно перенести данные между разными источниками, этот сервис поможет справиться с задачей быстро и без лишних сложностей.
Помимо этого, можно изучить и другие полезные сервисы: EC2, IAM, VPC, Batch, SageMaker и др.
👉 @KodBlog
В Amazon Web Services доступно сотни сервисов, но вам не нужно изучать их все.
Достаточно сосредоточиться на 10-20 сервисах, которые используются в работе дата-инженера, а также на сервисах для сетевого взаимодействия и управления доступом.
AWS-сервисы для дата-инженеров:
Это объектное хранилище (можно хранить любые данные) и, по сути, центр вашей работы. Вся поступающая информация будет храниться здесь для дальнейшей обработки.
Хотите писать ETL-скрипты (Extract, Transform, Load) на Python/Spark без забот о серверах? Glue — это серверлесс-сервис, где вам нужно сосредоточиться только на коде, а AWS возьмет на себя всё остальное.
Обработали данные и написали ETL-скрипт — куда их загружать? В хранилище данных! Amazon Redshift — это управляемый сервис для работы с Data Warehouse, который позволяет анализировать данные с помощью SQL и инструментов BI.
Если у вас уже есть скрипты обработки данных на локальных серверах с использованием Hadoop/Spark и вы хотите перенести их в облако, EMR — ваш выбор.
Этот сервис упрощает обработку больших объемов данных с помощью фреймворков с открытым исходным кодом, таких как Apache Hadoop и Apache Spark.
Хотите запускать короткие скрипты по расписанию, событиям или триггерам? Lambda — ваш лучший друг!
AWS Lambda — это серверлесс-сервис, позволяющий запускать код без управления серверами. Используется для автоматизации процессов и обработки данных в реальном времени.
Зачем загружать данные в хранилище, если можно просто выполнять SQL-запросы прямо по файлам? Athena — это сервис для выполнения ad-hoc SQL-запросов непосредственно по данным, хранящимся в S3.
Хотите обрабатывать, анализировать и сохранять потоковые данные в реальном времени? Kinesis — ваш инструмент!
Аналог Apache Kafka, позволяет работать с потоковыми данными.
Работа с миграцией данных становится намного проще благодаря DMS. Если вам нужно перенести данные между разными источниками, этот сервис поможет справиться с задачей быстро и без лишних сложностей.
Помимо этого, можно изучить и другие полезные сервисы: EC2, IAM, VPC, Batch, SageMaker и др.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥2
Вот быстрый способ добавить вход и регистрацию в ваш .NET-бэкенд:
🍩 Установите один пакет NuGet:
🍩 Определите класс, наследующий IdentityUser, чтобы представить пользователей в базе данных. Можно начать с пустого класса.
🍩 Сделайте ваш DbContext наследником IdentityDbContext. В OnModelCreating обязательно вызовите base.OnModelCreating.
🍩 Добавьте миграцию и обновите базу данных. У вас появится около 7 новых таблиц для управления пользователями, ролями, правами и т. д.
🍩 Зарегистрируйте сервисы:
🍩 Включите эндпоинты:
🍩 Теперь клиентские приложения могут использовать
👉 @KodBlog
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
services.AddIdentityApiEndpoints<IdentityUser>()
.AddEntityFrameworkStores<ApplicationDbContext>();
app.MapIdentityApi<IdentityUser>();
/register и /login в API для регистрации и входа пользователей.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4🤔2❤1🤯1