This media is not supported in your browser
VIEW IN TELEGRAM
🧹 Разделение классов на отдельные файлы в ReSharper — автоматически
Если вы работаете с большими C#‑файлами, где собрано по 3–5 классов в одном месте, ReSharper теперь позволяет разнести все классы по отдельным файлам в один клик.
🔧 Что умеет:
▪️ Автоматически определяет все вложенные классы, интерфейсы, enum’ы
▪️ Создаёт новые `.cs`‑файлы с соответствующими именами
▪️ Упрощает навигацию и соблюдение best practices
📌 Где искать:
Refactor This → Move to Separate Files
или
Context Action (Alt+Enter) → Move All Types to Separate Files
📎 Инструкция от JetBrains:
https://www.jetbrains.com/help/resharper/Move_classes_into_separate_files_in_one_go.html
💡 Подходит для чистки легаси-кода и ускорения навигации в больших проектах .NET.
#CSharp #ReSharper #Refactoring #JetBrains #DotNet #DevTools #CodeQuality
Если вы работаете с большими C#‑файлами, где собрано по 3–5 классов в одном месте, ReSharper теперь позволяет разнести все классы по отдельным файлам в один клик.
🔧 Что умеет:
▪️ Автоматически определяет все вложенные классы, интерфейсы, enum’ы
▪️ Создаёт новые `.cs`‑файлы с соответствующими именами
▪️ Упрощает навигацию и соблюдение best practices
📌 Где искать:
Refactor This → Move to Separate Files
или
Context Action (Alt+Enter) → Move All Types to Separate Files
📎 Инструкция от JetBrains:
https://www.jetbrains.com/help/resharper/Move_classes_into_separate_files_in_one_go.html
💡 Подходит для чистки легаси-кода и ускорения навигации в больших проектах .NET.
#CSharp #ReSharper #Refactoring #JetBrains #DotNet #DevTools #CodeQuality
🕹️ NET-NES — эмулятор легендарной NES, написанный на C# и Raylib
После создания собственного эмулятора GameBoy (**CODE-DMG**), следующий шаг был очевиден — NES. Консоль, оставившая след не только в истории видеоигр, но и в электронике, вдохновила на создание нового проекта — NET-NES.
🎮 Что такое NET-NES?
Это NES-эмулятор, написанный на C# с использованием Raylib. Он уже способен запускать множество классических хитов от Nintendo.
📜 Немного истории:
• NES (Nintendo Entertainment System) — вышла в Японии как FamiCom в 1983 году
• В 1985 появилась в Северной Америке, где спасла индустрию после видеоигрового краха 1983 года
• Продавалась как "игрушка" — и изменила всё
🧠 Аппаратная часть NES:
• 8-битный CPU Ricoh 2A03 (~1.79 МГц), основанный на MOS 6502
• Встроенный APU (аудио)
• Видео: Ricoh 2C02 — вывод 256×240, палитра 64 цвета
• 2 КБ RAM + 2 КБ VRAM
• ROM‑картриджи с мапперами для расширения памяти и графики
🛠️ Почему C# и Raylib?
• Потому что C# — удобен, современен и любим
• Raylib — весёлый, минималистичный и идеально подходит для 2D-рендера
• А название NET-NES — от .NET и NES, звучит круто 😄
🔗 GitHub: github.com/Paulescu/NET-NES
#nes #dotnet #emulation #gamedev #csharp #retrogaming
@csharp_ci
После создания собственного эмулятора GameBoy (**CODE-DMG**), следующий шаг был очевиден — NES. Консоль, оставившая след не только в истории видеоигр, но и в электронике, вдохновила на создание нового проекта — NET-NES.
🎮 Что такое NET-NES?
Это NES-эмулятор, написанный на C# с использованием Raylib. Он уже способен запускать множество классических хитов от Nintendo.
📜 Немного истории:
• NES (Nintendo Entertainment System) — вышла в Японии как FamiCom в 1983 году
• В 1985 появилась в Северной Америке, где спасла индустрию после видеоигрового краха 1983 года
• Продавалась как "игрушка" — и изменила всё
🧠 Аппаратная часть NES:
• 8-битный CPU Ricoh 2A03 (~1.79 МГц), основанный на MOS 6502
• Встроенный APU (аудио)
• Видео: Ricoh 2C02 — вывод 256×240, палитра 64 цвета
• 2 КБ RAM + 2 КБ VRAM
• ROM‑картриджи с мапперами для расширения памяти и графики
🛠️ Почему C# и Raylib?
• Потому что C# — удобен, современен и любим
• Raylib — весёлый, минималистичный и идеально подходит для 2D-рендера
• А название NET-NES — от .NET и NES, звучит круто 😄
🔗 GitHub: github.com/Paulescu/NET-NES
#nes #dotnet #emulation #gamedev #csharp #retrogaming
@csharp_ci
⚙️ Background Jobs в ASP.NET Core — просто и эффективно
Хочешь запускать периодические задачи в фоне? В ASP.NET Core это можно реализовать с помощью
🧱 Основные шаги:
1. ✅ Включаем конкурентный запуск/остановку сервисов:
2. 🌀 Реализуем фоновую задачу:
📌 Особенности:
-
-
- Встроенный контроль остановки через
💡 Подходит для:
• Регулярных проверок
• Очистки кэша
• Периодических sync-задач
#aspnetcore #dotnet #backgroundjobs #csharp #dev
Хочешь запускать периодические задачи в фоне? В ASP.NET Core это можно реализовать с помощью
BackgroundService
и PeriodicTimer
. Ни Hangfire, ни Quartz не нужны, если всё просто.🧱 Основные шаги:
1. ✅ Включаем конкурентный запуск/остановку сервисов:
builder.Services.Configure<HostOptions>(o =>
{
o.ServicesStartConcurrently = true;
o.ServicesStopConcurrently = true;
});
2. 🌀 Реализуем фоновую задачу:
public class PeriodicBackgroundTask : BackgroundService
{
private readonly TimeSpan _period = TimeSpan.FromSeconds(5);
private readonly ILogger<PeriodicBackgroundTask> _logger;
public PeriodicBackgroundTask(ILogger<PeriodicBackgroundTask> logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using PeriodicTimer timer = new PeriodicTimer(_period);
while (!stoppingToken.IsCancellationRequested &&
await timer.WaitForNextTickAsync(stoppingToken))
{
_logger.LogInformation("Executing PeriodicBackgroundTask");
}
}
}
📌 Особенности:
-
BackgroundService
— стандартный способ запускать фоновые задачи в ASP.NET Core -
PeriodicTimer
— простой способ повторять с задержкой - Встроенный контроль остановки через
CancellationToken
💡 Подходит для:
• Регулярных проверок
• Очистки кэша
• Периодических sync-задач
#aspnetcore #dotnet #backgroundjobs #csharp #dev
📘 Обновлённый обзор C#: история версий и ключевые новшества
Microsoft опубликовала подробную хронологию C# — от версии 1.0 до последней, показывая эволюцию языка за 20+ лет:
🕰️ Обзор ключевых этапов:
• C# 1.0–2.0 — классика: базовые ООП, exception-обработка, типы значений,
• C# 3.0 — революция LINQ,
• C# 4.0 —
• C# 5.0 —
• C# 6.0 — улучшения синтаксиса: string interpolation, expression-bodied members, null-условные выражения
• C# 7.x —
• C# 8.0 — nullable reference types,
• C# 9.0 —
• C# 10 — глобальные
• C# 11 — raw string literals, generic math, pattern matching improvements
• C# 12 и далее — ожидаются расширенные метапрограммирование, списочные выражения, улучшения в безопасность и производительности
🔧 Почему это важно:
• Язык постоянно развивается, становясь выразительнее, безопаснее и удобнее
• Новые версии дают мощные инструменты — для асинхронного программирования, функционального стиля и более чистого кода
• Понимание изменений помогает быстрее адаптироваться к трендам и выбирать актуальный инструментальный стек
💡 Если вы разрабатываете на C#, стоит ознакомиться с историей версий — и понять, какие фичи уже доступны, а что стоит ожидать в будущем.
👉 Подробнее
@csharp_ci
#dotnet #csharp #programming #developer #language #whatsnew #technology
Microsoft опубликовала подробную хронологию C# — от версии 1.0 до последней, показывая эволюцию языка за 20+ лет:
🕰️ Обзор ключевых этапов:
• C# 1.0–2.0 — классика: базовые ООП, exception-обработка, типы значений,
generics
• C# 3.0 — революция LINQ,
lambda`-выражения, автоматические свойства, `var
• C# 4.0 —
dynamic
, улучшения COM и переговорчивость аннотации • C# 5.0 —
async/await
— асинхронность для всех • C# 6.0 — улучшения синтаксиса: string interpolation, expression-bodied members, null-условные выражения
• C# 7.x —
tuples
, pattern matching
, ref locals
, out variables
• C# 8.0 — nullable reference types,
ranges/indices
, асинхронные потоки • C# 9.0 —
record
, init-only properties
, top-level statements • C# 10 — глобальные
using
, file-scoped namespace
, улучшенные структуры • C# 11 — raw string literals, generic math, pattern matching improvements
• C# 12 и далее — ожидаются расширенные метапрограммирование, списочные выражения, улучшения в безопасность и производительности
🔧 Почему это важно:
• Язык постоянно развивается, становясь выразительнее, безопаснее и удобнее
• Новые версии дают мощные инструменты — для асинхронного программирования, функционального стиля и более чистого кода
• Понимание изменений помогает быстрее адаптироваться к трендам и выбирать актуальный инструментальный стек
💡 Если вы разрабатываете на C#, стоит ознакомиться с историей версий — и понять, какие фичи уже доступны, а что стоит ожидать в будущем.
👉 Подробнее
@csharp_ci
#dotnet #csharp #programming #developer #language #whatsnew #technology