Сколько проектов программного обеспечения Вы работали над используемой сериализацией объекта? Я лично никогда не сталкивался со сценарием, где сериализация объекта использовалась. Один вариант использования, о котором я могу думать, программное обеспечение сервера, хранящее объекты к диску для сохранения памяти. Есть ли другие типы программного обеспечения, где сериализация объекта важна или предпочтительна по базе данных?
Я использовал сериализацию объектов во многих своих проектах. Иногда мы используем его для локального хранения настроек компьютера. Я также использовал сериализацию XML для упрощения взаимодействия и создания XML-документов. Это также очень полезно в протоколах связи. Выполните сериализацию на одном конце и повторно надуйте на другом конце.
вы можете комбинировать БД и сериализацию. например, когда вам нужно сохранить объект с большим количеством атрибутов (часто динамических, т.е. один набор атрибутов объекта будет отличаться от другого) в реляционной БД, и вы не хотите создавать новый столбец для каждого атрибута
Вот несколько вариантов использования, которые я могу придумать:
Я активно использовал сериализацию XML в одном проекте. Этот метод использовался для сохранения в структурах данных базы данных, которые не имели общей структуры, поэтому данные не могли быть сохранены напрямую. Я также использовал сериализацию для разделения настроек приложения, которые можно было изменить во время выполнения.
Использование сериализации экономит ваше время каждый раз, когда вы хотите реализовать функцию импорта / экспорта.
Каждый раз, когда вам нужно экспортировать данные вашей системы, создавать резервные копии или сохранять какие-либо настройки, вы можете вместо этого использовать сериализацию и просто сохранять состояние объектов, которые представляют фактическую конфигурацию, данные или что-то еще.
Только когда вам нужен определенный формат экспортируемых / импортируемых данных, имеет смысл создать собственный синтаксический анализатор и экспортер / импортер.
Сериализация также защищена от изменений. Всякий раз, когда вы меняете формат объекта, задействованного в функции обмена, он автоматически экспортируется, и вам не нужно изменять логику частей экспорта / импорта.
Что ж, преобразование объектов в XML или JSON - это форма сериализации, довольно распространенная в Интернете. Я также работал над проектом, в котором объекты были созданы и сериализованы в двоичный файл в одном приложении, а затем импортированы в другое настраиваемое приложение (хотя это хрупко, поскольку в нем используется C #, а сериализация в прошлом прерывалась между версиями платформы .NET. ). Кроме того, для сериализации могут быть полезны параметры приложения, имеющие сложную структуру. Я также думаю, что API удаленного взаимодействия используют сериализацию для общения. По сути, сериализация - это просто способ сохранить состояние ваших объектов, и это имеет много разных применений.
Я использую сериализацию для передачи объектов через TCP-сокет. Вы помещаете XmlSerializers с обеих сторон, и он разбирает ваши данные на легкодоступные объекты. Если немного поработать, то можно добиться того, что вы будете передавать объекты туда и обратно, и это чрезвычайно упрощает взаимодействие через сокет, сводя его не более чем к socket.Send(myObject);
.
Мы начали с системы, которая сериализовала все тысячи объектов в памяти на диск каждые 15 минут или около того. Когда это заняло слишком много времени, мы перешли в смешанный режим сохранения объектов в реляционный файл базы данных и рассола (это была система Python, кстати). В конце концов большая часть данных хранилась в реляционной базе данных. Интересно, что система была написана таким образом, что весь код приложения не заботился о том, что там происходит. Все это было сделано с использованием XP и тысяч автоматических тестов.
Мы использовали его для функциональности резервного копирования и обновления. По сути, это были сериализованные объекты hibernate, которые резервировались, затем схема БД изменялась в процессе обновления, и мы предоставляли вспомогательный класс, который "покрывал" старые объекты новой схемой БД. Таким образом, у нас был довольно надежный механизм обновления, который легко ломался и одновременно выполнял автоматическое резервное копирование.
Приложения на основе документов, такие как текстовые процессоры и редакторы векторной графики, часто сериализуют модель документа на диск, когда пользователь вызывает команду «Сохранить». В этих приложениях сериализация часто предпочтительнее сложных баз данных.