May 15, 2005
Visual Studio 2003時点でのスマートクライアントでの制約と、ClickOnceとの比較
ニーズ:
スマートクライアントに望むことは、「ローカルファイルの読み込みができること。正確に言うと、ドラッグアンドドロップとかでどばーっと数多いファイルを処理できること。」
これを第一前提でスマートクライアントを調べた限りの現状の問題点
1.セキュリティ的にそのままだとローカルファイルへのアクセスは無理。でも、Authenticode署名をつければローカルディスクの読み込みはできるらしい(でも書き込みは無理らしい)
ただしHTML+Webアプリサーバ同様、コモンダイアログ経由でユーザーが選択したものであればストリームを取得してファイルデータを読み込むことができる。
ついでに、アプリケーションが配布されたWebサイトであればWebサービスなどの通信も可能。またローカルにFlashのLocal SharedObjectのようなスーパークッキー的な専用のストレージエリアを確保可能。
2.ClickOnceという新しいテクノロジを使うと、セキュリティを初回実行時に選択可能?で、そのまま一回インストールすればIEのキャッシュから起動可能。バージョンアップも勝手にやってくれる。
・・・ん?現状のバージョンも同じじゃないの?何が違うのだ?
3.現在のスマートクライアントは、通常のexeと比べてパフォーマンスが相当悪いらしい。特にアセンブリ(exeとかdllのことなんだと)を分割読み込みするとUIが固まったように見える。
(アセンブリとは以下を参照
アセンブリとモジュールについて理解する)
ふーむ。ま、別にアセンブリを分けなきゃいけないほど複雑なものは毛頭作るつもりはないが。
疑問点
1.どうやってスマートクライアントアプリを起動するの?
deploymentするものは、インストーラーではなくてauthenticodeで署名された.exe?
2.どうやってWebサーバが持っている認証状態を引き継ぐか?
ActiveXをはりつけるなら引数渡せるけどさ。IEのクッキーとか読めないのかな?
3.Javaサーバーであることにデメリットは?
まぁ実際試すと山ほど謎が出てくるだろうが、とりあえずgoogle調査までの疑問点を書いてみた。
何より頼るしかないMSの文章は基本的な経験がないと何言ってるのかちっとも意味がわからないのがむかつく。
■参照情報
以下、VisualStudio2003対象
スマート クライアント アプリケーション モデルと .NET Framework 1.1
以下、VisualStudio2005対象、つまり新しいほう(まだリリースされてない。現在β)
"ClickOnce" によるクライアント アプリケーションの配置の紹介