【发布时间】:2011-01-15 05:37:44
【问题描述】:
这可能是一个骗局,但我找不到直接的答案。如果一个人即将开始通过 .Net 框架学习 Web 开发,他应该选择哪种技术?
- Asp.Net 网络表单
- Asp.Net MVC
注意这三个方面
- 未来范围
- 复杂性
- 功能
注意:已经用C#做过一些WinForms编程
谢谢
【问题讨论】:
标签: .net asp.net-mvc webforms
这可能是一个骗局,但我找不到直接的答案。如果一个人即将开始通过 .Net 框架学习 Web 开发,他应该选择哪种技术?
注意这三个方面
注意:已经用C#做过一些WinForms编程
谢谢
【问题讨论】:
标签: .net asp.net-mvc webforms
重要更新(2019 年):如果您仍然想知道是否使用网络表单;答案是绝对没有。查看新的ASP.NET technologies 并坚持使用.NET Core。任何新项目都应该使用 .NET Core 和 C#。
这可以是fairly controversial :)
我的个人意见是;停止投资 webforms(它是 web 的一个坏模型)并学习 Asp.Net MVC,这样您不仅可以制作设计良好的 web 应用程序,而且可以在 web 的其他地方使用您的知识。 MVC 让您了解 HTTP、HTML 和其他底层“网络基础设施”,从而为您提供更好的成功机会。
所以除非你想赚钱(这完全是个人观点,但还是要加点盐)支持旧的网络表单安装(有点像 COBOL - 支持你的马网络表单粉丝:))我肯定会强烈建议使用 Asp .Net MVC ;)。当然,我不知道网络表单 (especially 4.0 ones) 的最新发展,所以你可能也想等待这些......
编辑:如果您认为过去的 winforms 经验将成为使用 webforms 的优势或论据(我认为这是 Microsoft 开发人员的主要卖点),那么您是对的大约一个星期,其余时间都错了。在 webforms 和 winforms 中,您都有控件。相似之处到此为止。事件模型完全不同,线程完全不同,你甚至不能开始比较渲染等等。这实际上是网络表单的主要问题;试图在完全不同的架构上看起来像 winforms。
【讨论】:
找到一份从事 WebForms 的工作要容易得多,而且 MVC 现在似乎还没有进入生产环境。如今,更复杂的应用程序肯定会使用 MVC,较小的应用程序很可能更喜欢 WebForms,但请记住,较小的应用程序代表了就业市场的大部分。
无论哪种方式,学习两者都没有坏处,或者至少掌握 WebForms 并在 MVC 上投入更多(因为它最终会迫使您学习通常与之相关的其他技术:nHibernate/Entity、DDD、TDD 等等在)。此外,您可以在 MVC 中使用大量控件,几乎不需要调整,尽管思维方式非常不同。
【讨论】:
我相信大多数人都会说,这在很大程度上取决于您想学习什么以及您希望采用的开发风格。如果你想要对你的页面标记进行大量控制并打算使用大量 AJAX 和 CSS,那么 MVC 是一种更好的方法,最大的权衡是你失去了 Microsoft 控件,例如 Gridview 和其他拖放组件。 MVC 是非常强大且可扩展的框架,学习它还可以让您学习 MVC 模式(如果您以后将技能多样化到其他开发平台,这很有用)。
但是,如果您要创建大量需要快速交付的内部 Web 应用程序,那么 Webforms 无疑是一种更好的方式,它有很好的文档记录且成熟,并且控件允许您免费构建强大的功能。虽然您将获得在 MVC 中操作数据的基本模板,但它远没有在 Webforms 中构建应用程序那么快。
我个人的建议是学习 MVC(和它的模式),因为它没有很大的依赖微软专有组件,并且让您考虑前端的应用程序以及它与后端的交互。
如果你想要一个大型 MVC 网站的好例子......你就在上面...... * 在 ASP.NET MVC 上运行。
希望这会有所帮助,这是一个非常笼统的观点,而且这两个论点还有很多其他内容。但是从个人经验来看,我认为 MVC 从长远来看会教给你更多可重用的标准 Web 技术。
淅淅
乔恩
【讨论】:
这个问题不可能有明确的答案,但我可以通过向您强调这两种技术的一些事实和关键点来帮助您做出决定。
Web 表单已经存在很久了,因此在及时完成任务方面,它们比 mvc 更加成熟和可靠!与 mvc 相比,即使是 Web 表单的知识库也大得多。
Web 表单功能非常丰富,让您可以更好地控制想要做什么、如何做。 MVC 作为轻量级应用程序开发平台有其自身的优点。
如果您是新手,那么我建议您先使用 web-forms 并开始并行查看 mvc。
*.com 是使用 asp.net mvc 平台构建的。
【讨论】: