Атрибут
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👍28⚡1
🧰 MemoryCache, DistributedCache и HybridCache: краткий обзор от Steven Giesel новых вич, появившихся в .NET 9 Preview 4
📌
• Простой пример:
• Пример упрощенного использования
📌
• Пример регистрации Redis в качестве провайдера кеша:
• Пример регистрации SQL Server в качестве провайдера кеша:
• Пример использования
📌
✅
📌
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
.Steven-Giesel
MemoryCache, DistributedCache and HybridCache
The latest preview (.NET 9 preview 4) brought another caching structure to the .NET world - so let's order some things here.
👍18❤2🤔1
❤️ Активация с первого взгляда: как влюбить пользователя в продукт
Хотите научиться превращать случайных посетителей в преданных фанатов? Рассказываем, как повысить активацию пользователей, отличить ее от aha-момента и использовать эти знания для кратного роста количества активных пользователей.
🔗 Читать статью
🔗 Зеркало
Хотите научиться превращать случайных посетителей в преданных фанатов? Рассказываем, как повысить активацию пользователей, отличить ее от aha-момента и использовать эти знания для кратного роста количества активных пользователей.
🔗 Читать статью
🔗 Зеркало
👍2
⏯ 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
🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/82684bb8
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ
3. Практические задания после лекций
4. Ссылки на дополнительные материалы для самостоятельного изучения
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😢1
This media is not supported in your browser
VIEW IN TELEGRAM
dotnet tool install -g csharprepl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍6🌚1
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
💻🚀🏰 Как мы создали ИИ-стартап на хакатоне выходного дня в Германии
Инженер ПО рассказал нам о своих выходных на хакатоне в Кельне, где с командой пытался создать AI-стартап всего за два дня. Участники прошли путь от подачи идей в пятницу вечером до демонстрации работающего приложения к воскресенью.
В качестве бонуса автор привёл список основных пунктов, которые необходимо выполнить для создания стартапа.
🔗 Читать статью
🔗 Зеркало
Инженер ПО рассказал нам о своих выходных на хакатоне в Кельне, где с командой пытался создать AI-стартап всего за два дня. Участники прошли путь от подачи идей в пятницу вечером до демонстрации работающего приложения к воскресенью.
В качестве бонуса автор привёл список основных пунктов, которые необходимо выполнить для создания стартапа.
🔗 Читать статью
🔗 Зеркало
🥱9❤1👍1👾1
💬 Мысли Эндрю Лока о primary constructors: 3 ➕ и 5 ➖
В предыдущей статье автор представил введение в primary constructors в C# 12. В новом материале вас ждет более глубокое погружение в тему с описанием основных достоинств и недостатков (по его мнению):
☑️ Основные подходы к использованию primary constructors
☑️ Лучшие юзкейсы primary constructors
▫️Базовая инициализация полей
▫️Инициализация в тестовом коде
▫️Dependency injection в MVC-контроллерах
☑️ Проблемные моменты, или «что не нравится»
▫️Duplicate capture
▫️Неявные поля не могут быть readonly
▫️Неявные поля изменяют макет структуры
▫️Путаница с соглашениями об именах
▫️Путаница с record
В предыдущей статье автор представил введение в primary constructors в C# 12. В новом материале вас ждет более глубокое погружение в тему с описанием основных достоинств и недостатков (по его мнению):
☑️ Основные подходы к использованию primary constructors
☑️ Лучшие юзкейсы primary constructors
▫️Базовая инициализация полей
▫️Инициализация в тестовом коде
▫️Dependency injection в MVC-контроллерах
☑️ Проблемные моменты, или «что не нравится»
▫️Duplicate capture
▫️Неявные поля не могут быть readonly
▫️Неявные поля изменяют макет структуры
▫️Путаница с соглашениями об именах
▫️Путаница с record
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
#dotnet
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥17👍12❤1
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
👨🎓️ 33 лучших вуза России для будущих программистов 2024-2025
Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему.
🔗 Читать статью
🔗 Зеркало
Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему.
🔗 Читать статью
🔗 Зеркало
🥱9❤3🤔2😁1👾1
💬 Разрабы, какую музыку вы предпочитаете слушать во время работы?
👍 — энергичная и мотивирующая музыка (рок, поп, электронная)
🔥 — спокойная и расслабляющая музыка (классическая, джаз, саундтреки)
❤️ — предпочитаю работать в тишине
#холивар
👍 — энергичная и мотивирующая музыка (рок, поп, электронная)
🔥 — спокойная и расслабляющая музыка (классическая, джаз, саундтреки)
❤️ — предпочитаю работать в тишине
#холивар
👍117❤92🔥70
До недавнего времени разрабатывать IoT приложения на C# можно было только для компьютеров, построенных на архитектуре ARM или x86.
В начале этого года был представлен неофициальный .NET 8.0 SDK, который уже сейчас вы сможете запустить на RISC-V процессоре под ОС Debian/Ubuntu.
В качестве платформы запуска автор взял одноплатный компьютер Sipeed Lichee RV на RISC-V процессоре Allwinner D1 (ядро Alibaba/T-Head Xuantie C906 RISC-V).
🟣 Часть 1: установка .NET 8.0 SDK на Sipeed Lichee RV
🟣 Часть 2: запуск приложения для работы с контактами GPIO и датчиком BME280 для замера температуры, влажности и давления
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12😁5👍3🔥2