11
I'd like to develop a small/medium-size cross-platform application (including GUI).
My background: mostly web applications with MVC architectures, both Python (Pylons + SqlAlchemy) and Java (know the language well, but don't like it that much). I also know some C#. So far, I have no GUI programming experience (neither Windows Forms, Swing nor QT).
I plan to use SQLite for data storage: It seems to be a nice cross-platform solution and has some powerful features (e.g. full text search, which SQL Server Compact lacks).
I have done some research and these are my favorite options:
1) QT, Python (PyQT or PySide), and SQLAlchemy
pros:
- Python the language
- open source is strong in the Python world (lots of libraries and users)
- SQLAlchemy: A fantastic way to interact with a DB and incredibly well documented!
cons:
- compilation, distribution and deployment more difficult?
- no QT experience
- QT Designer not as nice as the Visual Studio Winforms designer
2) .NET/Mono, Windows Forms, C#, (Fluent) NHibernate, System.Data.SQLite
pros:
- C# (I like it, especially compared to Java and would like to get more experience in it)
- The Winforms GUI designer in Visual Studio seems really slick
- IntelliSense
- ClickOnce Deployment(?)
- Windows Forms look and feel good on Windows
cons:
- (Fluent) NHibernate far less documented than SQLAlchemy; also annoying: Fluent docs refer to NHibernate docs which refer to Hibernate (aargh!). But plain NHibernate + XML does not look very comfortable.
- Windows Forms will not look + behave native on Linux/Mac OS (correct?)
- fewer open source libraries in the .NET world, fewer OSS users, less documentation in general
- no WinForms and NHibernate experience