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

C# *

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

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

Телеграм бот на C# с использованием Yandex Cloud Functions

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

Всем привет!

Данная статья содержит информация о том, как написать телеграм бота на C# с использованием Yandex Cloud Functions и Телеграм Webhook. Также в данной статье будет рассмотрено CI/CD с помощью GitHub Actions.

P.S. полезная литература находится в ссылках!

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии2

Новости

Заглядываем под капот FrozenDictionary: насколько он быстрее Dictionary и почему

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

С релизом .NET 8 в арсенале C# разработчиков появилась новая коллекция – FrozenDictionary. Особенность этого словаря в том, что он неизменяемый, но при этом обеспечивает более быстрое чтение по сравнению с обычным Dictionary. Я неспроста разбил результаты на обложке по типам – используемые во FrozenDictionary алгоритмы сильно зависят от типа ключа, размера словаря или даже, например, количества строковых ключей одинаковой длины. В этой статье подробно разберем, насколько FrozenDictionary быстрее и почему.

Заглянуть под капот
Всего голосов 34: ↑33 и ↓1+41
Комментарии9

Вот скажи мне, микросервис, в чем сила (часть 2)

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

Если вы не читали начало - то оно здесь.

Вкратце же, там я описал как начал строить свой “интернет магазин электроники”. Да, именно в кавычках 🙂. Потому что это не магазин совсем, а эксперименты по реализации части механик. Конкретно, подбора товаров по параметрам. Запустил первый блин комом и сейчас буду наш первый блин улучшать.

В любом случае, первую часть будет полезно почитать хотя бы из-за дельных комментариев (как всегда на Хабре). Там любезно объяснили, что этому всему есть научный термин - фасетный поиск. И что данная реализация соответствует паттерну EAV. Да и вообще этот велосипед уже изобрели. Но меня это, конечно же, не остановит 🙂. Что может быть прекрасней собственного велосипеда!

Есть еще надежда, что написанные статьи привлекут внимание тех, кто реализует подобное не как я - ради развлечения, а ради работы. Может они в комментариях поделятся своими замерами производительности, или какими-то подводными камнями. Было бы интересно.

Показать
Всего голосов 11: ↑10 и ↓1+11
Комментарии2

Event Sourcing и Saga с помощью Marten и Wolverine на C# и немного модульного монолита

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

В этой статье мы откажемся от контроллеров, MediatR-а и MassTransit-а, всё вышеперечисленное нам заменит Wolverine. Отольём в граните модульный монолит, имплементируем регистрацию событий, используя Marten. Пример всего этого безобразия находится тут.

На фото: Marten (Куница) слева, Wolverine (Росомаха) справа. Хью Джекман просился на обложку, но не прошёл кастинг.

Читать далее
Всего голосов 10: ↑9 и ↓1+12
Комментарии3

Истории

Вычисление логического выражения из строки в C# (.NET)

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

В этой статье я продемонстрирую, как динамически вычислять логические математические выражения из строк в C#, с высокой производительностью. Решение, реализованное с использованием библиотеки .NET MathEvaluator, поддерживает логические операции в различных математических контекстах, включая программирование, научные вычисления и C#. Кроме того, библиотека позволяет расширять эти контексты, а также добавлять пользовательские переменные и функции.

Читать далее
Всего голосов 5: ↑4 и ↓1+6
Комментарии37

Обзор библиотеки FluentValidation. Часть 7.2. Встроенные валидаторы

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

В этой части рассмотрим следующие валидаторы:

Length — длина строки в указанном диапазоне либо точная.

MaximumLength — максимальная длина строки.

MinimumLength — минимальная длина строки.

LessThan — меньше чем значение, тип которого реализует интерфейс IComparable.

LessThanOrEqualTo — меньше или равно чем значение, тип которого реализует интерфейс IComparable.

Пройти валидацию
Всего голосов 3: ↑2 и ↓1+3
Комментарии1

«Быстрое свидание» с LINQ

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

Краткое описание методов LINQ простым языком, без терминов "проекция", "предикат", "делегат" и проч.

Читать далее
Всего голосов 16: ↑13 и ↓3+14
Комментарии21

Сравнение технологий для написания оконных приложений

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

Как-то раз в одном чате прозвучала идея сравнить разные технологии для написания оконных приложений. В частности, под Windows. Используя средства языка C#. То есть, конечно, можно это сделать и с помощью C++, Python, Rust, JS и других языков, но мы же шарписты, нам интереснее именно то, что мы можем сами использовать, не меняя язык программирования.

Итак, оконные приложения на C#.

Читать далее
Всего голосов 25: ↑25 и ↓0+33
Комментарии89

Как я оптимизировал свою первую игру на Unity, и написал ее заново

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии6

Asp.Net приложение и многое другое вместе с ним (1 часть)

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

Asp.Net + nginx + kafka + docker + docker-compose + postgersql. Или как из обычного шаблона прийти к такому гибриду.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии6

Flax Engine. Знакомство с игровым движком и анализ его исходного кода

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

"Как будто у Unreal и Unity родился ребёнок" — такое трогательное описание дали этому движку в GameDev-сообществе. Эта фраза не только мило звучит, но и точно передаёт его суть, ведь движок действительно задумывался как нечто среднее между Unity Engine и Unreal Engine.

Читать далее
Всего голосов 14: ↑14 и ↓0+15
Комментарии0

Нам надоела нестабильность Microsoft Exchange, и мы перевели компанию на новый бэк календарей

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

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

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии7

Я на дереве сижу, препроцессинг провожу

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

Согласно описанию,


Tree-sitter — это инструмент для генерации синтаксических анализаторов и библиотека инкрементного синтаксического анализа. Он может создавать конкретное синтаксическое дерево для исходного файла и эффективно обновлять синтаксическое дерево по мере редактирования исходного файла.

Но как Tree-sitter справляется с языками, в которых необходима стадия препроцессинга?

Читать дальше →
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

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

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

Как мы перешли на конфигурацию Microsoft.Extensions.Configuration (IOptions) и стало хорошо

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

Привет, меня зовут Андрей Рягузов, в 2ГИС я разрабатываю внутренние продукты для актуализации справочных данных на .NET.

Несколько лет назад для работы с настройками мы в команде пользовались самописным методом. Пока приложения были простыми, нас всё устраивало, однако при масштабировании начали вылезать неприятности. Так мы начали искать альтернативу.

Расскажу, почему изначально решились на нестандартный метод, с какими трудностями столкнулись и что решили улучшить, какие варианты рассматривали и какие преимущества получили от «коробочных» инструментов.

Читать далее
Всего голосов 20: ↑18 и ↓2+20
Комментарии10

Основы обработки асинхронных событий с помощью Rx в C#

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

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

Reactive Extensions, известные также как Rx.NET, представляют собой библиотеку для .NET, предназначенную для композиции асинхронных и событийно-ориентированных программ с помощью наблюдаемых последовательностей и операторов запросов в стиле LINQ.

Основная фича Rx заключается в управлении асинхронными данными так, как если бы они были синхронными коллекциями.

В этой статье мы рассмотрми, как работать с Rx в C#.

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии1

Eppie — P2P почта, теперь с графическим интерфейсом

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

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

Несколько недель назад, в этом посте, мы представили CLI для Eppie — p2p почты с шифрованием и открытым протоколом. Сегодня мы хотим рассказать о GUI приложении, которое уже доступно на GitHub. Если вы читали нас раньше, можете пропустить введение и сразу перейти к разделу «Как пользоваться». Ну а все остальные, кто увлекается децентрализованными технологиями и думает о приватности данных, — поехали.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии31

.NET Digest #2

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

Добро пожаловать на второй выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! Первый выпуск вам понравился, так что C# команда PVS-Studio снова собрала для вас самые интересные и полезные материалы. Поехали!

Читать далее
Всего голосов 21: ↑21 и ↓0+27
Комментарии3

Оптимизация производительности в Unity: советы и лучшие практики

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

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

Читать далее
Всего голосов 9: ↑5 и ↓4+4
Комментарии5

Вычисление любого математического выражения в C# (.NET)

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

Для улучшения возможностей научных вычислений в C# я реализовал evaluator, способный вычислять любое математическое строковое выражение с исключительной производительностью. Он также поддерживает пользовательские переменные и функции. Библиотека .NET под названием MathEvaluator и её документация доступны на GitHub.

Для достижения высокой производительности при вычислении математических выражений используется сочетание современных возможностей .NET и эффективных алгоритмов.

Читать далее
Всего голосов 6: ↑5 и ↓1+8
Комментарии25

Между строк: Анимации в UI Toolkit

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

Рано или поздно пытливый программист замечает то, что предпочитал игнорировать — словно краем глаза видит тень в темном углу. А что, если за этой тенью скрывается нечто большее?

В этой статье мы исследуем тайны создания анимации вершин в UI Toolkit и узнаем, как придать вашим интерфейсам новую жизнь.

Перейти к делу
Всего голосов 4: ↑4 и ↓0+8
Комментарии0
1
23 ...