2

我有一个小的 asp.net web 应用程序,它允许您创建项目和任务并将估计、工作等应用到它们。我正在编写一个导出功能,以允许您将它们作为 MS Project 文件下载。它实际上只是一个 XML 文件。

之后我将编写一个导入功能,它允许您重新安排任务开始和停止日期、分配的资源等,但不能修改估计或应用时间。这将仅由 Web 应用程序处理。

我试图找出最好的架构来做到这一点。这是我正在玩弄的几个想法。

  1. 在我的 Project 类上添加一个 ExportToProject 函数,并动态创建 XML。
  2. 采用现有的类结构并添加 XML 序列化器属性,并将对象直接序列化为 Project 文件。然而,这给我留下了几个问题。我没有使用的所有其他属性会发生什么。即使序列化对象不包含所有数据并且为 MS Project 格式化,它的可重用性如何。可以这么说,我可以有多个序列化视图吗?
  3. 创建一个被序列化的新 XmlExport 类,这与上述策略类似,但多了一层抽象。
  4. 盗版 FogBugz,安装它,然后搬到哥斯达黎加。

谢谢,任何帮助表示赞赏。

4

2 回答 2

1

我会使用 3. 或 1b。这使您有机会随时更改您的内部结构而不会出现复杂情况。

1b。将是:创建一个能够动态创建 XML 的导出器类。但是不要在你的项目类中找到那个导出器,而是在一个单独的类中。这也是一个额外的抽象层。

于 2009-12-01T19:54:22.633 回答
0

与其自己动手,不如使用MPXJ,它提供了一组方便的 .Net 和 Java 库。它可以读取所有类型的 MS Project 格式并写入 .MPX 和更新的基于 XML 的文件格式。

这是一个基于 POI 的强大库,将为您节省大量工作。

于 2009-12-13T18:36:34.297 回答