Ввод денежной суммы в два поля (Windows Forms)

Иногда в работе приходится сталкиваться с не совсем тривиальной постановкой тривиальных задач. Например, ввести денежную сумму в два поля. То есть, рубли и копейки вводятся в разные поля. Рассмотрим, как можно решить данную задачу в рамках Windows Forms.

Продолжить чтение

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

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

Продолжить чтение

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

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

Продолжить чтение

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

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

Продолжить чтение

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

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

Продолжить чтение

XML сериализация и десериализация произвольных объектов в C#

Работу с XML в C# условно можно разделить на четыре части, в зависимости от решаемых задач. Стандартный разбор (парсинг) и формирование XML при помощи DOM, Xpath и т. п.; Сериализация и десериализация объектов, имеющих для этого штатные средства (например, DataTable); Сериализация и десериализация произвольных объектов, не относящихся к предыдущей части; Валидация

Продолжить чтение

Обновляем кеш LinqToSql

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

Продолжить чтение