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.


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.
http://www.morfik.com
there is no better solution for delphi programmers.
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.
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
Although I have not ever used but I think extpascal is worth to get a closer look – . See demos (links on the right side).
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
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.
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.
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
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.
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.
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.
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
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
Never use CodeCharge, it’s only a code generator and very limited and extremely slow!
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!!
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
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.
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.
To all of you who replied I thank you very much and will investigate the various options suggested.
Thanks again.
Gerry
@David Rosen agree
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.
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)…