我正在编写的一个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组件。
答案 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代码,你将不得不:
编写一个普通的DLL并将其安装到您网站的\bin
文件夹中,然后使用PInvoke访问它。
编写COM对象并将其安装在服务器计算机上,然后使用COM interop访问它(请参阅Server.CreateObject()
方法)。
将代码移植到另一个支持本机.NET开发的编译器。