14

This question has been asked many times and I have gone through most of them. Most of these questions are old and don't include any new platforms for developing desktop applications.

I need to develop a basic desktop application with CRUD functionality with Sqlite or MySQL database. I used to work with Java (Swing) but the Swing JSR has been withdrawn and Netbeans has dropped Swing Application Framework.

I need to learn a new technology for developing desktop applications (preferably platform independent). So far I have looked into following technologies.

Titanium Desktop (Now called TideSDK) : This is good but some advance PHP features aren't supported and its full of bugs.

QT : It looks promising and have great features but I couldn't find any book on the latest version QT 5. All the books on QT are 4 - 5 years old an written for QT 4.

Are there any other technologies which I can use for developing desktop applications? and add it to my skill set?

Thanks for your help and sorry if this question is too general.

6
  • Welcome to Software Recommendations Stack Exchange! Though your description holds several criteria required to recommend matching software, it suffers some formatting issues to make them clearly stand out. Please take a look at What is required for a question to contain "enough information"? Then please edit your question and see if you can incorporate some of these improvements. This will significantly improve your chances of good answers! Commented Mar 7, 2014 at 21:16
  • QT is probably good, GTK is also cross platform.
    – Linuxios
    Commented Mar 8, 2014 at 15:56
  • @Linuxios I Agree it is good. But the problem is the lack of books. The online documentation is good and it shows detailed information about each class but it doesn't show how to connect all these classes to build a system. To do show I will probably need a book. All the books I have found so far are 4 - 5 years old and meant for QT 4 thus out of date.
    – Jay Bhatt
    Commented Mar 8, 2014 at 17:14
  • Could you please detail what is wrong with Java/Swing?
    – Nicolas Raoul
    Commented May 9, 2014 at 6:47
  • @NicolasRaoul Java dropped this project and Its no longer being maintained. You can find more details on their website.
    – Jay Bhatt
    Commented May 9, 2014 at 7:12

4 Answers 4

7

The new trend is to use web technologies (HTML5 / javascript frameworks) to create desktop applications. Take a look at the Chromium Embedded Framework (CEF) that lets you embed the Chromium engine in your desktop app. See the list of applications using CEF on wikipedia. There are available bindings for many languages such as C, C++, Java, Python, C#, Delphi, Go lang.

Regarding Titanium Desktop and TideSDK, they are not developed anymore. The last commit for TideSDK was a year ago. And looks like this project for its whole time didn't go out of beta. The company behind it is working on its new product called TideKit. But you have no guarantee that it won't be abandoned like Titanium and TideSDK, or that it will ever come out of beta.

The Titanium and TideSDK let you develop in PHP, but it's kind of a new platform, it works differently, PHP is like a JavaScript to HTML. If you want to develop desktop apps in PHP the same way you develop websites then take a look the PHP Desktop project. It embeds an internal web server, a web browser (IE or Chrome) and a php interpreter. The workflow you are used to while creating PHP websites remains almost the same, you just copy scripts to the www/ directory. You shouldn't stumble on any new bugs that aren't already present in PHP, also it supports all PHP features, updating the PHP version is as easy as copying the new binaries to the php/ directory. PHP Desktop is supported only on Windows currently, though there are plans for Linux and Mac.

There is also the Node-Webkit project that lets you develop in Javascript using Node.js. It embeds the Chromium engine despite its name.

In the last days Atom Shell framework appeared, developed by Github. It lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on node.js and Chromium and is used in the Atom editor.

Disclosure: I am the author of the CEF bindings for Python and Go lang. Also author of PHP Desktop.

4

You could also use C#/mono in combination with XWT (as long as your GUI is not too complex. From personal experience: As soon as you want a DataGrid that has a ComboBox column, stay away from it.)

https://github.com/mono/xwt

Short explanation about XWT: You program your code against the XWT lib. When you deploy your application, you'll need to distribute the XWT.GTK, XWT.WPF or XWT.Cocoa lib with it.

XWT will check which of those 3 libs is available and (try) to initialize it.

edit just a fair warning: XWT should be considered alpha software. It's not feature complete and it's not bug-free. On the plus side, it's on git. So you can look at what exactly happens inside a method and sometimes even fix it yourself.

There is no GUI editor, but it's fairly easy to work with it and it wraps that (in my opinion) ugly GTK stuff away.

For database connection I'd suggest LINQConnect in combination with the EntityDeveloper from DevArt. If you are not using too many tables per database it's for free! Also you can connect to nearly every kind of database with very low amount of work (At least if you capsuled your database layer away).

Update Q2 2018

well, 4 years later and there have been a few changes. Replace XWT with Xamarin.Forms as it has or rather will have a GTK2 'wrapper'. The advantage of Xamarin is that it basically runs on everything. iOS, Android, Windows, Linux (once the GTK 2 wrapper is finished), MacOS.

Regarding database access. I'm not sure how I feel about LinqConnect. For larger projects it is missing some features. I have dabbled around with llblgen but there is - aside from a trial license - no free version available. On the upside one can get access to their code and even make changes, after buying a license. However, I don't have any real experience with it yet.

2

desktop application with CRUD functionality

It's a perfect fit for Delphi or its free (and Linux-capable) alternative Lazarus.

They have special kind of form controls (Data Controls) to easily display and modify database data.

0

There's a list of platform-independent GUI libraries on Wikipedia.

Some of them are fairly modern and relatively popular:

  • Xamarin.Forms with C# as a default programming language. I assume you're familiar with C#, based on IIS comment.
  • OpenJFX (Java and JVM-based languages)
  • Qt (C++)

There's also Electron that's currently not on the list, but is worth taking a look at. It uses technologies (JavaScript, HTML, CSS) typically associated with web for desktop applications.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.