我们在Sitecore 6.5 Web Forms中有一个多站点项目,需要体面的重构,架构重新设计,我们希望将其升级到sitecore 8.当然,开始一些全新的东西会更容易,但项目很大,可能由于需要时间来启动和运行所有站点,因此无法在全新的解决方案中将其重写为MVC。这就是为什么我们开始考虑是否有可能保留旧的解决方案并添加MVC项目,这允许我们在MVC中编写新站点并在此期间慢慢重构遗留代码。
我看到John West关于在单一解决方案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的帖子,但我需要确定在我们向客户提出此解决方案之前,从长远来看它不会造成任何问题。
是否有人有将这两种类型的项目保留在生产应用程序中的经验?是否可以通过子布局进行迁移子布局而没有任何风险?我们是否可以在网站表单中同时拥有网站的一部分并参与MVC(当然,页面与Web窗体或仅MVC控件分离)?你知道我们应该注意的任何限制吗?
答案 0 :(得分:4)
在Sitecore 8中将MVC和Web表单放在一起没有问题,但是开箱即用,不支持混合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/
答案 1 :(得分:3)
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和有关moving to Sitecore MVC的注释)。如果您的解决方案中有任何表单,我会最后升级它们,因为它们在迁移到MVC时可能需要进行最大的更改。