Как стать автором
Поиск
Написать публикацию
Обновить
57.5

.NET *

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

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

Moq: пара фич для упрощения тестов, о которых знают не все

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

Пишете unit-тесты в .NET? Значит, скорее всего, пользуетесь Moq. На первый взгляд, это простой и легковесный фреймворк, про который все всё знают.

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

Читать далее

Copy-paste на большом экране: разбор ошибок и странных мест Radarr

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

Писать одно и то же — невероятно муторное занятие! Поэтому программисты регулярно используют copy-paste, но, помимо экономии времени, также растет и количество ошибок. Чтобы в этом убедиться, мы разберём ошибки и странные места проекта Radarr.

Читать далее

Контекст и парадигмы программирования

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

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

Читать далее

Unity3d CodeDOM. Генерация кода на лету

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

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

Мне пришлось столкнуться с генерацией кода, в процессе поисков я наткнулся на специфический код-генератор под .NET (CodeDOM), который заработал у меня в среде Unity3d

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

https://learn.microsoft.com/ru-ru/dotnet/framework/reflection-and-codedom/using-the-codedom

Читать далее

Приложение для структурирования информации. Часть 2

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

Это продолжение статьи про приложение для работы с данными, которые представляются деревьями.

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

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

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

Сайт приложения так же написан на blazor, но на другом типе проекта: blazor webassembly standalone. Приложение же написано на MAUI Blazor Hybrid. Оба этих типа загружают net сборку в браузер. В теории можно легко сделать веб версию, заменив при этом базу и добавить взаимодействие по api с пользователями и авторизацией. Скорее всего после всех запланированных TODO я этим и займусь.

Читать далее

Интегрируемся с банками: Saga бесконечности, или как мы начали проводить вклады онлайн

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

Осенью 2020 года финтех в России несколько изменился: открывать вклады онлайн стало возможно не только банкам, но и сторонним финансовым платформам. В Сравни мы уже много лет помогаем клиентам сопоставлять условия по вкладам в различных банках. И с появлением новой возможности задумались о том, чтобы разработать свою платформу для проведения онлайн-вкладов. 

Под катом рассказываем о том, по каким принципам работает наша платформа, какую роль в её устройстве играет Saga MassTransit и как посредством решения происходят интеграции с банками. Плюс раскрываем процесс самой интеграции — на конкретном кейсе.

Читать далее

Порядок инициализации полей, статики и всего остального в C#

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

Всем привет! Многие сталкиваются с трудностями на собеседовании на вопросе по типу "Расскажите о порядке иницализации в C#". Либо банально когда видят квиз, стараются вспомнить, а что там должно инициализироваться? Сегодня многие вспомнят, а кто-то узнает о порядке инициализации. Затронем не только классы, а также структуры, а точнее - ключевое слово default для них.

Сделаем следующие классы и посмотрим, что будет при создании объекта B:

Читать далее

Новые интересные диагностики в PVS-Studio 7.35

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

С релизом PVS-Studio 7.35 в анализаторе появилось много новых диагностических правил. Вас ждёт: много MISRA для C, новые Unity-диагностики для C# и покрытие OWASP Top 10 для Java и многое другое!
Подробности вы сможете узнать в этой заметке.

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

Эффективный бэкграунд: организация стабильной фоновой работы в связке двух мобильных медтех приложений

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

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

Читать далее

Универсальный индекс по документам на эластике

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

Всем привет. Меня зовут Женя Редько, я работаю в ядре Диадока — это сервис электронного документооборота от Контура. В моей подкоманде Документов мы занимаемся основными бизнес-сценариями Диадока. 

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

Читать далее

PropertyBitPack: Упаковка свойств в поля

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

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

Читать далее

Отключение http-метрик в ASP.NET Core

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

Выход ASP.NET Core 9 порадовал возможностью выборочно отключать http-метрики. В статье сценарии использования с примерами и детальный разбор того, как всё устроено под капотом.

Хочу разобраться

От dotnet restore до publish, и что это значит для докера и построения CI/CD-пайплайна

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

Всем привет! Когда я узнаю, что человек передо мной начинает изучать c# - первым делом я его спрашиваю, как ему язык, на чем раньше программировал и прочее. И в какой то момент разговоры доходят до докера\пайплайнов => многие ребята (которые не пробовали это раньше) начинают нехотя избегать эту тему, считая её чересчур скучной, странной и вообще "это уже какой то девопс". Хотя на деле - зная базово, что значат папки в твоем проекте на компе - можно освоить базовые основы красивой работы докера (+ можно пришить пайплайны, основной мотив у них один). Поэтому сегодня я попытаюсь привлечь ваше внимание к базовым командам dotnet`а.

Все изучать и делать будем сразу в докере. Создаем такой докерфайл:

Читать далее

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

Сгенерировать 100 млн случайных строк менее чем за минуту

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

Зачастую в программисткой практике необходимо нагенерировать множество случайных строк. Либо для тестового примера, либо как источник обезличивания, либо просто, чтобы наполнить разработческую БД. Задача, в принципе, понятная и легкая для любого уровня программиста. Но если это нужно сделать быстро, например, если набор случайных строк нужен здесь и сейчас, то можно использовать предлагаемое решение. Строки получаются разной длины, со 100%-ной хаотичностью (полностью несортированные). Выглядят эти строки вот так (спойлер):

Читать далее

Нюансы кастования в C#

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

Всем привет. Не так давно добавлял поддержку кастования через 'as' к себе в компилятор и задался вопросом — в каких случаях я получу Compile Time ошибку? Если заинтересовал — прошу под кат.

Читать далее

Делегаты в C# подробнее

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

Как они работают под капотом? Что именно происходит при "замыканиях", грамотное обращение со структурами при работе с делегатами.

На что нужно обращать внимание.

Читать далее

EDA of dataset Python

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

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

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

Очищать грязные данные можно c PandasРассмотрим основные методы.

Читать далее

В Microsoft тоже ошибаются. Проверяем MSBuild

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

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

Читать далее

Кто сильнее: XDocument или XmlDocument, или как я приручал табличные редакторы

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

Привет! Я Кирилл Пронин, разработчик PIX RPA из PIX Robotics. В этой статье расскажу о том, как мы учили наш продукт работать с импортозамещенными табличными редакторами в Linux-подобных операционных системах, кто сильнее - XDocument или XmlDocument, и какие лайфхаки я унес с собой.

Читать далее

1. Проектирование с помощью типов: Введение

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

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

Читать далее

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