Для удобной передачи данных между приложениями и сервисами были созданы специальные стандарты для передачи таких данных. Подробнее о том, что такое сериализация и о самых популярных форматах в этой статье.
Термины
Сериализация - процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации (структуризации) — восстановление начального состояния структуры данных из битовой последовательности.
REST - архитектурный стиль взаимодействия компонентов распределённого приложения в сети. REST представляет собой согласованный набор ограничений, учитываемых при проектировании распределённой гипермедиа-системы. В определённых случаях это приводит к повышению производительности и упрощению архитектуры. Представлена в виде JSON.
SOAP - протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур. Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур.
Binary - представляет из себя преобразование объектов в поток байтов, который затем записывается в поток данных. После десериализации объекта создается точная копия исходного объекта.
Зачем?
Для хранения и удобного получения данных из файла была придумана сериализация. Все объекты записываются в определенном формате. Таким образом, в одном приложении мы сериализируем данные, в другом десериализируем и получаем готовые объекты.
Для C# реализованы удобные библиотеки, в которых одним методом можно сериализировать любой объект.
Применение
Какой из форматов сериализации лучше применять? Бинарная сериализация немного быстрее REST и SOAP. Между REST и SOAP разница не большая (подробнее). Самой популярной на текущий момент является REST.
Для сериализации бинарной и SOAP использовались методы из встроенной библиотеки .NetFramework (System.Runtime.Serialization), а для JSON - Newtonsoft. Для работы с JSON сериализацией рекомендую именно это библиотеку (Newtonsoft), в ней реализовно большое количество функционала и работает она стабильно, в отличии от стандартной библиотеки.
Итог
Для максимальной производительности рекомендуется использовать бинарную сериализацию. Для удобства лучше использовать REST(JSON) т.к. реализовано большое количество инструентов для работы.
Телеграмм канал: https://t.me/dotnetreview
Источники: Сериализация Wiki, Rest Wiki, Soap Wiki