11

次の特性を持つ優れたソフトウェア開発フレームワークなどを知っている人はいますか?

  • クロスプラットフォーム:XP、Vista、OSX、およびLinuxの一般的なバージョン(UbuntuやKubuntuなど)で実行可能である必要があります。
  • インストールなし:ホストマシンに何もコピーせずに、USBスティックからソフトウェアを実行できます。
  • 優れたGUIサポートを持っている(これが、私が知る限り、この質問が適切な答えを与えない理由です)。
  • LGPLやBSDなどのパーミッシブライセンス。

よりソフトな要件の中には、ソケットやファイルIOなどの最も一般的なバックエンド機能の一連の抽象化があり(通常、プラットフォーム固有の適応が必要です)、PythonやC++などの優れた言語をサポートします。通常、新しいものを学ぶのは楽しいです(つまり、perlではありません)。

考えられる候補はQt4.5以上(ただし、IFAIK QtソフトウェアはインストールなしではVistaで実行されません(?))、いくつかのwxWidgets、またはおそらくgtkmmのwxPythonソリューションです。私が見つけた例は、いずれかの要件で失敗しました。これは、そのような例が存在しないことを意味するのではなく、私が何も見つけていないことを意味します。だから私はそこに誰かがこれに対する既存の解​​決策を知っているかどうか疑問に思っていましたか?

いくつかの説明;

  • 「フレームワーク」とは、ウィジェットパッケージを備えたQt、gtkmm、pythonなどを意味します。
  • これは、インストールせずにスティックから複数のプラットフォームで完成品を実行できることであり、ポータブルな開発環境を持つことではありません。
  • ブートスティックではありません。
  • 必要に応じて、さまざまなターゲット専用のソフトウェアをビルドする必要があります。

私が見ているユースケースは、信頼できるソフトウェア(プロジェクト計画、情報の管理、分析ツールなど)があり、次のようなものです。

  • インターネット接続が利用可能であることに依存していません。
  • 何もインストールしても問題がない別のホストマシンで実行されます。
  • ユーザーが物理メディア(USBスティックなど)を介して移動します。
  • Windows、Vista、Ubuntu、OSXなどのさまざまなオペレーティングシステムで実行されます。
  • これらの異なるホスト上の同じデータで機能します(データはホストまたはスティックに保存できます)。
  • バンドルされたフレームワークの大きさは実際には制限されていません(数ギガバイトでない限り、これは実際には現実的ではありません)。

ソフトウェアが同じように動作し、異なるターゲットで実行されたときに同じデータで動作できる限り、スティックに並列インストールすることもできます。

ユースケースの別の見方は、Vista、XP、OSX、Ubuntu、Kubuntuがそれぞれ目の前にある5台の新しくインストールされたマシンがあるということです。マシンに新しいものをインストールすることなく、これら5台のマシンのそれぞれで1つのUSBスティック(上記のGUI要件などを満たす)から同じソフトウェアを実行できるようにしたいと思います(ただし、必要に応じて異なるマシンから)スティック上のバ​​ンドル)。

これは可能ですか?

編集:いくつかのウィジェットとsqliteデータベースを使用するQtアプリで少し実験しました。ubuntudistとosxで動作させるのは簡単でした。Windows XPおよびVistaの場合、QtCored4.dll、QtGuid4.dll、QtSqld4.dll、およびmingwm10.dllを配布ディレクトリ(これはデバッグコード)にコピーする必要があり、qsqlited4.dllを配布内の「sqldrivers」という名前のフォルダーにコピーしました。ディレクトリ。

4

8 に答える 8

4

あなたはwxWidgetsについて言及していますが、少なくとも1つの要件を満たしていないとしてそれを却下します。

私はあなたの要件が何であるか、そしてどのようにwxWidgetsがあなたのために機能しないかわかりませんが、IMOはそれらを満たします:

クロスプラットフォーム:XP、Vista、OSX、およびLinuxの一般的なバージョンで実行可能である必要があります。

これらのプラットフォームでは動作しますが、「Linuxの一般的なバージョン」では十分ではありません。wxGTKに必要なGUIライブラリ(静的にリンクしないでください)がインストールされるかどうかを確認できないためです。ただし、すべてをスティックに配置する予定がない限り、これは他のソリューションでも問題になります。

インストールなし:ホストマシンに何もコピーせずに、USBスティックからソフトウェアを実行できます。

前のポイントを参照してください。Linuxで必要なライブラリを指定する必要があります。また、ビルド時に、システムが提供するライブラリ(グラフィック、圧縮、正規表現など)の一部を使用せず、代わりにwxWidgets-内部ライブラリを使用するように指定することもできます。

優れたGUIサポートがある

小切手。

LGPLやBSDなどのパーミッシブライセンス。

小切手。wxWidgetsをアプリケーションに静的にリンクすることもできます。

PythonやC++などの優れた言語をサポートする

両方をサポートし、他の言語へのバインディングもあります。

ソケット、ファイルIOなど、最も一般的なバックエンド機能の一連の抽象化を使用する

そのようないくつかの抽象化がありますが、他のクロスプラットフォームライブラリにリンクすることもできます。

FirebirdSQLサーバーのグラフィカル管理プログラムであるFlameRobinにはwxWidgetsを使用します。Windows、Linux、Mac OS Xへのアクティブなポートがあり、少なくとも一部のBSDバリアントとSolaris用にコンパイルされています。それは間違いなくWindowsのスティックから実行され、LinuxやMac OS Xで試したことはありませんが、なぜそこにあるべきではないのかわかりません。

于 2009-05-17T09:03:40.863 に答える
4

Java。

  • GUIをサポートしています。

  • それはあなたのネットワーク/ファイル/等を提供します。抽象化。

  • クロスプラットフォームです。考えられるほとんどのプラットフォームでは、JREを利用できます。

  • JREをインストールする必要はありません。ほとんどのユーザーはおそらくすでに1つ持っていますが、持っていない場合は、適切なJREをすぐに実行できます。

  • 適切なJREでアプリを実行するために、さまざまなプラットフォームにいくつかの起動スクリプトを提供できます。

于 2009-05-17T10:24:54.257 に答える
3

他に考慮すべきことは、HTML+Javascriptです。:D

于 2009-05-17T11:46:38.087 に答える
2

クロスプラットフォームのMonoitを見ることができ、GUI(GTK +、またはWinforms 2.0)があり、インストールせずにコードを実行できます。

于 2009-05-17T08:26:57.350 に答える
1

これはクロスプラットフォームではないかもしれませんが、おそらくもっと良いです、それはプラットフォームを使用しません:スティック上のLinux :-)

字幕は

USBキーを使用する場所ならどこでも、Javaワークスペースを利用できます

ここではjavaとeclipseがありますが、もちろんそれを止めるものは何もありません。

http://knol.google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#

于 2009-05-17T07:48:01.327 に答える
0

まあ、それはあなたが「パッケージ」によって何を意味するかに依存します。キュリクスはそのようなものに近づきました。これはQTベースであり、一度作成してWindows+Linux用にコンパイルすることができました。しかし、それはオープンソースソリューションではありませんでした。

于 2009-05-17T07:34:11.937 に答える
0

このリンクhttp://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.htmlで同様の質問をしましたが 、最高の回答はQTのようです。

QTを使い始めましたが、主にDLL地獄、Winsxs地獄、マニフェスト地獄による展開の問題が原因で、思ったほど簡単ではありません。

于 2009-06-17T16:26:01.107 に答える
0

Tclkitは、単一ファイルの自己完結型Tcl/Tkシステムです。私が持っているmacバージョンは約3.8メガです。最新のOSのバージョンを入手できます。Mac、Windows、Linuxのバイナリを備えたサムドライブを持ち歩いているので、どのプラットフォームでもスクリプトを実行できます。インストールは必要ありません。必要な場所に1つのファイルをコピーするだけです。

tcklitの最新バージョンは、ネイティブのテーマウィジェットを使用しています(ただし、* nixには、実際には単一の「ネイティブ」ウィジェットセットはありません...)

于 2010-01-25T22:54:52.617 に答える