![]() |
1
10
webforms试图模仿winforms的开发,它允许您重用许多预制的控件,并通过隐藏的viewstate机制伪造web应用程序状态。 MVC是一种模式,旨在帮助您分离数据(模型)、业务逻辑(控制器)和表示(视图)。它更多地坚持Web的真正本质:RESTfulURL,无状态。
在我看来,对于大量使用控件的Intranet应用程序,WebForms在减少开发时间方面非常有用,因为多亏了设计器,您可以快速创建UI,并让框架自动管理应用程序的状态。 对于任何其他项目,特别是公共网站,甚至是一个小项目,我认为MVC是一个可行的方法。
我想说,有一些学习曲线可以完全理解MVC模式及其功能。此外,由于框架仍处于测试阶段,您可以期望API在发布之前经历一些细微的更改。 因为在MVC中JavaScript并不是对您隐藏的,所以如果您不熟悉它,还需要一些时间来学习。不过,jquery大大简化了这一过程。
您可以更好地控制HTML标记和JavaScript行为,更清晰地分离关注点和一些易于测试的代码库(即使您似乎对单元测试不感兴趣)。
您将失去构建页面和应用程序状态管理的“拖放”快速方法。
在某些方面,是的。 我建议你看 this talk 作者是PhilHaack,他对框架进行了很好的概述,并邀请JeffAtwood讨论如何用它构建StackOverflow。 他解释了如何使用一些WebForms控件来控制呈现到视图中的captchas。 |
![]() |
2
3
主要的区别在于,MVC更像是其他编程世界使用的“常规”Web开发,而标准ASP.NET的设计是为了让Windows开发人员很容易成为Web开发人员。我通过学习RubyonRails学习了Web编程,而MVC似乎正在成为Rails的.NET版本。 与常规的ASP.NET相比,MVC更注重标准遵从性、不引人注目的JavaScript和关注点分离。您需要了解HTML和CSS是如何协同工作的。当你掌握MVC时,你会学到更多的javascript。对我来说,MVC最大的优点之一是,与常规的ASP.NET相比,使用jquery可以更轻松、更好地完成一些令人惊奇的Ajax工作。 如果您现在正在学习Web开发,那么我强烈建议您学习MVC。将来,您至少可以将一些新技能转移到其他框架中。 如果您正在寻找能够快速获得Web开发工作的对象,那么我必须强烈推荐ASP.NET。 一旦MVC是RTM,我想我们会看到一个缓慢而稳定的采用曲线,随着它的成熟,MVC可能成为用ASP.NET创建网站的主要框架。我至少希望如此! |
![]() |
3
2
我正在将我的一些应用程序从MVP模式重新设计为MVC模式,不是因为MVC更好,而是我想使用MS提供的最新技术(模式本身已经很旧了)。 |