Which Technology should I use for developing a Rich GUI based desktop Application?

We are planning to make a commercial GUI based software (for both desktop and mobile) targeting individual users. We plan to have good web 2.0 like rich application features (Google like dynamic auto suggest, drag and drop, browser based look and feel etc) and lot of user controls (trees, grids, etc).

  1. Wanted to know which is the best technology suited for such a software - Java, .NET, Adobe, Opensource etc?

  2. Which one has best Rapid Application development tools?

  3. What are licensing costs w.r.t development IDE, client tools/framework etc as well as royalty based costs associated with distribution of software.

  4. What would be the best database option available for such software. We are looking for databases which have decent functionality and not royalty based distribution costs associated with it. e.g Mysql has licensing costs associated with commercial distribution of software. Should postgresql be used as its free to redistribute with your commercial package as well.

Thanks and looking forward to some helpful insight.

I didn’t know that desktop apps could be considered “Rich” GUIs. (Is firefox considered a Rich GUI?)

BUT, I digress…

Unless there are controls already out there, which I doubt, you’re going to have to write some of these controls yourself. For example, a dynamic auto suggest just doesn’t come out of the box. You will have to have access to the database and then handle user events and query the database/rule system. I’ve never just seen a widget like this out of the box.

The other widgets you’re looking for do come out of the box: drag/drop, trees, etc…

Java can handle both desktop and mobile apps, but some basic functionality that you would expect out of the box just isn’t there and you’ll have to program it yourself. It isn’t hard, but it still takes time and a nice understanding of the java event model.

.NET of C# might be reasonable solution too, but I’m not sure if they handle mobile apps and I’m not sure about the cost.

Don’t know.

Java is free and so is most of the development tools (IDEs).

I’m not sure if .NET costs anymore and I’m not sure if there are any reasonable free IDEs. I believe eclipse has a .NET plugin.

I would look into postgres.

I don’t know what your application is, but you might consider using an in memory database.

Finally, the google like autofill is going to be a ton of work. I recommend looking into a product called solr.

Best of luck.

Thanks a lot for your helpful inputs. I have edited my questions above to be more specific.

[I have edited my questions below to provide more detailed information]

We are planning to make a commercial GUI based software (for both desktop and mobile) targeting individual users. The software would be database oriented allowing insertions, editing, and deleting records with complex linkups. We plan to have good web 2.0 like rich application features (Google like dynamic auto suggest, drag and drop, browser based look and feel etc) and lot of user controls (trees, grids, etc).

Technology

Wanted to know which is the best technology suited for such a software - We have currently zeroed on to Java or .Net! But as I understand, Java is mostly free and .Net is pretty expensive. Furthermore, for applications developed using .Net would require that end users have .Net Framework installed on their systems or it would prompt them to download it and that would be pretty cumbersome and I am sure that we cannot bundle .Net framework with our software package. But the same can be done for Java. We can package JRE with our software package, as I understand.

Cross Platform Support

Softwares created in Java are cross platform whereas same cannot be said of .Net applications. Furthermore with future Windows upgrade, Java based softwares would still continue to work whereas .Net applications might need tweaks. Am I correct in making the above assumption?

Database Backend

Since this software would have lots of database activities like inserts, edits, and reads and it would maintain anything from around 100 - 10000000 rows or more, we would need a proper database, not memory database. Such databases can be MySql, Postgresql, SQLite, Apache Derby (java db) and so on. But As I understand, if we bundle or use MySql commercially, then its commercial license applies and one has to pay royalities, etc. Postgresql does not run on FAT32 systems. What should we do? It has either to be postgresql, SQLite, Apache Derby, or someother suitable database. Is SQLlite recommended for desktop software applications? Mostly browsers and anti-viruses use them. Are there any records based software products using Sqlite? Are there other options out there?

Licensing Costs

What are licensing costs w.r.t development IDE, client tools/framework etc as well as royalty based costs associated with distribution of software considering that its either made in Java or .Net!

Thanks and looking forward to some helpful insight.

There’s an express version of visual studio available for free. I’m not sure what the limitations are compared to the full paid version.

Not necessarily I “recommend” but general web community will say GWT. That’s doing exactly as you requested. You can check out the demo http://gwt-ext.com/demo/

Would I use GWT? for my own reasons, I won’t and stick w/ traditional MVC framework like Spring MVC + WebFlow. However, another good candidate is JSF 2.X… which also provides fair amount of widgets. Unfortunately, I hate JSF as well but that’s just “me”. In any case, if you’re looking for general answer then going w/ GWT or JSF is the way to go. If you have a team member who knows Web in passion…may have different opinion. Good luck!

I went through a similar search a few months ago and then I came across Alpha Five v10 with Codeless Ajax by reading that it won Inforworld’s shootout for RAD tools. http://blog.alphasoftware.com/search/label/Press%20coverage

I was intrigued but also a little cautious - I have been using Alpha Five for a couple of months and all I can say is - it really DOES deliver powerful AJAX database apps against any SQL database in a fraction of time compared to Visual Studio.net. I especially like:

The built in security framework
The built in crystral reports like report writer
The speed with which I develop (and as we all know time is money)
The fact that web apps built in it will run on ipads and smartphones
The event model that makes it easy to take advantage of external JavaScript Libraries like JQERY and ExtJS
The powerful language that is built in