6

プロジェクト/ソリューション内にいくつかのMVC3.0Webアプリケーションがあり、そのうちのいくつかはWebフォームとMVC3.0の組み合わせです。

私はSitecoreを初めて使用しますが、既存のアプリケーションをSitecoreに移行することに関して、次のことを理解するのを手伝ってもらえますか?

  1. どのタイプのシナリオで、MVC3.0レイザービューをサイトコアに移動する必要がありますか?

  2. MVC3.0をsitecoreに移行する際の主な落とし穴は何ですか?

  3. サイトコアパイプラインに何かを注入する必要がありますか?

  4. サイトコアで機能するようにナビゲーションリンクを変更する必要がありますか?

  5. 既存のウェブアプリを移行するためのサイトコアのベストプラクティスへのリンクはどれも良いでしょう。

以下のブログをフォローしましたが、WebコントロールとレイザービューをSitecoreレンダリングに変換する理由と時期がまだわかりません。

ありがとうございました。

4

1 に答える 1

9

MVC アプリケーションを Sitecore ソリューションに移行する場合、利用可能なオプションがいくつかあります。移行するコンポーネントの性質に応じて、最も適切なオプションを選択する必要があります。

5 つの具体的な質問にお答えします。

1.Razor ビューを使用する場合

質問が「いつ Razor ビューを使用するか」なのか、それとも「いつ Sitecore View Rendering を使用するか」という質問なのかはわかりません - 後者を想定します。

ビュー レンダリングは、ビジネス ロジックを必要とせず、レンダリング アイテムのみを扱うプレゼンテーション コンポーネントを作成する場合に最適です。Razor ビューにコードを追加することを検討している場合は、コントローラー レンダリングがより適切かどうか、またはmvc.getModelパイプラインをカスタマイズするかどうかを検討する必要があります。

2. 移行の落とし穴

MVC アプリケーションを Sitecore に移行する際に気になることがあります。

  • コンポーネントベースのコントローラー - MVC では、ページごとに 1 つのコントローラーがあります。Sitecore は、ページ上に複数のコントローラーを持つことを可能にする ControllerRenderings の概念をサポートしています (注: プライマリとして認識できるルート コントローラーは常に 1 つ存在します)。
  • アイテム ルーティング - Sitecore には、アイテム パスにマップされるすべてのパスに対して有効なキャッチ オール ルートがあります。標準の MVC ルートと「アイテム ルート」は問題なく共存できます。アイテム ルートは現在、ルート パラメーターをサポートしていません (たとえば、アイテム ルートで {action} やその他のパラメーターを指定することはできません)。
  • MVC4 - 現在、MVC4 の公式サポートはありません (これは長くは続きませんが、当面はhttp://herskind.co.uk/blog/2012/10/sitecore-66-mvc4を参照してください) 。
  • エリア - 現在、エリアは完全にはサポートされていません。
  • 使用するレンダリング タイプと、既存の機能をいつコンポーネントに変換するかがわからない。

3. パイプラインのカスタマイズ

Sitecore パイプラインをカスタマイズする必要はありません。移行ストーリーのコンテキストでパイプラインを変更すると役立ついくつかの例を見ることができます。私が最近 Sitecore ユーザー グループで話した例の 1 つは、ASP.Net MVC アプリケーションを Sitecore プレース ホルダーに挿入するActionFilterグローバル (パイプライン経由) の追加に関するものでした。mvc.resultExecuting私の例では、MVC Music Store をプレースホルダーに注入し、Sitecore コントロール ウィンドウ ドレッシング (ヘッダー/フッター/メニュー) を用意しました。このようにして、既存の MVC アプリケーションをあまり変更せずに Sitecore に取り込むことができました。

4. ナビゲーション リンク

ナビゲーション エンドポイントが Sitecore アイテム ルート (Web サイト上のアイテムへのパス) である場合は、Sitecore のものを使用LinkManagerして適切なリンクを生成する必要があります。エンドポイントが標準の MVC ルートRouteLinkであり、問​​題ActionLinkなく動作する場合。

具体的な例がなければ、答えは「たぶん」になると思います。

5. 移行のベスト プラクティスのブログ投稿

Sitecore MVC 移行のベスト プラクティスを扱ったブログ投稿や記事は知りません。完全な MVC サポートは Sitecore に最近追加されたものであり、この旅を最初から最後まで見た人はまだ多くないことに注意してください。

Sitecore Rendering に変換する理由と時期

コントロールと Razor ビューを Sitecore レンダリングに変換する時期と理由についてまだ混乱していると述べて、質問を締めくくります。何かが Sitecore レンダリングの候補であることを示すいくつかの指標を次に示します。

  • 多くのページで再利用できるコンポーネントです。
  • Sitecore ユーザーがコンポーネントをページに追加できるようにしたいと考えています。(ページエディターを考えてください)
  • Sitecore のコンポーネント レベルのキャッシュを利用したい。
  • Sitecore のセキュリティを活用して、コンポーネントを使用/表示できるユーザーを制限したいと考えています。
  • パーソナライゼーション、ルールを使用してコンポーネントを制御するか、コンポーネントで MVT を実行します。

MVC のコンテキストでは、何かを Sitecore レンダリングに変換することが正しくない可能性があることを示すいくつかの指標があります:

  • ルーティングとルート パラメータに大きく依存します。

この回答のポイントの多くは拡張できると確信しており、これには明確なルールがないことを知っていますが、この回答が混乱の一部を解決するのに役立つことを願っています...

于 2013-03-12T10:29:55.487 に答える