0

我正在尝试在 ASP.NET 应用程序中使用 MS Project 文件,并且遇到了MPXJ library,它以 Java 开始并且也已转换为 .NET 版本。它在 .NET 中运行良好,但我发现它的困难在于它的所有方法都使用 Java 数据类型,而不是本机 .NET 数据类型。这意味着对于诸如格式化返回的日期或数字之类的事情,我必须阅读 java.text.NumberFormat,以及与事物交互的其他 Java 风格的方式。

所以我的问题是:我做错了什么,还是我基本上必须以“Java 风格”编程才能与.NET 中的这个库进行交互?我当然可以管理它,但是当有人查看我的代码时,我不确定这对未来的可维护性意味着什么。

我想这个问题的另一部分是:除了 MPXJ 之外,还有其他好的、免费的机制来与 .mpp 文件交互吗?我看到的另外两个选项是 a) 在服务器上安装 MS Project 并使用 OLEDB 提供程序(无法安装,因为它是共享主机),以及 b) 购买 Aspose.Tasks 组件(至少 600 美元)。

4

1 回答 1

2

我维护 MPXJ,所以我认为打个招呼可能会很有用,让你知道我一直在考虑什么。

要回答您的第一个问题,我认为您没有做错任何事情,我也一直在寻找在使用 MPXJ 的 IKVM 版本时在 Java 和 .Net 类型之间进行调解的方法,但似乎没有任何建立解决方案。不过我还在找!

我目前正在将 Project 2010 支持添加到 MPXJ,但一旦明确这一点,我将研究 MPXJ 内部数据类型工厂的使用,在 Java 版本中,它将为您提供来自 API 的本机 Java 类型,并且在 IVKM .Net 版本中,将为您提供来自 API 的扩展 IVKM 类型,这些类型实现了熟悉的 .Net 接口。

目标是避免开发人员不得不考虑类型转换,这些修改后的类型在大多数情况下应该“正常工作”。如果我不能提供类型转换实用程序,但我希望它对 .Net 版本的用户不可见。

抱歉,我无法立即提供解决方案 - 但我知道这个问题!

于 2010-02-26T09:36:06.820 回答