Все потоки
Поиск
Написать публикацию
Обновить
278.74

C# *

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

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

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

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

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

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

Читать далее

Сказ о том, как я гугловского динозаврика в стиле игр Nokia 3310 делал (C#, Windows Forms)

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

В данной статье я поведаю вам о том, как я делал известную и встроенную в браузере Google Chrome игру “Dino Runner” в стиле игр Nokia 3310 с использованием Windows Forms API на языке C#. Я расскажу, с какими трудностями столкнулся, как решал те или иные проблемы и так далее…

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

Особенности разработки автотестов различными инструментами, а также статистика по использованию

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

Попробуем разобраться в автоматизации тестирования ПО, сделаем обзор сервисов для автоматического тестирования, выясним, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и моём реальном опыте.

Читать далее

GraphQL в .NET: Пагинация

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

В этой статье мы поговорим о пагинации на GraphQL.

Одним из наиболее эффективных способов работы с GraphQL является взаимодействие при помощи интерфейса IQueryable. Наш второй проект в репозитории (002_GraphQLWithEFCore) посвящен обеспечению взаимодействия GraphQL с EF Core (Entity Framework (EF) Core — это простая, кроссплатформенная и расширяемая версия популярной технологии доступа к данным Entity Framework с открытым исходным кодом).

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

Движок для матч-3 батлера, или Что делает каждый разработчик мобильных игр

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

Как вы знаете, разработчики игр делятся на два типа: те, кто делает ААА, и те, кто делает крайне простые матч-3. Здесь я расскажу в хронологической последовательности, как оптимизировал самый простой в мире жанр. Постараюсь далее уменьшить количество иронии. Заинтересованных приглашаю ознакомиться с моим путем

Читать далее

Как построить QA-направление в большом холдинге

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

Привет, Хабр! Меня зовут Даша, я руковожу тестированием в ЕВРАЗе. Многие имеют опыт работы тестировщиком. Наверняка среди читателей найдутся и такие, кто руководит целым отделом QA. Но мало кому выпадает шанс создавать QA-направление в огромной промышленной компании практически с нуля.

Под катом я расскажу, как нанять тестировщика без опыта и не пожалеть об этом, зачем одновременно знать Python и C# и почему бывает непросто наладить сквозное тестирование.

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

Первый проект длиною в полтора года…

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

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

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

Уже вечером этого дня я изучаю плату и узнаю такие слова, как "Asic", майнер, майнинг. Понимаю, что имею на руках плату одного такого устройства, а в данном случае — AntMiner S9.

Читать далее

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

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

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

1057_AWS_SDK_NET_ru/image1.png


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

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

Использование C# и NPOI для работы с файлами Excel

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

NPOI - это .NET-версия проекта POI на Java, расположенного по адресу http://poi.apache.org/. POI является проектом с открытым исходным кодом, который может помочь вам читать/записывать файлы xls(x), doc(x), ppt(x). Он имеет широкое применение.
Например, вы можете использовать его для:

• создания отчета Excel без установленного на сервере пакета Microsoft Office и более эффективной работы, чем вызов компонента Microsoft Excel ActiveX в фоновом режиме;
• извлечения текста из документов Office для реализации функции полнотекстового индексирования;
• извлечения текста и изображений из документов Excel, Word и PowerPoint;
• создания листов Excel, содержащих формулы.

В этой статье я собираюсь познакомить вас с тем, как создавать, читать и обновлять файлы .XLSX с использованием NPOI на языке C#.

Читать далее

ThreadPool.Workers

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

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

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

Читать далее

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

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

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

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

Читать далее

Универсальный Автономный Модуль в Unity

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

Один из секретов быстрой и качественной разработки это унификация. В этой статье мы рассмотрим пример реализации Универсального Автономного Модуля UAM (Universal Autonomous Module). 

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

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

Цель ясна, осталось расписать задачи и реализовать модуль.

Читать далее

Обзор Top-3 Open Source игр на C# и ошибок в их коде

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

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

Читать далее

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

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

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

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

Посмотреть код

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