Silverlight版iEditの開発を始めました

Silverlightも2になってアプリ開発がとても楽になりました。使い慣れたC#でリッチなUIが作れます。WPFも試していたのですが、やはりOSの垣根を越えられるSilverligtでアプリを作るのが楽しそうということで、SilverligtによるiEditクローン開発に着手してみました(MH HOMEの紹介ページ)。
昨年12月からちょっとずつ作り始めて、正月休み3日間ぐらいを費やして、かなり動きをiEditっぽくしました。

紹介ページにいろいろと制限事項を書きましたが、最大の問題として、まだデータの保存はできません。SilverligtはWebサービスとの連携が前提であるため、データをサーバー側で管理する仕組みが必要になります。ローカルの分離ストレージに多少のデータ保存ができますが、やはりWebサービスのフロントエンドとしての使い方をしないと存在意義がありません。個人的には、DropboxがファイルのCRUD処理APIを提供してくれたら、それを呼び出すだけでローカルのフォルダーにファイルが生成されて履歴管理もできてしまうなあと思うのですが、他力本願もアレなので、Google App EngineとかAzureとかにサービス公開することを構想中です(ヘタレですみません)。

Silverlightは、WPFと比べるとかなり機能制限がありますが、WPFと同様のプログラミングモデルが使用できて生産性が高いです。マルチプラットフォームで動作し、Webブラウザーにプラグインされるランタイムだけで配布できるのが優れた点だと思います。WPFだと.NET Frameworkとか入れてもらう必要があるし、Vistaでも最新の.NET Framework入っていないし、ユーザーの導入への障壁が高いです。

アウトラインビューの部分は、Control Packとして提供されているTreeViewを使ってみました。WPFのTreeViewと同様、バインドしているオブジェクトのコンポジット構造が簡単にマッピングできて強力です。バグなのか選択状態の挙動が変な部分があります。何回か選択・非選択を繰り返していると直ります。