Библиотека для хранения версий
От: Дмитрий Писаренко Россия http://dmitripisarenko.me
Дата: 12.09.09 15:11
Оценка:
Здравствуйте!

Мне нужно сделать механизм хранения версий инстанций класса SomeClass.

public class SomeClass
{
  // Свойства класса (public)
  public string Description {get; set;}
  // Свойств может быть сколько угодно
  ...

  // Дополнительные данные
  public List<Row> Rows {get; set;}
}

public class Row
{
  public string X {get; set};
  public string Y {get; set};
  ...
  public int InternalRevision {get;set;}
  public int OfficialRevision {get;set;}
}


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

Вопрос: Существуют для этого готовые библиотеки, которые можно использовать
в коммерческих проектах?

Заранее благодарен

Дмитрий
Дмитрий Писаренко

http://dmitripisarenko.me
Re: Библиотека для хранения версий
От: Gremlin2 http://www.fb2library.net/
Дата: 12.09.09 18:35
Оценка: 2 (1)
Здравствуйте, Дмитрий Писаренко, Вы писали:

ДП>Здравствуйте!


ДП>Мне нужно сделать механизм хранения версий инстанций класса SomeClass.


...

ДП>Этот механизм должено позволять записывать версии таким образом, что

ДП>в базе данных (или на диске) хранятся только отличия между 2 версиями.

ДП>Вопрос: Существуют для этого готовые библиотеки, которые можно использовать

ДП>в коммерческих проектах?

Ответ: Может быть стоит посмотреть в объектных хранилищах типа db4o или Matisse. Ну или прикрутить поддержку SVN (Svn.NET) для хранения сериализованых объектов в локальном репозитории.

Ну вобщем, удачи в поисках
Re[2]: Библиотека для хранения версий
От: Дмитрий Писаренко Россия http://dmitripisarenko.me
Дата: 17.09.09 11:20
Оценка:
Здравствуйте, Gremlin2, Вы писали:

G>Здравствуйте, Дмитрий Писаренко, Вы писали:


ДП>>Здравствуйте!


ДП>>Мне нужно сделать механизм хранения версий инстанций класса SomeClass.


G>...


ДП>>Этот механизм должено позволять записывать версии таким образом, что

ДП>>в базе данных (или на диске) хранятся только отличия между 2 версиями.

ДП>>Вопрос: Существуют для этого готовые библиотеки, которые можно использовать

ДП>>в коммерческих проектах?

G>Ответ: Может быть стоит посмотреть в объектных хранилищах типа db4o или Matisse. Ну или прикрутить поддержку SVN (Svn.NET) для хранения сериализованых объектов в локальном репозитории.


Я не хотел бы сериализировать объекты, т. е. я хочу хранить изменения в базе данных в виде записей — что когда изменилось.

То есть, в базе данных должен хранится

1) первая версия объекта и
2) несколько записей изменений.

* * *

Желательно, чтобы этот механизм универсальным, т. е. его можно было
применять к любым классам.

В связи с этим у меня есть 2 идеи:

1) Сделать несколько абстрактных классов/интерфейсов, которые описывают общую
логику версионирования. Когда надо сделать механизм версионирования реальных
данных, надо дописывать методы.

2) Сделать генератор кода, который будет делать исходный код классов для
версионирования, а также юнит-тестов автоматически.

Вопросы к присутствующим:

1) Есть ли другие принципиальные возможности реализовать универсальный механизм версионирования?

2) Какая из предложенных альтернатив кажется Вам лучшей?

Заранее благодарен

Дмитрий
Дмитрий Писаренко

http://dmitripisarenko.me
Re[3]: Библиотека для хранения версий
От: Аноним  
Дата: 17.09.09 11:29
Оценка:
Здравствуйте, Дмитрий Писаренко, Вы писали:
ДП>Я не хотел бы сериализировать объекты, т. е. я хочу хранить изменения в базе данных в виде записей — что когда изменилось.
Серилизуй в XML, потом делай обычный текстовый diff.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.