C# (C Sharp) programming
18.4K subscribers
704 photos
36 videos
8 files
632 links
По всем вопросам- @haarrp

C# - обучающий канал Senior C# разработчика.

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci - C# академия

@pythonlbooks- книги📚

Реестр РКН: https://clck.ru/3Fk3kb
Download Telegram
Если вы сомневаетесь, стоит ли переходить на последнюю версию #dotnet, то одно только повышение производительности должно вас убедить.

📌 Что нового в .NET 8?

@csharp_ci
Пример LINQ SkipLast()

Skip(), это функция, которая зачастую, используется чаще разработчиками, но, существует не менее полезная функция SkipLast(), которая используется для пропуска определенного количества элементов из конца коллекции.

Два простых примера на картинке.

А вы часто ее используете?

#dotnet

@csharp_ci
YeSQL .NET v1.0.0 выпущен 🚀

YeSQL .NET - это библиотека классов для загрузки SQL-запросов из SQL-файлов.

Нет необходимости жестко кодировать SQL-код в исходном коде приложения.

Создайте файл с расширением .sql и используйте YeSQL .NET для загрузки SQL-файла.

Install-Package YeSql.Net

#dotnet #csharp #oss #sql

Github
Docs

@csharp_ci
.NET 9 новые бенчмарки LINQ CountBy .

Код

#dotnet #csharp

@csharp_ci
🖥 Что вы предпочитайте string.Equals или ToLower/Upper

В C# для сравнения строк без учета регистра лучше использовать string.Equals с OrdinalIgnoreCase, а не ToLower() / ToUpper().

Почему?

Корректность
Иногда использование ToLower/Upper может привести к неправильным результатам в некоторых языках (например на Турецком).

Удобство чтения
Использование string.Equals дает понять, что вы выполняете сравнение.

Производительность
string.Equals более эффективен, поскольку ему не нужно создавать новый экземпляр строки, как это делает ToLower/Upper.

#dotnet #csharp

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥Первая предварительная версия dotnet 9 уже здесь, наряду с обновлениями для #aspnetcore, #dotnetmaui, #efcore и других!

Почитать
больше о предварительной версии 1 и присоединяйтесь к обсуждению на GitHub Discussions: https://github.com/dotnet/core/discussions/9167

#dotnet #csharp

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Новый выпусе- Microsoft .Data.SqlClient 5.2 - с .NET 8, поддержкой пакетной обработки Sql и идентификации рабочей нагрузки + многое другое - смотрите примечания к выпуску:

📌 Релиз

#dotnet #sqlserver

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Руководство по .NET Async от Дэвида Фаулера .

Множество отличных рекомендаций о том, как правильно использовать Async на плохих и хороших примерах.

Сохраняйте себе в закладки.

https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md

#dotnet

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🎊 Сегодня были выпущены новые версии .NET 9.0.1 и 8.0.12

https://github.com/dotnet/announcements/issues/341

#dotnet #aspnetcore #efcore #csharp

@csharp_ci
🚀 .NET 10 Preview 3 уже доступен!
Новая версия приносит мощное обновление для C# — Extension Members:


💡 Теперь можно добавлять в static class расширения не только методов, но и:

🔹 Статические методы
🔹 Инстанс-свойства
🔹 Статические свойства

📦 Это значит, что вы можете "расширять" поведение типов не только логикой, но и дополнительными данными и даже стейтфул-логикой (через свойства).
И всё это — без изменения исходного класса.

🔗 Подробнее:
https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview3/csharp.md#extension-members

#dotnet #csharp #dotnet10 #devtools #preview

@csharp_ci
🚀 Релиз: SQL Formatting Preview в T-SQL Analyzer CLI​

В последнем обновлении инструмента T-SQL Analyzer CLI от ErikEJ появилась функция предварительного просмотра форматирования SQL-кода.​

Основные возможности:
Автоматическое форматирование T-SQL скриптов с использованием встроенных правил.​

Интеграция с анализатором кода, позволяющая одновременно проверять и форматировать скрипты.​

Поддержка командной строки, что удобно для автоматизации процессов и интеграции в CI/CD пайплайны.​

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

tsqlanalyze -i "C:\scripts\proc.sql" --format
Эта команда проанализирует и отформатирует указанный SQL-скрипт согласно установленным правилам.​

📌 Подробнее о новых возможностях и инструкциях по установке читайте в официальной документации.​

#sqlserver #tsql #dotnet #cli #devtools

https://github.com/ErikEJ/SqlServer.Rules/tree/master/tools/SqlAnalyzerCli#sql-formatting-preview

@csharp_ci
📚 Модернизация .NET веб-приложений с помощью DotVVM и новой книги Томаша Герцега

В свежем выпуске подкаста [The .NET Core Show](https://dotnetcore.show/season-7/dotnet-web-app-modernization-made-easy-with-tomas-hercegs-new-book-and-dotvvm/) Томаш Герцег — Microsoft MVP и автор фреймворка DotVVM — рассказывает, как безболезненно обновлять устаревшие .NET-приложения.

🔧 Что такое DotVVM

DotVVM — это open-source MVVM-фреймворк, предназначенный для поэтапной миграции с ASP.NET Web Forms на современный .NET:

- Позволяет переписывать старые приложения постепенно, без необходимости полного рефакторинга
- Поддерживает .NET Framework и .NET Core
- Совместим с существующей кодовой базой, не нарушая архитектуру

DotVVM выступает как мост между устаревшими технологиями и современным стеком, позволяя сохранять бизнес-логику и UI.

🎧 Слушать эпизод подкаста:
https://dotnetcore.show/season-7/dotnet-web-app-modernization-made-easy-with-tomas-hercegs-new-book-and-dotvvm/

#DotVVM #DotNet #WebForms #ASPNet #Modernization #TomasHerceg #SoftwareDevelopment #LegacyToModern
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
🕹️ 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