【问题标题】:Using MPXJ in .NET在 .NET 中使用 MPXJ
【发布时间】:2013-03-08 18:39:31
【问题描述】:

我正在尝试在 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 美元)。

【问题讨论】:

    标签: .net ms-project mpxj


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢您的回复,乔恩。我很高兴 MPXJ 甚至存在,所以我想我会接受它并学习一点 Java!我曾考虑为 MPXJ 类制作 .NET 包装类,这些类将进行转换并返回 .NET 本机类型,但由于我对组件的有限使用,我无法证明所涉及的时间是合理的。
    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多