Вопрос архитектуры относительно экспорта в MS Project - PullRequest
2 голосов
/ 01 декабря 2009

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

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

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

0 голосов
/ 13 декабря 2009

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

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

...