只是一个随机的问题。我已经在实习,然后作为软件设计师工作了近一年,主要是SQL Server 2005/2008,Visual Studio 2008和ASP.Net VB / C#,网络软件开发。我们最近用ASP.Net MVC开始了一个项目,我只是没有得到这个东西。
视图,控制器,模型等的概念很清楚。我仍然对某些语法感到困惑,但似乎不可能得到。然而,我的问题是你使用基本ASP.Net的所有基本控件和功能。想要一个下拉列表?浏览15个教程,其中一个可能实际工作。如何使用可编辑行的gridview?使用从几个不同教程构建的加载和代码加载手动构建表或辅助类。面板或多视图索引如何轻松控制页面上的可见用户界面?那么,去学习另一个关于如何从头开始做的教程。等。
我不认为MVC是值得的。它必须是,有这么多人比我说的更聪明,更有经验。但是我现在已经和这头野兽战斗了一个多月了,我越来越沮丧地不得不用几个小时到几天的时间来完成最基本的任务,这些任务很简单,即使我几乎没有开始整个编程工作近一年前。
所以我的问题。像我这样的人在那里吗?是不是也有很好的博客或文章向我这样的人开放这一切? ASP.Net MVC是一个非常先进的东西,你需要拥有丰富的经验和才能才能真正掌握它吗?
感谢您的时间。
答案 0 :(得分:15)
这不适合高级开发人员。它适合优秀的开发人员。
大多数ASP.NET WebForms开发人员多年来都不知不觉地对HTML,CSS,JavaScript或HTTP有所了解。拖放一些控件,设置一些属性,然后你去。这不是专业人士的方式。你需要了解基础知识。在某些情况下,标准控件无法帮助并且您需要解决回发机制,viewstate等问题只是时间问题。
我同意尝试实现可编辑数据网格,为控件添加持久性,添加一些不错的Ajax效果而不是依赖UpdatePanels肯定会更多的工作,是的。但如果您希望成为Web开发人员,那么您真的需要了解这些内容。
你所经历的事情正在被你应该已经学到的所有东西一下子压倒,但是由于WebForms的抽象机制非常完善而已经成功推迟了。最好的做法是逐步开始学习这些东西。您可能需要至少6个月的深入研究才能对手动操作产生或多或少的信心。但是当你这样做的时候,你会回顾你的开始并感到很高兴你做到了。
答案 1 :(得分:3)
我试图弄清楚MVC的问题是什么,直到我掌握了提出问题的人与我之间的本质区别 - 就是这样,我在1979年首先将手伸向键盘而Zan一直在“工作”一个近一年的软件设计师“。
当我开始时,或多或少必须从头开始做所有事情(至少在呈现UI方面) - 或者至少使用比现在更有限的工具包。通过运行循环来创建选项来构建下拉列表的概念在某些方面与我相比,比将数据源绑定到控件并使结果看起来好像是魔术一样 less (尽管如此) 9年的VB.OLD和超过6年的.NET和C#)
这就是Forms和MVC之间的核心区别 - 就像你现在所说的那样 - 你生成表示代码的方式,以及你需要理解HTML并且看似更多工作来实现类似结果的事实(这是其中之一)人们一直强调的理由是,MVC NOT 是每个项目的合适解决方案。就应用程序的结构而言 - MVC鼓励更好(更可测试)的风格,但不仅仅 意味着实现这一目标 - 大多数技术都适用于使用表单和替代模式。
这再次提出了当代框架和工具的挑战 - 他们为你做了大量的工作(例如看动态数据),但他们也隐藏你们这么多,我们忘记了基础知识和对构建复杂应用程序的基本构建块的理解。在这种情况下,这个问题听起来就像是我曾经学过的关于网页实际构建的基本方法(HTML,CSS,Javascript)以及它如何与服务器交互而不仅仅是拥有整个客户体验的问题为您自动生成。
MVC不再是“优秀开发人员”的工具,而是对于那些希望获得特定结果的开发人员而言它是一个很好的工具,尽管它只是一个价格而且形式也是一个很好的工具但具有不同的工具结果,因为你接受了一套不同的妥协。
优秀的开发人员可以适应 - 可以学习在不同平台上工作所需的新技术,针对新环境,针对特定任务使用适当的解决方案,最终可以将可靠的模式和方法应用于他们的工作尽可能无论开发环境......
答案 2 :(得分:1)
我也花了一年时间学习我所学到的东西,直到现在你可以尽可能多地依赖客户端,但在经典的asp.net中大多数时候你都使用像gridview这样的服务器端控件。在asp.net mvc中你可以用jquery控件替换它,比如jQgrid和jquery datatable。你必须花一些时间来学习asp.net mvc它可能看起来比asp.net经典更好。 供参考阅读asp.net mvc pro book
答案 3 :(得分:0)
MVC不是一个新概念;事实上,在微软获得它之前,其他语言都有这种框架 long 。考虑Ruby On Rails,Zend Framework,Symfony等。
如果你说MVC是针对硬核和alpha极客,那么按照你的逻辑,其他语言开发人员比.Net开发人员更先进。我不认为这是真的。
您的MVC问题源于您的网络表格背景; ASP.Net和ASP.NET MVC在概念和方法上有很大不同。因此,对于那些从一个框架转移到另一个框架的人来说,预计会有一些不熟悉的东西。另一方面,我没有网络体验(虽然我确实有winform体验),但是没有发现MVC很难掌握。
我认为我比其他任何人都聪明。
答案 4 :(得分:0)
我所能建议的是你需要做更多的事情!练习越多,就会越清楚。这就是我的感受。我从根本上被MVC概念所困扰,但是在经历了很多挫折后我才决定强迫自己开始使用它,或者我从来没有得到它。
我建议实际上从头到尾完成在asp.net/mvc网站上找到的一个或两个教程。我个人可以推荐NerdDinner(以及此示例所生成的书籍 - Pro ASP.NET MVC 1.0)和Storefront教程。
答案 5 :(得分:0)
ASP.NET MVC建立在一堆旧概念之上 - HTTP,HTML,CSS,JavaScript。等等。重点是将他们的力量直接掌握在你的手上。如果你无法处理这种能力 - 例如,你不熟悉HTTP状态,或者如何使用HTML / CSS / JS构建丰富的页面 - 你无法在ASP.NET MVC上做很多事情。
如果你说你只有一年的编程,那么你很可能不熟悉这些概念,那就是问题,而不是MVC本身。
也许您将ASP.NET MVC作为ASP.NET的改进。那是错的。他们非常不同。想象一下,自己只使用HTML,CSS和jQuery进行Web开发[1] ......可以吗?如果你不能那么你就会遇到麻烦做MVC。
我亲自与ASP.NET合作了几年,而ASP.NET MVC则是一股清新的空气。它更加简单和清洁。
[1]这可以通过网络服务提供数据来完成。
答案 6 :(得分:-1)
MVC很棒,但最终赋予你HTML,CSS和Javascript强大功能让你开心的论点是真正的废话。相同的逻辑会说:纯SQL中的代码并忘记nHibernate或Linq。为什么抽象不好?我喜欢MVC,但请不要使用这些论点。 MVC需要能够构建复杂的丰富用户界面(与浏览器兼容)。 最后,关于HTML,CSS和Javascript。 MVC强迫你回归基础的事实现在确实意味着开发人员做得对。无论您使用Web表单还是MVC,一个糟糕的JS开发人员都会成为一个糟糕的JS开发人员(同样适用于HTML或CSS)。 有时最好不要给团队中较弱的开发人员提供太多的权力。