Проект системы "Mechanics Studio .NET" | ||||||||||||||||||||||||||||||
Хранение данных механизма | ||||||||||||||||||||||||||||||
  
Обновление: 12.02.06
|
Одной из базовых возможностей любой системы автоматизированного проектирования являются возможности сохранения данных проектируемого объекта и его последующей загрузки в систему. Обычно сохранение производится в файл на диск компьютера, но в современных системах часто бывает реализована возможность работы с некоторой специально-развёрнутой на сервере базой данных. Возможность хранения данных в базе даёт ряд преимуществ: доступ к общим данным с любого компьютера, подключённого к сети; централизованное управление данными; повышенная надёжность и др. В связи со всем сказанным в данной программе планируется реализовать оба способа хранения данных. Платформа .NET Framework предоставляет разработчикам удобные средства (класс DataSet и др.) для работы с базами данных и XML-файлами, которые фактически позволяют абстрагироваться от способа хранения данных - в файл или базе. Таким образом для того чтобы реализовать сохранение механизмов в XML-файл или базу, необходимо пррежде всего спроектировать структуру хранимых данных в форме таблиц и связей между ними по ключам. На рисунке ниже приведена диаграмма описывающая структуру данных для хранения механизмов:
Каждая таблица на представленной диаграмме соответствует некоторому классу, описывающему элемент структуры механизма, который имеет методы сохранения и загрузки данных из соответствующей таблицы. Такая структура талиц позволяет хранить в одном XML-файле или базе данных множество механизмов с информацией о настройках стилей отображения и видов. Сохранение и загрузку данных из таблиц поддерживают следующие классы программы:
Для реализации функиональности сохранения и загрузки данных из таблиц, в каждом из перечисленных классов были реализованы следующие методы:
Кроме того, в процессе сохранения/загрузки задействован дополнительный вспомогательный класс - LoadManager. Этот класс хранит данные, необходимые для передачи между объектами в течении процесса сохранения/загрузки и реализует методы, используемые для работы со всем DataSet в целом, а не с отдельными таблицами. Центральное место в классе занимает специльное поле - двумерный "словарь", позволляющий по имени таблицы и числовому идентификатору записи получить ссылку на объект, который был сохранён в эту запись. Это поле используется при сохранении и загрузке данных для восстановления ссылок между объектами по связям между таблицами через числовые идентификаторы. Этот класс так же имеет методы загрузки и сохранения данных в DataSet для XML файлов и базы данных. |