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

How to use a library made in Delphi in an asp.net application?

我正在编写的一个 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.

我对 concurrency/performance 问题不感兴趣,我的目标只是调用 "part of the system that creates a file" 以便让 asp.net 应用程序的最终用户下载它。我也可以接受这是线程不足的(我的意思是:一次只有一个用户可以在后台调用 Delphi 应用程序之一)

你能建议最好的方法吗?

在开始这个项目之前,我想到了 "dll" 或 "command line exe",但现在我有疑问,想知道我可能缺少一些更方便的技术。

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

几年前(大约 Delphi 8 时间段),有一个实际的 Delphi.NET 编译器可以生成 运行 in ASP.NET 的 .NET 程序集(my own website still runs today on some ASP.NET assemblies I wrote with Delphi.NET), and even use Delphi as a scripting language in ASP.NET coding。但是 Delphi.NET 现在是一个死产品,.NET 不再是任何现代 Delphi 编译器支持的平台。

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

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

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

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