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

.NET *

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

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

Пожалуй, самый простой способ спасти ваше .NET-приложение, или Prometheus (и не только) спешит на помощь

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров2.8K
Существует множество возможных проблем приложений, которые удается заметить лишь с опозданием. Особенно когда релиз уже состоялся… К счастью, существует пара ключевых инструментов, которые выручают почти в любой ситуации, — и вряд ли найдется что-то проще.



Меня зовут Александр Пугач, я — Senior .NET Developer в проекте Data Warehouse «Лаборатории Касперского» (да-да, вы могли не знать, но у нас в компании широко используются .NET и «шарпы»).

В этой статье я расскажу, как работать с метриками в .NET на примере OpenTelemetry и Prometheus — систем, которые помогают отслеживать проблемы в работе приложений и быстро на них реагировать, обеспечивая стабильную и отказоустойчивую работу сервисов.

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

Читать дальше →
Всего голосов 28: ↑28 и ↓0+32
Комментарии1

Новости

Создание Framework для Go: Вдохновение от Laravel

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

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

Читать далее
Всего голосов 7: ↑5 и ↓2+8
Комментарии11

Слабоумие и отвага: Разработка игры Disciples 2 на Avalonia и WPF

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

Здравствуй, Хабр!

Поступая в университет на программиста, я мечтал стать разработчиком игр. Но жизненный путь привёл меня в десктоп на WPF (о чём я, на самом деле, не жалею). А в пет-проекте объединились опыт десктоп-разработчика и стремление писать игры. Так родился пингвинослон Disciples II на Avalonia и WPF.

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

Итак, Бетрезен умирает.

Читать далее
Всего голосов 46: ↑46 и ↓0+56
Комментарии18

14 конференций осени и 14 видеозаписей докладов

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

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

Кратко описали их все для Хабра, и каждой добавили по видеозаписи доклада — чтобы можно было не просто читать красивые слова, а сразу увидеть конкретику и заодно узнать что-то полезное.

Вот общий список, а дальше в посте — отдельно про каждую.

SmartData (инженерия данных)
DotNext (.NET)
Flow (системный и бизнес-анализ)
PiterPy (Python) 
VideoTech (видеотехнологии)
GoFunc (Go)
КаргоКульт (HR-практики)
Joker (Java)
Heisenbug (тестирование)
Mobius (мобильная разработка)
SafeCode (безопасность приложений) 
DevOops (девопс)
HolyJS (JavaScript)
I'ML (использование ML)

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Истории

Введение в RPA: Роботизация процессов глазами разработчика

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

RPA (Robotic Process Automation) — это технология, которая позволяет автоматизировать рутинные бизнес‑процессы с помощью программных роботов. Эти роботы выполняют повторяющиеся задачи, обычно выполняемые человеком, такие как ввод данных, обработка транзакций, генерация отчетов и другие аналогичные действия. RPA позволяет сократить время выполнения задач, повысить точность и снизить затраты на ручной труд.

Читать далее
Всего голосов 5: ↑2 и ↓3+1
Комментарии4

Как мы визитки в QR переводили

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

Привет, Хабр! Мы продуктовая команда разработки программных решений компании BIOCAD для бэк-офиса по направлению HR, PR и административно-сервисного управления!

BIOCAD — российская фармацевтическая компания, которая занимается производством лекарственных препаратов от рака, псориаза, рассеянного склероза и прочих заболеваний.

IT BIOCAD тесно взаимодействует с бизнес-подразделениями и подразделениями бэк-офиса, помогая в цифровизации и оптимизации процессов и пользовательского опыта как сотрудникам, так и клиентам. Наши коллеги уже рассказывали о некоторых кейсах в этих статьях:  

Задачи по автоматизации технологических процессов
Задачи, связанные с ML
Задачи валидации, согласно требованиям GxP

В этот раз мы хотим поделиться историей о реализации небольшого сервиса электронных QR-визиток.

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии2

Когда имён недостаточно. REST-клиент на F#. Часть 2. Методы

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

В прошлой части мы проецировали внешние контракты в DTO на примере REST. В этой будем проецировать методы контрактов в нечто, что позволит вызывать их вот так:

let! issues = gitflic.project.["kleidemos"].["myFirstProject"].issue.GET(limit = 24)

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

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

.NET на SBC максимально канонично

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

В интернетах всегда кто‑то не прав. В этот раз, по моему максимально предвзятому мнению, оказался не прав @bodyawm. Для меня.NET в каждой бочке затычка, поэтому меня бобмануло от использования mono в 2024 году. В этой статье я покажу своё видение того, как максимально канонично и современно писать на.NET для GNU/Linux и SBC (Single‑board computer, aka одноплатник).

Читать далее
Всего голосов 43: ↑43 и ↓0+60
Комментарии8

Орфография в 1С через COM на C#

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

Всем привет, недавно столкнулся с задачей проверки орфографии и исправления опечаток в 1С. Посмотрев варианты решений (MS Word, Yandex, т.д.), понял, что они мне не подходят. Решил копнуть глубже. Лично мне понравилось решение на базе спелчекера, встроенного в Windows. Поскольку в 1С нет возможности напрямую обратиться к этому функционалу ОС, я реализовал его в виде DLL на языке C# и сделал COM‑обертку. COM‑объект подключил в 1С.

В итоге получилась вот такая простая форма, на которой при нажатии кнопки «Проверить опечатки» текст в Строке ввода анализируется и исправляется.

Читать далее
Всего голосов 7: ↑3 и ↓4+1
Комментарии46

Организация игровых данных на примере игры Mind Over Magic

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

Mind Over Magic — это симуляционная игра, разработанная Sparkypants и изданная Klei Publishing.

Игра включает строительство, ресеч, исследование мира и пошаговые бои, что делает её отличным примером для обсуждения организации игровых данных.

Узнать что там внутри
Всего голосов 9: ↑7 и ↓2+7
Комментарии6

Как я улучшил производительность JSON-парсера в два раза

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0+21
Комментарии17

Как принудительно уронить MS SQL Server чтобы он ушёл на перезагрузку

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

При чтении логов из базы данных, а именно, из LDF данных, в большинстве случаев вы наткнётесь на такие функции в запросе sys.fn_dblog(null, null), sys.fn_dblog_xtp(null, null)

Читать из LDF Вы захотите по различным причинам, но так или иначе основная проблема будет «у нас откуда‑то списались деньги остатки, пропал товар, упал прод, разберитесь».

Допустим, Вы захотите воскресить удалённый, дропнутый объект из базы.

Типичный скрипт

Посмотреть код
Всего голосов 9: ↑5 и ↓4+4
Комментарии1

Сам написал, сам полетал: как и зачем я разработал 3D-игру с нуля под компьютеры из 90-х в 2024 году?

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


Осторожно: Несмотря на кажущуюся сложность статьи о разработке целой 3D-игры с нуля, я постарался систематизировать и упростить материал так, чтобы понятно было любому заинтересованному читателю, даже если вы далеки от программирования в целом!

Статьи о разработке инди-игр — это всегда интересно. Но разработка чего-то абсолютно с нуля, без каких-либо движков или фреймворков — ещё интереснее! Почти всю свою жизнь, буквально с 13-14 лет меня тянет пилить какие-нибудь прикольные 3D-демки и игрушки. Ещё на первом курсе ПТУ я написал небольшую демку с 3D-вертолетиками по сети и идея запилить какие-нибудь прикольные леталки не покидала меня по сей день! Спустя 6 лет, в 22 года я собрался с силами и решил написать небольшую аркадную демку про баталии на самолетиках, да так, чтобы работало аж на видеокартах из 90-х — NVidia Riva 128 и 3DFX Voodoo 3! Интересно, как происходит процесс разработки игры с нуля — от первого «тридэ» треугольника, до работающей на реальном железе демки? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 78: ↑77 и ↓1+100
Комментарии30

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

«Некрасивое» получение TCP-статистики существующего сетевого соединения в desktop-приложении .NET для Windows

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

Некоторое время назад у одного из клиентов начало сбоить desktop‑приложение, в разработке которого я участвовал. Проблему локализовать не получалось очень долго — в том числе потому, что она никак не воспроизводилась на компьютерах и разработчиков, и тестировщиков.

И лишь спустя время один опытный член нашей команды, вооружившись Wireshark, обнаружил, что у клиента есть проблемы с локальной сетью. После имитации потери пакетов внутри нашей сети, мы смогли локализовать проблему.

Эта заметка о том, как без использования Wireshark добавить в приложение.NET Framework /.NET 5+ для Windows код получения статистики TCP‑соединения (количество перезапрошенных (retransmitted) и переупорядоченных (reordered) байт, а также некоторую другую информацию).

Вполне вероятно, эти данные пригодятся и вам — если вы используете долгоживущие или «бесконечные» TCP‑соединения (по типу Twitter Streaming API).

Итак, приступим!

Читать далее
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Первый взгляд на переход с Xamarin Native на Flutter

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

Привет! Меня зовут Егор, сейчас я работаю в компании DD Planet, а разработкой мобильных приложений я занимаюсь уже более двух лет. В этой статье хочу поделиться своим опытом перехода с Xamarin Native на Flutter. Постараюсь сравнить два фреймворка с точки зрения личного опыта, расскажу о своих старых заблуждениях касательно декларативных фреймворков, которые развенчал опыт работы с Flutter, а в конце статьи порассуждаю о своем идеальном мобильном фреймворке мечты.

Читать далее
Всего голосов 13: ↑13 и ↓0+16
Комментарии21

Применение Identity Server 4 в распределенном монолите

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

Некоторое время назад перед нами возникла задача разграничения прав доступа к ресурсам, то есть задача аутентификации и управления аутентификацией. Поскольку архитектура основных проектов представляла нечто похожее на распределенный монолит, мы решили остановиться на Identity Server.

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии12

От первокурсника до программиста: история 4 лет обучения в ВУЗе на программиста

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

В этом году я окончил бакалавриат “Прикладная информатика: в экономике”. Поэтому пока память свежая, хотел предоставить небольшую выжимку из 4 лет моего обучения.

Первый год, как и у всех, у нас преподавались общие предметы, такие как философия, русский язык, история, информатика, математика и логика. Всё это меня раздражало, но сейчас я понимаю, что эти предметы были полезными и не принесли никакого вреда. На информатике учились работать с Word и Excel. В начале мне это также не очень нравилось. Сидим, учим офисные программы, а ведь я сюда шел, чтобы учиться прогать. Однако со временем я осознал, что, хоть это и было неинтересно, умение работать с ними пригодилось на следующих курсах.

2 курс

Во втором курсе довольно много было предметов связанных с ...

Читать далее
Всего голосов 78: ↑63 и ↓15+54
Комментарии132

.NET Digest #1

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

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

Читать далее
Всего голосов 31: ↑31 и ↓0+35
Комментарии11

Как стать C#-разработчиком бесплатно? Программа обучения с нуля

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

Если вбить слово «С# разработка» в поисковую строку, можно найти огромное количество курсов по данному направлению. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей.

Чтобы разбавить засилие платных курсов, мы подготовили для вас программу обучения «C#-разработчик с нуля», которая состоит только из бесплатных материалов.

Читать далее
Всего голосов 40: ↑25 и ↓15+11
Комментарии14

Эволюция сервиса классификации

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

Привет, Хабр. Меня зовут Аделина Ямалтдинова, я разработчик технологического сервиса «Классификатор» — одной из частей платформы «Преферентум».

Как вы могли догадаться из названия, сервис нужен для классификации неструктурированной информации — документов, заявок, звонков и т. д. Он применяется для маршрутизации обращений на горячую линию, сортировки входящих документов в СЭД, тематической классификации, выявления негативных отзывов, определения типа и контроля комплектности документации и т. п. Таким образом, «Классификатор» упрощает переход компаний к интеллектуальной автоматизации различных бизнес‑процессов, обогащая используемые системы ИИ.

В статье я расскажу об устройстве нашего «Классификатора» и о том, как мы его улучшаем.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии0
1
23 ...

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

Работа

.NET разработчик
57 вакансий