#полезное
👍 Как реализовать поток On-Behalf-Of (OBO) в
Читать статью
👉 Новости 👉 База вопросов
ASP.NET Core с использованием Microsoft Entra ID для делегированной аутентификации.Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Что такое индексаторы (Indexers) в С#?
Индексаторы в С# позволяют объектам класса быть индексируемыми, как массивы. Они позволяют использовать синтаксис массива для доступа к элементам объекта.
👉 Новости 👉 База вопросов
Индексаторы в С# позволяют объектам класса быть индексируемыми, как массивы. Они позволяют использовать синтаксис массива для доступа к элементам объекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
👍2
Media is too big
VIEW IN TELEGRAM
#полезное
🤓 Claude 3.7 Sonnet получил серьёзного конкурента
Gemini 2.5 Pro — действительно хорошая модель для кода
🟠 качество кода действительно высокое
🟠 контекст 1M токенов
🟠 нативная мультимодальность
🟠 генерация длинного кода
🟠 понимание крупных кодовых баз
Чувак на видео использовал его вместе с Windsurf для создания приложения поискового агента с ИИ
👉 Новости 👉 База вопросов
Gemini 2.5 Pro — действительно хорошая модель для кода
Чувак на видео использовал его вместе с Windsurf для создания приложения поискового агента с ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😐 Вы можете открыть VS Code прямо в браузере из репозитория на GitHub.
Просто нажмите клавишу "
Это работает даже если вы не владеете репозиторием!
👉 Новости 👉 База вопросов
Просто нажмите клавишу "
." (точка)" в репозитории на GitHub. Это откроет репозиторий в веб-версии VS Code. Можно редактировать и коммитить изменения одним кликом.Это работает даже если вы не владеете репозиторием!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес #CSharp
🤔 Что такое запечатанные (sealed) классы в С#?
Запечатанный (sealed) класс не позволяет создавать от него производные классы. Это защищает класс от модификаций и обеспечивает его неизменяемость.
👉 Новости 👉 База вопросов
Запечатанный (sealed) класс не позволяет создавать от него производные классы. Это защищает класс от модификаций и обеспечивает его неизменяемость.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Task.Delay в тестах?Начиная с .NET 8, вы можете передать объект
TimeProvider в метод Task.DelayTimeProvider будет интерпретировать задержку.Вы можете использовать
FakeTimeProvider, чтобы управлять задержкой в тестах.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CSharp
🤔 Что такое делегаты в С#?
Делегат (delegate) - это тип, который хранит ссылку на метод и позволяет вызывать его динамически. Делегаты используются для обратных вызовов, событий и передачи методов в качестве параметров.
👉 Новости 👉 База вопросов
Делегат (delegate) - это тип, который хранит ссылку на метод и позволяет вызывать его динамически. Делегаты используются для обратных вызовов, событий и передачи методов в качестве параметров.
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Как с помощью .NET 8 грамотно настроить ролевую авторизацию в многоуровневых приложениях
Всё это — с примерами кода и лучшими практиками, чтобы приложение было и безопасным, и масштабируемым.
Читать тут
👉 Новости 👉 База вопросов
Всё это — с примерами кода и лучшими практиками, чтобы приложение было и безопасным, и масштабируемым.
Читать тут
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Устали листать запутанный и огромный файл Program.cs?
Вот как сделать его чище и читабельнее
Одно из первых, что мы делаем при создании приложения — это настройка:
🟠 Логирования
🟠 Базы данных и ORM
🟠 CORS
🟠 Аутентификации
🟠 DI-сервисов
🟠 Привязок для API
И всё это сваливается в Program.cs — и быстро превращается в кашу.
Вот тут и приходит на помощь паттерн расширения
Он помогает организовать конфигурации сервисов в модульные, читабельные и тестируемые куски.
Больше никаких гигантских цепочек методов или запутанных блоков кода настройки.
Читай целый выпуск на эту тему с примерами
👉 Новости 👉 База вопросов
Вот как сделать его чище и читабельнее
Одно из первых, что мы делаем при создании приложения — это настройка:
И всё это сваливается в Program.cs — и быстро превращается в кашу.
Вот тут и приходит на помощь паттерн расширения
ServiceCollectionОн помогает организовать конфигурации сервисов в модульные, читабельные и тестируемые куски.
Больше никаких гигантских цепочек методов или запутанных блоков кода настройки.
Читай целый выпуск на эту тему с примерами
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 EF Core Tip
При разработке можно включить
Никогда не включай это в staging или production!
Функция логирует чувствительные данные (например, пароли, email, токены и т.д.), что может привести к утечке
Можешь подробней почитать здесь
👉 Новости 👉 База вопросов
При разработке можно включить
EnableSensitiveDataLogging(), чтобы видеть реальные значения параметров в SQL-запросах — это помогает понять, что именно уходит в базуНикогда не включай это в staging или production!
Функция логирует чувствительные данные (например, пароли, email, токены и т.д.), что может привести к утечке
Можешь подробней почитать здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥2
#Собес #CSharp
🤔 Что такое LINQ в С#?
LINQ (Language Integrated Query) - это встроенный в С# инструмент для удобного запроса данных. Он позволяет работать с коллекциями, базами данных, XML и другими источниками с использованием SQL-подобного синтаксиса.
👉 Новости 👉 База вопросов
LINQ (Language Integrated Query) - это встроенный в С# инструмент для удобного запроса данных. Он позволяет работать с коллекциями, базами данных, XML и другими источниками с использованием SQL-подобного синтаксиса.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Как проверить, что список не
Существует несколько способов это сделать:
🟠 Классический способ
🟠 Способ с
🟠 Способ с
🟠 Способ с
👉 Новости 👉 База вопросов
null и содержит элементы?Существует несколько способов это сделать:
List.CountEnumerable.Anypattern matchingPlease open Telegram to view this post
VIEW IN TELEGRAM
❤4
#полезное
😊 5 причин, почему простые extension-методы в C# чаще всего лучше AutoMapper
🟠 Простота
Пишешь только то, что нужно и ничего лишнего. Extension-методы дают точное управление маппингом без лишней конфигурации
🟠 Производительность
Без рефлексии и скрытых накладных расходов. Прямой маппинг работает быстрее и экономит ценные миллисекунды на рантайме
🟠 Читаемость
Код должен рассказывать историю. Когда другой разработчик читает маппинг, extension-метод чаще всего более прозрачен
🟠 Гибкость
Это твой код. Можно легко адаптировать логику под конкретные кейсы, не упираясь в ограничения сторонней библиотеки.
🟠 Отладка
Можно спокойно зайти в свой маппинг-код и сразу увидеть, что и как работает. Без необходимости лезть в внутренности AutoMapper
Простота, производительность и контроль — часто выигрывают, особенно когда пишешь чистую и поддерживаемую архитектуру
👉 Новости 👉 База вопросов
Пишешь только то, что нужно и ничего лишнего. Extension-методы дают точное управление маппингом без лишней конфигурации
Без рефлексии и скрытых накладных расходов. Прямой маппинг работает быстрее и экономит ценные миллисекунды на рантайме
Код должен рассказывать историю. Когда другой разработчик читает маппинг, extension-метод чаще всего более прозрачен
Это твой код. Можно легко адаптировать логику под конкретные кейсы, не упираясь в ограничения сторонней библиотеки.
Можно спокойно зайти в свой маппинг-код и сразу увидеть, что и как работает. Без необходимости лезть в внутренности AutoMapper
Простота, производительность и контроль — часто выигрывают, особенно когда пишешь чистую и поддерживаемую архитектуру
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
👍 В .NET 9 представлено новое поведение
Теперь GUID стал последовательным, что делает его более подходящим для реляционных баз данных
Также добавлено свойство
👉 Новости 👉 База вопросов
GUID, основанное на метке времени и случайностиТеперь GUID стал последовательным, что делает его более подходящим для реляционных баз данных
Также добавлено свойство
Version, позволяющее определить версию созданного GUIDPlease open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес #CSharp
🤔 Что такое многопоточное программирование в .NET?
Многопоточное программирование (multithreading) позволяет одной программе выполнять несколько задач параллельно с использованием потоков (threads). B .NET потоки управляются с помощью
👉 Новости 👉 База вопросов
Многопоточное программирование (multithreading) позволяет одной программе выполнять несколько задач параллельно с использованием потоков (threads). B .NET потоки управляются с помощью
Thread, Task и async/await. Это увеличивает производительность за счёт эффективного использования процессорных ресурсов и выполнения задач в фоне.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#полезное
👨💻 Совет по C#
Используй метод
👉 Новости 👉 База вопросов
Используй метод
string.Join, чтобы объединить элементы коллекции в одну строку, вставляя указанный разделитель между элементами.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
image_2025-04-11_11-04-44.png
1.2 MB
#полезное
🤓 Краткая история языка C#
Microsoft выпустила C# 13 в ноябре прошлого года. За более чем 20 лет C# развивался через 13 версий, каждая из которых привносила новые возможности.
Вот краткий обзор этих функций:
👉 Новости 👉 База вопросов
Microsoft выпустила C# 13 в ноябре прошлого года. За более чем 20 лет C# развивался через 13 версий, каждая из которых привносила новые возможности.
Вот краткий обзор этих функций:
⏩ C# 1.0 (.NET 1.0, 2002): Первый релиз⏩ C# 1.2 (.NET 1.1, 2003): IDisposable для IEnumerators⏩ C# 2.0 (.NET 2.0, 2005): Обобщения, nullable-типы, итераторы⏩ C# 3.0 (.NET 3.5, 2007): Лямбда-выражения, LINQ, методы расширения⏩ C# 4.0 (.NET 4, 2010): Динамическое связывание, именованные аргументы, необязательные параметры⏩ C# 5.0 (.NET 4.5, 2012): Async/await, атрибуты информации о вызывающем⏩ C# 6.0 (.NET 4.6, 2015): Инициализаторы автосвойств, статические импорты, фильтры исключений⏩ C# 7.0 (.NET 4.7, 2017): Кортежи, сопоставление с образцом, ref-переменные и возвращаемые значения⏩ C# 7.1 (2017): Async main, вывод кортежей, выражения по умолчанию⏩ C# 7.2 (2017): Модификатор доступа private protected, Span<T>⏩ C# 7.3 (2018): Новые ограничения для обобщений, переназначение ref⏩ C# 8.0 (.NET Core 3.0, 2019): Nullable-ссылочные типы, индексы и диапазоны, using-объявления⏩ C# 9.0 (.NET 5.0, 2020): Records, свойства init, верхнеуровневые программы⏩ C# 10.0 (.NET 6.0, 2021): Record-структуры, глобальные using-и, пространства имён в файлах⏩ C# 11.0 (.NET 7.0, 2022): Обобщённая математика, обязательные члены, необработанные строковые литералы⏩ C# 12.0 (.NET 8.0, 2023): Выражения коллекций, первичные конструкторы⏩ C# 13.0 (.NET 9.0, 2024): Улучшенные параметры, частичные свойства, новый объект блокировки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
#полезное
😇 Что такое преобразование клеймов (Claims Transformation) в
Если
Преобразование клеймов позволяет изменить клеймы до того, как приложение начнёт использовать их для авторизации
С помощью этого механизма можно, например, добавить недостающие клеймы из базы данных или другого источника.
Почему это полезно —> читайте здесь: статья
👉 Новости 👉 База вопросов
ASP.NET Core?Если
access token от вашего провайдера идентификации (Identity Provider) не полностью соответствует внутренним требованиям авторизации вашего приложения, вы можете использовать преобразование клеймов.Преобразование клеймов позволяет изменить клеймы до того, как приложение начнёт использовать их для авторизации
С помощью этого механизма можно, например, добавить недостающие клеймы из базы данных или другого источника.
Почему это полезно —> читайте здесь: статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #CSharp
🤔 Что такое управляемый (Managed) и неуправляемый (Unmanaged) код в С#?
Управляемый код работает в среде CLR и использует автоматическое управление памятью, в том числе сборку мусора. Неуправляемый код работает напрямую с операционной системой и требует ручного управления памятью.
👉 Новости 👉 База вопросов
Управляемый код работает в среде CLR и использует автоматическое управление памятью, в том числе сборку мусора. Неуправляемый код работает напрямую с операционной системой и требует ручного управления памятью.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😴 Wait4X — это высокоэффективный инструмент без внешних зависимостей, который обеспечивает ожидание готовности сервисов перед продолжением работы.
🟠 Поддержка различных протоколов и сервисов: делает его незаменимым для:
CI/CD конвейеров: гарантирует, что все зависимости доступны перед запуском тестов.
Оркестрации контейнеров: проверяет работоспособность служб перед стартом приложения.
Процессов развертывания: удостоверяется в готовности системы до начала деплоя.
Инициализации приложения: проверяет доступность внешних сервисов.
Локальной разработки: упрощает контроль готовности локального хоста.
🟠 Основные возможности:
Поддержка нескольких протоколов: TCP, HTTP, DNS.
Интеграция с сервисами: Redis, MySQL, PostgreSQL, MongoDB, RabbitMQ, InfluxDB, Temporal.
Обратная проверка для выявления свободных портов или неготовых служб.
Параллельная проверка нескольких сервисов одновременно.
Экспоненциальное повторение попыток с увеличивающимися задержками для повышения надежности.
Интеграция с CI/CD для автоматизации рабочих процессов.
Кроссплатформенность: единый двоичный файл для Linux, macOS и Windows.
Импорт пакетов Go в приложения на Go.
Выполнение команд после успешного прохождения проверок.
Больше на Гитхаб
👉 Новости 👉 База вопросов
CI/CD конвейеров: гарантирует, что все зависимости доступны перед запуском тестов.
Оркестрации контейнеров: проверяет работоспособность служб перед стартом приложения.
Процессов развертывания: удостоверяется в готовности системы до начала деплоя.
Инициализации приложения: проверяет доступность внешних сервисов.
Локальной разработки: упрощает контроль готовности локального хоста.
Поддержка нескольких протоколов: TCP, HTTP, DNS.
Интеграция с сервисами: Redis, MySQL, PostgreSQL, MongoDB, RabbitMQ, InfluxDB, Temporal.
Обратная проверка для выявления свободных портов или неготовых служб.
Параллельная проверка нескольких сервисов одновременно.
Экспоненциальное повторение попыток с увеличивающимися задержками для повышения надежности.
Интеграция с CI/CD для автоматизации рабочих процессов.
Кроссплатформенность: единый двоичный файл для Linux, macOS и Windows.
Импорт пакетов Go в приложения на Go.
Выполнение команд после успешного прохождения проверок.
Больше на Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM