【发布时间】:2009-01-04 00:59:52
【问题描述】:
如果是,什么时候?您认为迁移当前项目需要多长时间(如果是这样的话)?
【问题讨论】:
标签: asp.net asp.net-mvc migration
如果是,什么时候?您认为迁移当前项目需要多长时间(如果是这样的话)?
【问题讨论】:
标签: asp.net asp.net-mvc migration
ASP.NET MVC 并不是要取代 WebForms。它们是不同的技术,设计用于不同的目的。
笼统地说我只会使用一种而不使用另一种是一种非常狭隘的方法,因为您会忽略每种技术的优缺点。
Microsoft 致力于推动这两种技术的发展,并且 WebForms 4.0 中会出现很多不错的新功能。
我将使用 WebForms 和 ASP.NET MVC,但会考虑当前项目的需求,以便我为当前的实现做出正确的决定
【讨论】:
我已经使用了几个月了。我绝对喜欢 MVC。转换现有项目可能不现实,具体取决于可用时间。正如我所看到的,Web 窗体模拟了旧 VB 人群的 Windows 窗体开发。虽然 MVC 不会假装它不是它,但它更紧密地遵循 Http 过程。
我在 MVC 中看到的一些优点
1) 可以通过单元测试进行测试
2) 直接控制 Html。我们做网站,我们如何接受无法控制我们所有的html?
3) 没有视图状态包
4) 没有控制树浪费时间渲染
5) 自动绑定表单帖子中的模态
6) 可以很性感
还有一些缺点
1) 不再有 Web 控件(并且丢失了许多丰富的第 3 方控件)
2) 开发速度较慢
3) 大的学习曲线
4) 仍处于 Beta 阶段(不过 CTP 很快)
【讨论】:
是的,我的新项目。但不适用于当前的生产软件。
【讨论】:
是的,尽可能有序。
MVC 将 .NET 带入敏捷开发最佳实践的世界。它专门解决了关于关注点分离和耦合/内聚的问题。它还允许我们编写更便携的软件,而无需创建对任何供应商特定参考或组件的依赖。
毫无疑问,它是 WebForms 的继任者,以及 WPF,无论您阅读什么 PR。
The Wikipedia entry 非常清晰,甚至在针对 Microsoft 的 MVC 进行更新之前。
【讨论】:
假设您更喜欢 ASP.NET MVC 而不是 Web 窗体,那么对于一个正在积极开发/维护的系统来说,这是值得的。
它们可以并排共存,因此可以迁移应用程序的某些部分(新的或选定的旧的)并查看它的工作原理。如果成功,请继续。
不过,“全有或全无”迁移可能是灾难性的 - 在没有快速反馈的情况下大量投资是一个巨大的风险。
【讨论】:
WebForms 用于丰富的 UI
这些可以用 MVC 或 Webforms 完成。一年后,丰富的基于 MVC 的工具包将会出现(从技术上讲,如果你喜欢 YUI、ExtJS 等,它们已经在这里了)并使这个论点无效。
迁移您当前的项目
将现有的 WebForms 项目迁移到 MVC 没有多大意义。你会得到什么?但是,根据您的要求,将 MVC 用于新项目可能会很有意义。
【讨论】:
我从一开始就不太喜欢 WebForms,所以开始使用 MVC 对我来说就像呼吸新鲜空气。我一直更喜欢关注点分离,因为我可以处理我真正擅长开发的块、逻辑和数据访问,并将演示工作留给具有这种天生能力的团队成员。我认为 MVC 库使团队更容易在各个页面上协作,因为一个人可以在控制器上工作,而另一个人可以在视图上工作。
话虽如此,当我从事不需要过多关注编码并且更面向显示的项目时,我仍然会回到 WebForms,因为它们更容易实现并起床并运行。两者都有自己的位置,我认为一个永远不会取代另一个。
【讨论】:
我已经使用 ASP.NET MVC 几个月了,我更喜欢它而不是 Web 窗体。但是,我没有看到自己将现有项目迁移到 MVC。对我来说,这将毫无意义。但是,我所有的新 ASP.NET 项目都将(或应该)使用 MVC 开发,因为它是一个更好(并且更灵活)的框架。
【讨论】:
我个人将 ASP.NET MVC 限制为轻量级前台网站。
但仍将 ASP.NET WebForms 用于 Righ BackOffice 应用程序,以利用丰富的自定义控件和 Web 窗体的其他一些不错的功能。
【讨论】:
mvc 的另一个优点是 jquery 之类的 javascript 更容易实现,所以如果你打算使用大量 js,mvc 可能是要走的路。
【讨论】:
不,没有理由这样做。这是另一种风格,我不喜欢。但那只是我的个人意见;很多人都喜欢它,我希望它对他们有用。
【讨论】:
如前所述,它们并不相互排斥,我玩游戏是为了充分利用两者。
IMO MVC 更适合网站网站,而 WebForms 更适合网络应用程序。
例如,这个站点完美地展示了 ASP.NET MVC 是一个不错的选择,因为站点的性质和需要完成的任务;其他很好的例子是网上商店、项目管理网站(如 Basecamp)或社交网络。
但是,如果您正在开发企业 CRM/ERP 系统,我会坚持使用 WebForms 来获得丰富的控件和更“类似桌面”的编程模型,因为 CRM 应用程序传统上是桌面应用程序的领域。
【讨论】:
ASP.NET MVC 更适合我想要的开发风格,但我对信任自己持谨慎态度,因为它不是 RTM。它也足够不同,以至于我们的遗留代码无法使用它。如果我们一直在练习领域驱动开发,事情可能会更容易,但是......
【讨论】: