Delphi中的Web应用程序

8

我正在评估使用Delphi(ISAPI/CGI/...)编写Web应用程序的可能性。 我仍然看不到足够的理由使用Delphi而不是“传统”的Web开发框架。

如果您在这个特定领域有经验,请分享您的意见。 您会推荐Delphi而不是PHP / Rails / ASP / ...吗? 您知道有哪些使用Delphi编写的Web应用程序吗?(不是Web服务)

5个回答

10
如果你使用 Delphi 开发 Web 应用程序,你将获得以下优势:
  1. 性能比其他脚本语言更快。
  2. 可以重用已有的 Delphi 代码。
  3. 使用优秀的 IDE。
  4. 可以使用自己喜欢的编程语言(Delphi)。
  5. 如果使用 Intraweb,可以获得内置的 Ajax 支持,无需深入了解 Web 或 JavaScript 即可提高生产力。
但是也存在不足之处:
  1. 部署不容易,需要使用 ISAPI 和 IIS,且很少有 Hosting 公司提供 ISAPI 支持。
  2. 只支持 Windows 平台(如果使用 FreePascal 可能会有其他选择)。
  3. 没有框架或库可帮助您在此方面进行开发。
  4. 文档非常缺乏,大部分文章都很老旧。
  5. 与 WebBroker 相比,使用它并不够高效,其他解决方案如 Asp.Net 更加优秀。
  6. 即使使用 Intraweb,相对于其他解决方案,它也更加高效,但是不够灵活,因为它会对 Web 方面做出一定程度的封装。
顺便提一下,Shareit 已经用基于 Delphi 和 Intraweb 的新版本取代了他们原本使用 PHP 构建的 Web 应用程序。

1
90% 的人都认为 Intraweb 是一个非常好的“Intrawebs”解决方案。Delphi Isapi 真正强大的地方在于与像 JQuery 这样的 Javascript 框架一起使用时制作 ajax。这样,生产力非常高,并且看起来非常接近传统的 Delphi 编码。 - Francis Lee
还有WebHub。我从未使用过IntraWeb,所以不知道它与之相比如何。我认为ASP.NET更好,但它比PHP/RoR更强大,后者只是数据库和表现之间的薄壳。 - Marco van de Voort
Intraweb可以生成一个带有内置Web服务器的exe,可以作为Windows服务运行。我有一个像这样的应用程序,它具有SQL服务器后端,可以很好地扩展,并且可以长时间运行而没有问题。 - Argalatyr
你有没有更多关于ShareIt在他们的网站上使用Delphi的信息链接? - Birger
Birger,看一下这个页面http://www.atozed.com/IntraWeb/Studies/Element5.EN.aspx - Mohammed Nasman
@Mohammed:Atozed页面上说,IntraWeb已被用于一个名为“管理信息系统”的内部应用程序,而不是用于ShareIt网站。 - mjn

3
一个原因可能是,您的模型、业务逻辑或数据访问层是用Delphi编写的,而你需要在Web应用程序中使用。虽然,您可以通过其他编程语言来使用模型、业务逻辑或数据访问层,例如dll调用、COM、REST或SOAP。但这不再是使用Delphi开发Web应用程序的原因。
另一个原因可能是,开发人员很擅长Delphi,对其他语言掌握较少。
使用编译语言也比使用解释语言如php、rails和asp更具有性能优势。

3
Delphi有很多优点,但其Web应用程序能力并不是其中之一。这恰恰是因为它生成本地编译代码的缘故。以下是其中的一些原因:
  1. 如果您无法控制服务器(比如由ISP托管),那么几乎不可能安装本地编译代码。脚本语言被几乎所有我所知道的Web主机所接受。
  2. 使用从ISAPI应用程序调用DLL时会出现某些特殊情况。例如,当您使用LoadLibrary加载库时,当前文件夹是C:\ Windows \ System32,如果您调用了预期DLL在当前文件夹中驻留的现有代码,则这可能很方便。
  3. IIS的新版本还具有一些安全功能,这使得它们不方便。有一个“应用程序保护”设置必须设置为最低设置,并且必须单独启用所有已批准的ISAPI扩展名。在与他人共享的服务器上,存在许多潜在的灾难风险。
Delphi Prism可以提供更多,因为它可以执行完整的.NET相关技术,包括MVC和Silverlight。我已经用C#做了所有我的Web服务,如果我必须开始一个新的Web项目,Delphi Prism或Visual C#将是我的选择。

1
多年来,我成功地使用Delphi创建ISAPI dll部署了几个商业应用程序。选择Delphi的原因很简单。我们是一个Delphi工作室,选择Delphi作为引擎可以大大减少编码时间,在浏览器端使用一些客户端Javascript。大部分所需功能都需要处理对后端数据库的调用,这些调用需要保持加密以减少机器人的可能曝光。
如果您决定采用这种方法,我强烈建议使用idDebugger工具进行调试。它真的可以减轻痛苦。

0

拥有丰富的工具和创建富Web应用程序的方法,同时支持所有当前技术。因此,您可以开发任何类型的应用程序/ Web应用程序。我有很多很多例子。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接