views:

514

answers:

7

We want to migrate UI rich application from delphi to java or Web Application.

Reason is that we want application to be portable on all Operating Systems.

Current Components and Modules of Application in Delphi :

  • In Delphi we are utilizing TWebBrowser component to display HTML content
  • We are playing mp3 that is extracted from FileStream on clicks in HTML.
  • All resources for HTML are retrieved from Embeded Database Firebird/Ms Access.
  • To sync some content we are doing HTTP post to PHP scripts to centralize the data on webserver.

Deployment: - Application has to be deployed on CD and installed on Desktop computer on Mac OS, Linux, Windows.

I need your help how to approach this migration. Is better to go with Java UI or Web App that will be deployed with WAMP/XAMP and appropriate distributions on Linux and Mac's.

EDIT: I have some specific requirements for audio functionality. Audio files are separate files distributed on CD or USB. Audio files are one solid file compiled from mp3's inside. Application will have to have ability to extract the mp3 based on offset and size of mp3 stored in index file and to play in real time... How this affects idea of Web App using this approach.

+3  A: 

If I had to deploy on a CD, I'd probably go with Adobe's AIR. It is really fulfilling the promise Java made 10 years ago in a reasonable way. It isn't perfect, but it does a pretty good job.

Travis Jensen
+1 If it simply must be deployed locally, then AIR is really the way to go.
altCognito
What do you mean it is not perfect? Look my latest EDIT regarding playing audio files from stream? How to do that in Air?
Irfan Mulic
The reason for deploying locally is huge amount of audio data about 500 MB?If you wanna do that load from HTTP server locally still make sense but I am still not sure about the future architecture in this case...
Irfan Mulic
I'm not familiar with exactly how Air handles music streaming. Flex does support loading types from streamed data, but I don't know if you can give an offset and such.Perhaps understanding why you need to concatenate all the files into one big file would go further into helping build a solution.
Travis Jensen
+2  A: 

I've heard this internet thing is really taking off.

For all of the reasons that applications have gone online over the past 10 years, there really isn't much discussion to be had.

While Java is reliable, distributing and rolling out subsequent updates to those applications is heavy and time consuming.

I did Delphi development for over 9 years. I resisted the idea of distributing real applications over the web for quite some time. Today, I can't believe anyone would choose to continue in this way.

One nice thing, you can probably reuse some of your Delphi logic on the backend if you get creative. (I would only recommend this for the short term)

But, this answer doesn't really address your issue as you are saying that you must distribute it via CD.

altCognito
How seamless would a migration from Delphi to Java be. I had the impression most Delphi migration is in the direction of .Net - that would solve the poster's cross-platform requirement but would it be a closer fit to the original source base?
Chris Collins
Yeah, if you're looking to keep your original source code, .NET would be a better fit. I like the idea of doing AIR simply because it forces you to think to a day when you are simply running the application online.
altCognito
.NET is probably the most easy way to do it but is not an option because of Linux and MAC OS.
Irfan Mulic
+2  A: 

The Java 6u10 release allows for distributing Java WebStart applications on media instead of from a Webserver, which might be exactly what you are looking for. You can also put the JRE installer for Windows on the CD too, if needed.

What exactly are your requirements crossplatformwise?

Thorbjørn Ravn Andersen
I don't understand the question, I wanna solve the plaform constraints by moving application from Delphi to Java. Delphi only runs on Windows.
Irfan Mulic
Do you need to run a GUI client (difficult) or is it all being delivered through a browser(easier)? For embedded database, look at Apache Derby. For embeddable webserver look at Jetty.
Thorbjørn Ravn Andersen
+1  A: 

If most of the application is HTML-based, why not make it a full web application, using Ajax and Java?

I recommend NetBeans, and ICEFaces, which is a Java Server Faces implementation with Ajax support, including concurrent updates - if one user edits a record, all other users will see an update in their web page.

It is possible to package the whole application in a single jar file, including the servlet container (Jetty for example), so a simple java -jar myapp.jar will run the application.

NetBeans allows visual editing of the ICEFaces web pages, and even visual editing of the page relationships. The tutorials on NetBeans.org are excellent, and with tools like Maven, Hudson and others, code quality and development process can reach a very high level.

mjustin
I like this approach. I have some specific requirements for audio part. Audio files are separate files distributed on CD or USB or whatever.Audio files are one solid file compiled from mp3's inside.Application will have to have ability to extract the mp3 based on offset and size of mp3 stored in index file and to play in real time...How this affects idea of Web app using this approach. Thanks.
Irfan Mulic
Errr.... This is a bad reason to not make it a web application.
altCognito
If it is a multimedia application, Suns new JavaFX client side technolgy might be an option for the user interface: http://en.wikipedia.org/wiki/JavaFX
mjustin
+1  A: 

If you have some Delphi application using Datasnap : you can also re use your server made in Delphi with Datasnap in Delphi Prism and make Silverlight application.

And the same is true for DataAbstract

Hugues Van Landeghem
This is good idea but we don't wanna be dependent on Delphi platform anymore.
Irfan Mulic
+3  A: 

Why don't you give FreePascal a try? It uses the same language as Delphi, and can compile to a native application on Windows / Linux / Mac. Since you already have your app in Delphi, converting it shouldn't be too difficult.

Have a look at the freepascal website

birger
+1  A: 

I suggest Air

Emulic