Asp.net mvc 对于一个典型的ASP玩家来说,MVC容易学吗

Asp.net mvc 对于一个典型的ASP玩家来说,MVC容易学吗,asp.net-mvc,asp-classic,Asp.net Mvc,Asp Classic,自从经典ASP发布以来,我一直在使用它。。但是我很难适应ASP.NET平台 很多人建议我转向PHP,因为它是意大利面代码(我喜欢意大利面代码),就像经典的asp。。但我听说学习Apache服务器并保护它们是另一个需要自己学习的大项目。。因为我对MS服务器了解得更多,所以我更喜欢和MS呆在一起 但是,我真的想学习另一个平台,我在看MVC框架,MVC1、2或3就像意大利面条代码?也许我错了。我想MVC3现在是最好的了 无论如何,从经典的ASP,你认为哪一个最容易和最难掌握?ASP.NET的编译和使用

自从经典ASP发布以来,我一直在使用它。。但是我很难适应ASP.NET平台

很多人建议我转向PHP,因为它是意大利面代码(我喜欢意大利面代码),就像经典的asp。。但我听说学习Apache服务器并保护它们是另一个需要自己学习的大项目。。因为我对MS服务器了解得更多,所以我更喜欢和MS呆在一起

但是,我真的想学习另一个平台,我在看MVC框架,MVC1、2或3就像意大利面条代码?也许我错了。我想MVC3现在是最好的了

无论如何,从经典的ASP,你认为哪一个最容易和最难掌握?ASP.NET的编译和使用让我想起了我以前用visual Basic制作应用程序的情景,但我真的更喜欢意大利面代码而不是编译东西


如果有人以前做过从传统asp转换过来的工作,你做了什么?为什么?掌握新平台有多容易?(更喜欢MVC)

嗯,MVC比webforms更像经典的asp。然而,它使用结构和框架来减少意大利式代码,并使其更易于维护。您必须应用许多新概念,以避免与框架发生冲突

例如,视图、模型和控制器的强分离。这不是在经典的asp,甚至是普通的php中可以做到的(可以在php中实现mvc,但它需要更多的规则和使用框架)

归根结底,从长远来看,意大利面总会咬到你


Asp.net支持一种无需编译任何内容的模式,您只需编辑服务器上的文件,它会在运行时自动编译这些文件。这就是所谓的“网站”模式。然而,MVC不是这样工作的,它需要进行编译的“Web应用程序”模型(尽管您只需要编译代码,而不需要编译标记)。

什么对您来说容易?你觉得哪一部分难?阅读HTTP的无状态特性,并找到web表单和MVC之间的比较——这应该能让一些事情变得清楚


阅读一些关于MVC模式的一般知识。MVC是30多年前首次出现的通用术语。NET4中的MVC是这种模式的一种变体,但我们都习惯称它为MVC。确保您的OO知识是最新的,以及基本设计模式的知识,主要是SoC(关注点分离)和SRP(单一责任原则)。

如果您想学习/开始使用mvc框架,我建议您学习Contoso大学教程或NerdDinner教程()

如果您喜欢Microsoft提供的意大利面,请尝试任何支持IIS7的Windows版本。PHP工作得非常完美,而且安装起来非常简单

考虑到这一点,您没有真正的理由选择任何一种web技术。您可以根据需要进行混合和匹配,即使是在单个应用程序中

如果你想进入MVC,忘掉1和2,直接进入3。MVC比ASP.NET WebForms更接近金属。有了经典ASP的背景,一旦掌握了窍门,你可能会喜欢它

更新: 如果你真的想学习MVC、PHP、Ruby或任何你喜欢的web平台。买一本好书。坐下来,阅读它并按照示例代码进行操作。我通常根据亚马逊的评论来决定买什么书。
然后,如果你需要关于特定主题的更多信息,去阅读关于这个主题的权威博客。对于ASP.NET MVC,您可能希望从./P>> P>查看博客。我在我的第一个大型ASP.NET MVC项目中,在多年来(并且仍然)在经典ASP中编程多年。我还使用ColdFusion编程,并尝试将Python作为ASP.NET MVC的替代品

如果你想坚持微软的技术,MVC是最接近经典的ASP。Webforms实际上是微软使web应用程序类似于应用程序开发的一种方式。微软试图将网络是一种无状态的媒介这一事实抽象出来。然而,这会导致相当丑陋的事情,例如viewstate(一个隐藏的表单字段,试图保持所有表单字段的状态)和生成HTML的控件,而您完全无法控制这些控件。
MVC为您提供了更多的控制,并让您像经典ASP一样处理无状态

但我仍然发现学习曲线很陡;如果您所做的只是编程vbscript/ASP,那么您将不得不学习很多新东西:

  • C#或VB.Net语法
  • 一般的面向对象编程(继承、动态与静态等)
  • 诸如lambda表达式、委托等概念
  • MVC模式
  • 最有可能的还有数据访问技术,如LINQ或实体框架
我仍在努力解决其中的一些问题,但我已经做到了。但这确实需要很多工作和毅力。并不是所有的事情都比经典的ASP好或容易。特别是对我来说,因为我已经在经典ASP中使用WSC多年了,它支持经典ASP中的n层应用程序,并且完全消除了意大利面代码

正如我提到的,我还研究了Python作为替代方案;虽然在我工作的公司,我们现在切换到ASP.NETMVC,但我发现转换到Python要容易得多。我们使用MVC的唯一原因是,在使用C#/MVC时,似乎更容易找到新的开发人员。(回想起来,事实并非如此,在我们所在的地方,要找到一个合适的C#程序员真是太难了。)

请注意,在Python中,您仍然需要学习基本的面向对象编程,但实现比.NET简单得多,Python语言(IMHO)比VB.NET更像vbscript。
我也喜欢这样一个事实,我不需要定义