Как стать автором
Обновить
64.9

.NET *

Хаб со знаниями про .NET

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

Kakikata Shogun AI: Telegram-бот для изучения американского английского — и отличный pet-проект для стажёра

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

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

Сегодня я хочу рассказать о создании простого, но полезного пет-проекта — Telegram-бота, который помогает пользователям улучшать их английский с помощью GPT-4. Проект отлично подойдет для начинающих разработчиков, так как использует современный стек технологий и имеет понятную архитектуру.

Читать далее

Новости

Ядерная подсветка для механической видеостены

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

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

Осторожно, ТРАФИК!

Многопоточность. Снизу вверх. Потоки в языке C#

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

Привет, Хабр! Это Дмитрий Бахтенков. Добро пожаловать в третью часть цикла статей «Многопоточность. Снизу вверх»! Мы уже разобрали процессор и операционную систему, а сегодня поговорим про использование потоков в .NET с помощью языка программирования C#.

Эта статья — обзор основных возможностей взаимодействия с потоками в .NET.

Читать далее

Как создать документ Word на C# с использованием бесплатного API

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

Обзор

Создание документов Word программно может стать мощным инструментом для автоматизации отчетов, генерации счетов-фактур или динамического производства любого письменного контента. В этой статье мы рассмотрим, как создать документ Word с использованием бесплатного API Spire.Doc for .NET. Этот API позволяет разработчикам легко управлять созданием, форматированием и манипуляцией документами.

Читать далее

Истории

Событийный диспетчер отложенных задач на C#: консолидация и дедупликация данных в текущей инстанции

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

Всем привет, меня зовут Артур Богданов. Я занимаюсь проектированием, разработкой и оптимизацией высоконагруженных веб-приложений на ASP.NET Core.

Хочу поделиться с сообществом своей разработкой, которая позволяет использовать несколько фоновых задач (или «раннеров») для отложенной обработки консолидированных данных. Раннеры построены на шаблоне PubSub для асинхронного ожидания новых задач, что делает этот подход более реактивным, но менее ресурсоемким.

Читать далее

Отбитый дотнет

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

Поскольку прошлая статья про «особенную» Java вызвала интерес, мы решили продолжить праздник. Настало время познакомить разработчиков С# с темной стороной любимой технологии — сегодня шатаем .NET!

Читать далее

Как мы улучшили скорость работы табличных контролов библиотеки EMX Controls для Avalonia UI

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

В последнем обновлении нашей кроссплатформенной библиотеки EMX Controls для Avalonia UI мы существенно повысили производительность контролов DataGrid и TreeList. Время создания и отрисовки улучшилось почти в 3 раза, а скорость скроллинга - более чем в 2 раза. В этой статье мы приведем конкретные цифры и подробнее остановимся на подходах, которые позволили нам добиться таких результатов.

Читать далее

Виджет CDEK с бэкендом на .NET

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

Всем привет. Некоторое время назад стояла задача интегрировать виджет CDEK в сайт на .NET. Код виджета доступен на github: фронт (ts) + бэкенд (php). При переносе на .NET с фронтом проблем нет. Кроме того, есть готовый скрипт, который можно подключить с cdn. Но при этом есть существенное ограничение для бэкенда: данный скрипт работает только с php.

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

Читать далее

C#: использование Unit test с Apache Ignite

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

Привет всем! Меня зовут Артём, я работаю в t2 разработчиком .Net и по собственному опыту знаю, что одним из ключевых показателей качества кода является покрытие кода тестами. В этой статье поговорим конкретно о Unit-тестах и разберёмся, как покрыть юнит тестами код, имеющий зависимости от внешнего ресурса со статическими методами.

Интересно? Пойдём под кат!

OpenCV на С# (OpenCVSharp)

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

Вероятно после прочтения заголовка у многих возникнет вопрос как OpenCV связан с C#, почему не python? На самом деле ответ простой, потому что нет такого опыта программирования на python, а потребность в OpenCV возникла. OpenCV - прекрасная библиотека для обработки изображений. А OpenCVSharp - это оболочка .NET для библиотеки компьютерного зрения OpenCV, которая позволяет нам с комфортом использовать её из приложения .NET на Windows, Linux или других OS.

Для начала вспомним о том, что изображение в коде выглядит как набор двухмерных матриц яркостей палитры RGB. Всегда возникает вопрос, как с этим работать? Библиотека OpenCV предоставляет прекрасные возможности для обработки изображений, а также покадровой обработки видео. 

Читать далее

Разрабатываем печать документов на .NET с помощью OpenXml. Часть 1

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

В жизни многих программных проектов наступает момент реализации требования о функциональности печати. Пользователям системы часто нужно получить свои бизнес-данные в файле одного из привычных форматов (.docx/.xlsx/.pdf, нужное подчеркнуть), чтобы дальше этот файл распечатать, отправить на согласование, передать в интегрируемые системы, или все вместе. Иногда — и мы в своих проектах с этим сталкивались — для пользователя отображение данных в документе даже важнее, чем на экране в приложении, и, как следствие, внимание к правильности данных при печати в документ более пристальное, чем при выводе в UI. Структура документа в таких случаях, как правило, регламентирована некоторым шаблоном.

Так какими же инструментами воспользоваться, чтобы покрыть требования печати документов?

Читать далее

Мои правила

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

Можно считать эту статью второй частью в неком цикле про мои принципы в работе. В первой части я писал про какие-то неважные для меня вещи на примере code-style. Теперь логично рассказать о том, что для меня важно, про некоторые правила, которые помогают мне в работе. Это не только про написание кода, но и про процесс разработки в целом.

Читать далее

Графический переполох: что таит в себе ScottPlot?

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

ScottPlot — библиотека под .NET для построения графиков. Из-за специфики подобных проектов их код нередко бывает запутанным. Сегодня мы попробуем распутать его и отыскать проблемные места с помощью статического анализатора

Читать далее

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

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
8 апреля
Конференция TEAMLY WORK MANAGEMENT 2025
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область

Не только для «обхода». Что такое Http Upgrade и как его использовать в .NET

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

Недавно на Хабре вышел обзор того-о-чём-не-стоит-говорить-в-этом-блоге. И, в числе прочих способов того-о-чём-не-стоит-говорить, автор упомянул использование «транспорта HttpUpgrade».

Так как я использую заголовок Upgrade на практике, меня смутило, что в поиске в русскоязычном сегменте интернета найти корректное описание механизма непросто. Конечно, метод является достаточно редко используемым «вчистую» (то есть не в паре с протоколом WebSocket), но тем не менее.

Статья может пригодиться всем, кому требуется создать полнодуплексное tcp-соединение (то есть такое соединение, в котором и читать данные, и писать их могут и клиент, и сервер, причем в любой момент времени жизни соединения).

Я расскажу о том, что есть «HttpUpgrade», как наш ЦК использует его для создания соединения, по которому клиент и сервер могут обмениваться пакетами: клиент запрашивает видео, а сервер передаёт клиенту пакеты. Ну и разумеется, поделюсь кодом клиента и сервера, создающим между собой «апгрейднутое» соединение в .NET 8.

Меня зовут Андриевский Леонид, я тимлид команды .NET в ЦК Видеонаблюдения Ростелеком. Давайте приступим!

Читать далее

Как красиво «завернуть» devops-пайплайн и не сгореть на проде

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

Привет, Хабр! Меня зовут Максим Бочкарев, в IT я с 2005 года и сейчас руковожу devops-направлением в компании ЕВРАЗ. За эти годы я успел повидать множество граблей, на которые мы наступали, пытаясь построить нормальную систему CI/CD. И сегодня хочу рассказать, как мы прошли путь от «кустарного производства» пайплайнов к промышленным масштабам, не потеряв по дороге ни одного девопса и не спалив продакшен.

Читать далее

Педагогика на роботах: может ли помочь RPA в обучении программированию?

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

Привет! Я Кирилл Пронин, разработчик PIX RPA из PIX Robotics. А еще я семь лет преподавал основы программирования детям в частных технопарках в рамках дополнительного профессионального образования, а также студентам колледжей и вузов. Чтобы завлечь детей (и упростить работу себе — но об этом чуть позже) я стал внедрять программных роботов в процесс обучения. И понял, что RPA — отличная платформа для старта в разработке. Любой. Но обо всем по порядку. Здесь я расскажу, как продукт по написанию программных роботов может сделать обучение более эффективным и увлекательным, а также проанализируем, какие педагогические методы могут быть адаптированы для работы с RPA. Кроме того, я расскажу о собственном опыте внедрения этих технологий в образовательный процесс и дам несколько полезных советов, которые, надеюсь, помогут вам в вашей практике!

Читать далее

.NET Digest #6

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

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

Читать далее

Переезд с TeamCity на GitLab CI + K8s

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

Привет, Хабр! Меня зовут Даниил Мильков, я старший C# разработчик. Сразу хочу предупредить читателей, что про взаимодействие с k8s здесь сказано достаточно мало, разве что в разделе Kubernetes и PVC. На эту тему будет отдельная статья.

Начнём. Однажды наша команда решила перейти с TeamCity на GitLab CI…

Читать далее

Moq: пара фич для упрощения тестов, о которых знают не все

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

Пишете unit-тесты в .NET? Значит, скорее всего, пользуетесь Moq. На первый взгляд, это простой и легковесный фреймворк, про который все всё знают.

Но знаете ли вы, как сделать ваши тесты проще? В этой статье я расскажу о нескольких фичах Moq, которые помогут сделать ваши тесты чище, лаконичнее и удобнее для сопровождения. Погнали!

Читать далее

Copy-paste на большом экране: разбор ошибок и странных мест Radarr

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

Писать одно и то же — невероятно муторное занятие! Поэтому программисты регулярно используют copy-paste, но, помимо экономии времени, также растет и количество ошибок. Чтобы в этом убедиться, мы разберём ошибки и странные места проекта Radarr.

Читать далее
1
23 ...