2

MVC + 经典网络表单在同一个网站

现在我想知道是否可以混合 MVC 和经典网络表单(我不想重新实现我已经做过的事情,即使这会使代码不均匀......)

原始问题

我对 ASP.NET(以及一般的 Web 编程)的理解越深入,我就越不喜欢 ASP.NET 页面生命周期及其类似 winforms 的范例。我越来越相信,通过自己的处理程序编写或最多使用没有任何数据绑定控件的普通 .aspx 模板,我会在更短的时间内获得更好的结果。
每次我学习 ASP.NET 做某事的方式时,我都会觉得我浪费了我的时间,最终我又重新发明了轮子。

您是否熟练使用 System.Web.UI.* 控件?
您不会对页面生命周期感到困惑吗?
您不觉得在每个页面上放置一个 SQLDataSource 会产生不可维护的代码吗?

更新

我不敢相信我是唯一一个有这种感觉的人,现在我知道我是对的。我正在观看一些有关MVC的视频,它看起来与我正在寻找的完全一样。明天我将安装并尝试一下。

4

6 回答 6

4

ASP.NET MVC正是为那些有你感觉的人创建的 :)

是的,完全可以混合使用 WebForms 和 ASP.NET MVC

于 2009-06-20T00:47:06.143 回答
1

是的,有些人不喜欢经常被称为“泄漏”的抽象,即 WebForms。它试图将无状态浏览器请求变成类似于有状态表单应用程序的野兽,但并不总是成功且通常不优雅(大型视图状态隐藏字段、损坏的后退按钮功能、依赖 javascript 进行简单导航)。

这是微软开发其 MVC 实现的一个重要原因。它为您提供了一个“本机”Web 界面,没有抽象,同时维护一些助手(它实际上称为助手)。在 MVC 之前,也可以在 ASP.NET 上编写自己的非 Web 窗体应用程序,这只是意味着更多的工作(我个人使用我自己的基于 HTTPHandler 构建的自制系统来提供 RESTful url 和非 Web 窗体交互大约比 MVC 提供官方替代方案早一年)

于 2009-06-20T00:49:18.323 回答
1

我从经典的 asp 和 php 转到 .net。一开始很难。我一直在想,我可以在经典的 asp/php 中更快地完成任务,并且我的结果会更加简洁和轻量级。

要回答您的问题:

是的(花了一段时间)

不(不知道为什么我从来没有对它感到困惑,因为很多人都是)

是的(但你不需要使用它们)

现在“回到”asp.net MVC,我觉得我可以在 webforms 中更轻松地做事。不过,我开始掌握它的窍门。这一切都来了一个完整的循环,但更好。

正如许多人指出的那样,如果您还没有尝试过,您可能会更喜欢 asp.net MVC。

于 2009-06-20T00:58:07.133 回答
1

您是否熟练使用 System.Web.UI.* 控件?

不再。

您不会对页面生命周期感到困惑吗?

曾经。特别是在混入自定义/用户控件时。

您不觉得在每个页面上放置一个 SQLDataSource 会产生不可维护的代码吗?

当然可以,但是没有人强迫您使用 SqlDataSource。我更喜欢具有 3 层架构的 ObjectDataSource。

采用 MVC 方式有时令人失望。分页和排序等显而易见的东西需要重新发明(开源的东西通常不能满足您的所有需求)。更重要的是 - 如果您不知道自己在做什么并且没有保持良好的组织,MVC 项目很容易变得一团糟。但在专业人士手中——MVC 是核武器。

当心。:)

于 2009-06-20T08:21:13.347 回答
0

这有点像 winforms 的东西,但...提供一些更高级别的抽象来尝试让它看起来不像你在为 web 开发。您对 Web 开发了解得越多,就越希望剥离这些抽象。如果 webforms 是一种自动传输,那么ASP.NET MVC就是一个变速杆。它剥离了很多抽象,让您可以访问正在发生的事情。

于 2009-06-20T00:51:39.517 回答
0

您不觉得在每个页面上放置一个 SQLDataSource 会产生不可维护的代码吗?

什么?你为什么不使用SqlConnection

于 2009-06-20T01:41:05.143 回答