有没有人有在单一解决方案中维护 Sitecore MVC 和 Web Forms 的经验?

Does anybody have experience in maintaining Sitecore MVC and Web Forms in a single solution?

我们在 Sitecore 6.5 Web Forms 中有一个多站点项目,需要适当的重构、架构重新设计,我们想将它升级到 sitecore 8。当然,开始一些全新的东西会更容易,但项目很大并且可能无法在全新的解决方案中将其重写为 MVC,因为需要时间来启动所有站点并 运行ning。这就是为什么我们开始考虑是否可以保留旧的解决方案并添加 MVC 项目,这允许我们在 MVC 中编写新站点并同时慢慢重构遗留代码。

我看过 John West post 关于在单一解决方案中使用 Web Forms 和 MVC http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2012/06/using-web-forms-and-mvc-in-a-single-solution-with-the-sitecore-aspnet-cms.aspx 但我需要确定它不会在长期 运行 中引起任何问题, 在我们向客户提出这个解决方案之前。

有没有人有在生产应用程序中保留这两种类型项目的经验?是否可以在没有任何风险的情况下通过子布局进行迁移子布局?我们是否可以一次将网站的一部分以 Web 表单的形式和一部分以 MVC 的形式(当然,页面分离为仅 Web 表单或仅 MVC 控件)?您知道我们应该注意的任何限制吗?

Sitecore WebForms 和 MVC 确实可以在同一个解决方案中共存。看起来你在这里有两个目标,但应该分开对待。 1) 从 6.5 升级到 Sitecore 8 这不是一项小任务,以及 2) 从 WebForms 到 MVC 的转换。

假设重写是不可能的,我会首先将解决方案升级到 Sitecore 8(甚至更好到 8.1)。如果您现有的解决方案使用 DMS,那么除了其余的升级之外,这将是一项重要的工作。

将有效的 WebForms 解决方案升级到 Sitecore 8 / 8.1 后,您可以考虑将部分解决方案更改为 MVC。 WebForms 和 MVC 可以在一个项目中愉快地共存,唯一的限制是每个页面应该是 100% WebForms 或 100% MVC。创建布局的 MVC 版本将是第一项任务,然后是您的组件。在您的转换过程中,您可能会有重复的标记,但这应该不是主要问题。如果您是 Sitecore MVC 的新手,您将想要了解可用的不同呈现类型,并知道选择哪种呈现类型的目的是什么(这里是 an introduction to Sitecore MVC presentation concepts and notes about moving to Sitecore MVC)。如果您的解决方案中有任何形式,我会最后升级它们,因为在迁移到 MVC 时它们可能需要最大的改变。

在 Sitecore 8 中同时使用 MVC 和 Web Forms 没问题。但是开箱即用,不支持混合 MVC 和 Web Forms 占位符。所以一个页面是带有 MVC 子布局的 MVC。或带有 WebForms 子布局的 Web 表单。

有混合的解决方案。但是不建议看https://github.com/HedgehogDevelopment/sitecore-mvc-aspx-interop

MVC 页面上的 Web 窗体: http://www.chrisvandesteeg.nl/2014/02/11/usercontrol-renderings-in-a-sitecore-mvc-website-wffm-for-mvc/

不久前,我们在 SUGNL 聚会上讨论过这个主题,您可以阅读摘要:http://sitecore.robhabraken.nl/index.php/2288/sugnl-colours-2015/

或者读这个 http://www.nonlinearcreations.com/Digital/how-we-think/articles/2015/05/MVC-Web-Forms-Hybrid-Sitecore.aspx