Asp.net mvc 对于动态创建的表单,ASP.NET MVC 2值得学习吗?

Asp.net mvc 对于动态创建的表单,ASP.NET MVC 2值得学习吗?,asp.net-mvc,data-binding,asp.net-mvc-2,Asp.net Mvc,Data Binding,Asp.net Mvc 2,我必须创建一个允许您创建特定XML文档的web应用程序。要生成文档,用户必须能够 使用下拉列表、文本输入字段、日历控件填写将成为XML内容的字段。。。将验证某些字段 使用一些默认值(文本、新GUID、当前日期…) 添加或删除子节点。将验证最小节点数和最大节点数 应使用配置文件配置所有字段、关系和验证 我知道如何以自制MVP或MVVM模式的方式实现这一点。现在我想知道MVC2是否能帮助我证明学习曲线的合理性。(MVC3不是一个选项,因为我的客户机仍然使用VS2008。)两周后,我应该有一个可用

我必须创建一个允许您创建特定XML文档的web应用程序。要生成文档,用户必须能够

  • 使用下拉列表、文本输入字段、日历控件填写将成为XML内容的字段。。。将验证某些字段
  • 使用一些默认值(文本、新GUID、当前日期…)
  • 添加或删除子节点。将验证最小节点数和最大节点数
应使用配置文件配置所有字段、关系和验证

我知道如何以自制MVP或MVVM模式的方式实现这一点。现在我想知道MVC2是否能帮助我证明学习曲线的合理性。(MVC3不是一个选项,因为我的客户机仍然使用VS2008。)两周后,我应该有一个可用的应用程序。它是供内部“超级用户”使用的,因此它不必看起来太花哨,但其主要概念和功能应该是防水的


我的背景:我有多年的Win Forms开发经验和ASP.NET的基本知识(使用它开发了一些较小的应用程序)。

老实说,如果你只有ASP.NET的基本知识,在两周内学习ASP.NET MVC并根据这些要求开发应用程序可能是一项具有挑战性的任务。当然,这只是我个人的观点,而且是主观的。

ASP.NET MVC与ASP.NET WebForms非常不同

ASP.NET WebForms旨在实现快速的“拖放”开发。在某种程度上,它试图重新创建您开发Windows窗体应用程序的方式。这可能很酷,但有时初学者会被这种相似性所束缚,忘记了他们正在开发一个web服务器应用程序,试图以一种不适合这种环境的方式进行开发,最终意识到他们必须了解并处理很多特定于web表单的本质,如页面生命周期、回发、视图状态,等等(让那些没有与其中一个斗争的人投第一张否决票)

另一方面,ASP.NET MVC是一个灵活得多的框架,因此需要更多的规程才能正确使用它。它还要求您充分理解工程原理,如REST和模型视图控制器。好的是没有(几乎)惊喜,因为你控制着(几乎)一切


就我个人而言,我开发WebForms应用程序已经有好几年了,并且花了一些时间来掌握它。至于ASP.NET MVC,我花了大约2天的时间观看了精彩的《ASP.NET MVC教程》,测试并使用代码,直到我对这项技术感到完全满意为止。

不同意:正如Maxim所说,ASP.NET MVC与ASP.NET WebForms非常不同。在ASP.NET WebForms方面有更多的经验很难帮助更好地理解ASP.NET MVC的概念。@chiccodoro,绝对不同意你的观点。ASP.NET MVC基于ASP.NET,如果您不熟悉ASP.NET的工作原理(基本内容,如HttpContext、请求、响应、会话、cookie、缓存、Http模块、web.config、成员资格、身份验证等),您将很难理解ASP.NET MVC。就我个人而言,我总是建议人们先学习ASP.NET(不深入细节,但基本概念是绝对基本的)。我认为这里有些混乱。人们在谈论ASP.NET Web表单时通常会提到ASP.NET(运行ASP.NET MVC/Web表单/混合技术网站所需的执行平台/框架),当然是出于历史原因。您写道“基本概念是绝对基本的”。嘿,我写到我有“ASP.NET的基本知识”。我的意思是,我知道“HttpContext、请求、响应、会话、Cookies、缓存”,并在几个场景中使用它们。我也做了几年PHP开发人员,所以“web如何工作”对我来说不是问题。也许我对专业发展的理解促使我低估了自己的经历。谢谢你的提示。我只是想知道:如果我以编程方式创建所有控件,我会受益于MVC框架吗?我担心的是,MVC主要是面向模板/设计器(可能也是内联代码)的。你怎么想:我只能——而且很快——使用MVC框架的一些便利设施吗?@Daniel:在某种程度上,MVC要求你“以编程方式”创建控件,而不是使用WebForms服务器端控件。通常,您会使用HTML生成服务器端帮助程序(这是目前在AS.NET MVC中生成控件的标准方法)。对于您的日历和treeview控件,您可能会发现有太多的控件,只需几行JS代码,就可以将生成的HTML代码“转换”为非常吸引人的内容。