BT

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

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2010年12月19日. 推定読書時間: 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氏によって提供されている例には、状態テキスト(例えば、現在の時間)やリストボックスに入れられるアイテムが含まれている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT