Обновить
89.61

C# *

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

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

Entity Framework c Code-First миграциями для .NET MAUI

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

Если вы, как и я, уже являетесь большим поклонником Microsoft Entity Framework и хотели бы начать использовать его локально в своем мобильном приложении, с появлением .Net Maui на рынке, это стало возможным.

Небольшое замечание: для ускорения времени запуска мобильного приложения может быть лучше хранить данные, используемые во время загрузки, в локальном хранилище мобильного устройства в форме json. Но, когда дело дойдет до работы с большими локальными данными, использования фильтров, сортировки и т. д., EF определенно подойдет идеально.

Цель этой статьи — помочь избежать хлопот, связанных с поиском различных решений небольших проблем при реализации production-ready мобильной локальной базы данных и создании для нее миграций на компьютерах Windows и Mac. Исходный код примера приложения доступен по ссылке, указанной в конце. Как вы сможете увидеть, это будет типовой шаблон приложения Maui с добавленной логикой базы данных EF.

Развернуть

Как использовать функции столкновений в Unity: OnCollisionEnter/Stay/Exit, OnTriggerEnter…

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

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

В этой статье разбирается, как работать со столкновениями в Unity, как ловить и обрабатывать их в коде.

Читать далее

Дельта компрессия и квантизация объектов в C#

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

Cтатья затрагивает тему сериализации данных, которые передаются по unreliable каналам.

В первую очередь это касается реалтайм игр, которые критичны к сетевым задержкам, имеют активное общение клиента и сервера, например, 10 - 60 раз в секунду и используют UDP протокол.

В статье вы узнаете, как с помощью дельта компрессии и квантизации можно уменьшить размер объектов и, тем самым, уменьшить размер сериализованных данных. Попутно мы познакомимся с библиотекой для битовой сериализации данных NetCode.

Читать далее

PVS-Studio научился анализировать Blazor компоненты

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

Всем привет. Перед вами небольшая статья о добавлении анализа Blazor компонентов в PVS-Studio. По ходу рассказа постараемся предугадать ваши немые вопросы по теме и ответить на них. Приятного прочтения!

Читать далее

Обучаем нейросеть распознавать цифры на выборке от MNIST. Реализация алгоритма обратного распространения на C#

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

Привет!

Будем обучать нейросеть распознавать рукописные цифры

Читать далее

Шаблон приложения Asp .Net Core 6 Web API с предустановкой и настройкой необходимых инструментов

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

Обычно моя работа связана с разработкой функционала REST веб-сервисов. Чаще всего, разработка эта ведется на базе уже существующих приложений, созданных и настроенных ранее по шаблону Web API в VisualStudio. Создавать новые приложения приходится не часто, последнее созданное мной, было еще на .NET Core 3.1, поэтому, когда возникает подобная задача, приходится тратить время на повторное изучение технологий первоначальной настройки приложения, чтобы оно отвечало всем требованиям бизнес-процесса компании, в которой я работаю. Столкнулся с этой задачей накануне, решил создать шаблон приложения (ссылка на репозиторий GitHub), в котором уже все настроено и готово. Краткое описание процесса привожу в этой статье. Постарался разбить сам процесс на независимые блоки, чтобы для реализации одного из них не приходилось изучать другие. Намеренно подробно освящаю настройку базовых функции, не вдаваясь в описание принципа работы той или иной функции - для более глубокого понимания привожу ссылки на документацию, по которой учился сам. Статья моя будет полезна для новичков в качестве отправной точки для изучения тех или иных функций .Net Core 6, а так же для специалистов, которые как и я, сосредоточены на реализации бизнес-логики приложения и требуется сократить время восстановления в памяти технологии его первоначальной настройки.

Читать далее

Домашнее облачко или что можно сделать с Orange Pi 5 (Часть 1)

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

Прикупил для тестирования SBC Orange PI 5 c 8 ядрами и 16Гб RAM и постарался описать какие бонусы можно получить от использования. Поставил Ubuntu 22, Docker, Portainer, gitlab-ce, minio S3 (домашний S3). Приглашаю к обсуждению, кидайте тапками или предлагайте что нибудь потестировать на новом устройстве.

Читать далее

Интеграция с ЕСИА для .Net: запутаннее, чем кажется

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

Передо мной стояла задача по интеграции нашего сервиса с госуслугами. Казалось ничего сложного не предстоит, но учитывая что наш сервис базируется на технологии ASP.NET всё было не так оптимистично. В начале были поиски.. много поисков, которые привели к множеству разрозненной и чаще всего неактуальной информации. Так же были найдены уже готовые решения, но как заявляли некоторые товарищи на форумах за такое могут и по головке погладить. Поэтому было решено писать самому.

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

Читать далее

Топ-10 ошибок, найденных в C#-проектах за 2022 год

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

За 2022 год разработчики PVS-Studio написали много статей, в которых рассказали об ошибках, найденных в различных Open Source проектах. Пришло время подвести итоги и представить десяток самых интересных срабатываний.

Читать далее

Повышаем производительность C# кода с помощью Span<T> и Memory<T>

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

Эта статья познакомит вас с новыми типами, представленными в C# 7.2: Span и Memory. Я подробно разберу Span<T> и Memory<T> и покажу, как работать с ними в C#.

Читать далее

Наш опыт в распознавании наличия подписи на .NET + EmguCV (OpenCV). Ч. 2

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

Привет, Хабр! Это продолжение статьи о нашем опыте распознавания подписей. В ней мы рассказывали о первой итерации нашего алгоритма распознавания, полагающегося на поиск контуров прямоугольника, в котором должна была располагаться подпись. Запущенный на бою алгоритм успешно обрабатывал немногим меньше 80% документов. Однако мы на этом не остановились, так как одним из предъявляемых к нам требований была отметка в 95%.

Читать далее

.NET и HashiCorp Vault: Использование секретов в настройках .NET Core приложения

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

Данная статья поможет разобраться в нюансах настройки секретов HasiCorp Vault и NET приложения в Kubernetes.

Читать далее

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

Методы расширения в C#

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

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

Читать далее

Документирование ASP .Net Core Web API с помощью OpenAPI/Swagger. Библиотека Swashbuckle

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

Привет, я backend-разработчик IT-компании SimbirSoft Дмитрий. В этой статье расскажу, зачем нужно документировать Web API, какие существуют подходы и покажу, как создать документацию для ASP.NET Core Web API с использованием OpenAPI/Swagger.

Материал будет полезен начинающим backend-разработчикам, которые знакомятся с Web API, а также специалистам уровня Middle, интересующимся актуальными стандартами для оформления документации.

Читать далее

Возможно вам не нужен AutoMapper

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

Вы знали, что AutoMapper и MediatR создал один и тот же человек?

Джимми Богард создал две крайне обсуждаемые и спорные темы в .NET разработке. Если с MediatR уже разобрались, то c AutoMapper также хотелось бы расставить все точки над "ё".

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

Читать далее

Проблемы unsafe кода C#

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

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

Вы узнаете как изменить значение константы во время runtime.

Читать далее ->

PVS-Studio и protobuf-net: лучшие предупреждения в один клик

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

Разбираем best practice знакомства с PVS-Studio. Покажем быстрый старт работы с анализатором на примере проекта protobuf-net.

Читать далее

Своя криптосистема с открытым ключом. Задача о рюкзаке. Часть I — пакет

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

Все мы знаем популярную задачу о рюкзаке. Все мы также знаем, что такое асимметричное шифрование и для чего оно используется. А если не знаете - то вот и повод узнать, потому что в этой статье мы попытаемся на основе задачи о рюкзаке написать свою систему шифрования с открытым ключом на C#. Основную логику криптосистемы спрячем в отдельный NuGet-пакет, который затем используем для написания собственного простого web-сервера (тоже на C#, конкретней на ASP.NET Core) с БД. Этот сервер будет представлять собой мессенджер, где пользователи смогут регистрироваться и посылать друг другу сообщения, а также проверять свою почту на наличие оных. Собственная система шифрования позволит нам обмениваться информацией между клиентами и сервером, а в случае перехвата противник не сможет её дешифровать (или, по крайней мере, сможет, но не сразу).

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

Пристегнуться!

Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами в C#

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

Nullable reference типы появились в C# 3 года назад. За это время они смогли найти свою аудиторию. Но даже те, кто имеет дело с этим зверем, скорее всего, не знают всех его возможностей. Давайте разберёмся, как более качественно взаимодействовать с этими типами.

Читать далее

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