如何在asp.net应用程序中使用Delphi中的库?

时间:2017-02-04 15:46:00

标签: asp.net .net delphi integration delphi-10-seattle

我正在编写的一个asp.net应用程序必须提供使用Delphi程序创建的pdf文件和绘图(dxf AutoCAD文件)。

只是为了澄清这个场景:我有熟练的Delphi开发人员,所以我给他们分配了创建pdf和dxf文件的程序的任务。

所以总共有3个系统:

1)asp.net主应用程序

2)一个Delphi应用程序,它接收一些参数(来自asp.net)并生成一个pdf文件。

3)一个Delphi应用程序,它接收一些参数(来自asp.net)并生成一个dxf文件。

现在Delphi应用程序作为独立的win32应用程序(其中参数通过UI控件设置)工作正常,我需要转换它们,以便可以从asp.net使用它们。

我对并发/性能问题不感兴趣,我的目标只是调用“创建文件的系统的一部分”,以便我可以让asp.net应用程序的最终用户下载它。我也可以接受这是没有线程的(我的意思是:只有一个用户可以一次调用后面的一个Delphi应用程序)

你能否为此提出最佳方法?

在开始这个项目之前,我记得“dll”或“命令行exe”,但现在我有疑问,并且想知道可能是我错过了一些更方便的技术。

请考虑将库移植到c#这不是一个选项,因为我们使用了一些没有100%.net对应的第三方Delphi组件。

1 个答案:

答案 0 :(得分:4)

多年前(在Delphi 8时间框架周围),有一个实际的Delphi.NET编译器可以生成在ASP.NET中运行的.NET程序集(my own website今天仍在我写的一些ASP.NET程序集上运行使用Delphi.NET),甚至使用Delphi as a scripting language in ASP.NET coding。但Delphi.NET现在已成为一种死产品,任何现代Delphi编译器都不再支持.NET。

因此,如果你想在ASP.NET中运行Delphi代码,你将不得不:

  1. 编写一个普通的DLL并将其安装到您网站的\bin文件夹中,然后使用PInvoke访问它。

  2. 编写COM对象并将其安装在服务器计算机上,然后使用COM interop访问它(请参阅Server.CreateObject()方法)。

  3. 将代码移植到另一个支持本机.NET开发的编译器。