ファイルシステムにアクセス可能なRIA

ちょっと興味があったので調べてみた。調べてみたのは以下の3つ。

Adobe AIRファイルシステムへのアクセス

Adobe AIRファイルシステムにアクセス可能との触れ込みが一番でかい。http://livedocs.adobe.com/labs/air/1/devappsflex/help.htmlのWorking with files and dataにあるように、ファイルの読み書きやファイルの移動・削除・複製なんかができる。
ただし至極残念なのは、以下の記述。

Will Adobe AIR applications be able to launch default applications for a file type?

No. This feature is not planned for version 1.0.

Adobe Labs | Previews, prereleases and beta software from Adobe

要するに指定したファイルを、ファイルタイプに関連付いたアプリケーションで開かせる、ということができない模様。それができなきゃ魅力半減なんだけどなぁ…。
例えば画像ファイルを開いて、AIR内で表示することは可能だけど、それをペイントで開かせることは無理。残念。ただし各種コンポーネントの使い勝手はよさそうなので、これからも多少注目。

Sun JavaFX

JavaFXはどないかと言いますと、Java6追加されたjava.awt.Desktopクラスを使えば可能。
あまりJavaFXは関係ないっちゃ関係ない。

Java で他のアプリケーションを起動するには、ProcessBuilder クラスを使用しますよね。これはこれでいいのですが、起動するアプリケーションが分からないときがあります。

たとえば、ブラウザ。

たぶん、ブラウザがあることは分かるんだけど IE なのか Firefox なのか Opera なのか、Java のアプリケーションからだとなかなか分からないんですよね。JNI を使えばできるのですが、それはちょっと...

また、普通は MIME タイプごとに起動するアプリケーションが決まっていますが、そのアプリケーションが何かを知りたいわけです。

でも、もうそんな悩みも過去のこと。Java SE 6 を使えば、あっという間にできるのです。

Java SE 6 じゃじゃ馬ならし Desktop

条件はクリアしているけれど、問題はいつ正式版がリリースされるか、ですかねぇ。

Microsoft Silverlight

上記3種類の中で、唯一正式版がリリースされているSilverlight。今日から調べてみたところ。
でも下記の内容が記載されており、さてさて…。

VB On Silverlightの中で、Silverlightで使えるVBの機能、使えないVBの機能という、簡単な一覧が出ているわけです。
使えない機能は…
・My (Alphaにはあったけど、削除)
XML リテラル (System.XML.Linq が使えないため)
・COM (考えてみれば当たり前)
・FileSystem Object (これまた当たり前)

http://blog.tk-engineering.com/?eid=634283

まとめ

  • Adobe AIRは今後に期待。各種コンポーネントが美しいし、データバインディングなんかも容易なので、今後に注目。
  • Sun JavaFXはやりたいことができる環境に一番近い。ただデザインしにくそうな雰囲気ではある。
  • Microsoft Silverlightはまだまだ未調査ながら、面白い可能性は秘めていそう。今度簡単なサンプルでも作ってみる予定。

結論。やりたいことができる環境はまだ揃っていない。以上。

…なんて言いたいなぁ orz...