Question

I'm evaluating the possibility to write a web application using Delphi (ISAPI/CGI/...). I still cannot see enough reasons to use Delphi instead of a "classic" web development framework.

If you have experience in this specific area please share your remarks. Would you recommend Delphi instead of PHP/Rails/ASP/...? Do you know any web applications written in Delphi? (not web services)

Was it helpful?

Solution

If you use Delphi for web application, you will get these benefits:

  1. Performance compared to other scripts languages.
  2. Reusing of your Delphi code.
  3. Working in great IDE.
  4. Use your favorite language (Delphi).
  5. If you use Intraweb, you can get built in Ajax support and producative without requiring to have deep knowledge in web or JavaScript.

but the disadvange:

  1. Deployment isn't easy, you need to work with ISAPI & IIS, and you rarely find Hosting copmany that offer ISAPI for you.
  2. Only windows platform, (If you use freePascal you may get others).
  3. No frameworks, No libraries for helping you on this side.
  4. Very poor documentation on this side, and most of articles are old.
  5. Working with Webbroker isn't productive compared to other solutions like Asp.Net.
  6. Even if you use Intraweb, it's more productive than other solutions, but isn't flexible, because it's hide the web side on you.

BTW, Shareit has replaced their old web applicatoin that was based on PHP with newer one built with Delphi and Intraweb.

OTHER TIPS

A reason could be that your model, business logic or data access layer is written in Delphi and you need to use that in your webapplication. Al tough, you could use your model, business logic or data access layer from other programming languages through things like dll calls, COM, REST or SOAP. Then this is not a reason to use Delphi to develop webapplications anymore.

Another reason could be that the developers are very good in Delphi and less good with the other languages.

Using a compiled language also gives you a performance benefit over interpreted languages like php, rails and asp.

Delphi has many strong points, but its web application capabilities don't count among those IMO. This is exactly because of the natively-compiled code it generates. Among others:

  1. If you don't control the server (say it's hosted by your ISP) it may be near-impossible to get natively-compiled code installed. Scripted languages are accepted by nearly all the web hosts I can think of.
  2. There are some idiosyncrasies that relate to using DLLs from your ISAPI apps. For example when you load a library using LoadLibrary, the current folder is C:\Windows\System32 which could convenient if you're calling existing code that expected DLLs to reside in the current folder.
  3. Newer versions of IIS also has some security features that make them inconvenient. There is an "Application Protection" setting that must be set to its lowest setting and all approved ISAPI extentions must be separately enabled. On a server you share with others there is a lot of potential for disaster.

Delphi Prism has more to offer since it can do the full compement of .NET-related technologies, including MVC and Silverlight. I do all my web services in C# already and if I had to start a new web project, Delphi Prism or Visual C# would be my choice.

I successfully deployed several commercial applications over the years using Delphi to create ISAPI dll's. The reasoning I used for selecting Delphi was simple. We were a Delphi shop, and the amount of time spent coding was greatly reduced by selecting Delphi as our engine, with some client side Javascript on the browser side. Most of the functionality required was dealing with calls to a back end database which needed to remain encrypted to reduce the possible exposure to robots.

If you do decide to go this route, I strongly recommend using the idDebugger tool to assist in debugging. It really takes the pain out of it.

Wonderful assortment of tools, and methods of creating rich web applications. Also it supports all of the current technologies. Thus you can roll any type of application / web app that you can think of. I have lots and lots of examples.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top