Sitecore6.6でASP.NET MVC開発

シアトルの桜

こんにちは。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を使うための設定

  1. Sitecore6.6をセットアップ
  2. アプリケーションプールの .NET Frameworkバージョンを4.0に設定
  3. web.config.MVCを設定して、Web.configにリネーム(もともとのWeb.configは別の名前に)
  4. \App_config\Include\Sitecore.MVC.config.disabledから.disabledを消した名前に変更(他も同様)
  5. Website\bin_Net4フォルダの中身をWebsite\binフォルダにコピー

これで、ASP.NET MVCが動作するSitecoreが立ち上がりました。

Sitecoreトップ

なお.NET4.0やASP.NET MVC3を事前にインストールしておく必要があります。


MVCのレイアウトで動かしてみる

設定したら実際にMVCで動いているか確認してみます。

手順としては、Website\Viewsというフォルダを作り、そこに拡張子がcshtmlのファイルを作成します。例えば「MvcLayout.cshtml」というファイルを作成します。そして適当にHTML(Razor記法)で記載します。

レイアウトをMVCに変更
最後にレイアウトの設定をaspxから、cshtmlに変更します。これで最初の設定は完了です。
http://localhost/のようにアクセスすれば、ASP.NET
MVCが動作することがわかります。

MVCレンダリングファイルの作成

次に、レイアウトの部品にあたるパーツを設定してみます。Viewの表示には、MVCレンダリングを使用します。MVCレンダリングでは従来通りSitecoreプレースホルダーを使用することができます。

レンダリング用のファイルをViewsフォルダに作成します。
  1. Sample View.cshtml
  2. Sample Inner View.cshtml
  3. Sample View Rendering.cshtml

これはインストール直後に用意されいてるサンプルファイル(Sample Inner Sublayout.ascx等)に呼応するMVC版ファイルとなります。

次にレイアウトファイルと各ファイルの中身を更新します。

レイアウトをMVCに変更

Sample View.cshtml

Sample Inner View.cshtml

Sample View Rendering.cshtml

MVCレンダリングの設定

MVC用のファイルを作成したら、レンダリング設定を行います。

ビューレンダリングの追加

レンダリングから「ビューレンダリング」の挿入を選びます。

レンダリングの設定

そして、Pathにcshtmlファイルを設定し、プレースホルダーを設定します。

Homeアイテムのプレゼンテーション設定

ホームアイテムを選択し、プレゼンテーションの詳細から先ほど追加したレンダリングを選択します。

動作確認

すべて保存したらパブリッシュして、再びトップページにアクセスします。

MVCでレンダリングされたトップページ

最初と同様にトップページが表示されました。しかしこの表示はASP.NET MVCを用いて表示されているわけです。

最後に

ASP.NET MVCはjQueryとの相性も良く、BtoC向けなため最近注目を集めています。Sitecore にとっては最初のバージョンとなるため、これから洗練させてくる機能(今はサポートされていないものがある)と思いますが、今後に期待したいですね。

参考


ネクストスケープ企業サイトへ

NEXTSCAPE

検索する

タグ

メタデータ

投稿のRSS

著者

青木淳夫です。
.NETとアジャイルと散歩が好きなエンジニアです。
「aoki」さんの全ポストを読む