TGViewer
Channel Public Channel
Библиотека шарписта | C#, F#, .NET, ASP.NET

Библиотека шарписта | C#, F#, .NET, ASP.NET

@csharpproglib

Все самое полезное для C#-разработчика в одном канале.

Наши курсы: https://clc.to/y3LDtw

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Subscribers
21.6K
Photos
2.9K
Videos
46
Links
5.4K

Showing posts older than #5670 · Back to latest

Older Posts 20 shown
Post #5669 5.91K
↔️ Миграция C на F

Нашли промт, который превратит нейросеть в разработчика и на C#, и на F#, чтобы помочь вам с миграцией кодовой базы:

As a C# and F# specialist, your task is to guide the migration from C# to F# for a specific project or codebase. Your goal is to provide a comprehensive plan that outlines the steps, considerations, and potential benefits of this transition.

Here is the format you will use to present your recommendations:

---

## Current C# Codebase
$current_codebase_description

## Reasons for Migrating to F#
$reasons_for_migration

## Migration Plan
1. $migration_step_1
2. $migration_step_2
3. $migration_step_3
4. $migration_step_4
5. $migration_step_5

## Potential Challenges and Mitigation Strategies
$potential_challenges
$mitigation_strategies

## Expected Benefits of F#
$expected_benefits

---

Please provide your detailed migration plan and recommendations for transitioning the codebase from C# to F#.


Вы когда-нибудь переписывали функционал с одного языка на другой? Делитесь своими впечатлениями в комментариях ⬇️

🐸Библиотека шарписта #буст
  • 🌚 7
  • 👍 3
  • 👾 3
  • ❤ 1
  • 😁 1
Post #5668 6.34K
📱 GitHub в стиле TikTok

GitTok — это новый способ исследовать репозитории GitHub.

Вместо привычного поиска и просмотра списков, пользователи просто свайпают через репозитории, как в TikTok, мгновенно получая основную информацию: описание, количество звёзд и недавнюю активность.

➡️ Полистать репозитории

🐸Библиотека шарписта
  • 😁 33
  • 👍 3
  • 😢 3
  • 🥱 3
Post #5667 6.13K
Post #5666 5.56K
🔄 .NET Aspire 9.1: новые возможности

Microsoft продолжает улучшать экосистему .NET, и в последнем обновлении .NET Aspire 9.1 появилось немало полезных фич. Давайте посмотрим что нового.

Ключевые обновления

1️⃣ Отношения ресурсов — теперь на панели управления можно видеть иерархию ресурсов, где «родительские» и «дочерние» ресурсы отображаются вложенно.

2️⃣ Переопределение локализации — появилась возможность изменять язык панели управления независимо от настроек браузера, что обеспечивает большую гибкость для пользователей из разных регионов.​

3️⃣ Фильтрация ресурсов — на странице ресурсов добавлены фильтры по типу ресурса, состоянию и состоянию здоровья, что облегчает навигацию и управление.​

4️⃣ Расширенные детали ресурсов — при выборе ресурса в панели управления теперь отображаются дополнительные данные, включая ссылки, обратные ссылки и тома с их типами монтирования.​

5️⃣ Поддержка CORS для локальных доменов — введена возможность настройки переменной окружения DOTNET_DASHBOARD_CORS_ALLOWED_ORIGINS, позволяющая панели управления получать телеметрию от других браузерных приложений, работающих на пользовательских локальных доменах.​

6️⃣ Гибкость работы с консольными логами — теперь можно загружать логи для анализа в сторонних диагностических инструментах, а также очищать их прямо с панели управления.

📎 Подробнее в блоге компании

🐸Библиотека шарписта
Post #5665 5.7K
⚙️ Разделяй и властвуй в архитектуре приложений

Command Query Responsibility Segregation (CQRS) — это подход, при котором чтение и изменение данных обрабатываются разными моделями.

🔹 Команды — изменяют данные: создание, обновление, удаление.
🔹 Запросы — отвечают за быстрое чтение данных.

CQRS отлично подходит для нагруженных систем, микросервисов и event-driven архитектуры.

➡️ Читать подробности про CQRS

🐸Библиотека шарписта
  • 🌚 3
  • 👾 3
  • ❤ 1
  • 👍 1
Post #5664 5.75K
⚡️ .NET 10 Preview 1

Команда .NET объявляет о выпуске первой предварительной версии .NET 10. Этот релиз включает значительные улучшения библиотеки, рантайма, SDK и другое. Давайте рассмотрим ключевые нововведения и улучшения.

Основные Улучшения:

➖ Библиотеки

Поиск сертификатов по отпечаткам, отличным от SHA-1.
Поддержка PEM-кодированных данных в ASCII/UTF-8.
Новые методы для работы с датами и строками, включая числовые порядки для сравнения строк.
Улучшения производительности и памяти в ZipArchive.

➖ Рантайм:

Девиртуализация методов интерфейса массива.
Аллокация стека для массивов значимых типов.
Поддержка AVX10.2.

➖ SDK:

• Обрезание ссылок на пакеты, предоставляемые фреймворком.

➖ C#:

• Поддержка nameof в несвязанных обобщениях.
• Неявные преобразования span.
• Поля, поддерживающие свойства.
• Модификаторы для простых лямбда-параметров.

➖ F#:

• Обновления языка, стандартной библиотеки и компилятора.

➖ Visual Basic:

• Поддержка ограничений unmanaged.
• Приоритет разрешения перегрузки.

➖ ASP.NET & Blazor:

• Поддержка OpenAPI 3.1.
• Генерация OpenAPI документов в формате YAML.
• Улучшения для интеграционного тестирования приложений.

➖ .NET MAUI:

• Улучшения качества и производительности, включая усовершенствования CollectionView для iOS и Mac Catalyst.

➖ Entity Framework Core:

• Поддержка оператора LeftJoin.
• Расширение метода ExecuteUpdateAsync.

➖ Контейнерны:

• Использование Ubuntu 24.04 и Debian 13 «Trixie» для контейнерных образов.

Оставайтесь с нами, обязательно рассмотрим самое интересное поближе.

➡️ Подробности превью

🐸Библиотека шарписта
  • 👍 12
  • ❤ 6
  • 🔥 4
Post #5663 5.74K
🤔 Основы математики в Machine Learning / Deep Learning

🗓 6 марта приглашаем вас на прямой эфир, где мы подробно разберем ряд Тейлора, собственные векторы и другие ключевые понятия в ML.
(ссылка)

🌟 Спикер: *Мария Горденко* – Старший преподаватель ФКН НИУ ВШЭ, НИТУ МИСИС, аспирант департамента анализа данных и искусственного интеллекта ФКН НИУ ВШЭ, а также преподаватель на курсе Алгоритмы и структуры данных в proglib academy.


Место работы: Инженер-программист, ведущий эксперт НИУ ВШЭ, цифровой ассистент и цифровой консультант НИУ ВШЭ.


😮 На вебинаре вы узнаете:

🔵 Теорию вероятностей: обсудим случайные величины, вероятность, математическое ожидание и дисперсию.

🔵 Линейную алгебру: изучим векторы, матрицы, собственные векторы и собственные значения.

🔵 Математический анализ: разберем производные и разложение функций в ряд Тейлора.

🔵 Практику: применим полученные знания на реальных кейсах из области Machine Learning и Deep Learning.

🎯 Почему это важно?
Понимание математических основ помогает глубже разобраться в работающих под капотом алгоритмах ML/DL и эффективно применять их на практике.

👉 Присоединяйтесь к нам и совершенствуйте свои навыки в машинном обучении!

📌 Регистрация по ссылке: https://proglib.io/w/96569306
  • ❤ 2
  • 😁 2
Post #5662 5.23K

Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin

🧠 Твоя БД скоро станет умнее тебя: 5 трендов open-source баз данных 2025

БД перестают быть просто хранилищем — теперь они оптимизируют запросы, автоматически анализируют данные и даже используют AI для прогнозов.
Какие фичи перевернут мир open-source БД в 2025? Узнайте в статье👇

🫢 Прочитать статью

🐸Библиотека devops'a
  • 😁 9
  • 👍 1
Post #5661 22.8K
🎮🚀 8 простых способов улучшить производительность вашей игры в Unity

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

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

🤩 Прочитать статью

🐸Библиотека шарписта
  • 👍 4
  • 🥱 4
  • 😁 1
Post #5660 6.06K
🔄 AutoMapper 14.0.0 – что нового

Недавно вышла новая версия AutoMapper. Она принесла важные улучшения для .NET-разработчиков, которые мы сейчас разберём.

Ключевые изменения:

✅ Поддержка .NET 8 — теперь AutoMapper полностью совместим с последней LTS-версией .NET.

✅ Исправление полиморфного маппинга — устранена проблема с явными/неявными отображениями наследуемых типов.

✅ Улучшенная валидация конфигурации — теперь ошибки собираются и выводятся как единое исключение, что упрощает отладку.

✅ Обновление соглашений об именовании — профиль маппинга теперь использует глобальные настройки.

✅ Оптимизация производительности — исправлены мелкие баги, улучшена блокировка потоков.

➡️ Подробности и код

🐸Библиотека шарписта
  • 👍 12
  • 🤔 5
Post #5659 5.41K
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
  • 🥱 2
Post #5658 5.55K
🧑‍💻 Не строка и не число

В словаре в C# ключами обычно служат строки или числа. Но что, если мы расскажем как использовать любые другие структуры.

Чтобы использовать свой класс как ключ, необходимо правильно переопределить два метода:

✅ Equals() – определяет, когда два объекта считаются равными.

✅ GetHashCode() – вычисляет хеш-код для корректной работы Dictionary.

Без этих переопределений словарь не сможет корректно сравнивать объекты.

➡️ Посмотреть реализацию

🐸Библиотека шарписта
  • 😁 8
  • 👍 3
  • 🥱 2
Post #5657 4.69K

Forwarded from Proglib.academy | IT-курсы

📊 Почему увольнять программистов ради ИИ — путь к провалу

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

➡️ Что внутри статьи

▪️ Почему новые поколения программистов рискуют потерять ключевые навыки.

▪️ Как компании, заменившие инженеров ИИ, столкнутся с серьезными проблемами.

▪️ Почему опытные разработчики станут супердорогими и востребованными.

▪️ К чему приведет полная ставка на искусственный интеллект в IT.

🔵 Подтяните свои знания о машинном обучении вместе с нашим курсом «Базовые модели ML и приложения»

🔗 Читайте статью
  • 👍 13
  • 👾 1
Post #5654 5.34K
🆚 Разница API и SDK

Если вы когда-либо работали с интеграциями, то наверняка сталкивались с терминами API и SDK. Но что они означают и когда использовать каждый из них.

📌 API (Application Programming Interface) — это набор методов для взаимодействия с внешними сервисами и приложениями.

📌 SDK (Software Development Kit) — это полный набор инструментов, включающий API, документацию, библиотеки и утилиты для разработки.

➡️ Подробнее в видео

🐸Библиотека шарписта
  • 👍 7
  • ❤ 1
Post #5652 4.86K
🛠 Техника для решения задач

Бэктрекинг (Backtracking) — это алгоритмическая техника поиска, которая перебирает возможные решения рекурсивно, откатываясь назад, если текущий путь не ведёт к успеху.

➖ Как работает бэктрекинг

1. Выбираем следующий шаг – пробуем одно из возможных решений.

2. Проверяем ограничение – если путь невозможен, откатываемся назад.

3. Продолжаем поиск – если решение найдено, фиксируем его и ищем другие варианты.

Пример кода — поиск всех перестановок строки
class Program
{
static void Permute(char[] arr, int l, int r)
{
if (l == r)
{
Console.WriteLine(new string(arr));
}
else
{
for (int i = l; i <= r; i++)
{
(arr[l], arr[i]) = (arr[i], arr[l]); // Обмен символами
Permute(arr, l + 1, r);
(arr[l], arr[i]) = (arr[i], arr[l]); // Откат назад
}
}
}

static void Main()
{
string str = "ABC";
Permute(str.ToCharArray(), 0, str.Length - 1);
}
}


➖ Где используется

• Генерация перестановок и комбинаций – подбор паролей, составление расписаний.

• Задача N ферзей – расстановка фигур без угрозы друг другу.

• Поиск пути в лабиринте – навигация в сложных структурах.

• Разбор выражений и парсинг – обработка кода и регулярных выражений.

🤔 Использовали ли вы бэктрекинг в реальных проектах? Делитесь опытом в комментариях! 👇

🐸Библиотека шарписта
  • ❤ 5
  • 👍 4
  • 🔥 2
Post #5651 5.19K
Совет на 2025-й — будьте осторожнее с выбором работы.

IT-рынок штормит: массовые сокращения, заморозка найма, снижение зарплат. В такое время особенно важно отличать стоящие офферы от проходных.

Знакомо? Открываешь вакансию, а там: «Ищем middle-разработчика с опытом 10 лет, знанием 15 языков и готовностью работать за печеньки. Офис в Челябинске, релокация за ваш счет» 🤦‍♂️

Чтобы не тратить время на сотни сомнительных предложений, подпишитесь на IT Job Hub. Там мы отфильтровываем весь мусор и публикуем только избранные вакансии в стабильных компаниях:

— Зарплаты на уровне рынка, а не на уровне голодного студента
— Никаких «мы молодая и дружная семья» — только адекватные условия
— Проверенные работодатели, а не стартапы из сомнительных сфер

Вакансии удобно разбиты по тегам: #python #java #go #data #devops и по другим направлениям. Без воды и лишнего спама — только проверенные вакансии в знакомых компаниях.

Подписывайтесь, если не хотите упустить работу мечты → @proglib_jobs
  • 🥱 8
  • 👍 1
  • 😁 1
Post #5650 5.24K
🚀 Когда стоит отказаться от DI через конструктор

Внедрение зависимостей через конструктор — стандартная практика, но не всегда лучшая. Разберём, когда не стоит её использовать.

🔹 Singleton со Scoped/Transient зависимостями — может вызвать утечки памяти. Решение: фабрики или внедрение через методы.

🔹 Слишком длинные конструкторы — усложняют поддержку. Решение: рефакторинг или внедрение через свойства.

🔹 Динамические зависимости — на этапе компиляции неизвестны. Решение: сервис-локаторы или фабрики.

💡 DI через конструктор хорош, но не универсален. Выбирайте подход в зависимости от контекста

➡️ Подробнее про решение проблем

🐸Библиотека шарписта
  • 😁 12
  • 👍 5
  • 🤔 2
Post #5649 5.29K
📸 Создание сканера штрих-кодов в .NET MAUI для Windows Desktop

Мы нашли проект, в котором создано кроссплатформенное приложение для Windows, позволяющее считывать коды прямо с камеры, без необходимости в дополнительных устройствах.

➖ Что потребовалось для разработки

✅ .NET MAUI — кроссплатформенный фреймворк для разработки UI-приложений.

✅Dynamsoft Barcode Reader — SDK для распознавания штрих-кодов.

✅Windows Media API — работа с камерой и захват изображений.

✅SkiaSharp — библиотека для графического отображения результатов.

➖ Как работает

1. Получение изображения с камеры с помощью Windows Media API.

2.Обработка кадра и передача его в Dynamsoft Barcode Reader.

3. Распознавание штрих-кода и отображение результата.

4. Вывод данных с графическим выделением кода через SkiaSharp.

➡️ Посмотреть реализацию

🐸Библиотека шарписта
  • 👍 12
  • 😁 3
Post #5648 5.47K
🛠 Используем IOptions с record

В .NET 9 теперь можно использовать record-тип вместо классов для IOptions<T>.

В отличие от классов, record в IOptions<T> в .NET сравнивается по значению. Он неизменяем, что защищает настройки от случайных изменений, а его лаконичный синтаксис делает код более чистым и поддерживаемым.

Теперь можно определять конфигурационные записи, загружать их из appsettings.json и внедрять в сервисы через IOptions<T>. Кроме того, IOptionsSnapshot<T> и IOptionsMonitor<T> позволяют динамически обновлять настройки без перезапуска приложения.

➡️ Подробности и примеры

🐸Библиотека шарписта
  • 👍 15
  • 😢 1
Post #5646 4.54K
🌳 Бинарное дерево поиска (BST)

BST — это бинарное дерево, где:

• Значение в левой ветви меньше значения в узле.

• Значение в правой ветви больше значения в узле.

Такое свойство обеспечивает эффективный поиск, вставку и удаление — в среднем за O(log n).

Пример реализации:
class Node
{
public int Value;
public Node Left;
public Node Right;

public Node(int value)
{
Value = value;
Left = Right = null;
}

// Вставка нового значения в дерево
public void Insert(int value)
{
if (value < Value)
{
if (Left == null)
Left = new Node(value);
else
Left.Insert(value);
}
else if (value > Value)
{
if (Right == null)
Right = new Node(value);
else
Right.Insert(value);
}
}

// Поиск значения в дереве
public Node Search(int value)
{
if (value == Value)
return this;
if (value < Value && Left != null)
return Left.Search(value);
if (value > Value && Right != null)
return Right.Search(value);
return null;
}

// Обход дерева в порядке (LNR - InOrder)
public void InOrderTraversal()
{
if (Left != null)
Left.InOrderTraversal();

Console.Write(Value + " ");

if (Right != null)
Right.InOrderTraversal();
}
}


Как это работает?

1️⃣ Вставка:

• Если значение меньше текущего узла, идём в левое поддерево.

• Если больше — в правое.

• Если узел пуст, создаём новый.

2️⃣ Поиск:

• Сравниваем искомое значение с текущим.

• Меньше — идём влево, больше — вправо, равное — нашли.

3️⃣ Обход:

• In-order обход (LNR) обходит узлы в отсортированном порядке.

💬 А вы уже реализовали BST? Делитесь опытом и вопросами в комментариях!

🐸Библиотека шарписта
  • 👍 5
  • 👏 2
  • ❤ 1
  • 🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →