C# Development | YeaHub
742 subscribers
304 photos
33 videos
1 file
537 links
Теория, подготовка к интервью и курсы для C# разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
🤔 Какое ключевое слово используется для ожидания завершения асинхронной операции в C#?
Anonymous Quiz
56%
await
18%
async
22%
wait
4%
defer
❤3🔥2
#статьи
😎 Как интегрировать CIBA в .NET-приложения для повышения безопасности и конфиденциальности.

CIBA — это стандартный поток для раздельной аутентификации, определенный OpenID Foundation, который используется, когда пользователь не может напрямую взаимодействовать с приложением.

Примером может служить ситуация, когда оператор колл-центра отправляет запрос на аутентификацию на устройство клиента, чтобы подтвердить его личность перед выполнением запроса.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
👍 Пара примеров полнотекстового поиска Entity Framework

🟠 Если ваша платформа БД поддерживает это и вам действительно нужен поиск по шаблону, рассмотрите возможность использования полнотекстового поиска для эффективного выполнения запросов!

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#книги
😐 Паттерны Kubernetes

В книге рассматриваются фундаментальные, поведенческие, структурные, конфигурационные и защитные шаблоны, а также сложные темы, такие как операторы и автоскейлинг
Скачать можно тут

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🥺 Пошаговое руководство по созданию API

Операции создания, чтения, обновления и удаления (CRUD) с использованием ASP.NET Core, Entity Framework Core и базы данных PostgreSQL!
Руководство тут

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
#собес
🤔 Что такое деревья выражений?

Это структура данных, представляющая код в виде дерева. В дереве выражений узлы содержат операции (например, сложение, вызов метода) и операнды (например, переменные, значения). Это позволяет анализировать и изменять выражения программно.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🤔 Какая тема лучше для VS Code?

Перестань искать. Здесь собраны все темы, которые можно отфильтровать по языку программирования, количеству установок или популярности, предварительно просмотреть и установить в редактор одним кликом.
vscodethemes.com

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 БРУТАЛЬНОЕ расширение для Visual Studio Code!

🟠Git Graph — предоставляет графическое представление вашего Git-репозитория, облегчая визуализацию и управление историей коммитов.

С его помощью вы можете просматривать древовидную структуру коммитов, что особенно полезно при работе с ветвлениями и слияниями
Тык сюда

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Media is too big
VIEW IN TELEGRAM
#видео
😊 C# Factory Method Фабричный Метод | Design Patterns

В нем раскрываются основные концепции, такие как использование фабричного метода для создания объектов, без указания точного типа создаваемого класса. Обсуждаются как преимущества, так и недостатки этого подхода, включая усложнение кода и необходимость в дополнительных фабриках.
📲 Cмотреть на ютубе

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 ER-диаграммы

Генерируйте диаграммы отношений сущностей (ER-диаграммы) в формате Mermaid из модели EF Core прямо в .NET Interactive Notebook в VSCode, начиная всего лишь с базы данных

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
🫠 В .NET 9 введен новый тип Base64Url.

Существующий метод Convert.ToBase64String может генерировать строку с символами '/', '+', или '=', которые не безопасны для использования в URL, поскольку они имеют особое значение в URL.

Вместо этого, помощник Base64Url генерирует строку без этих символов.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое С#?

С# — это высокоуровневый объектно-ориентированный язык программирования, разработанный для создания надежных и безопасных приложений. Он является частью экосистемы .NET и используется для разработки программ под различные платформы, включая веб-приложения, десктопные и мобильные решения.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#статьи
👍 Масштабируй .NET-приложения с проверенными практиками. Стратегии обработки миллионов запросов.

Статья рассказывает о масштабировании .NET-приложений для обработки миллионов запросов, включая микросервисы, кэширование (Redis), асинхронное программирование (async/await), оптимизацию запросов, использование облачных сервисов (Azure, AWS), контейнеризацию (Docker, Kubernetes) и мониторинг (Application Insights, Prometheus)
Читать статью...

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#статьи
😊 Управление электронной почтой с помощью .NET 9 и C# с использованием MailKit

SmtpClient устарел и лучше использовать MailKit и MimeKit для эффективной и безопасной работы с электронной почтой.

🟠В статье представлены шаги по установке MailKit, безопасному хранению SMTP-учетных данных с использованием переменных окружения, а также примеры кода для отправки простых писем, писем с вложениями и HTML-содержимым.

🟠Особое внимание уделяется настройке параметров безопасности соединения с SMTP-сервером.
Читать

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Media is too big
VIEW IN TELEGRAM
#видео
😊 Gmail API с использованием .NET C# с исходным кодом (чтение писем и вложений)

📝В нем показано, как настроить и использовать API для чтения электронных писем из Gmail. Автор предоставляет ссылку на исходный код проекта, доступный по адресу: клик

📱 Cмотреть ютуб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Что такое Common Language Runtime (CLR)?

CLR - это виртуальная машина, которая является частью .NET Framework. Она управляет выполнением программ, обеспечивая такие услуги, как управление
памятью, многозадачностью, безопасность типов и удаленным вызовом. CLR также разделяет код на управляемый и неуправляемый, где управляемый код работает в его среде.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Media is too big
VIEW IN TELEGRAM
#статьи
🥱 Процесс создания приложения на платформе .NET MAUI для Windows, способного сканировать штрихкоды с помощью камеры

🚩Автор демонстрирует, как использовать Windows Media API для захвата видеопотока с USB-камеры и интеграции с Dynamsoft Barcode Reader для распознавания штрихкодов. Проект включает две страницы: одну для загрузки изображений и другую для работы с живым видеопотоком с камеры, отображая результаты сканирования над изображением или видео.
Читать

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
#полезное
😊 JsonStringEnum
MemberName

В версии 9 библиотеки System.Text.Json, которая является стандартным инструментом для сериализации и десериализации JSON в .NET, был добавлен новый атрибут под названием JsonStringEnumMemberName.

Этот атрибут расширяет возможности работы с перечислениями (enum) при преобразовании их в JSON и обратно.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
👍 Бесплатная, с открытым исходным кодом CRM для разработчиков .NET и солопредпринимателей!

Этот проект построен с использованием технологий, таких как ASP.NET Core 9, Clean Architecture, CQRS и MediatR. Он предоставляет возможности для управления клиентами, кампаниями и командами без дополнительных сборов, а также включает полный RESTful API.
Ознакомиться

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес
🤔 Что такое наследование? Поддерживает ли С# множественное наследование?

Наследование — это механизм в С#, позволяющий одному классу наследовать
характеристики другого. С# не поддерживает множественное наследование для
классов, но поддерживает его для интерфейсов.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#ЛитКод
Задача: 364. Nested List Weight Sum II

Вам дан вложенный список целых чисел nestedList. Каждый элемент является либо целым числом, либо списком, элементы которого также могут быть целыми числами или другими списками.

Глубина целого числа — это количество списков, внутри которых оно находится. Например, вложенный список [1,[2,2],[[3],2],1] имеет значение каждого целого числа, установленное равным его глубине. Пусть maxDepth будет максимальной глубиной любого целого числа.
Вес целого числа определяется как maxDepth - (глубина целого числа) + 1.

Верните сумму каждого целого числа в nestedList, умноженную на его вес.

Пример:
Input: nestedList = [[1,1],2,[1,1]]
Output: 8
Explanation: Four 1's with a weight of 1, one 2 with a weight of 2.
1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 8


👨‍💻 Алгоритм:

1⃣Инициализировать первый уровень BFS-дерева, добавив все элементы из входного nestedList в очередь.

2⃣Для каждого уровня извлекать передний элемент из очереди. Если это список, то добавить его элементы в очередь. В противном случае обновить значения sumOfElements, maxDepth и sumOfProducts.

3⃣Когда очередь станет пустой, вернуть значение (maxDepth + 1) * sumOfElements - sumOfProducts.

😎 Решение:
using System;
using System.Collections.Generic;

public class Solution {
public int DepthSumInverse(IList<NestedInteger> nestedList) {
var queue = new Queue<NestedInteger>(nestedList);
int depth = 1, maxDepth = 0, sumOfElements = 0, sumOfProducts = 0;

while (queue.Count > 0) {
int size = queue.Count;
maxDepth = Math.Max(maxDepth, depth);

for (int i = 0; i < size; i++) {
var nested = queue.Dequeue();

if (nested.IsInteger()) {
int value = nested.GetInteger();
sumOfElements += value;
sumOfProducts += value * depth;
} else {
foreach (var ni in nested.GetList()) queue.Enqueue(ni);
}
}
depth++;
}
return (maxDepth + 1) * sumOfElements - sumOfProducts;
}
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1