我对sitecore很陌生,有人可以帮我理解以下关于将现有应用程序迁移到Sitecore的问题吗?
>在什么类型的场景中我们应该将MVC3.0剃刀视图移动到sitecore?
>将MVC3.0迁移到sitecore有哪些关键问题?
>我需要在sitecore管道上注入任何东西吗?
>我是否需要更改任何导航链接才能在sitecore下工作?
>用于迁移现有Web应用程序的sitecore最佳实践的任何链接都将很好.
我按照下面的博客,仍然不清楚为什么以及何时应该将网页控件和剃刀视图转换为Sitecore渲染.
谢谢.
解决方法
我会尝试解决您的5个具体问题:
1.何时使用Razor视图
我不确定问题是“何时使用Razor视图”或问题是“何时使用Sitecore View Rendering” – 我将假设后者.
如果您正在编写不需要任何业务逻辑且仅处理渲染项的演示组件,则View Rendering非常有用.如果您正在考虑在Razor视图中添加代码,您应该考虑控制器渲染是否更合适,或者可能是自定义mvc.getModel管道.
2.迁移陷阱
将MVC应用程序迁移到Sitecore时可能会遇到的一些问题.
>基于组件的控制器 – 在MVC中,每页有一个控制器. Sitecore支持ControllerRenderings的概念,允许您在页面上拥有多个控制器(注意:总会有一个路径控制器可以被视为主要控制器).
>项目路由 – Sitecore具有捕获所有路径,该路径对映射到项目路径的所有路径都有效.标准的MVC路线和“物品路线”可以愉快地共存.项目路径当前不支持路径参数(例如,您无法在项目路径上指定{action}或其他参数).
> MVC4 – 目前没有对MVC4的官方支持(这不会长期存在 – 但同时看看http://herskind.co.uk/blog/2012/10/sitecore-66-mvc4)
>区域 – 目前尚未完全支持区域.
>不知道要使用哪种渲染类型以及何时将现有功能转换为组件.
3.管道定制
您无需自定义Sitecore管道.我可以看到一些示例,其中在迁移故事的上下文中修改管道是有用的.我最近在Sitecore用户组中谈到的一个例子涉及在全局(通过mvc.resultExecuting管道)添加一个ActionFilter,它将ASP.Net MVC应用程序注入Sitecore占位符.在我的示例中,我将MVC音乐商店注入占位符并使用Sitecore控件橱窗装饰(页眉/页脚/菜单).这样我就可以将我现有的MVC应用程序带入Sitecore,而无需进行太多更改.
4.导航链接
如果导航端点是Sitecore项目路径(例如,网站上项目的路径),则应使用Sitecore的LinkManager生成相应的链接.如果端点是标准MVC路由,则RouteLink和ActionLink应该可以正常工作.
我想如果没有一个具体的例子,答案将是“也许”.
我不知道任何关于Sitecore MVC迁移最佳实践的博客文章或文章.请记住,完整的MVC支持是Sitecore的最新成员,但从开始到结束还没有多少人见过.
为什么以及何时转换为Sitecore渲染
你结束了你的问题,说明你仍然对何时以及为什么要将控件和Razor视图转换为Sitecore渲染感到困惑.以下是一些指标,表明某些东西是Sitecore渲染的候选者:
>它是一个可以在许多页面上重用的组件.
>您希望启用Sitecore用户将组件添加到页面. (想想页面编辑)
>您希望利用Sitecore的组件级缓存.
>您希望利用Sitecore安全性来限制谁可以使用/查看该组件.
>您希望通过个性化,规则或运行MVT来控制组件.
在MVC的上下文中,有一些指标可能不适合将某些内容转换为Sitecore呈现:
>它在很大程度上依赖于路由和路由参数.
我相信这个答案中的许多要点可以扩展,我知道没有明确的规则 – 但我希望这个答案有助于消除一些混乱……