Рубрика: Статьи

Паттерн Состояние на C#

Паттерн Состояние управляет изменением поведения объекта при изменении его внутреннего состояния. Внешнее это выглядит так, словно объект меняет свой класс. Паттерн Состояние позволяет объекту иметь много разный вариантов поведения в зависимости от его внутреннего состояния. В отличие от процедурных конечных автоматов, состояние в этом паттерне представляется полноценным классом. Поведение контекста реализуется делегированием выполняемых операций текущему […]

Возраст на сегодня по дате рождения

Простая задача — определить возраст человека на текущую дату по его дате рождения — часто встречается в разработке. Это может понадобиться в формах регистрации, анкетах, расчете возраста для скидок и т. д. Покажем, как с помощью C# можно корректно рассчитать возраст на сегодняшний день, учитывая, прошёл ли день рождения в этом году. using System; using […]

Как проверить подключение к интернету на компьютере

Проверка наличия интернет-соединения — задача, с которой сталкиваются многие разработчики. Хотя кажется, что всё просто, на практике есть нюансы: фаерволы, DNS, доступность серверов. Мы рассмотрим простой и надежный способ — отправку HTTP-запроса к сайту Google. Если сервер отвечает с кодом 200 (OK) — значит, интернет есть. В противном случае — нет. using System; using System.Collections.Generic; […]

Криптография и защита

Криптография — важнейший инструмент в защите данных. В C# платформа .NET предоставляет мощные средства для шифрования, подписей и проверки целостности данных. В данном примере мы создадим цифровую подпись с помощью алгоритма RSA, а затем проверим её — то есть сверим, соответствует ли подпись исходному сообщению. Что мы реализуем: Проверку подписи по открытому ключу. Генерацию ключей […]

Пример приема и передачи файла по сети C#

Вы этой статье я покажу как можно создать клиентско серверное приложение для передачи файлов по сети. Для начала напишем проект для передачи файла: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Runtime.Serialization.Formatters.Binary; using System.IO; using System.Net; using System.Net.Sockets; namespace File_Sender { /// <summary> /// Summary description for Form1. /// </summary> […]