ASP.NET MVC提示和ASP.NET WebForms开发人员的经验教训

时间:2008-11-07 20:30:23

标签: asp.net asp.net-mvc

ASP.NET MVC开发人员可以建议哪些有用的东西可以帮助我们ASP.NET WebForms开发人员编写更好的代码/ Web应用程序?

我是一个WebForms人,但是围绕MVC的所有新的宣传我会重视一些关于可能在webforms应用程序中使用的有用提示,技巧和策略的评论。

5 个答案:

答案 0 :(得分:16)

我刚才在了解新的MVC框架时发生的事情是,我认为WebForms在很多方面都是对MVC的尝试。标记和代码隐藏包括View和Controller,您可以编写自己的Model。

这个想法与我从学习MVC中获得的重要设计考虑因素密切相关。其中最重要的是巩固整个系统的核心域,并确保所有通用逻辑都定义在该域内可重用的级别。这是你的模型,我喜欢把生活在这个级别的逻辑调用域逻辑(我知道混合术语)。您的模型应该可以在不同的应用程序中重复使用(主要的web / winforms应用程序,winforms用于实用程序和配置的应用程序,后台处理服务,Web服务等)。您的应用程序应该非常特定于其目的:它们包括Presentation Logic(他们的视图)和Application Logic(他们的控制器)。任何跨越需要在其他应用程序中使用的行都可以轻松归类为Domain Logic,并且不应该是任何给定应用程序的应用程序代码的一部分。

我希望这是有道理的。

它的要点是,即使你没有使用纯粹的MVC框架或对象模型或其他任何东西,这种高级别的设计外观也可以很好地应用。隔离可在应用程序之间重用的域层中的通用逻辑,您的应用程序更易于编写,扩展和维护。

答案 1 :(得分:4)

  1. 忘记页面生命周期
  2. 没有ViewState(默认情况下)
  3. 没有回发
  4. 您需要了解HTTP协议基础知识(GET / POST)。 HTML(DropDownList实际上是标签)
  5. 也是如此

答案 2 :(得分:2)

我建议通过观看微软Learn网站上的截屏视频开始进行测试:

ASP.NET MVC Videos

在那里,您将了解WebForms回发模型之间的差异,以及MVC将您的URL直接路由到Actions&方法

第二个主要区别是要记住,在ASP.NET MVC中,您不使用执行回发的控件。它可能感觉更像经典ASP,其中代码在服务器端块内的页面上内联,但它是值得的。您可以完全控制生成的HTML,这对于搜索引擎优化等非常有用。

答案 3 :(得分:1)

一些建议

  1. 请勿使用标准控件。而是关注jQuery,MooTools。
  2. 使用强类型模型
  3. 使用像Spring.NET这样的IoC是个好习惯

答案 4 :(得分:0)

我也来自webforms,但自从预览3开始就学习了asp.net MVC。

我不确定如何将MVC中的任何内容带入webforms,它们是两个完全不同的框架。我可能太新了解它如何应用于webforms,但现在看来它们几乎没有共同之处。

MVC的一些优势是它在你需要做什么以及放置代码的位置上的严格结构。它也取消了runat = server的形式,我相信不会促进任何asp.net服务器控件的使用(你需要自己编写所有的HTML)。这就是webforms的定义。 MVC几乎用它自己的框架替换了webforms。

如果您曾经使用过经典ASP或PHP,我会将ASP.net MVC称为一个更加结构化的框架,用于人们可能会使用那些旧的脚本语言。它有点像FuseBox框架,但更加结构化和进化。