2010-02-10 64 views
10

这可能是一个骗局,但我找不到直接的答案。如果一个人即将开始通过.Net框架学习Web开发,他应该选择哪种技术?学习Asp.Net WebForms或Asp.Net MVC

  • Asp.Net的WebForms
  • Asp.Net MVC

同时考虑这三个方面

  • 未来的范围
  • 复杂
  • 功能

注:已经做了一些的WinForms使用C#

感谢

回答

5

由于大多数人会说,我相信,这完全取决于你想学习和发展的希望采取的风格是什么。如果你想对页面标记进行很多控制,并打算使用大量的AJAX和CSS,那么MVC是一个更好的方法,最大的折衷是你失去了Microsoft控件,如Gridview和其他拖放组件。 MVC是非常强大和可扩展的框架,学习它也可以让你学习MVC模式(如果你以后将其技能多样化到其他开发平台,这是非常有用的)。

但是,如果您要创建大量内部Web应用程序,并且需要快速交付,那么Webforms肯定是一个更好的方法,它有很好的记录和成熟,并且这些控件允许您免费构建强大的功能。虽然您将获得用于处理MVC中的数据的基本模板,但它并不像Webforms中的建筑应用程序那样快。

我个人的建议是学习MVC(以及它的模式),因为它没有很大的依赖专有的Microsoft组件,并且让你在前面思考你的应用程序,并且它与后端进行交互。

如果你想有一个大的MVC网站的一个很好的例子......你就可以..计算器ASP.NET MVC的运行。

希望这会有所帮助,这是一个非常普遍的观点,这两个论点还有很多。但是从个人经验来看,我认为MVC将从长远角度教您更多可重用的标准Web技术。

乔恩

1

明确回答这个问题是不可能的,但我可以帮你做出决定通过突出你一些事实和关键点编程这两种技术。

Web窗体一直存在,因为长,所以他们更成熟可靠相比,MVC,当涉及到把事情的时间内完成!与mvc相比,即使网络上的知识库对web表单来说也要大得多。

Web表单在功能上非常丰富,可以让您更好地控制自己想要的操作方式。 MVC作为轻量级应用程序开发平台有其独特之处。

如果你是一个新手,那么我建议你去为web的表单第一和开始寻找并行MVC。

stackoverflow.com已经建立使用asp.net mvc平台。

+1

我不能不同意你更多。 MVC是一个成熟的Web框架模式(大部分是MVC)。一般的模式和ASP.NET MVC框架中都有一些荒谬的知识。下面是我有争议的说法:大多数最好的.NET开发人员已经去了MVC框架(不一定是ASP.NET MVC),因为他们意识到这是一种优越的模式。 –

+0

“Web表单在功能上非常丰富,可以让你更加控制自己想要的内容”我无法得到这个结果。大多数教程/书籍都表明,MVC比WebForms提供更多的灵活性和控制应用程序应该做什么和如何操作! –

5

这可能是fairly controversial :)

我个人的看法是;停止投资webforms(这是一个网络的破碎模型)并学习Asp.Net MVC,这样不仅可以生成良好的设计Web应用程序,还可以在Web上的其他地方使用您的知识。 MVC让你意识到HTTP,HTML和其他潜在的'网络基础设施',为你提供更好的成功机会。因此,除非你想赚钱(再次完全是个人观点,只需要一小撮盐)支持webforms的旧装置(有点像COBOL-抱你马webforms粉丝:))我肯定会强烈建议Asp.Net MVC;)。诚然,我不知道在网络表单,最近的事态发展(especially 4.0 ones),所以你可能要等待这些以及..

编辑:如果你觉得过去的WinForms经验将是一个优势或参数对于使用webforms(这是微软开发人员的主要卖点,我认为),你会适合大约一周,并在其余时间错误。在这两个webforms和winforms你有控制。相似性在那里结束。事件模型是完全不同的,线程是完全不同的,你甚至不能比较渲染等等。这实际上是webforms的主要问题;试图在完全不同的架构上看起来像winforms。

+0

更不用说大多数其他Web框架都是MVC,所以你对ASP.NET MVC的知识也能够转移到那些。 –

3

找到一份做WebForms的工作比较容易,而且MVC现在似乎并没有在生产环境中占据一席之地。更复杂的应用程序现在肯定会使用MVC,较小的应用程序很可能更喜欢WebForms,但请记住,较小的应用程序代表了大部分就业市场。无论哪种方式,学习双方或至少掌握WebForms并投入更多MVC(因为它最终会迫使你学习通常与之相关的其他技术:nHibernate/Entity,DDD,TDD和等等)。另外,您可以在MVC中使用很多控件,但几乎没有任何调整,尽管思维方式非常不同。