В данной статье мы рассмотрим задачи переноса сложных объектов между процессами и машинами. В наших системах было много мест, где требовалось перемещать большое кол-во бизнес объектов различной структуры, например:
* самозацикленные графы объектов (деревья с back-references)
* массивы структур (value types)
* классы/структуры с readonly полями
* инстансы существующих .Net коллекций (Dictionary, List), которые внутренне используют custom-сериализацию
* большое кол-во инстансов типов, специализированных для конкретной задачи
Речь пойдёт о трёх аспектах, которые очень важны в распределённых кластерных системах:
* скорость сериализации/десериализации
* объём объектов в сериализированном виде
* возможность использовать существующие объекты без надобности “украшения” этих объектов и их полей вспомогательными атрибутами для сериализации
[Читать дальше →][1]
[1]:
http://habrahabr.ru/post/257247/#habracut