Обновить
80.86

.NET *

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

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

Исходный код на прощание: разбор ошибок в проектах закрывшейся инди-студии

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

Инди-студия StarlightLabsCo закрылась, а разработчик и её основатель Харрис Ротаермель опубликовал исходный код своих проектов. Теперь желающие могут улучшать эти проекты или разрабатывать на их основе новые. Мы решили не оставаться в стороне и решили поискать ошибки в его проекте.

Читать далее

Экспорт данных из базы данных в Excel на C#: 5 проверенных методов

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

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

В этой статье я расскажу о пяти уникальных подходах к экспорту данных из базы данных MySQL в файл Excel, используя различные библиотеки C# Excel. Я также приведу краткое сравнение этих библиотек, подчеркнув их особенности, производительность, цену и другие важные моменты.

Читать далее

Функция скользящего среднего для регенерации на графике

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

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

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

Ниже я привожу код для C# который можно copy/paste для вашего использования.

Особенностями подхода является два момента:

Читать далее

Название имеет значение: как отладить Blazor WebAssembly приложение, переименовав браузер

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

У нашей команды появилась необходимость отлаживать Blazor WebAssembly приложения в Яндекс.Браузере. Но возникла проблема: Visual Studio упорно не хотел вставать на точки останова. Таких проблем не было ни с Edge, ни с Chrome, хотя все три браузера основаны на Chromium. Полез разбираться, как и что там происходит, хотя в успех особо не верил.

Читать далее

Почему так происходит | Telegram Mini App

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

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

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

Понять всю суть

Типы в программировании как математические множества

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

Типы в программировании можно(и нужно) рассматривать как математические множества.

Мысль хоть и очевидная, но из моей головы давно выветрилась.

Именно поэтому я и решил написать эту статью: чтобы напомнить о ней самому себе и тем, кто о ней тоже забыл или даже не знал.

Читать далее

Что выбрать для типов моделей: Enums VS Tables?

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

Enums VS Tables для создания типов моделей...

Зачем использовать вообще одно из этих решений?

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

Читать далее

Код, который работает: Unit и интеграционное тестирование для повышения надежности ПО

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

Всем привет, меня зовут Андрей Федотов, я бэкенд-разработчик в компании «Цифровая Индустриальная Платформа».

Как сказал Кент Бек: «Многие силы мешают нам получить чистый код, а иногда не удается даже получить код, который просто работает». В данной статье я расскажу историю нашего проекта с точки зрения тестов. О том, как мы получили если не чистый, то работающий код, который позволяет нашей системе быть устойчивее и устойчивее, надежнее и надежнее. О том, как у себя на проекте мы уничтожили старые скрижали, называемые тестами, и написали новые с нуля. И, конечно, покажу примеры и затрону теорию.

Читать далее

Пишем приложение на C#-стеке

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

Всем привет! Меня зовут Дмитрий Бахтенков, и я .NET-разработчик. Сегодня мы проведем эксперимент — напишем полноценное веб-приложение с использованием решений, которые написаны на C# и платформе .NET. Больше моих статей можно прочитать в медиа вАЙТИ.

Что я имею в виду?

Как мы знаем, в общем случае веб-приложение состоит из бэкенда, фронтенда, базы данных и иногда из кеша. С бэкендом и фронтендом всё понятно: у нас есть замечательный фреймворк ASP.NET Core для сервера и blazor или razor pages для клиента. Однако инфраструктурные части приложения — БД, кеши — чаще всего пишутся на других, более низкоуровневых языках, таких как C и C++.

К счастью, недавно Microsoft выпустила решение для кеширования — аналог Redis, который называется Garnet. В качестве основной базы данных можно использовать документную БД RavenDB, которая как раз написана на C#.

Читать далее

Анализ кода WolvenKit: что нужно знать перед созданием модов для Cyberpunk 2077

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

Все мы любим игры, но есть люди, которые любят в них не только играть, но ещё и создавать различные модификации для них. Сегодня посмотрим на WolvenKit — один из инструментов для создания модов для Cyberpunk 2077.

Читать далее

Знакомство с гипермедийными системами на ASP.NET Core 8.0

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

Быстрый старт с HTMX 2.0. Знакомство с гипермедийными системами на основе современной серверной платформы ASP.NET Core.

Гипермедийные системы облегчают создание прежде всего низконагруженных веб-приложений.

Читать далее

Немного про DDD: Реализация событий предметной области в .NET

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

Всем привет! Предметно-ориентированное проектирование, на мой взгляд, является недопонятым подходом, о котором многие говорят, но немногие его действительно применяют.

Одним из относительно простых в реализации и полезных в архитектурном смысле паттернов, на мой взгляд, являются события предметной области (Domain Events). В данной статье я бы хотел рассказать о возможных вариантах реализации этого шаблона DDD с использованием .NET.

Читать далее

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 1. Встреча с фреймворком

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

В прошлый раз я в основном говорил о трудностях, которые возникают при попытках совместить F# и Godot. Это была вынужденная мера, так как нас в первую очередь интересовало «стандартное» поведение на случай, когда нестандартное и удобное почему-то не сработало. Можно сказать, что мы учились падать без серьёзных последствий перед тем, как научимся совершать броски и болевые приёмы. Нужный ход, если мы не хотим за пару занятий инвалидизировать большую часть группы, но всё-таки это не то, за чем мы пришли в секцию. Теперь пришло время перейти к рутине, а за ней — и к более агрессивным техникам.

Читать далее

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

Docker для разработки C#

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

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

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

Возможности Docker достаточно обширны, однако в данной статье хотелось бы остановиться на трех:

Читать далее

Тредпульное заклятие Dotnet-демонов на Linux

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

Все слышали о том, что иногда dotnet на Linux потребляет больше ресурсов, чем на Windows. Порой эта разница практически незаметна. Но случается и такое, что одно и то же приложение потребляет на Linux в 2–3 раза больше CPU, чем на Windows.

Читать далее

Гипермедийные системы на ASP.NET MVC 5. Часть третья — окончание

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

Окончание статьи по быстрой разработке гипермедиа-ориентированного веб-приложения с HTMX 2.0.

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

В статье будет использоваться библиотека Htmx.js вместе с устаревшей серверной платформой ASP.NET MVC 5.

Читать дальше

Гипермедийные системы на ASP.NET MVC 5. Часть вторая — продолжение

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

Продолжение статьи по быстрой разработке гипермедиа-ориентированного веб-приложения с HTMX 2.0.

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

В статье будет использоваться библиотека Htmx.js вместе с устаревшей серверной платформой ASP.NET MVC 5.

Читать дальше

SAP Scripts на C#

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

Всем привет! Это моя первая статья на Хабре, я решил создать её здесь, чтобы поделиться наработанным опытом со всеми коллегами по RPA. Речь пойдёт об автоматизации интерфейса SAP через SAP скрипты при разработке на C#.

Читать далее

Оптимизация небрежно написанного маппера

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

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

Подробности внутри

Рефакторим легаси при помощи ООП

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

Спустя годы проекты обрастают тёмными местами, в которые никто не хочет соваться, поскольку их сложно понять и легко сломать. Сегодня мы посмотрим на кейс рефакторинга такого кода с переводом на ООП рельсы при помощи паттернов, причём со стилем (современным).

Читать далее

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