Как стать автором
Обновить
109.77

C# *

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

Стыковка космических аппаратов в Unity

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

Моделирование процесса стыковки космических аппаратов в Unity с использованием физики и решения задачи оптимизации.

Читать далее

Фрактальный декоратор в C#

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

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

Сегодня разберём паттерн «Фрактальный декоратор» — способ рекурсивного декорирования объектов, позволяющий динамически добавлять уровни логики без изменения базового кода.

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

Условия в играх

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

Игры во многом построены на условиях. Если скорость больше нуля, надо сменить айдл анимацию на что‑то другое. Если хп меньше нуля, персонаж считается мертвым. Если у персонажа 10 клыков, он может сдать квест. Если в руках лазер, надо зажать ЛКМ для непрерывной стрельбы. С ружьем обычно так не получается, здесь одно нажатие — один выстрел. Если в руках молоток, то всё превращается в гвозди.

Если задача на реализацию системы активных умений может восприниматься как что‑то, для чего может потребоваться гибкая система. Особенно если по диздоку ясно, что их будет много и они будут сложно устроены. То задача на «запускать катсцену при входе в уровень» так воспринимается не всегда, так как это может показаться разовой отдельной задачей.

В какой‑то момент таких условий в мета геймлее становится много, и хочется их как‑то структурировать. И эта статья как раз может в этом помочь

Читать далее

Мне всё равно, какой у вас код-стайл

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

Привет, Хабр. Меня зовут Рогатнев Сергей. Я работаю в Контуре ведущим разработчиком уже более 7 лет. За это время я поработал как минимум над десятью разными проектами в разных командах. Это были и проекты с историей на 10 лет, и стартапы, делающие свои первые шаги. Где-то я был всего 2–3 месяца, а где-то задерживался на пару лет. Такой формат работы позволил мне увидеть совершенно разные подходы к работе и написанию кода. За это время я адаптировался к переходам и смене команд, но мой собственный code style практически исчез, потому что нет двух команд с одинаковым стилем.

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

Читать далее

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

CodeSigning для разработчиков под Windows по новым правилам

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

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

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

Безопасность должна быть более безопасной

Еще раз о забытом. Roslyn Source Generators

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

Каждый разработчик часто сталкивается с написанием большого объема рутинного и повторяющегося кода, который имеет один и тот же смысл. Начиная с C# версии 9 появилась возможность генерации кода, которая интегрирована напрямую с компилятором. Такой подход позволяет избавиться от множества строк шаблонного кода. О нём сегодня и поговорим.

Читать далее

Как взломать Harley Davidson. Часть 3

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

В прошлой части мы немало узнали о внутреннем устройстве прошивки. Но ни грубая сила видеокарты, ни интеллект моих скриптов на Питоне не помогли: алгоритм генерации 64-битного ключа так и остался тайной, а мотоцикл не взломанным. Что же, в этой части нас наконец-то ждет удача, а на десерт предложу разбор прошивки BCM с двойным разоблачением.

Читать далее

Используем API Key и JWT Bearer аутентификацию вместе в ASP.NET Core Web API

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

Я расскажу, как реализовать аутентификацию с использованием как JWT, так и API-ключа на одном и том же endpoint в ASP.NET Core Web API. Совмещение этих схем аутентификации полезно, если вы хотите использовать токен JWT Bearer для аутентификации пользователей и API-ключ для аутентификации между сервисами.

Читать далее

Как отлаживать плагины в Revit: ускоряем разработку

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

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

Читать далее

Многофакторное аппроксимирование на платформе .Net. Часть первая. Теория

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

Двухфакторная аппроксимация и ее реализация на платформе .net при помощи open source приложения RefressionFromExel.

Читать далее

Ошибки и подозрительные места в исходниках .NET 9

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

Каждый год выходит новая версия .NET, и .NET 9 не стал исключением. Как и в прошлый раз, мы попробуем свои силы в поиске ошибок в исходном коде .NET. Погнали копаться в исходниках!

Читать далее

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