Найти в Дзене
.Net Review

Что такое сериализация и зачем она? Примеры на c#

Оглавление

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

Термины

Сериализация - процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации (структуризации) — восстановление начального состояния структуры данных из битовой последовательности.

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

SOAP - протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур. Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур.

Binary - представляет из себя преобразование объектов в поток байтов, который затем записывается в поток данных. После десериализации объекта создается точная копия исходного объекта.

Зачем?

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

JSON
JSON

Для C# реализованы удобные библиотеки, в которых одним методом можно сериализировать любой объект.

Применение

Какой из форматов сериализации лучше применять? Бинарная сериализация немного быстрее REST и SOAP. Между REST и SOAP разница не большая (подробнее). Самой популярной на текущий момент является REST.

Класс для сериализации
Класс для сериализации
Список объектов класса
Список объектов класса
-5

Для сериализации бинарной и SOAP использовались методы из встроенной библиотеки .NetFramework (System.Runtime.Serialization), а для JSON - Newtonsoft. Для работы с JSON сериализацией рекомендую именно это библиотеку (Newtonsoft), в ней реализовно большое количество функционала и работает она стабильно, в отличии от стандартной библиотеки.

Итог

Для максимальной производительности рекомендуется использовать бинарную сериализацию. Для удобства лучше использовать REST(JSON) т.к. реализовано большое количество инструентов для работы.

Телеграмм канал: https://t.me/dotnetreview

Источники: Сериализация Wiki, Rest Wiki, Soap Wiki
Наука
7 млн интересуются