4
votes

Possible Duplicate:
What Web Application Framework for Delphi is recommended?

We have a Delphi 2007 desktop application which we have hosted using Citrix. Now we want to get rid of Citrix and somehow web-enable it.

I have done bit of research and found that it is possible by using the uniGUI.

http://www.unigui.com

Conclusion: Can be done, but would require a re-write and only a subset of components are supported. Serious questions remain are the monolithic application structure in a web environment.

There are two more options morfik and atozed and they also require a re-write.

I want to know if there is any other option which requires a very less re-write work and how fragile is it?

4
Add elevatesoft.com/products?category=ewb to your list of potential solutions.mj2008
@mj2008 I have checked elevate web builder. Its not released yet. Anyway thanks for your good suggestion.A J Qarshi
Consider building a true web application, that communicates to a delphi middle tier using some toolkit that provides you with middle-tier capabilities (remobjects sdk, datasnap, or some other RESTful architecture).Warren P

4 Answers

6
votes

How fragile it is, is based on the quality of your code. If you have a good structured application, with business logic and data access fully separated from the GUI, it will be pretty safe, although you still have to rewrite mostly all your GUI. If there's logic in your forms, and the code that talks to the GUI components is intwined with the code that checks your input and stores the data, then you have a big problem.

In that case, this is a great opportunity to refactor large portions of your app and do it better this time. ;)

2
votes

Since there is no "silver bullet" here, it doesn't matter much which product you use. You have the same challenges with any of them. I would recommend spending a few days on a Proof-of-Concept (PoC) re-write of 2-3 typical screens. Implement the POC for each "finalist" product, and see how it works out. Keep track of how long it took for each one, things that were easier/harder, and how the end result appears to the end-user (performance, good/funny-looking, robustness, "feel").

As for the actual re-write, I would recommend the following:

  1. Re-factor existing application to remove business logic from the UI.
  2. Full Regression testing, and push that into production.
  3. NOW proceed with conversion to one of the web tools.

Oops - I left out a step. Step 0: FREEZE all features/fixes. If fixes are needed to current production, they'll need to be done in a separate branch, and then rolled-up into this project later.

Note that this type of work lends itself nicely to outsourcing, as the work is straightforward and the requirements are simple. Especially if it can be delivered one form at a time, so progress, timelines, and $$$ can be measured in small chunks.

Another preliminary step is to develop a "cook book" for stripping the business logic from the existing GUI layer. It should identify naming conventions, common libraries (for code that should have been shared all along but wasn't), and should describe the conversion methodology.

1
votes

AFAIK, there's not tool will convert your desktop application to web application without requiring rewrite for most of GUI Parts.

as Golez said, you will have to refactor your application, try to separate your business logic from the GUI, then you can use some tools like Intraweb to develop the GUI as web and reusing the existing business logic with it.

Another option by converting your application to n-tiers technology and warp your business logic as web services or any open technology and make your web part by any web languages such as ASP.Net or PHP.

0
votes

Depending on how 'Web enabled' you want the App to be.. I use Cybele Software's (https://www.cybelesoft.com/) Thinfinity UI to extend Apps to the Web, including Database Apps. It only requires the installation of their ThinFinity Server and one line of code added to the Proj source and you are in business. The Apps all run on your PC. Well perhaps I simplified it a little, but worth a look. HTH. Regards, Ian