BT

ASP.NET MVC 4のSingle Page Application

| 作者: Jonathan Allen フォローする 595 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2012年2月26日. 推定読書時間: 2 分 |

原文(投稿日:2012/02/24)へのリンク

ASP.NET MVC 4ベータには、“Single Page Application”を開発するための実験的なプロジェクトが含まれている。ASP.NET SPAとして知られるこのプロジェクトタイプは、オープンソースライブラリをベースにしており、WPFやSilverlightで普及したMVVMパターンで作られている。

ブラウザサイド

ブラウザ側の下部にいるのは、よく知られたjQueryライブラリが、Unobtrusive Ajax、jQuery UI、jQueryバリデーションなどのプラグインと一緒に使われている。

次の層は、Upshotである。これはおそらくjQueryとKnockoutの上に構築されたデータアクセスとキャッシュライブラリである。サンプルコードでは、knockout互換のview-modelが自動的に生成されていた。これの内部は、サービス層とのコミュニケーションを処理するUpshotベースの機能であった。これにはUIを操作できるコードも含まれている。(XAMLテクノロジのように、SPA view-modelは即座にすべてのパターンのコードにおけるゴミ捨て場になることができる)

MVVMスタイルのデータバインディングは、Knockoutフレームワークを使っている。KnockoutはXAMLベースの技術と同じように、宣言型のデータバインディングを提供する。同じく、プロパティの変更をイベントで公開するobservablesをベースとしたデータとビューモデルでは、最もうまく動作する。しかしながら、計算されたプロパティであっても、明示的なイベントの発行を行う必要がない。コントロールのDataContextプロパティの設定ではなくko.applyBindingsを呼び出す。これは、異なるデータコンテキストと関連づけられた子コントロールからのものを防ぐことができないが、それらは単純に“with”や“foreach”バインディングを使う必要があるということだけである。“with”バインディングは、View model上のバインディングコントロールのプロパティに対するDataContextのようなものであり、後者はアイテムコントロールの作成に効果がある。

最上位にあるのがMicrosoftの新しいライブラリであるnav.jsである。

サーバーサイド

サーバーサイドのアプリケーション枠は通常のMVCページである。アプリケーションに含まれる様々なビューは、部分ページによってサーバーサイドに置かれる。サンプルでは、Knockoutのデータバインディングは、表示・非表示を動的に行うために使われている。

ほとんどのサーバーサイドデータアクセスは、DataControllerの抽象クラスで処理される。これは、クライアントからサーバーにChangeSetEntryのサブミットを行う基本的なメソッドを提供するASP.NET Web APIのApiControllerのサブクラスである。ストアドプロシージャやサードパーティーのORMを使いたい開発者は、これを直接継承することができ、Entity Frameworkに傾いたときにはDbDataControllerを使うことができる。 Visual Studioのスキャフォールディングは、後者を基本的なCRUD操作を公開して自動的に生成することができる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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