2010-02-13 78 views
0

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

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

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

回答

2

我保持MPXJ,所以我认为这可能是有用的打招呼,并让你知道我一直在考虑。为了回答你的第一个问题,我认为你没有做错任何事情,我也一直在寻找在使用IKVM版本的MPXJ时调用Java和.Net类型的方法,而且看起来并不像在那里成为任何既定的解决方案。我仍在寻找!

我目前正在将Project 2010支持添加到MPXJ中,但是一旦明白我要调查MPXJ内部的数据类型工厂的使用情况,它将在Java版本中为您提供原生Java类型来自API以及IVKM .Net版本将为您提供实现熟悉的.Net接口的API的扩展IVKM类型。

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

道歉,我不能提供即时的解决方案 - 但我知道这个问题!

+0

感谢您的回应,Jon。我很高兴MPXJ甚至存在,所以我想我会吸取它并学习一点Java!我曾考虑为MPXJ类创建.NET包装类,这些类将执行转换并返回.NET本机类型,但由于组件的限制使用,我无法证明所涉及的时间是合理的。 – patmortech 2010-02-26 13:25:06