6

Webの世界で立ち往生しているプログラマーから...

現在、デスクトップ アプリケーションの開発に使用されている、最も一般的なデスクトップ開発の「フレームワーク」は何ですか?

  1. Windows と OS X の両方に対応するデスクトップ ソフトウェアを作成することは現実的ですか?

  2. 同じ基本コードを使用して、デスクトップ UI だけでなく部分的な Web UI を持つアプリケーションのビジネス/データ レイヤーを作成することは現実的ですか?

4

9 に答える 9

3
  1. はい。クロス プラットフォームの UI フレームワーク、AIR などで Java、Python/Ruby などを使用できます。

  2. はい、現実的です。クライアント/サーバー モデルで構築すると、ほとんどのコードがデスクトップまたは Web UI モデルに適合します。

.NET ルートをたどると、Web アプリに Silverlight、バックエンドに .NET サーバー コード、さらには OS X 向けの開発を可能にする Mono を使用できます。

Java ルートを選択した場合、Java はブラウザー内で実行されます。ブラウザー用の小さなフラッシュのようなバージョンである JavaFX が間もなく登場します。ほぼすべての OS で動作し、バックエンドを問題なく処理できます。

Flex/AIR は、OS X、Windows、および Linux 用のデスクトップおよび Web ベースのアプリを開発するための優れた方法を提供しますが、バックエンド用に別の言語が必要になります。ただし、.NET、Java、PHP などはすべてバックエンドとして正常に動作します。

編集
MrJeepster のリクエストにより、AIR フロントエンドと .NET バックエンドのインターフェースの詳細を以下に示します。

AIR を .NET バックエンドに接続するには、DIY とリモートの 2 つの方法があります。

DIY の方法では、独自の (おそらく XML) データ形式を定義し、低レベルの HTTP 要求オブジェクトを使用して HTTP サーバーと通信したり、低レベルのソケット クラスを使用して他のサーバーと通信したりします。

素敵な人々が無料のリモーティング パッケージの選択を書いているので、リモーティングの方法はすべて一緒に簡単です:

http://www.adobe.com/devnet/flashremoting/articles/intro_flremoting_net.html
http://www.themidnightcoders.com/flashorb/gettingStarted.htm
http://www.fluorinefx.com/

リモート処理には、クライアントとサーバー間でのオブジェクトの共有が含まれます。したがって、AIR クライアントで何らかのオブジェクトを作成し、リモート フレームワークを取得してシリアル化し、サーバーに転送して、.NET オブジェクトに逆シリアル化します。次に、サーバーはそれを処理し、それまたは新しいオブジェクトを同じルートを介して再度送信します。

于 2008-11-03T23:01:33.540 に答える
2

クロス プラットフォームのデスクトップ開発は可能ですが、簡単ではありません。少なくとも、サポートされているすべてのプラットフォームでテストする必要があります。また、困難な妥協をしなければなりません。ソフトウェアをすべてのプラットフォームでまったく同じように見えるようにする (したがって、どこでもネイティブ アプリのように見えないようにする) か、それともネイティブ コントロールを使用し、さまざまなプラットフォームでさまざまな調整などを処理しますか? 見た目以外に、どのような振る舞いをしますか? たとえば、UNIX ソフトウェアは大文字と小文字を区別して並べ替えますが、Windows ソフトウェアはそうではありません。両方のプラットフォームで 1 つの並べ替え順序を選択しますか、それともプラットフォームごとに異なる並べ替えを行いますか?

于 2008-11-03T23:13:14.840 に答える
1

.NET とmonoを使用することは適切な選択です。

于 2008-11-03T23:15:33.213 に答える
1
  1. クロス プラットフォームをお探しの場合は、Qt をお勧めします。数年前にこの辺りで利用しました。ただし、ライセンスは開発者ごとであり、高価です(少なくとも当時はそうでした)。

  2. もちろん、Web サービスを利用することもできます。

于 2008-11-03T23:04:35.920 に答える
1
  1. はい、QTだと思います
  2. はい、SOAを考えてください
于 2008-11-03T23:03:10.573 に答える
1

Qt (C++ または python のいずれか) は、mac/win/linux 間で完全に移植可能です。QtWebKit も含まれているため、実際の最新のブラウザーをアプリに簡単に組み込むことができます。

于 2008-11-03T23:03:16.983 に答える
0

私はREALbasicを使用して、MacOSXとWindowsの両方に対応するさまざまなデスクトップアプリケーションを作成しています。それは非常にうまく機能します。

ただし、デスクトップ/WebUIと共有するための個別のレイヤーを作成するのには適していません。

于 2009-01-18T20:54:46.607 に答える
0

私たちは Java (Swing) を使用して小さなクロス プラットフォーム アプリを構築していますが、これは非常に優れています。少なくともこれまでのところ。:D

于 2008-11-05T12:18:25.503 に答える
0

Java を使用して、多くの多層クロスプラットフォーム アプリを構築してきました。デスクトップでは、Swing は非常にうまく機能しました。

于 2008-11-04T20:49:55.363 に答える