6

現在、MS SQL Server 2005 の上に 2 層の Java Swing アプリケーションを配置しています。すべてのビジネス ロジックはデータベース内にあります。クライアントはかなり古く (そしてあまりフレンドリーではありません)、パフォーマンスとスケーラビリティの理由から、Java の中間層へのいくつかのサービスの移植を既に開始しています。

ただし、短期的および長期的な目標はまだいくつかあります。

新しいフロントエンドのテクノロジー スタックを選ぶ

これは簡単なことではありません。連続体の一方の端にある Web アプリから、もう一方の端にある従来のデスクトップ アプリまで、すべてが実行可能な選択肢であることがわかります。現在のフロントエンドはそれほど複雑ではない (ほとんどがフォームベース) ため、Web/AJAX のフィッティングはわかりますが、何がわからないか分からない領域です。

私のリストのスタックは次のとおりです。

  • Eclipse RCP、Netbeans RCP
  • Flex/Flash、Silverlight、JavaFX
  • Pure Javascript フロントエンド (Sprout Core、Javascript MVC など)
  • Java ベースの Web フレームワーク (Wicket、JSF など)

リモート環境で現在のアプリケーションを許容できるパフォーマンスにする方法を見つける

アプリを小規模なクライアントに転売し、リモートで展開できるようにする必要があるクライアントがいます。現在のアーキテクチャの 2 層の性質により、これはひどいパフォーマンスにつながります (たとえば、18 の結果セットを返すストアド プロシージャの呼び出し)。過去に Citrix ソリューションを使用したことがありますが、誰もそのアプローチを好みません。ポート 80 を介して JDBC をトンネリングすることも、悪い考えのように思えます。X-Windows のようなアプローチを使用して、GUI 部分だけをリモートにできるものがあるのではないかと考え始めていました。

4

6 に答える 6

2

開発を簡素化し、Swingでの経験を活用するには、フロントエンドにVaadinを使用することを検討してください。これは、見栄えがよく、パフォーマンスの高い最新のWebアプリケーションを構築するためのJavaフレームワークです。すべてのコードはJavaで記述されており、Swingと非常によく似ています。

全体的なアプリケーションアーキテクチャに関しては、多層のサービス指向アーキテクチャをお勧めします。これを行う最良の方法は、データベースアクセスにHibernateでSpringフレームワークを使用することです。

于 2010-09-05T19:07:27.163 に答える
2

レガシー アプリケーションを移行する際に、非常によく似た評価プロセスを経てきました。

私たちにとって、どのフロントエンド フレームワークを使用するかの最大の決定要因は、開発チームの事前知識でした。誰もがすぐに快適に使えるものを求めていました。X や Y で働いたことのある上級開発者が数人いましたが、誰もが知っているフレームワークは Swing でした。

最終的に、RESTful Web サービスを使用して EE サーバーと通信する NetBeans プラットフォームを決定しました。

おまけとして、NetBeans プラットフォーム アプリケーションを Java WebStart アプリケーションとしてデプロイできます。つまり、個々のインストールについて心配する必要がないという利点があります。

于 2011-06-25T21:55:18.050 に答える
2

更新やセキュリティ上の理由などでアプリケーションを簡単に再デプロイしたい場合や、アプリケーションをリモートでアクセスできるようにしたい場合は、Web ベースのフロント エンドを検討する必要があります。

さらに、この方法では、Web アプリという 1 つのアプリだけがデータベースへの接続を処理するため、JDBC トンネリングなどはありません。

最適なフレームワークに関しては、チームの知識、アプリケーションの使用方法 (多かれ少なかれ JavaScript) などによって異なります。

于 2010-09-05T17:58:37.203 に答える
1

フロントエンドの大部分がフォームベースである場合、私は Flex を避けます。Flex は一部のアプリケーションには最適ですが (キャンバス ベースのアプリケーションに使用しています)、Flex のフォーム コンポーネントには使いやすさの問題があります。それらは、今日の Web に期待されるようには機能しません。(マウスホイールのサポートがない、ドロップダウンリストに入力すると最初の文字のみが考慮されるなど)

于 2010-09-05T18:12:01.530 に答える
1

すべてのクライアントに新しい中間層をインストールすることを強制すると仮定すると、それを Java Web アプリケーションにすることに反対する議論は思いつきません。すでに述べたように、HTTP 経由でプラットフォームへのすべてのアクセスを制御できるという利点があるため、ファイアウォールの設定だけで簡単に再販できます。Web フロント エンド内で Javascript を使用できない理由はありません。Javascriptを介して Java オブジェクトと直接対話できるDWRに興味があるかもしれません。以前にこれを使用して、簡単な Ajax インタラクションを Spring MVC Web アプリケーションに追加しました。

私がこのアプローチを気に入っている理由は、すでにコードを Java 中間層に移行しているためです。

  1. すでにクライアントに Java サーバーのハードウェア コストを課しているが、アプリ サーバーと Web サーバーのホスティングは同等である
  2. すでに Java の専門知識があり、DWR で活用できます
  3. 必要に応じて Javascript を使用できます (私は IE6、Firefox 3、Chrome で DWR を使用しました)

あまりにも多くの機能をクライアントにプッシュすることに注意するのは正しいと思います。私はできるだけ薄いクライアントを選びます。最初の 2 つのスタックの選択肢を検討する唯一の理由は、特定の分野で開発者の専門知識があり、Java webapp/Javascript がない場合です。

于 2010-09-06T07:04:25.153 に答える
1

候補となるフレームワークの短いリストを作成し、それらすべてを含む小さなテスト アプリケーションを作成することをお勧めします。このようにして、それらすべての良い面と悪い面を把握し、各プロジェクトのコミュニティ活動とドキュメントがどのようなものかを把握できます (これらには多くの差異があります)。

最終的にこれを行う場合は、候補リストに Vaadin を含めていただければ幸いです。非常に適していると思います。ご不明な点がございましたら、フォーラムまでお寄せください。始めるためのお手伝いをいたします。

于 2010-09-06T09:38:25.120 に答える