BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ASP.NET MVC 3が動的型けをサポート

ASP.NET MVC 3が動的型けをサポート

原文(投稿日:2010/12/13)へのリンク

10年ぐらい前に、Microsoftは、WebFormと静的な型づけに大きく賭けた。ダイヤルは目一杯回されて、完全な暗号化まで行ってしまい、各ページがまるでプログラムのように扱われていた。その間、業界は、概ね別方向に行き、暗号化への関心は無くなり、初期結合より遅延結合が好まれている。このような事情から、2つの非常に面白い疑問が生まれる。

その1つが専門用語への疑問である。元々のSmalltalkのMVCパターンでは、ビューとコントロールがしっかり結合していたばかりでなく、文字通り一組になっていた。まさに、Microsoftのほとんどのフレームワークに見られるものである。そのフレームワークには、以前のVB、WinForms, WebForms, WPF, そして Silverlightがあり、これらは、全てコントローラのロジックにコード・ビハインド ファイルを使っている。しかし、今日、“MVC” といえば、ビューとコントロールが非常に緩く結合しているフレームワークのことである。このことは、特にwebフレームワークに言える。HTMLのフォーム サブミッション メカニズムによって、どのビューもどのコントローラでもターゲットにできる。このアーティクルは、web技術について述べているので、後者の新しい定義に従うことにする。

2つ目の疑問は、「もしMicrosoftだったら、どうやって、目立たずに、開発者を敵に回さずに、路線を変更するか」ということである。これまで、その答えは、「ちゃんとするまで、毎年新しいバージョンを出して行く」ということである。 ASP.NET MVCの最初の製品リリースは、2009年3月だった。2010年の3月には、ASP.NET MVC 2.0が出た。3.0は、2番目のリリース候補があり、来年の3月には、製品リリースがあるはずである。

ASP.NET MVC 3.0 リリース候補2 は、12月10日にアナウンスされた。RC2は、デフォルトのプロジェクト テンプレートに jQuery 1.4.4、 jQuery Validation 1.7そして jQuery UI を含むという、 jQueryへのMicrosoftの約束に従って、作られている。彼らは、しばらくの間サーバー側のコントロールから離れることを躊躇していたが、 jQuery UIを含むということは、今やそのことを真剣に考えている、ということである。

スケーラビリティを気にかけている人には、セッション状態をもっと細かくコントロールできるようになった。 SessionState特性を使って、コントローラにセッション状態をリードのみ、リード-ライト、あるいは、完全にスキップにするかを指示できる。これは、単一サーバによるwebサイトには、どうでもいいことであるが、セッション状態を別のサーバーから持ってくる必要のある時には、非常に効率に寄与するものである。

MVC 3 は、Razorビュー エンジンを持っている。このエンジンがデフォルトで出力をHTMLにエンコードし、生のテキストがスクリーンに出てしまうようなことを軽減している。HTML注入攻撃のリスクがない時でさえ、エンコードされないテキスト片によって、簡単にページが正しく描画されるのを防ぐことができる。

おそらく多くのC#開発者にショックなのは(そしてVB使用者から悪意のある批判を浴びそうなのは)、MVC 3がコントローラやビューの動的型づけを受け入れている、ことであろう。 ViewBagプロパティによって、動的オブジェクトにアクセスでき、実行時にプロパティを追加することができる。一般的に言えば、これは、非モーダル データをコントローラからビューへ転送するのに使われる。 Scott Guthrie氏によって提供されている例には、状態テキスト(例えば、現在の時間)やリストボックスに入れられるアイテムが含まれている。

この記事に星をつける

おすすめ度
スタイル

BT