Обмен данными между ПК и Arduino через последовательный порт (с примером на C#)

Микроконтроллеры Arduino могут интегрироваться с ПК через последовательный порт. В аппаратном отношении подключение реализовано через интерфейс USB, но операционная система воспринимает устройство так, как будто оно подключено при помощи последовательного порта.

Заполняем базу данных начальными значениями в миграциях (EntityFramework Core (Code First))

При работе с базами данных нередко возникает необходимость заполнить те или иные таблицы начальными значениями. Штатный механизм миграций в EntityFramework Core позволяет это сделать.

Меняем значение двух переменных логического типа (boolean) без использования третьей

Когда-то давно мы уже рассматривали данную задачу применительно к целочисленным переменным. Но как быть с переменными логического типа (boolean)?

Паттерн «Декоратор» (с примерами на C#, Java и PHP)

Паттерн «Декоратор» (Decorator) предназначен для добавления объекту нового функционала без порождения производных классов. «Декоратор» имеет то же альтернативное англоязычное название, что и «Адаптер» — «Wrapper» (Обёртка). Но, между этими паттернами есть принципиальное отличие.

Методы расширения в C# (на примере string)

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

Создание служб Windows с помощью C#

Служба Windows – это специальная служебная программа, которая запускается операционной системой автоматически при загрузке вне зависимости от статуса пользователя или вручную (в зависимости от настроек). Службы работают в фоновом режиме и, как правило, выполняют различные технологические задачи.

Обмен данными по сети в C# (протокол TCP)

В наше время взаимодействие приложений по сети уже давно стало обычным делом. Чаще всего для такого взаимодействия на транспортном уровне используется протокол TCP, так как он обеспечивает доставку передаваемого сообщения получателю. В .NET за работу с TCP отвечают три класса из пространства имён System.Net.Sockets.

Паттерн «Наблюдатель». Описание и примеры на C# и Java

Паттерн «Наблюдатель» (Observer) — определяет отношение «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него объекты получают уведомление об этом и также обновляют своё состояние [1].

Паттерн «Посетитель». Описание и примеры на C# и Java

Паттерн «Посетитель» (Visitor) описывает операцию, выполняемую над каждым объектом из некоторой структуры, без изменения классов этих объектов [1]. Это позволяет добавлять новый функционал без доработки уже имеющихся классов приложения.