Silverlightを使った新しい試み

Silverlightについては、特に私が紹介する必要もなく、いろんなブログで記事が書かれているので、特に開発系の人々からすれば、なんとなく概要は理解されていると思います。

そんな状況なのですが、現在、私は、Silverlightを使って、既存の企業内システムとのインテグレーションを含めた試みにチャレンジしています。しばらくの間、この試みにおいて、私がつまづいたことや試行錯誤したことについて書いていこうと思います。

いわゆるきれいなサンプルではなく、べったべたな部分が多くなるとは思いますが、単にSilverlightでユーザインターフェイスをリッチにしましょうとか、XAMLで凝ったコントロールを作りましょうとか、ではなくて、すぐに使える手元のデータにちょっとメディアを加えて、次世代Webプラットフォームと既存システムで、ちょっと見方が変えることができないでしょうか、と考えています。

現在のチャレンジは、7月からの新しい業務の一環でやっているので、基本的に自分で額に汗して動いてます。なので、すでにあるサンプルを紹介していくわけではありません。

実装についてのベストプラクティスが確立しているわけではないので、私が書いている方法が必ずしも正しいとは思いませんし、時には間違っているかもしれません。しかし、特別なトレーニングを受けてない状態で一から知識を獲得していく上でのプロセスは、同じような境遇の人に何らか役に立つこともあったりします。そんなわけで、やっていきます。

現時点で、次のような疑問があって、明確な結論が出ていませんが、ゆくゆく実例とともに解決していきたいと思います。

・動的にデータをバインドするようなアプリケーションの場合、どうやってデータの連結を制御したらいいの?
・たとえ、WebサーバがSilverlightアプリケーションのスタートアップに寄与しても、Silverlightとバックエンドデータとのやり取りがWebサービスとJSONによって1:1になるとしたら、中間に位置するWebサーバは何に責任をもったらいいの?
・動的にXAMLを生成するようなケースで、パーシャルレンダリングをASP.NET AJAXに任せればいいの、それともXAMLをレンダリングするサービスと直接通信すればいいの?
・Silverlight 1.0βでのJavaScriptやSilverlight 1.1αでのFramework Laungageでのコードを最小限にとどめた方がいいの?それともバリバリ書いて、Silverlightの環境で実行した方がいいの?
・既存のシステムに対して更新を伴わないSilverlightアプリケーションの場合、どういう構造にすれば工数が減らせるの?
・トランザクションが必要なSilverlightアプリケーションの場合、どういう構造にするのが望ましいの?バックエンドとの通信やトランザクションはどうやってマネージすればいいの?
・極論しちゃうと、Silverlightアプリケーションがスマートクライアントになればいいの?それとも、MVC的な分離をサーバサイド含めて考えた方がいいの?

開発系のエバンジェリストの方々から突っ込みがあれば歓迎します。

もちろん、Silverlightのバージョンや開発環境がVisual Studio 2005とVisual Studio 2008 Beta 1では戦略も異なるかもしれません。そのあたりも踏まえて、試行錯誤できればと思ってます。
現時点の出発は、Visual Studio 2005 + Silverlight 1.0ベータ + ASP.NET AJAXで行こうと思ってます。 

たぶん、最初は動作させることを目的とするので、エレガントにまとまらないと思います。いったん全体がつながった段階で、リファクタリングしてきれいにまとめることができれば面白いと思ってます。