В интернетах всегда кто-то не прав. В этот раз, по моему максимально предвзятому мнению, оказался не прав @bodyawm.
Для меня .NET в каждой бочке затычка, поэтому меня бобмануло от использования mono в 2024 году. В этой статье я покажу своё видение того, как максимально канонично и современно писать на .NET для GNU/Linux и SBC (Single-board computer, aka одноплатник).
.NET *
Хаб со знаниями про .NET
Новости
Орфография в 1С через COM на C#
Всем привет, недавно столкнулся с задачей проверки орфографии и исправления опечаток в 1С. Посмотрев варианты решений (MS Word, Yandex, т.д.), понял, что они мне не подходят. Решил копнуть глубже. Лично мне понравилось решение на базе спелчекера, встроенного в Windows. Поскольку в 1С нет возможности напрямую обратиться к этому функционалу ОС, я реализовал его в виде DLL на языке C# и сделал COM-обертку. COM-объект подключил в 1С.
В итоге получилась вот такая простая форма, на которой при нажатии кнопки “Проверить опечатки” текст в Строке ввода анализируется и исправляется.
Организация игровых данных на примере игры Mind Over Magic
Mind Over Magic — это симуляционная игра, разработанная Sparkypants и изданная Klei Publishing.
Игра включает строительство, ресеч, исследование мира и пошаговые бои, что делает её отличным примером для обсуждения организации игровых данных.
Как я улучшил производительность JSON-парсера в два раза
Во время разработки игр объем данных, обрабатываемых игрой, увеличивается. Художники создают новые ресурсы, программисты пишут код, а геймдизайнеры добавляют больше конфигураций и настроек в игру. Когда размер этих конфигураций превышает десятки мегабайт, производительность даже самых тривиальных компонентов, таких как JSON-парсер конфигураций, становится критичной.
Как принудительно уронить MS SQL Server чтобы он ушёл на перезагрузку
При чтении логов из базы данных, а именно, из LDF данных, в большинстве случаев вы наткнётесь на такие функции в запросе sys.fn_dblog(null, null), sys.fn_dblog_xtp(null, null)
Читать из LDF Вы захотите по различным причинам, но так или иначе основная проблема будет «у нас откуда‑то списались деньги остатки, пропал товар, упал прод, разберитесь».
Допустим, Вы захотите воскресить удалённый, дропнутый объект из базы.
Типичный скрипт
Сам написал, сам полетал: как и зачем я разработал 3D-игру с нуля под компьютеры из 90-х в 2024 году?
Осторожно: Несмотря на кажущуюся сложность статьи о разработке целой 3D-игры с нуля, я постарался систематизировать и упростить материал так, чтобы понятно было любому заинтересованному читателю, даже если вы далеки от программирования в целом!
Статьи о разработке инди-игр — это всегда интересно. Но разработка чего-то абсолютно с нуля, без каких-либо движков или фреймворков — ещё интереснее! Почти всю свою жизнь, буквально с 13-14 лет меня тянет пилить какие-нибудь прикольные 3D-демки и игрушки. Ещё на первом курсе ПТУ я написал небольшую демку с 3D-вертолетиками по сети и идея запилить какие-нибудь прикольные леталки не покидала меня по сей день! Спустя 6 лет, в 22 года я собрался с силами и решил написать небольшую аркадную демку про баталии на самолетиках, да так, чтобы работало аж на видеокартах из 90-х — NVidia Riva 128 и 3DFX Voodoo 3! Интересно, как происходит процесс разработки игры с нуля — от первого «тридэ» треугольника, до работающей на реальном железе демки? Тогда добро пожаловать под кат!
«Некрасивое» получение TCP-статистики существующего сетевого соединения в desktop-приложении .NET для Windows
Некоторое время назад у одного из клиентов начало сбоить desktop‑приложение, в разработке которого я участвовал. Проблему локализовать не получалось очень долго — в том числе потому, что она никак не воспроизводилась на компьютерах и разработчиков, и тестировщиков.
И лишь спустя время один опытный член нашей команды, вооружившись Wireshark, обнаружил, что у клиента есть проблемы с локальной сетью. После имитации потери пакетов внутри нашей сети, мы смогли локализовать проблему.
Эта заметка о том, как без использования Wireshark добавить в приложение.NET Framework /.NET 5+ для Windows код получения статистики TCP‑соединения (количество перезапрошенных (retransmitted) и переупорядоченных (reordered) байт, а также некоторую другую информацию).
Вполне вероятно, эти данные пригодятся и вам — если вы используете долгоживущие или «бесконечные» TCP‑соединения (по типу Twitter Streaming API).
Итак, приступим!
Первый взгляд на переход с Xamarin Native на Flutter
Привет! Меня зовут Егор, сейчас я работаю в компании DD Planet, а разработкой мобильных приложений я занимаюсь уже более двух лет. В этой статье хочу поделиться своим опытом перехода с Xamarin Native на Flutter. Постараюсь сравнить два фреймворка с точки зрения личного опыта, расскажу о своих старых заблуждениях касательно декларативных фреймворков, которые развенчал опыт работы с Flutter, а в конце статьи порассуждаю о своем идеальном мобильном фреймворке мечты.
Применение Identity Server 4 в распределенном монолите
Некоторое время назад перед нами возникла задача разграничения прав доступа к ресурсам, то есть задача аутентификации и управления аутентификацией. Поскольку архитектура основных проектов представляла нечто похожее на распределенный монолит, мы решили остановиться на Identity Server.
От первокурсника до программиста: история 4 лет обучения в ВУЗе на программиста
В этом году я окончил бакалавриат “Прикладная информатика: в экономике”. Поэтому пока память свежая, хотел предоставить небольшую выжимку из 4 лет моего обучения.
Первый год, как и у всех, у нас преподавались общие предметы, такие как философия, русский язык, история, информатика, математика и логика. Всё это меня раздражало, но сейчас я понимаю, что эти предметы были полезными и не принесли никакого вреда. На информатике учились работать с Word и Excel. В начале мне это также не очень нравилось. Сидим, учим офисные программы, а ведь я сюда шел, чтобы учиться прогать. Однако со временем я осознал, что, хоть это и было неинтересно, умение работать с ними пригодилось на следующих курсах.
2 курс
Во втором курсе довольно много было предметов связанных с ...
.NET Digest #1
Добро пожаловать на первый выпуск нашего дайджеста, посвященного новостям и событиям в мире .NET! Команда C# разработчиков из PVS-Studio собрала для вас самые интересные и полезные материалы, чтобы держать вас в курсе последних тенденций и разработок. Поехали!
Как стать C#-разработчиком бесплатно? Программа обучения с нуля
Если вбить слово «С# разработка» в поисковую строку, можно найти огромное количество курсов по данному направлению. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей.
Чтобы разбавить засилие платных курсов, мы подготовили для вас программу обучения «C#-разработчик с нуля», которая состоит только из бесплатных материалов.
Эволюция сервиса классификации
Привет, Хабр. Меня зовут Аделина Ямалтдинова, я разработчик технологического сервиса «Классификатор» — одной из частей платформы «Преферентум».
Как вы могли догадаться из названия, сервис нужен для классификации неструктурированной информации — документов, заявок, звонков и т. д. Он применяется для маршрутизации обращений на горячую линию, сортировки входящих документов в СЭД, тематической классификации, выявления негативных отзывов, определения типа и контроля комплектности документации и т. п. Таким образом, «Классификатор» упрощает переход компаний к интеллектуальной автоматизации различных бизнес‑процессов, обогащая используемые системы ИИ.
В статье я расскажу об устройстве нашего «Классификатора» и о том, как мы его улучшаем.
Ближайшие события
Библиотека EremexControls.NET для Avalonia UI — Обновление май-июнь 2024
Наконец это свершилось. Сегодня мы официально выпускаем первую версию наших контролов для Avalonia UI, которые получили немало важных изменений с момента публикации предыдущей статьи.
Три недели кодирования экономят два дня проектирования
Когда я был юн, я ненавидел архитектурное проектирование и документацию, и считал единым источником правды код. Если вы знакомы с мемом в заголовке статьи, то конечно же знаете, к чему это привело меня в конечном счете.
Эта история про то, как я пришел к необходимости процесса обязательного технического анализа по задачам для программистов.
Глубокое погружение в CancellationToken: эффективное управление отменой в .NET
Привет, Хабр! Меня зовут Давид, я C#-разработчик в SimbirSoft. В современном программировании эффективное управление ресурсами и контроль за выполнением задач становятся ключевыми аспектами для создания надежных и масштабируемых приложений. В C# одним из важнейших инструментов в для достижения этих целей является механизм Cancellation Token. Эта концепция позволяет разработчикам изящно и безопасно управлять долгосрочными или ресурсоемкими операциями, обеспечивая возможность их отмены по требованию.
В этой статье мы погрузимся в мир Cancellation Token в C#, исследуя его роль, принципы работы и практическое применение. Мы обсудим, как эта технология позволяет разработчикам улучшить производительность и надежность их приложений, а также — как избежать распространенных ошибок при работе с асинхронными операциями. Подробно рассмотрим примеры кода, демонстрирующие использование Cancellation Token в различных сценариях, что сделает наше обсуждение не только теоретически насыщенным, но и довольно практичным для программистов любого уровня.
.NET: итерируемую в foreach коллекцию изменять нельзя. Или…
Сегодня поговорим о неочевидной особенности некоторых коллекций в .NET. Долго вокруг да около ходить не будем и начнём с задачки на самопроверку.
Управление секретами IT-инфраструктуры
Хай, даров всем! Недавно защитил свой диплом по разработке системы для управления корпоративными секретами. В честь этого хотел представить небольшую выжимку из моей работы.
Что вы получите от статьи?
В статье будет показан практический пример применения шифрования и комбинацией разных видов шифрования. Также вы узнаете базовые принципы работы цифровой подписи и криптографии. Ссылка на исходный код проекта доступна в конце статьи.
Зачем это нужно?
У компании, в которой я проходил практику, есть около 60 веб-сервисов и приложений, которые продолжают улучшаться и поддерживаться. У каждого сервиса есть в среднем около 15-20 секретов, например: логин и пароль от админки, API-ключи, строки подключения к БД, ключи шифрования и т.д. Обычно они хранятся в специальных файлах конфигурации проекта (appsettings.json) либо прямо в коде. Управлять ими в таком формате, когда они разбросаны по разным репозиториям и файлам, проблематично. Под "управлять" я имею в виду такие действия, как получение и периодическое обновление секретов. Передаются эти секреты между разработчиками обычно через мессенджеры, что приводит к их расползанию.
Для решения этих проблем и что бы сдать этот диплом, я сделал свой сервис для управления секретами.
Подборка докладов по С# 2023-2024
Недавно мы публиковали подборку докладов по C++, но не будем же мы обделять и C# разработчиков. Поэтому предлагаем вашему вниманию интересные доклады из мира .NET и C#.
Proton Mail в командной строке: пошаговая инструкция
Привет, Хабр!
В этом посте мы расскажем, как подключить учетную запись Proton Mail в Eppie CLI — консольный клиент Eppie.
Proton Mail использует при аутентификации протокол Secure Remote Password (SRP) — обычные почтовые клиенты его не поддерживают. В Eppie SRP реализован (мы об этом уже рассказывали здесь), попробовать можно уже сейчас, если скачать наше CLI приложение. Вся настройка займет минуту.
Прежде чем мы начнем, возможно, вам захочется узнать больше об Eppie. Это наш GitHub. Кое-что можно почитать и здесь, на Хабре. А теперь к делу.
Вклад авторов
sidristij 3013.4XaocCPS 1863.6sahsAGU 1303.2olegchir 1250.6mezastel 1199.6SergVasiliev 1159.0SergeyT 1140.6phillennium 1062.6marshinov 888.2chernikov 822.0