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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🎤 Как не облажаться с докладом на IT-конференции

Готовитесь к докладу на IT-конференции? Не хотите оказаться в роли «того самого» докладчика, на которого все жалуются в кулуарах? Узнайте, как не облажаться и сделать свой доклад полезным и запоминающимся.

🔗 Читать статью
🔗 Зеркало
🔥 Базовые понятия, юзкейсы и принцип работы под капотом: введение в primary constructors (C# 12) от Эндрю Лока

Эндрю обсудил их происхождение из типа record и показал способ значительного сокращения дублирования в классах + два разных подхода, которые вы можете использовать: инициализацию полей и свойств или implicit capture. И многое другое👇

🔗 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⚡️ .NET 9 (preview 3) добавляет endpoint с метаданными для страницы developer exception

Новые метаданные появляются на вкладке Routing вместе с другой информацией о маршрутизации. Эта информация упрощает отладку ошибок ASP.NET во время разработки.
👍24👏1
«.NET 8 и улучшения в контейнерах» — доклад C#-разработчика Валерия Никитина (DexSys) про улучшения в контейнерах, которые появились с выходом .NET 8 в релиз.

📺 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🗺️ Дорожная карта по проектированию API

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

👉 Скачать оригинал (PDF-файл в комментариях)
👍15🥰2🥱21
🔄 Миграциии в Entity Framework Core: гайд для C#-разработчика от Milan Jovanovic

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

⚡️ EF Migrations позволяет определять изменения схемы базы данных в коде. Например, добавление столбца или переименование таблицы. Инструмент отслеживает каждое изменение в модели данных, что позволяет уверенно просматривать, тестировать и применять изменения.

👉 Читать гайд
👍141🤩1
⚡️Proglib запускает канал про ИИ для генерации звука

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

⭐️генерация голоса и музыки
⭐️замена и перевод речи
⭐️распознавание звуков

👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
41
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Анонс .NET MAUI Community Tookit v8

Команда .NET MAUI Community Toolkit представила восьмую версию набора инструментов. В этом обновлении появились долгожданная поддержка TouchBehavior (ранее известного как TouchEffect`), изменения в работе `Snackbar на Windows, а также новые возможности, включая изменение цвета навигационной панели на Android.

Если вы использовали Xamarin Community Toolkit в своих приложениях Xamarin.Forms, вы, вероятно, знакомы с TouchEffect. В .NET MAUI эффекты были устаревшими, и их следовало заменить на PlatformBehaviors. Именно это и было сделано для реализации данной функциональности в .NET MAUI.

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

👉 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁4🔥1
💬 А как в вашем проекте накатываются изменения в основную ветку?

👍 — создаю pull request и жду его одобрения перед мержем
🔥 — мержу изменения напрямую в основную ветку
❤️ — прохожу через код-ревью перед мержем
🤔 — использую автоматическую систему CI/CD для мержа после прохождения всех тестов
👾 — свой вариант (напишу в комментариях)

#холивар
👍7632🔥24🤔11👾1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🔥 А вы уже смотрели Microsoft Build 2024? Вот только некоторые анонсы, о которых известно на текущий момент:

☑️ Искусственный интеллект: введение новых инструментов и скриптов для создания приложений с поддержкой ИИ, включая интеграцию с облачными сервисами и библиотеками, такими как OpenAI и Qdrant.

☑️ .NET Aspire: новый стэк для создания cloud-native распределенных приложений, который уже доступен для использования.

☑️ C# 13: улучшения существующих возможностей C# и повышение производительности — params, interfaces, extension types.

☑️ Обновления библиотек и фреймворков .NET, включая ASP.NET Core, Blazor, .NET MAUI и другие.

☑️ Интеграция с ИИ и мониторинг: инструменты для работы приложений, использующих большие языковые модели (LLM).

☑️ Облачные технологии: улучшения для разработки cloud-native приложений, включая уменьшение размера контейнеров и использование .NET Aspire для упрощения разработки и деплоя.

☑️ Кроссплатформенная разработка: развитие .NET MAUI для создания приложений на iOS, Android, Mac и Windows.

P. S. Кстати, на Ubuntu 24.04 вы можете сделать вот так:


sudo apt update
sudo apt install dotnet8


👉 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
👩‍💻 Атрибут StringSyntax в действии

Атрибут StringSyntax (.NET 7+) позволяет нам сообщить Visual Studio, с каким типом строки (например, регулярное выражение, формат datetime, JSON и т. д.) мы работаем, чтобы получить корректный IntelliSense и подсветку синтаксиса.

#dotnet #tip #visualstudio by Dave Callan
Please open Telegram to view this post
VIEW IN TELEGRAM
39👍281
🧰 MemoryCache, DistributedCache и HybridCache: краткий обзор от Steven Giesel новых вич, появившихся в .NET 9 Preview 4

📌 MemoryCache — структура данных для кеширования объектов в памяти.

• Простой пример:

public async Task<IActionResult> GetBlogPost(int id)
{
var cacheKey = $"BlogPost_{id}";
if (!_memoryCache.TryGetValue(cacheKey, out BlogPost blogPost))
{
blogPost = await _blogRepository.GetBlogPostByIdAsync(id);
_memoryCache.Set(cacheKey, blogPost);
}
return Ok(blogPost);
}


• Пример упрощенного использования MemoryCache:

public async Task<IActionResult> GetBlogPost(int id)
{
var cacheKey = $"BlogPost_{id}";
var blogPost = await _memoryCache.GetOrCreateAsync(cacheKey, async entry =>
{
return await _blogRepository.GetBlogPostByIdAsync(id);
});
return Ok(blogPost);
}


📌 IDistributedCache используется для кеширования между несколькими сервисами и/или для сохранения данных на длительный срок (переживание перезагрузок сервера).

• Пример регистрации Redis в качестве провайдера кеша:

builder.Services.AddStackExchangeRedisCache(options => { ... });


• Пример регистрации SQL Server в качестве провайдера кеша:

builder.Services.AddDistributedSqlServerCache(options =>
{
options.ConnectionString = builder.Configuration.GetConnectionString("DistCache_ConnectionString");
options.SchemaName = "dbo";
options.TableName = "TestCache";
});


• Пример использования IDistributedCache:

public class SomeService(IDistributedCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync(string name, int id, CancellationToken token = default)
{
var key = $"someinfo:{name}:{id}";
var bytes = await cache.GetAsync(key, token);
SomeInformation info;
if (bytes is null)
{
info = await SomeExpensiveOperationAsync(name, id, token);
bytes = SomeSerializer.Serialize(info);
await cache.SetAsync(key, bytes, token);
}
else
{
info = SomeSerializer.Deserialize<SomeInformation>(bytes);
}
return info;
}

private async Task<SomeInformation> SomeExpensiveOperationAsync(string name, int id, CancellationToken token = default)
{
// ... Реализация
}
}


📌 HybridCache совмещает функции MemoryCache и DistributedCache. Простой пример использования:

public class SomeService(HybridCache cache)
{
public async Task<SomeInformation> GetSomeInformationAsync(string name, int id, CancellationToken token = default)
{
return await cache.GetOrCreateAsync(
$"someinfo:{name}:{id}",
async cancel => await SomeExpensiveOperationAsync(name, id, cancel),
token: token
);
}
}


HybridCache поддерживает явное удаление по ключу, настройку сериализации и позволяет избежать некоторых проблем IDistributedCache.
👍182🤔1
☝️Схема типичного стартапа ☝️

💬 Есть здесь те, кто работает в стартапе? Что скажете?

#холивар
😁40👍81
❤️ Активация с первого взгляда: как влюбить пользователя в продукт

Хотите научиться превращать случайных посетителей в преданных фанатов? Рассказываем, как повысить активацию пользователей, отличить ее от aha-момента и использовать эти знания для кратного роста количества активных пользователей.

🔗 Читать статью
🔗 Зеркало
👍2
🎙Свежий выпуск подкаста RadioDotNet про лучший UI Framework, структуру Solutions, нужные Channels и многое другое

YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка

#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»

🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/82684bb8

На вводной части вас ждут:

1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов

2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ

3. Практические задания после лекций

4. Ссылки на дополнительные материалы для самостоятельного изучения

⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/82684bb8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😢1