.NETラボ勉強会12月

以前より技術系の勉強会はたくさんでているのですが、最近は月1回が限度。今のところ.NETラボだけに出ています。

そんな訳で、.NETラボでは「おいしい関係」の話をしたのですが、これは珍しいほうで、主に microsoft 系の話が中心です。その中で、今回はMSのK高さんがいらっしゃいました。。。って伏字にする必要はなくて、microsoftのエバンジェリスト日高さんの解説でした。

Code Recipe
http://msdn.microsoft.com/ja-jp/samplecode.recipe.aspx

のうち、今後の予定である silverlight で作るショッピングサイトの例です。
http://msdn.microsoft.com/ja-jp/dd266962.aspx#01

このショッピングサイト、ブラウザ全面で silverlight を使います。このあたり、よくある flash のサイトと同じです。逆に言えば、flash と同等なショッピングサイトを siverlight で作ることを目的としている、、、と思うですがどうなんでしょう?

さて、本筋の解説は日高さんが為さるということで、ちょっと横道を私なりに考察していきます。

以前、LAMP上でsilverlightを使うために、いくつか実験をしました。

手始めに Silverlight+WCFの組み合わせで実験
http://www.moonmile.net/blog/archives/358

この手のショッピングサイトで重要な層は、

・ブラウザによるUI層
・データ検索などの通信層
・サーバーでのデータベース層

の3層があります。細かい部分の違いはさておき(特にデータベース層は、DAOの違いなど異論があるでしょうが)設計段階で、どこで何の技術/言語を使うのかを選定してきます。このあたり、要求仕様段階の技術検証も必要なのですが、

・設計のしやすさ
・プログラマの集めやすさ
・人件費(外注、社内など)

も大きく関わってきます。特に外注になる場合、元請けのコンサルタントが技術面を決めてしまうことが多く、後々のコストが考慮されてない場合が多くあります。

# 現実問題として、提案する会社(microsoft や oracle など)の技術(silverlightやjavaなど)に寄ってしまうのも常だったりしますね。営業的にそういうものです。

さて、ショッピングサイトを作るにしても、外注/内製の違いあり、業務系/一般系の違いあり、というわけで、この段階で何が一番いい技術という訳でもありません。それぞれの違い、特に「得手不得手」を考慮するのが良いでしょう。

例えば、先の3つの層を flash で考えると、

・UI層 Flash
・通信層 xmlhttp
・データベース MySQL

が考えられます。

同じく、Ajax で考えると、

・UI層 ajax(prototype.js, jQuery)
・通信層 xmlhttp
・データベース MySQL

となります。

実は、このUI層はブラウザが前提になっていますが、curl などの専用アプリを用意してもいいし、windows アプリでもいいのです。

・UI層 windows/wpf
・通信層 http/soap
・データベース sql server

なんて感じもできます。

このあたり、層の間のインターフェースだけきちんと考えていけば、何にでも応用ができます。

本当のところ、web サービス、wcf、xml soap、soap なんてのはこれらの繋ぎの部分に使う技術なのですが、なんかフロントエンドが決まってしまっていて、microsoft で言えば、wpf と silverlight がうまく切り替えられないのが問題ですね、という話になります。
wpf が広まらない理由にこれも一因があると思うんです。まぁ、もっと根本的には、microsoft も含めて、この手の技術が多様になり過ぎているのが根本的なところですが(この話はまた別の機会に)

そんな訳で、最近の技術は、

・手早くできる
・分かりやすい

ことに重点が置き過ぎていて、

・汎用性/相互結合

が弱くなっているのかなぁと。軽視という訳ではないけれど、経済的に余裕がなくなっている、という印象を受けます。

それはさておき、私のほうでは、

・UI層 silverlight
・通信層 wcf/soap
・データベース php/mysql

の組合せを実験/実装していきます。

カテゴリー: 開発 パーマリンク