将MVC web迁移到Sitecore的最佳实践
我们有两个MVC3.0 web应用程序,其中一些是web表单和MVC3.0在项目/解决方案中的组合 我是sitecore的新手,请有人帮助我理解以下关于将现有应用程序迁移到sitecore的内容吗将MVC web迁移到Sitecore的最佳实践,sitecore,sitecore6,Sitecore,Sitecore6,我们有两个MVC3.0 web应用程序,其中一些是web表单和MVC3.0在项目/解决方案中的组合 我是sitecore的新手,请有人帮助我理解以下关于将现有应用程序迁移到sitecore的内容吗 在什么类型的场景中,我们应该将MVC3.0 razor视图移动到sitecore 将MVC3.0迁移到sitecore的关键问题是什么 我需要在sitecore管道上注入任何东西吗 我是否需要更改任何导航链接才能在sitecore下工作 任何指向sitecore迁移现有web应用的最佳实践的链接都是好
谢谢。将MVC应用程序迁移到Sitecore解决方案时,您有几个可用的选项-根据要迁移的组件的性质,您必须选择最合适的选项 我将尝试回答您的5个具体问题: 1。何时使用Razor视图 我不确定问题是“何时使用Razor视图”还是“何时使用Sitecore视图渲染”——我将假设后者 如果您正在编写不需要任何业务逻辑且只处理呈现项的呈现组件,则视图呈现非常有用。如果您正在考虑在Raxor视图中添加代码,则应该考虑控制器渲染是否更合适,或者可能定制<代码> MVC。 2。迁移陷阱 将MVC应用程序迁移到Sitecore时,您可能会发现一些问题
- 基于组件的控制器-在MVC中,每页有一个控制器。Sitecore支持ControllerRendering的概念,允许您在一个页面上有多个控制器(注意:始终有一个路由控制器可以被视为主路由控制器)
- 项目路由-Sitecore有一个对映射到项目路径的所有路径都有效的全面路由。标准MVC路线和“项目路线”可以愉快地共存。项目路由当前不支持路由参数(例如,您不能在项目路由上指定{action}或其他参数)
- MVC4-目前没有对MVC4的官方支持(这种支持不会持续很久,但在此期间请看一看)
- 区域-当前区域不完全受支持
- 不知道要使用什么渲染类型以及何时将现有功能转换为组件
ActionFilter
(通过mvc.resultExecuting
管道),将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来控制组件
- 它严重依赖于路由和路由参数
我相信这个答案中的许多要点都可以扩展,我知道这方面没有明确的规则,但我希望这个答案有助于澄清一些困惑…+1-不确定这是“最佳实践”还是第一篇尝试的博客文章,但这里有一篇关于如何将MVC音乐商店教程网站转换为Sitecore MVC的文章。我认为Chris的博客文章很好地说明了如何使用Sitecore MVC的一些不同方面。但是,如果您从一个“MVC音乐商店”应用程序开始,并且希望将其合并到Sitecore解决方案中,我可能不会仅仅为了在Sitecore中重新组装而将其作为一部分。某些组件比其他组件更适合成为Sitecore渲染。