MVC和Webforms Hybrid

时间:2009-08-10 15:06:23

标签: asp.net-mvc

我有一个我正在编写的应用程序,我正在考虑使用MVC来开发它。几年前我在J2EE下使用过MVC,所以我对这个框架有一定的了解,但是我想先了解一下如何在ASP.NET中实现它。我已经使用webforms进行了一些原型设计,并编写了一些非常好的功能(主要是在原型设计过程中作为POC),但我看不出它在MVC框架下是可用的。

因此,我的问题是:有多少人编写MVC / webforms混合应用程序,这样做有哪些陷阱?我想在MVC下编写应用程序,因为有许多常用的屏幕用于不同的工作流程,所以MVC架构看起来很理想,但是我也可以使用一些webforms工具快速开发很多屏幕(例如gridview)所以能够做到这一点对我来说是有利的。我认为我很幸运,因为webforms风格的页面要么是独立的(即在他们自己的单个屏幕流程中),要么会输入到流程屏幕中(例如,我从未习惯于gridview更新) /插入/删除数据,而是作为一个搜索屏幕,可以选择一个记录,然后进入MVC类型的流程。有没有人对这类事有任何想法或经验?

干杯

MH

3 个答案:

答案 0 :(得分:3)

我刚刚浏览了一个具有WebForms MVC混合布局的应用程序,功能上它运行得很好。有一些需要注意的问题,例如在文件夹中使用Web表单,这些表单也用于可能导致MVC路由以奇怪方式失败的路由,但是在混合Web窗体和MVC时我遇到了没有问题。

然而,一旦你开始,你可能会发现这种设置感觉不对 - 因为你在抽象之间切换。虽然使用某些高级控件可能更容易将某些Web窗体页面打包在一起,但您可能会发现在应用程序的其他部分也是如此。对于一个全新的应用程序,从头开始我会认真考虑使用一种类型的工具来构建应用程序,以便在产品生命周期中保持一致性和更轻松的维护,即使在一开始看起来似乎一个或另一个可能更容易

答案 1 :(得分:3)

Scott Hanselman有这篇文章应该是有用的。它讨论了一些路由场景和其他复杂问题。

Plug-In Hybrids: ASP.NET WebForms and ASP.MVC and ASP.NET Dynamic Data Side By Side

答案 2 :(得分:1)

我刚刚将ASP.NET WebForms 3.5应用程序转换为ASP.NET MVC 4.0应用程序并详细说明了这一过程。这非常简单,但正如Rick(嘿Rick![wave])所说,它不是一个绿地战略。对于我的情况,页面是在XSLT中呈现的,所以我需要一种方法将它们移动到Razor,这样我们的团队才有机会。

基本上,您创建一个新的ASP.NET MVC站点并从旧的站点复制所有内容。您将失去代码隐藏但是有一个简单的修复方法,您需要忽略自定义处理程序的路由以及为default.aspx设置页面路由 - 非常容易。

http://www.lukepuplett.com/2013/04/converting-aspnet-webforms-to-aspnet.html