こんにちは。aokiです。
これはSitecore Advent Calenderの12/09日分の記事となります。素敵なカレンダーを立ち上げて頂いた原水さんに感謝いたします。
※前の記事と同じようにちょっとした写真をつけてみました。これはシアトルの桜(2007年春)です。とても素敵でした。
この記事ではSitecore6.6で新しく使えるようになった、ASP.NET MVCとのインテグレーションについて紹介します。
ASP.NET MVCとは
ASP.NET MVCは、ASP.NETでMVC機能を用いて開発できるアーキテクチャです。ポストバック主体であったWebFormとは異なり、ControllerとModelを用いてRubyOnRails的な開発を行える点が特徴です。またViewを選択することができます。最近はRazorと呼ばれるPHPライクな埋め込み型言語のViewがメインとなりつつあります。
MVCを使うための設定
- Sitecore6.6をセットアップ
- アプリケーションプールの .NET Frameworkバージョンを4.0に設定
- web.config.MVCを設定して、Web.configにリネーム(もともとのWeb.configは別の名前に)
- \App_config\Include\Sitecore.MVC.config.disabledから.disabledを消した名前に変更(他も同様)
- Website\bin_Net4フォルダの中身をWebsite\binフォルダにコピー
これで、ASP.NET MVCが動作するSitecoreが立ち上がりました。
なお.NET4.0やASP.NET MVC3を事前にインストールしておく必要があります。
MVCのレイアウトで動かしてみる
設定したら実際にMVCで動いているか確認してみます。
手順としては、Website\Viewsというフォルダを作り、そこに拡張子がcshtmlのファイルを作成します。例えば「MvcLayout.cshtml」というファイルを作成します。そして適当にHTML(Razor記法)で記載します。
MVCレンダリングファイルの作成
次に、レイアウトの部品にあたるパーツを設定してみます。Viewの表示には、MVCレンダリングを使用します。MVCレンダリングでは従来通りSitecoreプレースホルダーを使用することができます。
- Sample View.cshtml
- Sample Inner View.cshtml
- Sample View Rendering.cshtml
これはインストール直後に用意されいてるサンプルファイル(Sample Inner Sublayout.ascx等)に呼応するMVC版ファイルとなります。
次にレイアウトファイルと各ファイルの中身を更新します。
MVCレンダリングの設定
MVC用のファイルを作成したら、レンダリング設定を行います。
レンダリングから「ビューレンダリング」の挿入を選びます。
そして、Pathにcshtmlファイルを設定し、プレースホルダーを設定します。
ホームアイテムを選択し、プレゼンテーションの詳細から先ほど追加したレンダリングを選択します。
動作確認
すべて保存したらパブリッシュして、再びトップページにアクセスします。
最初と同様にトップページが表示されました。しかしこの表示はASP.NET MVCを用いて表示されているわけです。
最後に
ASP.NET MVCはjQueryとの相性も良く、BtoC向けなため最近注目を集めています。Sitecore にとっては最初のバージョンとなるため、これから洗練させてくる機能(今はサポートされていないものがある)と思いますが、今後に期待したいですね。