![](/fjava/special/eface/icon.gif)
JavaにおけるRIAの選択肢の1つとして.NETを使う!?
【特集】EclipseでJavaとXAML/WPFをつなぐ
フレームワーク
松原晋啓
2008/3/27
何はともあれ、eFaceをサンプルで試してみよう
最後に、eFaceを使ってサンプルアプリケーションを作成してみましたので、それを付けておきます。
筆者は、もともとは長くJavaプログラマーをやってきたのですが、数年前から.NETにもかかわり、WPFやSilverlightについては2年以上も前から扱っていて、多くの執筆や講演を行ってきたので、それらのサンプルがeFace上で使えるかと思って試してみました。
しかし、結果的にプレビューが対応していないことが判明し、ここでサンプルとして提示できなかったため、シンプルにeFaceのチュートリアルとして紹介されているサンプルを使わせていただきました。
■ XAMLファイルからXAMLファイルを表示するアプリ
ここでは、2種類のXAMLファイルを使用して、1つのXAMLファイルからイベント処理でもう1つのXAMLファイルを表示するという単純なアプリケーションを紹介します。
■ 呼び出される側の実装
まずは、呼び出される側のHello.xamlファイルですが、こちらはラベルに「Hello, World」と記載されているだけです。処理はないので、Hello.javaファイルには何も記載がありません。
リスト1 Hello.xaml(eFaceチュートリアルのサンプルより引用) |
<Window |
リスト2 Hello.java(eFaceチュートリアルのサンプルより引用) |
package gui; |
このHello.xamlを実行すると、図7のように表示されます。
![]() |
図7 Hello.xaml実行例 |
■ 呼び出し側の実装
もう1つの呼び出し側であるAction.xamlは、イベントを発生させるボタンのみが定義されています。こちらには、イベントでHello.xamlを呼び出す必要がありますので、その処理が記述されています。
リスト3 Action.xaml(eFaceチュートリアルのサンプルより引用) |
<Window |
リスト4 Action.java(eFaceチュートリアルのサンプルより引用) |
package gui; |
このAction.xamlを実行すると、図8のように表示されます。
![]() |
図8 Action.xaml実行例 |
■ eFaceは「コードビハインド」を完全に実践
WPFをご存じの方であれば、すでに気付いたかと思いますが、Hello.xamlファイルを呼び出す際には、Helloクラスのインスタンスを生成し、そのインスタンスを表示するロジックになっております(XAMLファイルはどこにも指定されていません)。これは、XAMLファイルが.NETではおなじみの「コードビハインド」(デザインとロジックをファイルで分けること)を完全に実践しているということを指しており、ロジックの実態はJavaファイル側のクラスだということです。
XAMLファイルはUI記述部分のみを別定義として取り出したもので、本来はHello.xaml/Hello.javaであれば、Helloクラスとして1つのものだということです(図9)。
![]() |
図9 クラスの構成 |
考え方は、UIとロジックの分離というとてもシンプルなものですので、便利に使えるのではないかと思います。
リッチクライアント時代のJavaプログラマーのために
本稿では、デザイナーの視点は含まず、プログラマーがプログラマーらしくRIA/リッチクライアント開発を行っていけるだけの技術を紹介してきたつもりでしたが、いかがでしたでしょうか。本稿が、優秀なプログラマーがRIA/リッチクライアント主流の昨今でも、変わらず優秀でいることができるための一助となれば幸いです。
Silverlightと違って、WPFは完全に.NET Frameworkの機能なので、いままでのJavaユーザーにはまったくなじみのない技術であったと思います。しかし、XMLをベースとしたXAMLという標準的なUI記述言語を使っているので、.NETだけではなく多くの技術で活用できるものになっています。
このeFaceはXAMLをJavaで扱うための素晴らしい機能を提供している無償のフレームワークなので、Javaプログラマーにとって便利なフレームワークとなることを願っています。
本稿のサンプルコードはこちらからダウンロードできます。
■ @IT関連記事
![]() |
J2EEと.NET連携の意義を考える J2EEと.NET連携を考える(1) J2EEと.NETは対立するものではなく共存するものだ。その連携の意義を考えるとともに、実際の連携例を3回にわたって解説する 「Java
Solution」フォーラム 2003/12/18 |
![]() |
Javaシステムで.NETテクノロジを採用する理由とは? 事例研究:J2EEシステムへの.NET導入事例 NECは大規模Javaシステムの1機能として.NETを採用した。希望する要件を満たすプラットフォームを選定していった結果だという 「Insider.NET」フォーラム
2005/3/5 |
![]() |
.NETでもEclipseを使ってみる .NET Tools Javaの世界では絶大な人気を誇る開発環境Eclipseだが、C#用のプラグインを使えば.NETの開発も可能らしい。果たしてどの程度のものなのか、実際に試してみた 「Insider.NET」フォーラム
2004/8/7 |
![]() |
RIA/リッチクライアントの明日はどっちだ? RIA in Developers Summit 2008 レポート 先日開催されたデブサミのセッションの中からRIA/リッチクライアントに関するものを中心にいくつかレポートする 「リッチクライアント & 帳票」フ ォーラム 2008/2/20 |
![]() |
ブラウザの限界を超える「今」のリッチコンテンツ Webオーサリングツールを使ってみよう(番外編) これまで2回にわたって紹介したWebオーサリングツールを離れてリッチコンテンツを取り巻く「今」の状況に注目しよう 「リッチクライアント & 帳票」フ ォーラム 2007/5/22 |
![]() |
.NETを知らない人でも分かるSilverlight入門 「マイクロソフトの技術は.NETを知らないと学習できないのでは?」という読者にこそ読んでもらいたい、リッチクライアント技術Silverlightの入門連載。 もちろん、知っている人も大歓迎! |
プロフィール | |
松原 晋啓(まつばら のぶあき)
趣味は小学校から続けているバスケットボールで、4年前にチームを作り、現在もリーダーとして活動を行っている |
![]() |
1-2-3 |
INDEX | ||
Page1 | ||
プログラマーも“デザイン”を意識する時代 プログラマーのためのリッチクライアント技術とは? WPFはプログラマー向けのリッチクライアント技術? |
||
Page2 | ||
「eFace」でプログラマーは何ができるのか? eFaceの開発はEclipseプラグインで無料でできる! XAMLのデザインは別のツールを使うのがおススメ |
||
![]() |
Page3 | |
何はともあれ、eFaceをサンプルで試してみよう リッチクライアント時代のJavaプログラマーのために |
![]() |
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
![]() |
|
|
|
![]() |