2012-04-12 21 views
1

私はJava開発者であり、Web用のリッチクライアントを開発したいと考えています。私の問題は、javascript、flashなど、そして通常はウェブクライアントで使用されるほとんどのプログラミング言語が嫌いです。私は、一般的なWebブラウザ上で使用される可能性のあるWebクライアントを開発するためにJavaをやっていきたいと思っています。私は良い選択をするためにいくつかのアドバイス/警告を探しています。Java基本主義者のためのWebクライアント開発技術

Javaアプレットは私の場合には完璧と思われますが、いくつかの噂によれば、それは本当に持続可能な解決策ではありません。 JavaFXを見てみるべきですか? GWT?他の可能性はありますか?

答えて

0

GWTを試してみて、いわゆる「スーパーデベロッパーモード」で苦労した後、私はJavaScriptプログラミングが苦痛ではないことを発見しました。私は自分自身を学び、練習しなければならなくなり、ついにそれを完全に採用しました。 JavaScriptには素晴らしいことがたくさんあり、膨大な数のライブラリがあります。私の場合、人々のための私の推薦は、たとえばw3schools tutorialを使用してJavaScriptを習得することだけです。

+0

あなたはJavaに熟練しているときはそれに固執してGWTを使うべきです。 Javaは厳密な型付けされた言語なので、JavaはJavaScriptよりも大きな利点があります。コンパイルによって、実行時エラーが多く発生することはありません。 JavaScriptが学習するのは速いかもしれませんが、プロジェクトが成長するとエラーが急速に増加します。したがって、GWTを確実に使用する必要があります。 – confile

1

あなたはJavaServer Faces(JSF)に最適です。はい、それらを試してみてください。見て、あなたはそれらで素晴らしいです。 JSFの魅力は1です。これはJava EE 2の標準化された技術です.JavaScriptのプログラミングにはJavaScriptのコードに頼っています(これはまったく行われません)。 3. JSFはしばらくお待ちしており、とてもうまく動作します。さらに、JSFは、JavaScriptの単一の音節を書くことなく、すぐに(追加のボーナスとして)Ajaxで動作します。唯一の欠点は、あなたがいくつかのhtmlをコード化しなければならないことです。そして、 "facelets"は基本的に、あなたが学ぶ必要があるいくつかの余分なタグが入ったhtmlページです。しかし、実際の処理の大部分はJavaで行われています。 JSFは、Java EEの余分な手荷物なしでも動作します。プレーンなTomcatのようなサーバー(またはGlassfishやJBossなど)とブラウザ、Java SE(デスクトップ版)で動作するように構築されています。

+0

Javaサーバーはクライアント向けですか? – julien

+0

短い答えはいいえ、それはすべてサーバー上にある。これらのページの1つがブラウザに到達する前に実際に何が起こるかは、Tomcatがその一部を変換して、Javaコードがその一部で動作してからブラウザに移動することです。顧客が何らかのデータを入力して「送信」を押すと、javaコードがそれを処理しているサーバーに移動し、データベースを更新し、Javaコードによって次のページが決定され、次のページの内容が決定されます。その後、クライアントに返されます。セールスポイントは、JSFの「コンポーネント」を「スイング」という意図でモデル化したことです。 – SunKing2

+0

http://component-showcase.icesoft.org/component-showcase/showcase.iface左側のメニューの「拡張コンポーネント」をクリックし、そのメニューの「テキスト入力」をクリックします。これは、JSFのかなり一般的な使用です。 (これらのページにある他のショーケースの項目は、JSFの先進的なものです) – SunKing2

1

JavaFXは、JavaベースのRIAテクノロジとして非常に有望です。しかしそれは最先端です。 Mac OS XおよびLinuxバージョンはまだプレビューとしてのみ利用可能です。モバイルやその他のデバイスのサポートは発表されましたが、まだAFAIKはありません。

1

Vaadinも適しており、新しいコンポーネント開発の場合でも、JavaScriptやHTMLは一切必要ありません。ページレイアウトは、レイアウトマネージャ(Swingなど)を使用して行われます。新しいコンポーネントは、既存のコンポーネント(Swingのようなもの)から作成することも、GWT(かなり単純で純粋なJava)を使用してゼロから作成することもできます。

コアフレームワーク以外のいくつかの機能をカバーするアドオンが妥当に選択されています。

フレームワークはSwingの経験を持つJava開発者にとって使いやすく、洗練された外観と外見を備えています。しかし、レイアウトマネージャは、CSSを使用してルックアンドフィールを変更することを難しくしています。ボーダーを追加するなどの簡単な作業は難しいです。

レイアウトもかなり重いため、Vaadinのウェブサイトはやや遅く感じることがあります。私の経験では、より重いJSFフレームワークよりも優れた感じがまだあります。

すべての主要なブラウザに対応しています。

デモンストレーター:http://demo.vaadin.com/sampler/

またWicketを検討することができます。これには同様のコンポーネントベースのアプローチがありますが、コンポーネントは単純なHTMLフラグメントを使用して定義されているため、DOMが大幅に軽くなり(ブラウザのパフォーマンスが向上します)、ルック・アンド・フィールをはるかに上手く制御できます。しかし、Wicketは学習曲線が急である。

+0

ありがとうございます - 私は両方を見ていきます。明らかに、vaadinはGWTに基づいています。 – julien

+0

GWTは、Javascriptと同様にクライアント上で(アプレットのように)動作し、必要に応じてAJAXをサーバに呼び出します。 Vaadinはクライアント側のレンダリングのために独自のGWTコンポーネントを使用しますが、すべてのロジックは実際にサーバー上にあります.2つの部分はAJAXを介してバックグラウンドで通信します。これは大きな違いです。つまり、各フレームワークのコードを記述するときにはかなり異なる経験を得ることになります。 – asquithea

4

何をしますか? VaadinはGWTに基づいているため、Javaアプレットよりもはるかに遅いHTML5 + JavaScriptを使用します。私はスイングでボートとアプレットを試しましたが、多くはVaadinよりも速く です。

Javaアプレット、Swing、Hessianを使用すると、ビジネスアプリケーションにとって優れたパフォーマンスが得られます。ヘッセンは非常に高速なバイナリWebサービスプロトコルです。JavaScriptでは、通常、JsonやさまざまなXMLベースのプロトコルのようなテキストエンコードWebサービスプロトコルに限定されています。テキストベースのプロトコルでは、バイナリプロトコルに比べてCPU、メモリ、帯域幅が多く消費されますが、実際には利点がありません。

アプレットの弱点は、OpenGLやマルチメディアのようなハードウェアアクセラレーテッドグラフィックです。あなたがゲームや映画プレーヤーを開発しているなら、アプレットはそれほど素晴らしいものではありません。

JavaFXは、ハードウェアアクセラレーションされたグラフィックスのパフォーマンスとビデオコーデックを修正することを約束します。あなたの説明では、あなたがそれを待つ必要があるかどうかは明らかではありません。

しかし、もしあなたが本当に必要なのは、標準的なアプレットよりもWeb Startよりもあなたが提供するものが解決策かもしれません。これは、署名された、または署名されていないアプリケーションを持つ古いActiveXのようなもので、太陽の署名やユーザーに尋ねることによって、特別な権限を得ます。これにより、JOGLまたは3Dシーングラフエンジンを使用することができます。

+1

+1:私はvaadinを使用しましたが、それは非常に遅く、リソースを消費します。 –

+1

VaadinはHTMLとJavaScriptを使用してSwingの処理を行うため、恐ろしく失敗します。 Swingはエンタープライズであるため多くのネイティブデスクトップインターフェイスよりも遅いですが、Vaadinや他のHTMLやJavaScriptを使用するよりもはるかに高速です。 「うん、他のHTMLフレームワークは高速です」と主張する人もいます。 Vaadin以外のHTML用のフルGUIフレームワークはどれですか?なし。 – user1657170

関連する問題