Вопрос архитектуры относительно экспорта в MS Project

У меня есть небольшое веб-приложение asp.net, которое позволяет создавать проекты и задачи и применять к ним оценки, работу и т. д. Я пишу функцию экспорта, чтобы вы могли загружать их в виде файла MS Project. На самом деле это просто файл XML.

Позже я напишу функцию импорта, которая позволит вам перепланировать даты начала и окончания задачи, назначенные ресурсы и т. д., но не изменять оценки или примененные часы. Это будет обрабатываться исключительно веб-приложением.

Я пытаюсь найти лучшую архитектуру для этого. Вот пара идей, с которыми я играюсь.

  1. Добавьте функцию ExportToProject в мой класс Project и создайте XML на лету.
  2. Возьмите существующую структуру класса и добавьте атрибуты XML-сериализатора, а затем сериализуйте объект прямо в файл проекта. Тем не менее, это оставляет меня с несколькими вопросами. Что происходит со всеми другими свойствами, которые я не использую. Насколько повторно используемым будет сериализованный объект, если он не включает все данные и отформатирован для MS Project. Могу ли я, так сказать, иметь несколько сериализованных представлений?
  3. Вместо этого создайте новый класс XmlExport, который будет сериализован, что будет похоже на описанную выше стратегию, но с дополнительным уровнем абстракции.
  4. Скопируйте копию FogBugz, установите ее и переезжайте в Коста-Рику.

Спасибо, любая помощь приветствуется.


person Shawn    schedule 01.12.2009    source источник


Ответы (2)


Я бы использовал 3. или 1b. Это дает вам возможность изменить свою внутреннюю структуру в любое время без каких-либо осложнений.

1б. будет: создать класс экспортера, который может создавать XML на лету. Но найдите этот экспортер не в своем классе Project, а в отдельном. Это также дополнительный уровень абстракции.

person Arthur    schedule 01.12.2009

Вместо создания собственного, используйте MPXJ, который предоставляет удобный набор .Net, а также Java. библиотеки. Он читает все типы форматов MS Project и записывает в .MPX и более новые форматы файлов на основе XML.

Это надежная библиотека, основанная на POI, которая сэкономит вам много работы.

person Mark Nold    schedule 13.12.2009