加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

将MVC Web迁移到Sitecore的最佳实践

发布时间:2020-12-14 19:37:01 所属栏目:资源 来源:网络整理
导读:我们有一些MVC 3.0 Web应用程序,其中一些是Web Form和MVC3.0在项目/解决方案中的组合. 我对sitecore很陌生,有人可以帮我理解以下关于将现有应用程序迁移到Sitecore的问题吗? 在什么类型的场景中我们应该将MVC3.0剃刀视图移动到sitecore? 将MVC3.0迁移到sit
我们有一些MVC 3.0 Web应用程序,其中一些是Web Form和MVC3.0在项目/解决方案中的组合.

我对sitecore很陌生,有人可以帮我理解以下关于将现有应用程序迁移到Sitecore的问题吗?

>在什么类型的场景中我们应该将MVC3.0剃刀视图移动到sitecore?
>将MVC3.0迁移到sitecore有哪些关键问题?
>我需要在sitecore管道上注入任何东西吗?
>我是否需要更改任何导航链接才能在sitecore下工作?
>用于迁移现有Web应用程序的sitecore最佳实践的任何链接都将很好.

我按照下面的博客,仍然不清楚为什么以及何时应该将网页控件和剃刀视图转换为Sitecore渲染.

谢谢.

解决方法

将MVC应用程序迁移到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应该可以正常工作.

我想如果没有一个具体的例子,答案将是“也许”.

5.最佳实践迁移博客文章

我不知道任何关于Sitecore MVC迁移最佳实践的博客文章或文章.请记住,完整的MVC支持是Sitecore的最新成员,但从开始到结束还没有多少人见过.

为什么以及何时转换为Sitecore渲染

你结束了你的问题,说明你仍然对何时以及为什么要将控件和Razor视图转换为Sitecore渲染感到困惑.以下是一些指标,表明某些东西是Sitecore渲染的候选者:

>它是一个可以在许多页面上重用的组件.
>您希望启用Sitecore用户将组件添加到页面. (想想页面编辑)
>您希望利用Sitecore的组件级缓存.
>您希望利用Sitecore安全性来限制谁可以使用/查看该组件.
>您希望通过个性化,规则或运行MVT来控制组件.

在MVC的上下文中,有一些指标可能不适合将某些内容转换为Sitecore呈现:

>它在很大程度上依赖于路由和路由参数.

我相信这个答案中的许多要点可以扩展,我知道没有明确的规则 – 但我希望这个答案有助于消除一些混乱……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读