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.

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.

Do you really need a full fledged database management system to be bundled with your application, if not then how about SQLite as an alternative here.

Thank you all for your responses. I am posting a more detailed version of my questions to be more specific.

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.

Without knowing more about the project it is pointless to discuss technologies a specially what sort of database you may use since we do not know if it will be centralized storage or just user dependent storage.

Why projects fails? Because before getting clear requirements and purpose of the project people rather bicker about which technology is better/superiors...

> We are planning to make a commercial GUI based software (for both desktop and
> mobile) targeting individual users

IMO, Adobe AIR has the slickest desktop UI out there but suffers from the lack of mature libraries for almost anything when compared to Java/.NET. Personally, I find Swing applications to be kind of sluggish. If you decide to go the Java route, SWT/JFaces is something you should look into.

> Which one has best Rapid Application development tools?

Eclipse and Visual Studio are probably the best IDE's out there, the difference being, Visual Studio requires a license.

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

AFAICT, anything created using Java + open source tools/frameworks doesn't require you to have a license or pay any sort of royalty. You'd require a license to develop using Visual Studio but distributing applications created using Visual Studio doesn't require you to pay any sort of royalty; though I'd confirm this in the appropriate forum (C# forum) since I don't develop using Visual Studio.

If you are interested in developing using MS toolchain but feel deterred by the licensing costs, you might want to look at Mono and MonoDevelop.

> What would be the best database option available for such software

Database for what? Does you software require being connected to a centralized server for performing its operations? If yes, I'd recommend creating a web application if it doesn't conflict with your expected user experience. If no, then any decent database which can run in embedded mode should do the job pretty well. AFAICT SQLite/H2/Derby have no problems handling large amounts of data. The only problem with these databases is that they can't handle a lot of concurrent connections which shouldn't be a problem if the only entity accessing your embedded database is your own application.

Also, AFAIK, MySQL and PostgreSQL don't run in embedded modes. Also, bundling databases like PostgreSQL and MySQL is kind of heavyweight in case you still decide to use them by spawning a new server process whenever your application is started. Read this.

There are usually a *lot* of factors which go into making such decisions. In the end, your resource pool (funds/developer expertise etc.), your targeted audiencea nd your application vision are the most important factors which go into making the final decision.

Edited 6 Years Ago by ~s.o.s~: n/a

This article has been dead for over six months. Start a new discussion instead.