Все потоки
Поиск
Написать публикацию
Обновить
259.8

C# *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

PVS-Studio в 2024 году

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1.9K

За окном январь 2025 года, а это значит, пора подвести итоги за 2024 год! В этой статье вы узнаете, чем занималась команда PVS-Studio в прошлом году: новые плагины, интеграции, фичи и многое другое!

Читать далее

Новые возможности .NET 9: новые типы и семантика блокировок в C# 13

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров10K

В ноябре 2024 года с выходом .NET 9 и обновлением C# до версии 13 мы получили интересные нововведения, которые касаются типов данных и семантики блокировок. Каждый крупный релиз .NET сопровождается новыми инструментами, которые улучшают производительность, безопасность и удобство разработки. В C# 13 такой новинкой стал System.Threading.Lock. Это попытка сделать многопоточность чуть менее токсичной и чуть более предсказуемой.

Читать далее

Ловушка бесконечно ленивого бассейна

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.7K

Нечасто встречаются истории, когда причины и следствия сплетаются в один клубок, связывающий проблемы и с памятью, и с CPU, и с тредпулом. А инструментально затрагивающие и пулы объектов, и Lazy, и работу с асинхронностью, и длительные вычисления. А ещё реже встречаются те, где всё это распутывается и исправляется буквально несколькими строчками кода.

Читать далее

Калькулятор на персептронах

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.3K

Привет, Хабр!

В этой дебютной статье мы попробуем создать совершенно бесполезный калькулятор на многослойном персептроне. Что-бы он считал правильно, его необходимо обучить. Этим мы и займемся...

Читать далее

Ода одной диагностике и ещё парочке, или проверка Jellyfin

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2K

Jellyfin — это бесплатный медиасервер с открытым исходным кодом, является альтернативой Emby и Plex. В этой статье мы рассмотрим диагностику, у которой было больше всего срабатываний в коде Jellyfin. И ещё несколько ошибок проекта.

Читать далее

Простая локализация .NET приложений с помощью Slang.Net

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.1K

В статье я хочу поделиться знаниями о том, как быстро и легко локализовать .NET-приложение с помощью собственного решения для локализации — Slang.Net.

Читать далее

WYSIWYG UI дизайнер для VS Code

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7.1K

Наш WYSIWYG UI XAML-редактор теперь доступен и в Visual Studio Code для OpenSilver-приложений. Карточка бургера на скриншоте полностью сделана через редактор.

Расширение можно установить из Visual Studio Marketplace абсолютно бесплатно.

Читать далее

.NET Digest #5

Время на прочтение4 мин
Количество просмотров3.1K

Добро пожаловать на пятый выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! Как обычно, набралось множество материала, а в этот раз ещё и новый .NET вышел. Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов. Поехали!

Читать далее

Реальная эффективность Qwen 2.5 Coder против ChatGPT (или можно ли сэкономить 20$?)

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров23K

Можно ли сэкономить 20$ и заменить ChatGPT локальным Qwen 2.5 Coder? Попробуем проверить логику моделей!

Читать далее

Test Doubles в интеграционных тестах на ASP.NET Core

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров1.7K

Интеграционные тесты (англ. Integration tests) занимают промежуточное положение между модульными и сквозными. Они отлично подходят на роль приёмочных тестов backend-сервиса.

Но что делать, если тестируемый сервис активно использует внешние API? Заменять их тестовыми дублёрами.

В статье мы разберём конкретный пример на .NET 8 и ASP NET Core и напишем для него приёмочные тесты.

Читать далее

Как и зачем использовать ValueTask в C#

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.8K

Привет, Хабр!

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

Если коротко, ValueTask — это структура, которая позволяет вернуть либо Task, либо готовый результат. Она появилась в C# 7.0 для снижения накладных расходов при работе с асинхронным кодом.

Читать далее

Гибридное кэширование в ASP.NET Core

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.7K

В .NET 9 появилась новая библиотека для кэширования — HybridCache. В статье расскажу, что это такое, какие задачи решает, разберу примеры использования и особенности внутреннего устройства.

Хочу разобраться

Кастомные сообщения об ошибках в FluentValidation

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.1K

FluentValidation — это мощная библиотека для валидации объектов в .NET, которая поддерживает создание кастомных сообщений об ошибках. В этом руководстве мы рассмотрим, как использовать различные подходы к формированию этих сообщений и почему важно различать использование простых строк и лямбда-выражений в методе WithMessage.

Читать далее

Ближайшие события

Увеличение растровых изображений – какой максимальной схожести с оригиналом мы можем добиться и как? А можно побыстрее?

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров4.4K

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

Апскейл на пределе: вперёд!

Многопользовательская архитектура в ASP.NET: Опыт разработки

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.4K

Несколько месяцев назад я начал разрабатывать бэкэнд проекта на ASP.NET API. Проект представлял собой сервис для бронирования отелей (Airbnb послужил основным референсом). Опыта работы с ASP.NET у меня было немного: многому пришлось обучаться в процессе, а решение некоторых проблем занимало часы, а то и дни.

В этой статье я поделюсь полезными наработками и постараюсь ответить на вопросы, которые мне самому было сложно найти в Интернете

Читать далее

Типология Test Doubles

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.6K

Тестовые дублёры (англ. Test Doubles) — это объекты или модули, используемые в автоматизированных тестах в качестве замены некоторых частей тестируемой системы (англ. SUT, System Under Test).

В этой статье мы обсудим пять типов тестовых дублёров: Dummy, Stub, Spy, Mock, Fake.

Читать далее

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 3

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.6K

Встречайте новое обновление моего терминала!

Терминальная программа – это многофункциональный кроссплатформенный инструмент инженера, который позволяет взаимодействовать с внешним устройством или сервером. Приложение поддерживает различные вариации протокола Modbus, а также дает возможность работы с данными в строковом или байтовом формате.

Главные фичи этой версии это макросы с пользовательскими именами, работа с байтами в режиме "Без протокола" и поддержка протоколов Modbus RTU и ASCII поверх TCP.

Читать далее

MassTransit и очередь в базе данных

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.9K

MassTransit одна из самых популярных библиотек для построения асинхронного взаимодействия между сервисами в среде dotnet. Она активно развивается уже долгие годы, до сих пор остается под открытой лицензией и каждую версию добавляет новые фичи. Я построил уже не одно решение на ней и могу сказать, что по поддержке, качеству кодовой базы и “взрослости”, это один из лучших примеров в нашем dotnet сообществе.

Недавно в новой версии MassTransit вышла относительно свежая фича, SQL Transport, которая позволяет использовать базу данных вместо традиционных брокеров сообщений, при этом оставляя доступными тонну фичей работающих на традиционных брокерах. Ретраи, ределивери, роутинг, все продолжает работать. Такая обратная совместимость в теории позволяет легко заменять несложные конфигурации RabbitMQ на SQL Transport и обратно.

Я попробовал эту фичу, посмотрел на нее с разных сторон и сегодня хочу поделиться своими впечатлениями.

Читать далее

Как понять Unity3d, если ты .NET разработчик

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров12K

Ловили ли вы себя когда-нибудь на мысли, что, будучи C# .NET разработчиком, вы можете попробовать начать разрабатывать игры на Unity3d? Ведь язык используется тот же. А точно ли тот же? Точно ли код, написанный для .NET, может без проблем быть скопирован для выполнения в Unity3d приложении? Давайте в этом разберемся и поймем, какие дополнительные знания необходимы C# .NET разработчику, чтобы с комфортом разрабатывать игры.

Читать далее

GraphQL для C#. БД прилагается

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.7K

Приветствую, Хабр! Относительно недавно я решил влиться в С# и его технологию для создания веб-приложений ASP.NET. До этого писал в основном на С++ и Python с Django. Ну а так как я по жизни практик, то и чтоб чему-то научиться, надо что-то сделать, пусть и корявенькое (хотя пару книжек, конечно, прочитал). Выбор пал на стандартное приложение магазина книг, а точнее его бэк составляющую, ибо с дизайном и любыми, даже базовыми, проявлениями фронтовой части я не дружу от слова совсем)

Вначале сделал приложение с базовыми контролерами REST API по учебнику и т.д. Но после захотелось попробовать уже другой вариант, и я решил использовать GraphQL...

Читать далее

Вклад авторов