Telegram Group Search
🌐 Squidex — автономный CMS с открытым исходным кодом. Этот проект переосмысливает традиционный подход к системам управления контентом, предлагая вместо готового интерфейса мощный API с поддержкой OData-фильтров и Swagger-спецификаций. Разработчики могут использовать Squidex как основу для сайтов, мобильных приложений или серверных решений, сохраняя полный контроль над фронтендом.

Система построена на ASP.NET Core с архитектурой CQRS и работает как на Windows, так и на Linux. В отличие от аналогов, Squidex не навязывает конкретную клиентскую часть — вы сами решаете, как визуализировать контент.

🤖 GitHub

@csharp_ci
📒 .NET Interactive — мультиязычные интерактивные блокноты от Microsoft.

Для разработчиков, уставших переключаться между Jupyter и IDE инструмент предлагает необычное решение — блокноты, где в соседних ячейках могут работать C#, Python, SQL и даже PowerShell. Проект поддерживает обмен переменными между языками: например, результат SQL-запроса можно сразу передать в DataFrame на C#.

Основа технологии — движок, который работает как в Visual Studio Code, так и в классическом Jupyter. Особенно удобно для ETL-задач: можно собрать весь пайплайн в одном файле, от загрузки данных через KQL до визуализации на R.

🤖 GitHub

@csharp_ci
ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2025 ГОДУ? 🚀

Чтобы стать Senior C# разработчиком сегодня, нужно не только знать язык программирования и фреймворки. Нужно уметь строить гибкую архитектуру приложения, которую легко тестировать и менять под задачи бизнеса. Стань экспертом в построении гибкой архитектуры приложения!

👉 Стартуем 2 июня.

Курс ведет действующий архитектор и Principal Engineer Кирилл Ветчинкин.

Ты научишься:
Разбивать приложение на слои в соответствии с Clean Architecture
Формировать Domain Model и применять тактические паттерны DDD
Реализовывать Use Case как Command/Query
Делать синхронные и асинхронные интеграции, не загрязняя ядро приложения
Писать 3 вида тестов для разных слоев приложения

Полная программа ТУТ 👉 https://microarch.ru/courses/ddd?utm_source=posev&utm_medium=erid:2VtzqwTjbcd&utm_campaign=3

А главное — ты с нуля разработаешь и запустишь микросервис, который максимально приближен к реальности "Диспетчеризация заказов на курьеров". Это будет крутым проектом в портфолио или основой для рабочих задач.

А еще:
Проверим все домашки
Поддержим в чате
Проведем живые разборы
Ответим на все вопросы

📕 Сертификат об участии по итогам прохождения курса.

🔥 Не откладывай свой рост на потом: https://microarch.ru/courses/ddd?utm_source=posev&utm_medium=erid:2VtzqwTjbcd&utm_campaign=3

Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqwTjbcd
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
🚀 HybridCache

Это решение давней проблемы с разделением между IMemoryCache и IDistributedCache.

🔧 Что даёт HybridCache:
• Единый API для in-memory и distributed кэша
• Настраиваемая сериализация
• Stampede protection (анти-нагрузочная защита)
• Удаление по тегам

🧠 Как работает GetOrCreateAsync:
1. Проверяет локальный и распределённый кэш
2. Если нет — вызывает фабричный метод
3. Кэширует результат и возвращает его

🛡️ Stampede protection: только один запрос на ключ запускает фабрику, остальные ждут — никакой гонки или перегрузки БД.

📌 Сниппет на .NET 9 выглядит так:


app.MapGet("/products/{id}", async (
int id,
HybridCache cache,
ProductDbContext db,
CancellationToken ct) =>
{
var product = await cache.GetOrCreateAsync(
$"product-{id}",
async token =>
{
return await db.Products
.Include(p => p.Category)
.FirstOrDefaultAsync(p => p.Id == id, token);
},
cancellationToken: ct
);

return product is null ? Results.NotFound() : Results.Ok(product);
});


HybridCache доступен для ASP.NET Core

Все разработчики могут воспользоваться HybridCache для более эффективного управления кэшем в приложениях на ASP.NET Core.
Что выведет на экран это код?
Anonymous Quiz
5%
123
25%
456
46%
798
16%
Будет ошибка компиляции.
8%
🥒
🔥 Новая эра C# — dotnet run app.cs в .NET 10 Preview 4

Теперь вы можете запускать C#-файлы напрямую, без создания проекта:

dotnet run hello.cs

📌 Что нового:

Без .csproj — пишите и запускайте C#-код как скрипты.

Директивы в файле:

#:package — подключение NuGet-пакетов.

#:sdk — выбор SDK (например, для ASP.NET).

#:property — установка свойств сборки.

Поддержка shebang — делайте .cs-файлы исполняемыми скриптами в Unix-системах.

🛠 Преимущества:

Быстрый старт без лишних настроек.

Идеально для прототипирования и обучения.

Лёгкий переход от скрипта к полноценному проекту с dotnet project convert.

🔗 Подробнее: devblogs.microsoft.com/dotnet/announcing-dotnet-run-app

@csharp_ci
Media is too big
VIEW IN TELEGRAM
Какой язык более читаемый: C# или Python? Программисты забивают на безопасность?

Обсуждаем эти и другие холиварные темы в шоу Контура «Согласен — не согласен», где сталкиваются два представителя разных IT-профессий, каждый со своим мнением и бэкграундом.

Cмотрите самые горячие выпуски🔥

➡️ С# vs Python-разработчики: какой язык круче
➡️ Джун vs cеньор-разработчики: нужны ли джуны в бигтехе
➡️ Бэкендер vs фронтендер: кто больше страдает
➡️ Программист vs учитель информатики: делать ли программирование обязательным в школе
➡️ Безопасник vs программист: кто должен думать об уязвимости продукта

Новые дискуссии выходят в канале @KonturTech каждые две недели. Будет эмоционально, но с уважением.

16+. Реклама. АО «ПФ «СКБ Контур», ОГРН 1026605606620. 620144, Екатеринбург, ул. Народной Воли, 19А. Erid: 2SDnjcTtt77
Please open Telegram to view this post
VIEW IN TELEGRAM
🔐 AuthenticationProperties в ASP.NET Core — недооценённый, но важный механизм

Если вы используете куки или OpenID Connect в ASP.NET Core, то наверняка сталкивались с объектом AuthenticationProperties. Он не просто "дополнительные параметры" — это мощный инструмент управления поведением аутентификации.

💡 Что можно сделать с AuthenticationProperties:

Установить срок действия куки:

new AuthenticationProperties { ExpiresUtc = DateTimeOffset.UtcNow.AddHours(1) }


↩️ Указать URL возврата после логина:


new AuthenticationProperties { RedirectUri = "/dashboard" }


🧭 Добавить временные метки, элементы состояния, флаги:
Например, IsPersistent, IssuedUtc, AllowRefresh, и кастомные значения.

🧠 Используется в:

HttpContext.SignInAsync(...)

ChallengeAsync(...) для OIDC

редиректах после логина/логаута

🛠️ Это ключевой объект, если вы хотите более гибко управлять логикой входа, выхода и жизненным циклом сессии в ASP.NET Core.

📎 Полный разбор:
https://blog.duendesoftware.com/posts/20250527-the-role-of-authenticationproperties-in-aspnet-core

@csharp_ci
🚀 Как ускорить ASP.NET Core API: 6 рабочих приёмов

Если ваш API на .NET тормозит под нагрузкой — вот краткий гайд, как прокачать его производительность. ):

1. Async/await везде
Избегай .Result и .Wait() — они блокируют потоки. Асинхронность улучшает масштабируемость.

📉 2. Добавь пагинацию
Не отдавай 10 000 записей за раз. Параметры page и pageSize — must-have для любых списков.

🚫 3. Используй `AsNoTracking` в EF Core
Если данные не редактируются — отключай отслеживание изменений. Это экономит память и ускоряет запросы.

📦 4. Включи сжатие ответов
Подключи Gzip или Brotli, особенно если отдаёшь большие JSON-объекты.

🧠 5. Кэшируй часто запрашиваемые данные
Используй IMemoryCache или Redis — уменьши нагрузку на базу.

📤 6. Передавай DTO, а не сущности
Не светите внутренними моделями. Создавай DTO и отправляй только нужные поля.

🧪 Подробнее с примерами кода — в оригинальном сайде:
https://dev.to/this-is-learning/tips-for-improving-api-performance-in-aspnet-core-n4o

@csharp_ci
Что выведет на экран это код?
Anonymous Quiz
28%
Baz Bar Foo Hello
11%
Baz Foo Hello Bar
13%
Baz Hello Foo Bar
27%
Hello Baz Bar Foo
21%
🥒
Давно хотели освоить программирование, но вас останавливала нехватка времени или строгие дедлайны? Тогда советуем обратить внимание на бесплатные курсы Яндекс Лицея по Python, Go и C++ для начинающих.

Заниматься на них можно когда и где угодно, ведь уроки доступны онлайн и в них нет дедлайнов! Вас ждут:
Качество: занятия разработаны практикующими экспертами Яндекса.
Свобода: пользуйтесь автоматической проверкой решений и задавайте вопросы через поддержку.
Перспективы: после завершения вы получите уверенную базу для дальнейшего роста, а также сертификат, который пригодится при поступлении в Яндекс Лицей.

Не откладывайте на потом — выберите курс и зарегистрируйтесь на сайте!
🧩 Blazor и Dependency Injection: лучшие практики и примеры

В Blazor встроена мощная система Dependency Injection (DI), которая помогает создавать модульные и легко тестируемые приложения. Недавно на [Telerik Blog](https://www.telerik.com/blogs/blazor-basics-dependency-injection-best-practices-use-cases) вышла отличная статья с практическими советами по использованию DI в Blazor.

🔧 Типы внедрения зависимостей:
- Constructor Injection: предпочтительный способ для обязательных зависимостей.
- Property Injection: используется для опциональных зависимостей с помощью @inject или [Inject].
- Service Locator: избегайте этого подхода, так как он усложняет тестирование и нарушает принципы DI.

🔄 Варианты времени жизни сервисов:
- Singleton: один экземпляр на всё приложение.
- Scoped: один экземпляр на сессию пользователя.
- Transient: новый экземпляр при каждом запросе.

💡 Рекомендации:
- Используйте интерфейсы для определения зависимостей.
- Избегайте внедрения Scoped сервисов в Singleton сервисы.
- Для управления временем жизни сервисов используйте OwningComponentBase.

📚 Примеры использования:
- Внедрение HttpClient для выполнения HTTP-запросов.
- Использование NavigationManager для управления навигацией.
- Внедрение IJSRuntime для взаимодействия с JavaScript.

📖 Подробнее читайте в статье

@csharp_ci
🔍 Что под капотом у SourceForge: полный стек open-source технологий

SourceForge.net — один из старейших хабов для open-source проектов (основан в 1999), до сих пор остаётся важной платформой для размещения, разработки и распространения ПО. Но что делает его таким устойчивым и масштабируемым?

Компания BlackSlate раскрыла подробности о том, на чём построен SourceForge — и это настоящее пособие по продвинутой архитектуре на Python и open-source инструментах.

🧠 Архитектура SourceForge.net:

Allura — основной backend-фреймворк, написанный на Python.
Он отвечает за всё: трекеры задач, Git/SVN, вики, форумы и многое другое. Код — доступен на GitHub.

⚙️ Технологии под капотом:

🟣 Python — основной язык, на котором написана серверная часть.

🗄 MongoDB — NoSQL база данных для хранения проектов, тикетов, пользователей.
→ ORM: Ming + PyMongo

🔍 Поиск — реализован с помощью Apache Solr + pysolr
→ Поддержка полнотекстового поиска и фильтрации по метаданным

📬 Асинхронные задачи и очереди:
RabbitMQ + Kombu — используются для обработки фонов задач

🛠 Git и SVN:
GitPython — работа с Git-репозиториями
pysvn — управление Subversion

🧩 Веб-фреймворки и middleware:
- TurboGears + Pylons — основа веб-интерфейса
- Paste — WSGI-мидлвари
- Beaker — управление сессиями и кэшами

🎨 UI и шаблоны:
- Jinja2 — шаблонизатор
- Pygments — подсветка синтаксиса в веб-интерфейсе

📦 Окружение и тестирование:
- Vagrant — управление виртуальными dev-средами
- FUSE — файловая система для работы с вложениями и архивами

📌 Почему это важно?

SourceForge — это пример того, как построить надёжную, масштабируемую платформу, полностью на open-source стекe. Без дорогостоящих проприетарных решений — и при этом с полной функциональностью для миллионов проектов и разработчиков.

📎 Полный список технологий:
https://www.blackslate.io/tech-stack/opensource-used-in-sourceforge

Если вы создаёте свою платформу, маркетплейс, dev-инструмент или систему управления проектами — архитектура SourceForge может стать отличным референсом.

@csharp_ci
2025/06/11 09:37:04
Back to Top
HTML Embed Code: