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

.NET *

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

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

Экспресс создание Telegram бота на C#

Уровень сложности Средний
Время на прочтение 19 мин
Количество просмотров 2.4K
Open source *.NET *Яндекс API *C# *
Из песочницы

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

В качестве фундамента материала взята идея написание простого бота для отображения текущей погоды в указанном городе с помощью API сервисов Яндекса "Геокодер" и "Погода".

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

Новости

Сказ о том, как мы игру в команде делали

Время на прочтение 2 мин
Количество просмотров 2.3K
.NET *C# *Разработка под Windows *
Из песочницы

Сказ о том, как мы игру в команде делали

Меня зовут Юрий, недавно мне исполнилось 17 лет, и я программист. В основном делаю Windows Forms приложения (C#). С марта 2022 года я активно начал заниматься программированием, сначала на PascalABC.NET, а затем перешёл на C# в августе того же года...

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

Элегантные «квантовые» микросервисы

Уровень сложности Средний
Время на прочтение 22 мин
Количество просмотров 3.8K
Программирование *.NET *C# *Микросервисы *
Кейс

Статья описывает кейс разработки микросервисной системы. При работе над системой была использована теория, описанная в статье "Математические аспекты хорошего кода".

В рамках этого кейса описаны:

Снижение когнитивной нагрузки на программиста

"Квантовая" архитектура

Автоматическая обработка данных

Аспектно-ориентированное программирование

Генерация кода (T4)

Метапрограммирование

Межсервисное взаимодействие

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

Q: Почему "квантовые"?
A: Потому что являются одновременно микросервисами и монолитом.

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

Приглашаем на Ozon Tech Intro meetup: строим складские системы на .NET

Время на прочтение 2 мин
Количество просмотров 1.2K
Блог компании Ozon Tech .NET *IT-инфраструктура *Конференции IT-компании

Всем привет!
Меня зовут Мария, и я занимаюсь разработкой автоматизированных систем измерения ОВХ (объемно-весовые характеристики товаров). А если брать шире, то я представляю огромный блок по продукту и технологиям товарных операций.
Что это такое? Об этом наша команда поговорит на Ozon Tech Intro meetup: строим складские системы на .NET, 24 июля в Астане. И онлайн тоже будет!

На митапе ребята подробно обсудят систему управления складом WMS (Warehouse Management System), которая принимает, хранит, собирает и отправляет покупателям миллионы заказов каждый день. WMS построена на микросервисной архитектуре и работает на распределённом между дата-центрами кластере K8s. Система состоит из 100+ сервисов на .NET Core, которые хранят данные в базах PostgreSQL, взаимодействуют через gRPC и обмениваются сообщениями через Kafka.

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

Истории

ReactiveValidation 2.0: валидация данных в Avalonia и WPF

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 1K
Open source *.NET *C# *
Туториал

Всем привет!
5 лет назад я рассказывал, как написал библиотеку для валидации данных в WPF. Всё это время активно развивался и продолжает развиваться другой десктоп фреймворк - Avalonia UI. Мне очень хотелось поддержать также и его, что и было сделано во второй версии библиотеки. Помимо этого, туда вошли другие интересные фичи.

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

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

До последнего байта: минимальный вариант Hello World для .NET

Время на прочтение 13 мин
Количество просмотров 17K
Занимательные задачки Программирование *.NET *C# *
Перевод

Вот вам тупой вопрос, который вы сами, наверное, никогда себе не задавали. Каково минимальное количество байт, которые необходимо сохранить в исполняемом .NET-файле, чтобы CLR напечатала "Hello, World!" в консоли стандартного вывода?

Читать далее
Всего голосов 99: ↑98 и ↓1 +97
Комментарии 73

C# Generic-подход к разработке web API

Уровень сложности Средний
Время на прочтение 32 мин
Количество просмотров 5.2K
Блог компании ITQ Group .NET *API *C# *
Туториал

Статья-туториал от ведущего разработчика "ITQ-Group" Александра Берегового, в которой мы рассмотрим применение обобщенного подхода при разработке WEB API.

Читать далее
Всего голосов 8: ↑2 и ↓6 -4
Комментарии 32

Обновление до .NET 7: как оно может улучшить ваше программное обеспечение

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 2.5K
.NET *Разработка под e-commerce *
Аналитика

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

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

IValueTaskSource и почему нельзя пере`await`ить

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 4.1K
.NET *C# *
FAQ

Раньше IValueTaskSource был для меня загадкой, а правило не await'ить ValueTask несколько раз было для меня правилом, которому я слепо следовал.

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

Напишем свою реализацию IValueTaskSource, уменьшим аллокации и посмотрим где это используется в стандартной библиотеке.

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

GraphQL в .NET: Практическое использование

Время на прочтение 3 мин
Количество просмотров 3.6K
Блог компании OTUS .NET *
Перевод

В первой статье мы узнали, зачем нужен GraphQL и в чем различия между GraphQL и REST. Начиная с этой статьи, мы углубимся в детали практического использования GraphQL.

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 1

Изучаем подозрительные места в коде AWS SDK для .NET

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 1.6K
Блог компании PVS-Studio Программирование *.NET *Amazon Web Services *C# *

1057_AWS_SDK_NET_ru/image1.png


Сегодня под нашим скальпелем оказался проект AWS SDK для .NET. Мы посмотрим на подозрительные места из исходного кода, разберёмся, что в них происходит, и попробуем воспроизвести некоторые проблемы. Заваривайте кофе и устраивайтесь поудобнее.

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

ThreadPool.Workers

Время на прочтение 13 мин
Количество просмотров 3.1K
Блог компании Контур Программирование *.NET *C# *

На этот раз длинная история. Но длинная она в основном из-за множества примеров, которые вы можете легко повторить у себя.

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

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 4

Паттерн спецификация в .NET

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 5.1K
Программирование *.NET *C# *
Обзор

Понимаю, что тема избитая, есть масса статей на хабре (например раз, два, три) и если с теорией все гладко, то все попавшиеся мне на глаза реализации (не только на хабре, но и на гитхабе в том числе) этого паттерна обладали теми или иными ограничениями.

Свою идею я реализовывал постепенно на основании опыта использования в реальном проекте.

Читать далее
Всего голосов 10: ↑2 и ↓8 -6
Комментарии 8

FaceAuth или как с легкостью встроить FaceID в любое .NET приложение

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.1K
.NET *
Обзор
Из песочницы

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

Пару слов обо мне

Меня зовут Салахетдинов Орхан, и я — .NET-разработчик. Люблю изучать что-то новое в сфере программирования (и не только) и хочу внести свою лепту в развитие open-source. Еще хотел бы добавить, что это моя первая статья, я бы хотел написать еще одну (возможно, и несколько) статей про системы распознавания лиц и как они работают на простом языке. Если будет хороший актив и фидбек, то почему бы и нет? Судите, как хотите, так как я рад любому фидбеку, исключение — тотальная аннигиляция поста (опционально) :)

С чего все началось?

Не так давно, буквально несколько месяцев назад, мне стала любопытна тема computer vision и ее часть — face recognition. Мне всегда нравилась функция FaceID от Apple, так как она очень удобная и практичная, и я подумал: есть ли такая библиотека для платформы .NET? К сожалению, после недолгого ресерчинга я так и не нашел чего-то похожего для .NET. В итоге я решил создать свою библиотеку аутентификации лица. Цель данной библиотеки — прежде всего пиар показать .NET- (и не только) разработчикам, как легко можно использовать Face Authentication в своих проектах.

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

TDD и unit тесты: не сотвори себе монолит

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 4.1K
.NET *TDD *C# *
Из песочницы

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

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

Посмотреть код
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 24

Как я познакомился с BouncyCastle в .NET 7

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 4.7K
.NET *C# *
Кейс

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

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

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

Как впилить Allure TestOps в свой проект, если ты простой тестировщик

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.2K
Блог компании Dodo Engineering Тестирование IT-систем *.NET *Тестирование веб-сервисов *
Туториал

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

В общем, если вы тестируете бэкенд на .NET, а для сборки проектов используете GitHub Actions и хотите внедрить Allure TestOps — эта инструкция для вас.

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

Сказка про For vs Foreach

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 19K
Блог компании Контур Высокая производительность *.NET *C# *


Ходят слухи, что foreach быстрее for. А ещё ходят слухи, что for быстрее foreach. Пора разобраться, что быстрее!

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

Как использовать C# для разделения PDF документа

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.7K
.NET *PDF C# *
Туториал
Recovery mode

PDF является широко используемым форматом электронных документов, но иногда мы хотим разделить большой PDF файл на несколько отдельных файлов для более удобного управления и обработки. В этой статье мы расскажем, как с помощью языка C# и Free Spire.PDF for .NET разбить PDF документ.

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

Разделение контейнера зависимостей в ASP.NET Core

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 3.7K
Разработка веб-сайтов *.NET *C# *
Туториал

Разработчики AspNet Core (здесь и далее речь идёт об AspNet актуальных версий: 6 и 7, но может быть применимо и к более ранним версиям) хорошо знают, что механизм Dependency Injection встроен в этот фреймворк изначально и пронизывает его насквозь. И это здорово упрощает работу с зависимостями и сразу вводит разработку в идеологически правильное русло. Более того, в состав самого AspNet входит вполне приличный дефолтный DI-контейнер разработки Microsoft, что позволяет отказаться от использования сторонних решений. Во всяком случае, при отсутствии совсем уж специфичных требований.

Но иногда такие требования существуют...
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 18

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

Работа

.NET разработчик
93 вакансии