1. Computing

Web Enabling A Desktop Delphi Application: What To Do / What Is Needed?

By July 20, 2010

Follow me on:

in Delphi for Web :: Here's a question / concern I have received from a long time Delphi developer, Steer Gerry (Australia). Like many Delphi developers, Gerry is looking for a way to spice up his application a little by web enabling it, or at least some portions of it.

I asked Gerry for a permission to post his question here, as I think there are many of us who would like to web enable their Delphi (desktop) applications:

I have written a large application in D7 (using Firebird and Fastreports) and I am at a total loss on how to progress to a web enabled application. Should I be looking at Delphi for PHP, DotNet, Java ???

Can you please provide some recommendations, and what tools are required (if any) - e.g. - need Apache or whatever.

Your assistance is greatly appreciated as I'm pulling my limited hair out trying to ascertain the best way forward.

The application is an Integrated Policy and Financial Management system for Insurance Brokers (General Insurance not Life Insurance).

The main advantage of benig web enabled is that my clients would be able to to enter Policies at their Clients site, as opposed to waiting until they get back to the office.

The General Ledger and other accounting stuff would not need to be web enables as they are back end (office) functions.

Therefore: the best way to web enable portions of such a desktop Delphi application is ....

Note: use the "Comments" link below to add your answer / idea / comment.

Comments
July 20, 2010 at 4:35 am
(1) Sebastian says:

Hi,

that’s my personal opinion: Go for ASP.NET. Of course there are a LOT of other ways (Intraweb, PHP, Java), but I am working with ASP.NET for many years now and I love it because things are so easy.

When using .NET you can use any language you want: My favorites are Delphi Prism and C#.

When using C# you could start over with the WebDeveloper express edition to build some prototypes. When being a little bit careful your web applications will run on Linux/Apache/mod_mono and of course in IIS on Windows. To be honest, I didn’t manage to get a web application so wrong that it wouldn’t run on apache/mono.

July 20, 2010 at 5:52 am
(2) Jean-Marc says:

http://www.morfik.com

there is no better solution for delphi programmers.

July 20, 2010 at 6:03 am
(3) Michael Thuma says:

btw: Morfik is great. I’m currently working with the Beta 3.x. This is a different concept but very easy to start with and very complete.

July 20, 2010 at 6:34 am
(4) Michael Thuma says:

Consider the hosting environment – Is it Unix based. I can imagine it makes sense to expose some services. This way you get little more freedom about the technology to choose.

In your case, I do it here too if IIS is not the definitve choice go for something very plain.

I use Abyss webserver. Here one can get very fast a good idea about what is available in general concerning infrastructure. For the devlopment …

Mike

July 20, 2010 at 7:29 am
(5) Marcin says:

Although I have not ever used but I think extpascal is worth to get a closer look – . See demos (links on the right side).

July 20, 2010 at 4:36 pm
(6) Rubem Rocha says:

Beyond Morfik, do you know Raudus?

Raudus is a Web-based, Ajax-driven framework and component set for Delphi, that allow create Rich Internet Applications (RIA). Raudus uses ExtJS GUI library. The development process is very similar to desktop applications development.

Check it on Raudus site

July 20, 2010 at 5:51 pm
(7) cbenac says:

Yes, C# and ASP.net is a very wise choice. The framework is complete. You get everything you need and C# is pure Delphi. I felt very confortable programming in both languages, after the learning curve.

July 20, 2010 at 5:53 pm
(8) Russ Thompson says:

Quickest and easiest solution for remote access to an existing Delphi app is terminal server or variant (terminal server can also be run via web access). Application stays the same and you do not have to mess with the multi-language and server issues with web based applications. Also get a very rich application wo the web limitations.

For new apps with a customer interface we are also looking for a solution – so far MS Web Express looks promising and http://www.outsystems.com/ is interesting.

July 21, 2010 at 1:37 am
(9) Russ Bell says:

I would suggest looking at CodeCharge Studio (4.3) from http://www.yessoftware.com.

It supports code generation for a number of technologies
Web technologies: PHP, ASP.NET/C#, ASP.NET/VB, Perl, ColdFusion, Java Servlets, JSP.

Databases: MySQL, MS SQL Server, MS Access, PostgreSQL, and all others that support Web connectivity.

Web Servers: ALL Web servers are supported, including Apache, IIS, etc. on all platforms (Windows, Linux, Mac)

CodeCharge Studio itself runs on Windows 2000, 2003, XP, Vista

July 21, 2010 at 2:24 am
(10) woolfik says:

Hello I was create desktop application but my boss (after I finished) tell me that users have to be able to using this program on web. Because program was finished and he whant it on web I make 2 applications. First was kind of client wrote in php and it is start on web server. Second is program working as windows service listening on port TCP/IP. Now when users do anything on web page php socket solution is connecting to my server service and all operation is done on server site.

July 21, 2010 at 2:29 am
(11) marcel says:

For the shortest learncurve I would recomment Intraweb. I developed for 3 years in VisualStudio C#/asp.NET which I found (as a Delphi programmer) very time consuming. You dont only have to learn C# but Javascript, HTML and last but not least .NET as well. Don’t through away you investments by leaving Delphi / pascal. After 20 years i can say there’s no better way than Delphi.

July 21, 2010 at 3:02 am
(12) Nani Babu Bobbara says:

Hi ,

Hope its a well stabilized application.If its need to be web enabled then I sincerely suggest deploy the executable s on Citrix server and provide the web interface to access those Apps. So every one on the web can access.

July 21, 2010 at 3:38 am
(13) Niall says:

Hi

I had the same problem with two different apps, one written by myself and one external.

It was too costly and time consumming to learn new programming languages or have the programs web enabled for us, so for the external one we used Citrix, no programming at all, but expensive to build and run.

For own app I used Delphi, ICS Midware, pure HTML and IIS. I also successfully used kbmMW in a another project.

Instead of learning HTML, I used Dreamweaver to design the forms simply entering the return address of my app as the form action. Then I just used a TWebModule.

Presto, only a couple of components to learn and away you go. All the logic is still Delphi and can be hosted almost anywhere.

Cheers
Niall

July 21, 2010 at 8:30 am
(14) David Rosen says:

Enabling web functionality in Delphi desktop application can be easily achieved when a desktop designer starts to think webly (I am not sure that there is such a word).
From my experience, and taking into consideration the communication gets faster from day to day, the way to go is by:
(1) Use DataSnap for the purpose of maintaining one central database for all users.
(2) Use DataSanp for the purpose of building servers that embed business logic.
(3) Build thin clients
(4) Keep on using the power that desktop application gives us and web application, restricted by the bowser, can only dream of.
(5) Keep on using Delphi that complies into one executable, no DLLs and no dot net version annoyance.
Delphi 2010 made DataSnap easy to use and straightforward. Give it a try before you throw everything and start learning new languages, new IDE and then, a huge effort of re-writing from scratch.
David

July 21, 2010 at 8:48 am
(15) Edwin says:

Never use CodeCharge, it’s only a code generator and very limited and extremely slow!

July 22, 2010 at 4:35 am
(16) harycane says:

You don’t need to rewrite anything! You can use GraphOn’s Go-Global (or any similar product) and web enable any (ANY) application. I do!!

July 22, 2010 at 4:57 am
(17) Jan Doggen says:

I think Intraweb leaves you with shortest learning curve. It is included with D7. IIRC only later Intraweb versions give you Ajax, but that shouldn’t be a problem.
Intraweb scales nicely to several hundred simultaneous users.
You can develop and test a local EXE with built in web server, than have a second project file for an ISAPI DLL. You can separate the Delphi code and HTML/CSS which I recommend.
However, you have a lot of conversion to do:
1) Rewrite your app with all new Intraweb forms instead of the default Delphi forms
2) Write your HTML/CSS

Bye
jan

July 22, 2010 at 6:18 pm
(18) Steve says:

I originally built ISAPI applications using WebBroker initially and the IntraWeb, but I then switched to PHP with a CodeIgniter framework because I wanted it to run on Linux web servers. I still use Delphi for desktop apps.

July 22, 2010 at 6:32 pm
(19) Jade says:

Another vote for Morfik, the people behind this product are real Delphi experts. The concept is a little different, and that is what I’ve liked the most. This product allows us to have the shortest learning curve possible because I didn’t have to learn new web programming or complete any major code translation, they’ve taken care of that for my app.

July 23, 2010 at 2:13 am
(20) Gerry Steer says:

To all of you who replied I thank you very much and will investigate the various options suggested.

Thanks again.

Gerry

July 23, 2010 at 10:46 am
(21) Luis Rodolfo says:

@David Rosen agree

July 25, 2010 at 9:00 am
(22) Didier Cabalé says:

please allow me to highlight this requirement: “.. would like to web enable their Delphi (desktop) applications”
I made this:
1. build a standard win32 application, using pure Delphi /win32 components created in a TForm
2. *without changing the business logic embedded in the existing win32 desktop application*, buil a web application using the WebSnap (deprecated) framework: use the wizard to create the skelleton + runtime create the win32 TForm
3. create the necessary html as user interface.

July 27, 2010 at 8:53 am
(23) Norrit says:

We are migrating part of our logic to the internet aswell… We’ve decided to do it through a soap service… Just create a delphi soap service which talks to the middle layer of your application (provided that you have an n-tier application)… Otherwise you should shift the functionalities you need to a middle layer…

As for the front-end we use GWT (google web toolkit), which is browser independant (hot issue here)…

Leave a Comment

Line and paragraph breaks are automatic. Some HTML allowed: <a href="" title="">, <b>, <i>, <strike>

©2014 About.com. All rights reserved.