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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
⭐️ Пост-квантовая криптография в .NET 10

релизе .NET 10 Microsoft активно внедряет поддержку алгоритмов PQC, чтобы обеспечить будущее безопасных приложений уже сегодня.

Термин «пост» в PQC не означает, что квантовые компьютеры уже здесь. Это про алгоритмы, которые будут устойчивы к атакам со стороны мощных квантовых вычислительных систем, которые могут создать угрозу традиционным методам шифрования, таким как RSA и ECC.

В .NET 10 представлены четыре ключевых алгоритма PQC с поддержкой стандартов NIST и IETF:

• ML-KEM — алгоритм для захвата ключа, поддерживаемый NIST FIPS 203, класс MLKem в .NET

• ML-DSA — алгоритм цифровой подписи, поддерживаемый NIST FIPS 204, класс MLDsa в .NET

• SLH-DSA — алгоритм цифровой подписи, поддерживаемый NIST FIPS 205, класс SlhDsa в .NET

• Composite ML-DSA — композитный алгоритм цифровой подписи, поддерживаемый IETF Draft, класс CompositeMLDsa в .NET

Переход на PQC заставил переосмыслить архитектуру криптографических классов. Старый базовый класс AsymmetricAlgorithm не соответствовал современным требованиям, например, свойство KeySize стало менее уместным для новых алгоритмов.

🔹 Экспресс-курс «Математика для Data Science»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸Библиотека шарписта

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
6
🛠 Как создать путь к временному файлу в C#

В C# для работы с путями к файлам существует класс Path, который предлагает методы для объединения частей путей и получения системных директорий. Один из таких методов — GetTempPath(). Он возвращает путь к папке, предназначенной для временных файлов на текущей системе.

Другой полезный метод — Combine(). Он соединяет несколько частей пути, учитывая особенности слэшей в Windows, Linux и macOS. Вместо ручного склеивания строк и риска ошибок, Combine() гарантирует правильный формат.

Пример:
using System;
using System.IO;

class Program
{
static void Main()
{
// Получаем путь к системной временной папке и добавляем имя файла
var path = Path.Combine(Path.GetTempPath(), "report.csv");
Console.WriteLine("Путь к временному файлу: " + path);

// Здесь можно сохранить файл, открыть или выполнить другие операции
}
}


Использование Path.GetTempPath() и Path.Combine() — простой способ получить корректный путь к временному файлу без ошибок и с учётом особенностей операционных систем.

🔸 Основы IT для непрограммистов
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib

🐸Библиотека шарписта

#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🥱6
🎆 Скоро Новый Год

Если уже считаете дни до Нового Года «+» в чат, а пока вспомним прошедшую неделю.

Перестраиваем процесс сборки и доставки .NET

Проект Unified Build меняет подход к созданию и выпуску .NET, делая сборку быстрее, проще и более предсказуемой за счет объединения исходников и управления кодом в едином виртуальном репозитории.

Исходный код Zork I, II и III стал открытым

Microsoft открыла исходники легендарных текстовых игр Zork.

В блокноте на Windows 11 появятся таблицы

Windows Edge Light в PowerToys

Git 2.52

🔸 Математика для Data Science
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib

🐸Библиотека шарписта

#async_news
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Какой канал ваш любимый

Библиотека — не единственный канал по экосистеме C# (удивительно!).

💭 В комментариях можете поделиться своими авторскими каналами или ресурсами и источниками, которыми вдохновляетесь при разработке.

🐸Библиотека шарписта

#entry_point
Please open Telegram to view this post
VIEW IN TELEGRAM
✏️ Null-условное присваивание

В обыденной работе с объектами часто приходится проверять, не равен ли объект null, прежде чем присваивать значение его свойствам. Это приводит к громоздким конструкциям с множеством if. Теперь с null-условным присваиванием можно написать проще и понятнее.

Операторы условного доступа ?. и ?[] теперь поддерживают использование слева от оператора присваивания. Раньше для безопасного присваивания требовалось писать так:
if (customer is not null)
{
customer.Order = GetCurrentOrder();
}


С null-условным присваиванием можно упростить до одной строки:
customer?.Order = GetCurrentOrder();


Особенность в том, что правая часть вычисляется только если левая часть не равна null. Если customer равен null, метод GetCurrentOrder() вызван не будет. Это оптимизирует производительность и упрощает логику.

Также это работает с составными операторами присваивания: +=, -=, *=, но не поддерживается для инкремента и декремента.
customer?.Total += 100;
// Но нельзя так:
// customer?.Total++;


🐸Библиотека шарписта

#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🥱3
📊 А правда, что математика в Data Science не нужна?

Нет. Без неё вы не пройдёте собес и не поймёте, почему модель ведёт себя странно. Линал, матан и вероятности — это база, без которой работа в ML превращается в угадайку.

🔥 Эту базу можно собрать за 2 месяца на экспресс-курсе «Математика для Data Science».

👩‍🏫 Кто ведёт курс:

Мария Тихонова
PhD, руководитель исследовательского направления в SberAI, доцент ВШЭ.

→ Диана Миронидис
Преподаватель ВШЭ, автор научпоп-материалов по математике для блога МТС.

→ Ксения Кондаурова
Преподаватель преподаватель T-Банка, автор курсов ЦУ и Edutoria.

→ Маргарита Бурова
Академический руководитель программ по аналитике и ML, Wildberries & Russ.

🎁 Что сейчас доступно:

→ бесплатный тест, чтобы узнать свой уровень математики;
→ скидка 40% до 30 ноября;
→ если оплатить до конца ноября, курс «Базовая математика» в подарок.

👉 Пишите менеджеру, если хотите попасть в поток
😊 Модернизация .NET приложений с GitHub Copilot

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

С GitHub Copilot модернизация стала проще и быстрее — этот инструмент помогает автоматизировать всё главное, сокращая время работы с недель до нескольких часов.

Как начать модернизацию

1. Откройте проект или решение в Visual Studio

2. Запустите агент-сессию: через контекстное меню Modernize или в GitHub Copilot Chat используя команду @modernize

3. Выберите путь модернизации: обновление версии .NET, миграция в Azure или другие опции

4. Проведите оценку и спланируйте

• Copilot анализирует код и зависимости
• Задаёт вопросы для настройки плана под ваши цели
• Генерирует Markdown-план модернизации для согласования и редактирования

Как проходит обновление

• После утверждения плана Copilot обновляет файлы, корректирует импорты и синтаксис автоматически

• Циклично исправляет ошибки сборки и запускает тесты для обеспечения стабильности

• Каждый крупный шаг фиксируется в Git с возможностью отката

• В случае сложных проблем, Copilot останавливается и запрашивает ваш ввод

➡️ Источник

🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека шарписта

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚32
🧑‍💻 Новые возможности модификаторов доступа на авто-свойствах в F# 10

До F# 10, чтобы создать свойство с публичным геттером и приватным сеттером, приходилось писать много кода с явным объявлением полей и методов. Теперь это стало проще — можно задавать разные уровни доступа прямо на авто-свойствах.

Раньше подобное требовало большого количества шаблонного кода:
type Ledger() =
[<DefaultValue>] val mutable private _Balance: decimal
member this.Balance with public get() = this._Balance and private set v = this._Balance <- v


В F# 10 достаточно написать:
type Ledger() =
member val Balance = 0m with public get, private set


Особенности

• Модификатор доступа можно назначить либо на всё свойство, либо отдельно на геттер или сеттер.

• В сигнатурах .fsi это пока не поддерживается, ограничения остаются

Теперь можно писать меньше шаблонного кода, сохраняя чёткое разграничение прав собственности.

🔹 ML для старта в Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека шарписта

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱43👾1
✏️ Сокращаем код

Collection expressions — удобный синтаксис для создания и инициализации коллекций и массивов с помощью квадратных скобок и элементов, разделённых запятыми. Можно использовать spread-элементы (..) для вставки содержимого других коллекций внутрь новой.

Пример:
int[] odds = [1, 3, 5, 7];

string[] vowels = ["a", "e", "i", "o", "u"];
string[] consonants = ["b", "c", "d", "f"];
string[] alphabet = [..vowels, ..consonants, "y"];


С помощью выражений коллекций можно легко создавать массивы, списки, Span и другие коллекторные типы. Появились они в C# 12.

🔹 Экспресс-курс «Математика для Data Science»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸Библиотека шарписта

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🤨 Как искусственный интеллект помогает писать тесты

Создание качественных модульных тестов — важный, но утомительный и затратный процесс. GitHub Copilot Testing для .NET упрощает эту задачу, автоматически генерируя, собирая и выполняя тесты прямо в вашем рабочем процессе.

Как начать использовать

1. Установите последнюю версию Visual Studio 2026 Insiders и получите лицензию GitHub Copilot

2. Включите функцию GitHub Copilot Testing через настройки (Tools > Options > GitHub > Copilot > Testing

3. Откройте проект или решение на C# и убедитесь, что оно успешно собирается

4. В чате Copilot напишите команду @Test #target, где #target — имя метода, класса, файла, проекта, решения или #changes для git diff

5. Copilot автоматически проанализирует код, создаст проект с тестами (если его нет), сгенерирует, соберёт и выполнит тесты.

Результаты отображаются в Test Explorer и в окне чата, где вы увидите статистику по числу тестов, изменениям в покрытии кода и рекомендации по устранению «тестируемых» пробелов.

🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸 Библиотека шарписта

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😁1
Не кодь — вайбкодь. Бесплатно 🚀

Сбер представил бесплатный агентный режим GigaCode — нового цифровой разработчика, который берет на себя рутину, чтобы вы могли сосредоточиться на крутых задачах!

Что умеет GigaCode в агентном режиме?

Сам находит и открывает нужные файлы

Вносит изменения в код, запускает тесты, собирает проекты и оформляет коммиты в Git

Работает в вашей любимой среде: JetBrains IDE, GigaIDE Desktop, а скоро еще и в VS Code

Плюс, в GigaCode появилась новая модель автодополнения кода — GigaCode Inline 4.0. Она мгновенно предлагает нужные фрагменты кода для Python, Java, JavaScript и других языков. Подсказки стали еще точнее, а работа с контекстом — еще лучше.

🖱 Хотите ускорить разработку? Обновленный GigaCode уже доступен на GitVerse.

Начать вайбкодить — по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
😢9🥱9