Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.25K photos
35 videos
85 files
4.41K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🎭 Dev Memes: 1 апреля, а баги всё те же

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

👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13👍31🔥1🤔1
🛠 Инструмент недели: MoreLINQ

MoreLINQ — это расширение LINQ для .NET, которое добавляет десятки полезных методов, отсутствующих в стандартной библиотеке.

Что внутри:

• DistinctBy, MaxBy, MinBy — упрощают выборку уникальных и экстремальных значений

• Batch, Buffer — удобно работать с кусками коллекций

• Scan — похоже на Aggregate, но возвращает все промежуточные состояния

• Lag, Lead — доступ к предыдущим и последующим элементам последовательности

• Shuffle, Permutations, Subsets — алгоритмы для сложных операций с наборами

➡️ Репозиторий инструмента

💬 Делитесь в комментариях каких методов не хватает в LINQ👇

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💻🧩 Когда HR требует LeetCode Hard: почему компании стреляют себе в ногу

Когда твоя компания не Google, но хочет отбирать кандидатов как Google — получается дорогой фейл и текучка талантов. Разбираемся в трендах IT-рекрутинга, которые выглядят как выстрел в ногу.

➡️ Читать статью

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤖 Промпт дня: техническое интервью по C#

Представьте, что у вас есть безлимитное время опытного C# разработчика. Проявите себя в условиях «реального» собеседования и получите ценную обратную связь, чтобы понять, какие аспекты вашего опыта стоит прокачать.

Для этого используем вот такой промпт:
"You are a seasoned C# developer and interviewer with 15+ years of experience. Your task is to conduct a mock technical interview for a candidate applying for a mid-level C# developer position. The interview will focus on core C# concepts, object-oriented programming principles, and common .NET framework features.

Your approach will be to ask one question at a time, wait for the candidate's response, provide constructive feedback on their answer (highlighting strengths and areas for improvement), and then proceed to the next question. The goal is to simulate a real-world interview experience and help the candidate identify areas where they need to improve their knowledge.

Here's the format you will follow for each question:

---

Question:
$interview_question

[Pause for Candidate's Response]

Feedback:
* Strengths: $positive_feedback_on_answer
* Areas for Improvement: $constructive_criticism_and_suggestions

Next Question:
$next_interview_question

---

Begin the mock interview"


🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👏7😁3
🔥 Программисты, нужен ваш совет!

Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!

Какой ноут спасает вас в кодинге и почему?

Расскажите все:

• Что за зверь (модель, начинка)
• Где жмет и где радует в ежедневной работе
• На какие фишки смотреть при выборе
• Как вам с ним живется

Топовые советы попадут в нашу статью!

💬 Делитесь в комментах 👇 Сделаем годный гайд, который реально поможет коллегам!

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8😁3🥱3💯1
⚙️ Как использовать 2FA в .NET приложении

Сейчас покажем, как настроить двухфакторную аутентификацию (2FA) в вашем .NET приложении с использованием библиотеки .NET Identity.

1️⃣ Установка и настройка .NET Identity

• Добавьте необходимые пакеты NuGet:
Install-Package Microsoft.AspNetCore.Identity.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools


• Настройте контекст данных и Identity:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();

services.AddControllersWithViews();
}


2️⃣ Включение 2FA для пользователя

Теперь, когда Identity настроен, мы можем включить двухфакторную аутентификацию:
var user = await _userManager.GetUserAsync(User);
var tokenProvider = _userManager.GetTwoFactorAuthenticationTokenProvider(user);
var token = await _userManager.GenerateTwoFactorTokenAsync(user, tokenProvider);

// Отправить токен пользователю через email или SMS


3️⃣ Проверка введённого токена

После того как пользователь получит код на своем устройстве (например, через Google Authenticator), он должен ввести его на сайте. Проверка кода выглядит следующим образом:
var result = await _signInManager.TwoFactorSignInAsync("Authenticator", tokenInput, rememberMe, false);
if (result.Succeeded)
{
// Успешный вход
}
else
{
// Ошибка
}


💬 Пишите, где сталкивались с 2FA👇 Админ, к примеру, каждый раз тянется к телефону, когда логинится в GitHub

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥7🥰2❤‍🔥1🤩1
👨‍💻 LINQ — магия C# или чёрная дыра производительности

Когда впервые видишь LINQ — это как будто дали волшебную палочку:
var result = users.Where(u => u.IsActive).OrderBy(u => u.Name).ToList();

Но через месяц в проде: «А почему этот запрос делает 9 подзапросов, 3 джойна, и тянет всю таблицу в память, чтобы потом отфильтровать в приложении?..»

💬 А как вы считаете? LINQ это спасение от рутины или проблема? Пишите в комментарии 👇

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱26👍61
🛠 LINQPad — инструмент для быстрых экспериментов

LINQPad — это интерактивная среда для запуска C#-кода без создания проектов, солюшенов и прочей бюрократии.

Почему это мастхэв:

Быстрая проверка идей — пиши и запускай на лету

Dump() — метод, которого не хватало

Даёт мгновенный вывод структуры объекта, с деревьями, списками, полями и цветами. Идеален для отладки.

Поддержка EF Core, SQL и даже NoSQL

Поддержка NuGet прямо в редакторе

Пример:
var numbers = Enumerable.Range(1, 20);
var evens = numbers.Where(x => x % 2 == 0);

evens.Dump("Чётные числа");


Набросали код и проверили с помощью Dump() что получилось.

➡️ Попробовать LINQPad

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥71
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😺🐙🧼 Сам себе GitHub: как работать с чистым Git-репозиторием

Git — мощная система контроля версий, которую обычно используют через платформы вроде GitHub и GitLab. Однако Git сам по себе не требует веб-интерфейсов и облачных сервисов. Многие разработчики предпочитают работать с чистым Git-репозиторием, размещенным на собственном сервере.

➡️ В этой статье мы рассмотрим, почему это удобно, и как эффективно отправлять патчи в проекты, использующие этот подход.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💯42
💬 Сколько у вас решено задач на литкоде

🐸Библиотека шарписта #развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
😁264
🎲 Разминка для мозгов

Шесть слов, связанных с ключевыми понятиями платформы. Справитесь без подсказок?

1 — Тип, предназначенный для создания неизменяемых объектов с авто-генерацией Equals и ToString.

2 — Современный компилятор C# с открытым API для анализа и генерации кода.

3 — Язык запросов, встроенный в C# для работы с коллекциями и источниками данных.

4 — Класс, который представляет таблицу в базе данных

5 — Структура, объединяющая фиксированное количество элементов разных типов.

6 — Базовая единица параллельного исполнения в многопоточном программировании .NET.

💬 Пишите ответы под спойлер в комментарии 👇

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112🔥1
📰 Самое важное за неделю

Ключевые события и тренды недели, которые могут повлиять на ваши решения, стратегию или просто расширить картину мира.

​AutoMapper и MediatR переходят на коммерческую модель.

MediatR v12.5.0
Вышла новая версия MediatR, в которой добавили поддержку тайм-аутов для обработчиков запросов, улучшили регистрацию открытых поведений, реализовали полную передачу CancellationToken по цепочке вызовов и обновили инфраструктуру проекта.

Windows Community Toolkit v8.2
Microsoft выпустила новую версию Windows Community Toolkit , предлагая разработчикам WinUI улучшенную поддержку Native AOT, совместимость с UWP для .NET 9 и новый SwitchConverter.

Поучаствуйте в нашей подборке ноутов

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
1😢1
✍🏻 Чем отличаются интерфейсы от абстрактных классов в C#?

Интерфейсы и абстрактные классы в C# являются механизмами для реализации полиморфизма и обеспечения повторного использования кода. Вот основные отличия между ними:

1. Отношение к классам-наследникам: Абстрактный класс может иметь как абстрактные, так и конкретные (реализованные) методы. Интерфейс же предоставляет только определения методов. Класс может наследоваться только от одного абстрактного класса, но может реализовывать несколько интерфейсов.

2. Реализация: Абстрактным классам разрешено иметь переменные экземпляра и иметь реализацию методов. Интерфейсы могут иметь только методы (и свойства) без реализации, только сигнатуры. Класс, реализующий интерфейс, должен предоставить реализацию всех методов и свойств интерфейса.

3. Использование: Абстрактные классы применяются, когда некоторые базовые методы и свойства должны быть доступны и переопределены в классах-наследниках. Интерфейсы используются для создания контракта, который должны выполнить классы, обеспечивая использование полиморфизма.

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


Библиотека собеса по С#
🥱31👍7😢4
Что выведет код?

👾 — Мусорное значение
👍 — Compile time error
🥰 — Программа распечатает значение по адресу 65535
⚡️ — 65535

Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
98🥰16😢5🌚5👾5