自由度の高さゆえに難しいこと

現在取り組んでいるSilverlightを使った試みを絵にかいた餅ではなく、現実に動作するものとして実装を考えながら、改めて、.NET環境の自由度の高さを感じつつ、どうやったら、設計時点である程度のパターンで抑え込めないものかと、試行錯誤しています。

今の課題は、可変長の階層データを扱いつつ、UIも動的に変化するものを扱うことなのですが、変化する部分をどうやって、どこに配置して、UIとして実現するか、また、UIでの変化をどうやって処理するかにおいて、バックエンドのサービスなどとどのように責任を分担するかを考えると、制約の閉じ込め方について「これ!」という確立された方法が見当たらないので、今だにコンポーネントの分離に対して、明確な答えが出ないまま、悶々と過ごしています。

これは、マイクロソフトの提供しているプラットフォームや開発ツールの良さでもあり、一方で、企画・設計している段階の人にとっては、いろんなものをつなげるツールがある意味で制約が少なすぎて使いづらい、と感じる部分なのかもしれません。
Visual Studio 2008はそのあたりを解決する一つの手段となると期待していますが、現時点では、リリースされている開発ツールを使ったうえで、新しい技術をどうやって結合していくかということも、考えなければならないかもしれません。

今、自分の抱えていることをまずは、Visual Studio 2005でどうやって解決できるかを考えた上で、解決の先でVisual Studio 2008で同じことをやると、こんなに変わるかも、ということを提示することも興味深いかもしれません。