2013-03-10 48 views
6

我們有幾個MVC 3.0 web應用程序,其中一些是項目/解決方案中Web Form和MVC3.0的組合。將MVC web遷移到Sitecore的最佳實踐

我對sitecore很陌生,有人可以幫我理解下面有關將現有應用程序遷移到Sitecore的問題嗎?

  1. 我們應該將MVC3.0剃鬚刀視圖移到sitecore的哪種類型的場景?

  2. 什麼是將MVC3.0遷移到sitecore的關鍵陷阱?

  3. 我是否需要在sitecore管道上注入任何東西?

  4. 是否需要更改任何導航鏈接才能在sitecore下工作?

  5. 遷移現有網絡應用程序的任何鏈接到sitecore最佳實踐將是很好的。

我跟着博客下方,仍然不清楚爲什麼我們時應將網頁轉換控制和剃刀意見Sitecore的渲染。

謝謝。

回答

9

將MVC應用程序遷移到Sitecore解決方案時,您有幾個選項可用 - 根據要遷移的組件的性質,您將不得不選擇最合適的選項。

我會盡力解決您的5個具體的問題:

1.當使用剃刀意見

我不知道,如果問題是「何時使用Razor視圖」或如果問題是「何時使用Sitecore View Rendering」 - 我將假設後者。

查看如果您正在編寫不需要任何業務邏輯並僅處理呈現項目的演示組件,則呈現功能非常棒。如果您正在考慮在Razor視圖中添加代碼,則應該考慮控制器渲染是否更合適,或者可以自定義管道mvc.getModel

2.遷移陷阱

一些遷移MVC應用程序Sitecore的時候可能會抓住你出了事情。

  • 基於組件的控制器 - 在MVC中,每頁有一個控制器。 Sitecore支持ControllerRenderings的概念,允許您在一個頁面上擁有多個控制器(注意:總是會有一個路由控制器可以被視爲主要的)。
  • 項目路由 - Sitecore有一個捕捉所有路徑,對映射到項目路徑的所有路徑都有效。標準的MVC路線和「項目路線」可以愉快地共存。物品路線當前不支持路線參數(例如,您無法在物品路線上指定{動作}或其他參數)。
  • MVC4 - 目前沒有官方支持MVC4(這不會持續很長時間 - 但在此期間看看http://herskind.co.uk/blog/2012/10/sitecore-66-mvc4
  • 區域 - 當前區域未得到完全支持。
  • 不知道使用哪種呈現類型以及何時將現有功能轉換爲組件。

3.管道定製

你是不是被迫定製Sitecore的管道。我可以看到一些例子,在遷移故事的上下文中修改管道是有用的。我最近在Sitecore用戶組中談到的一個例子涉及在全球範圍內添加一個ActionFilter(通過mvc.resultExecuting管道),將一個ASP.Net MVC應用程序注入Sitecore佔位符。在我的示例中,我將MVC音樂商店注入佔位符並擁有Sitecore控件窗口打扮(頁眉/頁腳/菜單)。通過這種方式,我可以將現有的MVC應用程序放入Sitecore中,而無需進行太多改動。

4.導航鏈接

如果您的導航終端是Sitecore的項目路線(E.I.網站上的路徑中的項目),你應該使用Sitecore的LinkManager產生相應的鏈接。如果端點是標準MVC路線RouteLinkActionLink應該可以正常工作。

我想沒有一個具體的例子,答案將是「也許」。

5.最佳實踐遷移的博客文章

我不知道處理Sitecore的MVC遷移最佳實踐的任何博客文章或文章。請記住,完整的MVC支持是Sitecore的最新增加,而且從開始到結束的這段旅程並不多。

爲什麼以及何時轉換爲Sitecore的渲染

您終止的問題,說明你仍然感到困惑的時候,爲什麼你會控制和剃刀意見轉化爲Sitecore的效果。以下是一些指標,說明某些是Sitecore呈現的候選對象:

  • 它是一個可以在多個頁面上重用的組件。
  • 您希望啓用Sitecore用戶將組件添加到頁面。 (認爲​​頁面編輯器)
  • 您想利用Sitecore的組件級緩存。
  • 您希望利用Sitecore安全來限制誰可以使用/查看組件。
  • 你想通過個性化,規則或者運行MVT來控制組件。

在MVC的情況下這裏有一些指標,它可能不適合的東西轉換成Sitecore的渲染:

  • 它在很大程度上依賴於路由和路由參數。

我相信很多在這個答案的要點可以在擴大,我知道有這個沒有明確的規則 - 但我希望這個答案可以幫助清理一些混亂...

+1

+1 - 不確定它是否是'最佳實踐',或者它只是第一篇嘗試使用它的博客文章,但這裏有一篇關於如何將MVC音樂商店教程網站轉換爲Sitecore MVC的文章。 http://www.sitecore.net/Community/Best-Practice-Blogs/Chris-van-de-Steeg/Posts/2012/08/MVC-Controller-Renderings-for-Sitecore.aspx – 2013-03-12 12:22:30

+0

我Chris的博文認爲這是一個很好的例子,說明如何使用Sitecore MVC的不同方面。但是,如果情況是,您開始使用「MVC音樂商店」應用程序,並且您想將其合併到Sitecore解決方案中,那麼我可能不會爲了在Sitecore中對其進行重新組合而將其納入其中。有些組件適合成爲Sitecore渲染比其他組件。 – herskinduk 2013-03-12 12:51:11