C# Portal | Программирование
15K subscribers
755 photos
86 videos
19 files
666 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для C#-разработчика

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
45 вопросов для подготовки к собеседованию по C#

Реальные вопросы, не сгенерированные ИИ

1. В чём разница между readonly и const?
2. Для чего используется ключевое слово sealed?
3. Перечисли все модификаторы доступа для типов.
4. В чём разница между interface и abstract class?
5. Когда вызывается статический конструктор?
6. Как создать метод расширения?
7. Поддерживает ли C# множественное наследование классов?
8. Объясни, что такое упаковка (boxing) и распаковка (unboxing).
9. Что такое куча (heap) и стек (stack)?
10. В чём разница между string и StringBuilder?
11. Как создать дату с заданным часовым поясом?
12. Как изменить текущую культуру (CultureInfo)?
13. В чём разница между HashSet и Dictionary?
14. Какова цель метода ToLookup?
15. Создаёт ли метод LINQ Cast<T> новый объект?
16. Объясни отложенное выполнение (deferred execution) в LINQ.
17. Как работает ImmutableList?
18. Какие преимущества дают замороженные коллекции (Frozen collections)?
19. Назови потокобезопасные коллекции.
20. Как реализовать lock в асинхронном коде?
21. Перечисли все способы создания нового потока.
22. Как выполнить несколько async-задач одновременно?
23. Объясни разницу между наследованием и композицией.
24. В чём отличие class, record и struct?
25. Для чего используются ref struct?
26. Назови две формы record.
27. Для чего используется ключевое слово with?
28. Какова цель первичных конструкторов (Primary Constructors)?
29. Объясни, как работают nullable reference types (nullable-ссылочные типы).
30. Есть ли ограничения по возвращаемому типу у switch-выражений?
31. Для чего используется yield return?
32. Сколько поколений у сборщика мусора (GC)?
33. Для чего используется класс Interlocked?
34. Какой код компилятор генерирует для автосвойств (auto-properties)?
35. Как реализуется полиморфизм в C#?
36. Как реализуется инкапсуляция в C#?
37. В чём разница между параметрами ref и out?
38. Как работает оператор using?
39. Что такое delegate и как он используется?
40. Объясни перегрузку и переопределение методов.
41. В чём разница между IEnumerable и IQueryable?
42. Что такое expression trees в LINQ?
43. Как работает обработка исключений в C#?
44. Назови все способы повторной генерации исключения (rethrow).
45. Объясни, что такое обобщения (generics).

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
25🔥9👍6🌭1
Базовая настройка fanout-обмена с клиентом RabbitMQ для .NET

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95
Эта фича показала мне, насколько PostgreSQL крут.

Думаю, тебе тоже понравится.

В одном проекте мне нужно было за одну операцию вставить 5 тысяч записей.

Хранилищем был Postgres, и, естественно, всё должно было работать быстро.

После небольшого ресёрча я наткнулся на команду COPY.

Эта команда позволяет выполнять массовую вставку данных напрямую в базу.

Метод BINARY COPY отправляет данные в бинарном формате, который Npgsql декодирует, и после вызова Complete() данные сохраняются в БД.

Так как при этом сохраняются типы данных без конвертации, лучше использовать NpgsqlDbType — он позволяет явно указать нужный тип без неоднозначностей.

Что скажешь? 🙂

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🤔4
Лучшая фича в ASP.NET Core 10 на сегодняшний день

Server-Sent Events (SSE)
Простая альтернатива SignalR 👇

Если тебе нужно реализовать обновления в реальном времени в .NET-приложении — с сервера на клиент, есть несколько подходов:

• Polling — фронтенд регулярно запрашивает сервер на наличие новых данных
• SignalR — клиент подписывается на событие, сервер пушит его через WebSockets
• Server-Sent Events (уже доступны в превью .NET 10)

Постоянный опрос каждые несколько секунд может перегружать сервер и тратить трафик впустую, а WebSockets через SignalR — это избыточно для простых однонаправленных обновлений.

Server-Sent Events (SSE) — это легковесный и стабильный способ стримить данные от сервера к клиенту в одну сторону, без всей сложности двусторонних протоколов.

В этой статье покажут, как сделать "Live Stock Market" — обновления котировок в реальном времени на сервере и клиенте.

➡️Как работает SSE и зачем это нужно
➡️Реализация SSE-эндпойнта с помощью Minimal API
➡️Тестирование SSE-стрима через HTTP-запрос (HTTP Request file) в IDE
➡️Создание простого фронтенда для проверки SSE
➡️Ключевые отличия между SSE и SignalR (WebSockets)

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥12👍7
Я работаю с перечислениями каждый день.

И вот 4 лучших практики, которыми я пользуюсь, чтобы код в проекте оставался чистым:

🔸Явно указывать тип хранения

🔸Использовать атрибуты Description для отображаемых имён

🔸Хелпер-метод для получения значения из атрибута Description

🔸Безопасный парсинг через TryParse

А что бы ты добавил к этому списку?

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍5🤨1
Entity Framework 10 будет поддерживать именованные фильтры запросов

Да, это означает, что несколько фильтров теперь можно применять одновременно, начиная с EF 10+ — при условии, что они именованные. 👍

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🤯2
This media is not supported in your browser
VIEW IN TELEGRAM
Необходимый репозиторий с сотнями бесплатных API для практики программирования и создания проектов.

Обновляется еженедельно и разделён по темам 🔫

http://github.com/public-apis-dev/public-apis

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍165
Правильный способ построения асинхронных API в .NET

Большинство API работают по простому шаблону:

🔸Клиент отправляет запрос
🔸Сервер выполняет работу
🔸Сервер возвращает ответ

Такой подход отлично работает для быстрых операций — например, получения данных или простых обновлений.

А что насчёт длительных операций?

Речь о задачах вроде:

> обработки больших файлов
> генерации отчётов
> конвертации видео

Такие процессы могут занимать от нескольких минут до часов.

Вот как можно правильно строить асинхронные API: читать

Как сообщить клиенту, что его запрос обработан?

Есть два подхода:

🔸PULL — клиент опрашивает API, чтобы узнать статус

🔸PUSH — сервер сам уведомляет клиента (через WebSocket, email и т.д.)

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍2
𝟭𝟬 шагов для оптимизации запросов в EF Core

Даже сеньоры знают не все из них

Допустим, у тебя в проде тормозит EF Core-запрос.

Как бы ты исследовал и починил проблему?

Вот пошаговый подход: ( смотри иллюстрации )

А вот как начать работу с OpenTelemetry:
ссылка

Как Антон оптимизировал реальный запрос EF Core Query с 30 секунд до 30 миллисекунд:
ссылка

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍2
Я ждал эту фичу 4 года и вот наконец она появляется в EF Core 10

EF Core 10 приносит серьёзное улучшение в метод
ExecuteUpdateAsync

Раньше
, чтобы сделать динамическое обновление, нужно было вручную собирать сложные и склонные к ошибкам expression tree'и.

Например: ты хочешь обновить поле Views у блога и, при определённом условии, ещё и Name.
Раньше это значило писать довольно громоздкую логику вручную через expression API.

Теперь — всё стало намного проще:
↳ можно просто использовать обычную лямбду, внутри которой разрешены if и другие управляющие конструкции.

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

Ждёшь эту фичу так же, как и я?
Дай знать, что думаешь 👍

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥232