Обновить
103.01

C# *

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

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

Запускаем .NET на RISC-V и разрабатываем IoT приложение для Sipeed Lichee RV

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели3.8K
.NET nanoFramework Weatherstation

До недавнего времени разрабатывать IoT приложения на C# можно было только для компьютеров построенных на архитектуре ARM или x86. Поддержка RISC-V процессоров для платформы .NET уже давно в стадии разработки. В начале этого года был представлен не официальный .NET 8.0 SDK, который уже сейчас вы сможете запустить на RISC-V процессоре под ОС Debian/Ubuntu. В качестве платформы запуска возьмем одноплатный компьютер Sipeed Lichee RV на RISC-V процессоре Allwinner D1 (ядро Alibaba/T-Head Xuantie C906 RISC-V). В первой части поста рассмотрим установку .NET 8.0 SDK на Sipeed Lichee RV. Во второй, запустим приложение для работы с контактами GPIO и датчиком BME280 для замера температуры, влажности и давления.
Читать дальше →

Как создать приложение на C# с использованием приложения на Python

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

Интеграция скриптов Python в приложение на C# позволяет использовать обширные библиотеки Python, сохраняя при этом возможности C#. Этот гайд предоставляет пошаговое руководство по созданию приложения на C#, которое вызывает скрипт Python, использует виртуальное окружение для зависимостей Python и измеряет время выполнения скрипта.

Читать далее

Настоящий эффект параллакса

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

Parallax 3D

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

Читать далее

CLI для Eppie — p2p почта в командной строке

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

Если вы любите децентрализованные технологии и консольные клиенты электронной почты, у нас для вас новость. Вышла альфа версия Eppie-CLI — официального консольного клиента для Eppie. GitHub репозиторий здесь.

Читать далее

Garnet. Хранит ли баги кэш-хранилище от Microsoft?

Время на прочтение9 мин
Охват и читатели3.4K

Microsoft представили Garnet — проект кроссплатформенного быстрого кэш-хранилища с открытым исходным кодом, написанный на языке C#. Предлагаю расчехлить статический анализатор и посмотреть, какие ошибки и странности содержатся в исходном коде проекта.

Читать далее

Delta-Rle-Huffman (DRH) Texture Format

Время на прочтение8 мин
Охват и читатели5K

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

Внимание! В статье много картинок.

Кому интересно, добро пожаловать под кат!

Пример деплоя Web-приложения на C# Mono на хостинг

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

Для развертывания на сервере мы применим GitOps подход. 

Чтобы развернуть приложение, выполним следующие шаги:

1. Напишем приложение
2. Создадим конфигурационный файл
3. Выгрузим все файлы (можно через git, а можно через интерфейс) на сервер и запустим сборку. 

Рассмотрим процесс подробнее.

Читать далее

Работа с XML в C#

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

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

Обработка XML-данных остаётся актуальной задачей несмотря на появление более крутых технологий для работы с данными. XML — это все еще гибкий и мощный инструмент для структурирования данных, который используется в самых разнообразных приложениях.

В статье рассмотрим как работать с XML в C#.

Читать далее

История создания моей первой игры на Unity

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

Доброго времени суток, дорогие читатели, меня зовут Илья и я начинающий инди разработчик. Я впервые пишу статью и тем более впервые на тему разработки игр. В ней я хочу поделиться своим опытом создания простенького, но душевного раннера наподобие Динозаврика из Хрома.

Читать далее

Pet проект. Разделитель PDF документов

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели7.4K

Привет, молодые успешные!

Как часто вы работаете с PDF документами? Случалось ли вам сталкиваться с проблемой монолитности этого формата? Я часто сталкивался с такой проблемой, когда мне требовалось лишь несколько листов из всего документа, например чтобы отправить их по почте. Да можно воспользоваться бесплатными онлайн сервисами которых полно в интернете...

Читать далее

Прочитал книгу по C# или что написал Рома Сакутин

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели48K

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

Тогда многие последовали за ним, начали применять практики которые он пропагандировал и в целом, доверять его слову.

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

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

Читать далее

Реверс-инжиниринг нативно скомпилированных .NET-приложений

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели8.1K


Изучение внутреннего устройства приложений, созданных с использованием нативной опережающей компиляции (AOT).


На платформе .NET 7 впервые была представлена новая модель развертывания: опережающая нативная компиляция. Когда приложение .NET компилируется нативно по методу AOT, оно превращается в автономный нативный исполняемый файл, оснащённый собственной минимальной средой исполнения для управления выполнением кода.
Читать дальше →

Разбираемся с паттерном REPR в ASP.NET Core

Время на прочтение6 мин
Охват и читатели6K

В этой статье мы рассмотрим паттерн проектирования REPR (request‑endpoint‑response — «запрос‑конечная_точка‑ответ»), как он упрощает разработку API и как его можно реализовать на C#.

Читать далее

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

Сравнение Vosk и Whisper

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

Доброго времени суток Хабр. Меня зовут Андрей, я занимаюсь разработкой на C# и сегодня я предлагаю сравнить Whipser и Vosk.

Читать далее

Написал книгу по C#

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

6 лет писал томными вечерами книгу по программированию. Рассказываю как собрал на неё деньги, с какими сложностями столкнулся и почему каждому разработчику стоит это сделать.

Читать далее

Хостинг приложения Asp.Net Core Blazor c БД PostgreSQL на сервер через git push

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

В этой статье мы рассмотрим, как развернуть на сервере Asp.Net приложение. Подключим его к PostgreSQL и сделаем так, чтобы доставка обновлений осуществлялась через простое обновление кода в Git-репозитории.

Читать далее

Парсинг математических выражений AngouriMath, DynamicExpresso и MathExpressionEval

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

Пожалуй большинство программистов так или иначе сталкивались с с++. Как и я большинство таких людей начинали познавать с++ через его великого основателя Бьярне Страуструпа. Одна из его энциклопедий по с++ начиналась с калькулятора. С подобной задачей написания калькулятора для расчета выражений нам довелось столкнуться в рамках одного из спринтов только уже на c#. (AngouriMath, DynamicExpresso, MathExpressionEval)

Читать далее

Что учесть если используешь SignalR и захочешь масштабировать .Net-приложение?

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

Все мы любим «магию», которую дает нам такой инструмент как SignalR и с удовольствием внедряем это в проекты.

Конечно, кто откажется от динамики, мгновенного отклика на действия и мигающих иконочек с подписью «что же делает система в данный момент и не стоит ли перезагрузить страницу чтобы клацнуть ее еще раз?» ?

Однако и тут есть пара подводных камней, с которым я с командой столкнулся на продакшне...

Читать далее

Как потреблять API с ограничением по RPS в .NET приложениях

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


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

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

Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.
Читать дальше →

Сравнение сборщиков мусора в Unity и .NET

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

В этой статье я хотел бы рассказать о различиях между сборкой мусора в Unity (IL2CPP) и .NET. Несмотря на то что IL2CPP существует более 10 лет, я до сих пор встречаю недоумение, когда беседа заходит на тему Garbage Collector (GC) касательно Unity. Считать реализацию GC в .NET, ровно как и в JVM, единственным существующим решением — не верно. А тем более принимать такую реализации как "по умолчанию" используемую в Unity — есть заблуждение. Надеюсь эта статья будет полезной, даст верное понимание и устранит заблуждения. Ну а в конце статьи затронем грядущие серьезные изменения в Unity.

Читать далее

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