Перейти к содержимому


Сериализация объектов в MultiCAD.NET. Управление совместимостью чертежей и прокси-объектами

MultiCAD.NET serialization proxy object

  • Вы не можете ответить в тему
В этой теме нет ответов

#1 azaytsev

    Клуб разработчиков

  • Клуб разработчиков
  • PipPip
  • 16 сообщений
  • Пол:Мужчина

Отправлено 27 Декабрь 2014 - 01:50

http://habrahabr.ru/...ft/blog/219997/

http://habrastorage.org/getpro/habr/post_images/904/65c/074/90465c0741968fcc051896b8faa92dff.png
При создании пользовательских объектов на традиционном C++ API (NRX в nanoCAD, ObjectARX в AutoCAD) для обеспечения сохранения объектов и чтения их из файла чертежа необходимо в явном виде описывать запись (сериализацию) и чтение (десериализацию) каждого поля. В MultiCAD.NET API применён более привычный .NET разработчикам описательный подход, в основе которого лежит стандартная .NET сериализация.
Применение сериализации, нечувствительной к версии объектов (Version Tolerance Serialization), предоставляет разработчикам более гибкий механизм управления совместимостью объектов разных версий, чем существующий в традиционном C++ API, где предусмотрено чтение предыдущих версий, но чтение файлов «из будущего» невозможно.
В MultiCAD.NET при описании новых версий объектов можно указать, что вновь добавленные поля необязательны, и тогда чертёж, сохранённый в формате новой версии приложения, прочитается и в предыдущей версии. Разумеется, без изменений остался и традиционный подход, приводящий к созданию прокси объектов (кешированной графики объектов) при загрузке чертежа в предыдущую версию приложения.
Под катом мы обсудим, как достичь совместимости двух версий объекта, а также, как обеспечить традиционный уровень совместимости, когда новые версии приложения читают старые чертежи, но не наоборот.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей