Как вы сохраняете данные на диск из .NET?

У меня есть множество богатых структур данных (в основном деревья), которые я хотел бы сохранить на диске, Это означает, что я не только хочу записать их на диск, но и хочу получить гарантию того, что данные были полностью записаны и выдержат отключение питания.

Другие, похоже, разрабатывают способы кодирования богатых структур данных в плоских таблицах базы данных в качестве таблиц поиска от родительских к дочерним узлам. Это облегчает выполнение SQL-запросов к данным, но мне это не нужно: я просто хочу сохранить и загрузить свои деревья.

Очевидное решение - хранить все в виде большого двоичного объекта в базе данных: одна запись, возможно, содержащая длинная строка. Это злоупотребление базой данных или рекомендуемая практика? Другое решение - использовать базу данных XML? Есть ли какие-либо альтернативы базам данных, которые мне следует рассмотреть?

Наконец, я делаю это с F #, поэтому готовое решение для сохранения данных из .NET было бы идеальным ...

EDIT: Обратите внимание, что форматирование (например, сериализация) не имеет значения, поскольку я могу тривиально конвертировать между форматами с помощью F #. Речь идет о получении подтверждения того, что запись была завершена на всем пути вплоть до энергонезависимого хранилища (т.е. диска), и никакая часть записанных данных все еще не хранится в энергозависимом хранилище (например, кэш ОЗУ), так что Я могу безопасно продолжать это знание (например, удалив старую версию данных с диска).

10
задан Jon Harrop 19 January 2011 в 23:45
поделиться