Я бы хотел разработать кроссплатформенное приложение малого / среднего размера (включая графический интерфейс).
Мой опыт: в основном веб-приложения с архитектурой MVC, как Python (Pylons + SqlAlchemy), так и Java (хорошо знаю язык, но не очень его люблю). Я также немного знаю C #. Пока у меня нет графического интерфейса. опыт программирования (ни Windows Forms, ни Swing, ни QT).
Я планирую использовать SQLite для хранения данных: это хорошее кроссплатформенное решение, обладающее некоторыми мощными функциями (например, полнотекстовый поиск, которого нет в SQL Server Compact). ).
Я провел небольшое исследование, и это мои любимые варианты:
1) QT, Python (PyQT или PySide) и SQLAlchemy
Плюсы:
- Python - язык
- открытый исходный код силен в мире Python (множество библиотек и пользователей)
- SQLAlchemy: фантастический способ взаимодействия с базой данных и невероятно хорошо документированный!
минусы:
- компиляция, распространение и развертывание сложнее?
- нет опыта работы с QT
- QT Designer не так хорош, как конструктор Visual Studio Winforms
2) .NET / Mono , Windows Forms, C #, (свободно) NHibernate, System.Data.SQLite
плюсы:
- C # (мне нравится, особенно по сравнению с Java, и хотелось бы получить больше опыта в нем)
- Графический интерфейс Winforms дизайнер в Visual Studio кажется действительно изящным
- IntelliSense
- Развертывание ClickOnce (?)
- Windows Forms хорошо выглядят и удобны в Windows
минусы:
- (Свободно) NHibernate гораздо менее документирован, чем SQLAlchemy; также раздражает: Fluent docs относятся к документации NHibernate, которая относится к Hibernate (aargh!). Но простой NHibernate + XML выглядит не очень удобно.
- Windows Forms не будет выглядеть + вести себя нативно в Linux / Mac OS (верно?)
- меньше библиотек с открытым исходным кодом в.NET, меньше пользователей OSS, меньше документации в целом
- нет опыта работы с WinForms и NHibernate
3) JVM, Java + Jython, Swing, SQLAlchemy
(я эмоционально настроен против этого , но перечислены для полноты)
плюсы:
- JVM / Swing хорошо работают на кроссплатформенной основе
- Jython
- SQLAlchemy
- множество библиотек с открытым исходным кодом
минусы:
- Swing кажется уродливым и сложным для компоновки
- не хватает хорошего дизайнера графического интерфейса
- Предполагаю, что я не смогу избежать использования Java для пользовательского интерфейса
- Не уверен, насколько стабильна интеграция Jython / Java
(Параметры, которые Я исключил ... просто чтобы не обсуждать эти вопросы):
- wxWidgets / wxPython (теперь, когда QT имеет LGPLed)
- GTK / PyGTK
Для меня очень важен внешний вид финального приложения. Вышеупомянутые технологические стеки сильно различаются (PyQT, .NET WinForms, JVM Swing) и требуют некоторого времени для освоения навыков, поэтому:
Какую альтернативу вы бы порекомендовали и почему?
задан Martin S. 10 November 2010 в 14:11