MVC很容易让经典的ASP人学习

时间:2011-08-30 08:01:01

标签: asp.net-mvc asp-classic

我几乎一直使用Classic ASP,因为它几乎已经发布了。但是我无法适应ASP.NET平台。

许多人建议我转向PHP,因为它是意大利面条代码(我喜欢SPAGHETTI代码),它就像经典的asp ..但学习Apache服务器并保护它我听说是另一个自学的大项目..因为我对MS服务器了解得更多,所以我更喜欢和MS保持联系。

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

无论如何,从经典ASP,你认为这将是最容易和最难掌握的?所有编译和使用Visual Studio的ASP.NET都让我想起了我以前在Visual Basic中创建应用程序的时间,但我真的很喜欢意大利面条代码而不是编译东西..

如果之前有人从经典asp切换过,你做了什么以及为什么,掌握新平台有多容易? (优选MVC)

6 个答案:

答案 0 :(得分:7)

嗯,MVC更像是经典的asp而不是webforms。但是,它使用结构和框架来减少意大利面条代码并使其更易于维护。你必须应用许多新的概念来对抗框架。

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

总而言之,从长远来看,意大利面总是会咬你。

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

答案 1 :(得分:3)

我目前正处于我的第一个大型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或Entity Framework等数据访问技术

我仍然在努力解决其中一些问题,但我已经到了那里。它确实需要做很多工作,并且坚持不懈。并非一切都比传统ASP更好或更容易。特别是对我而言,因为我多年来一直在经典ASP中使用WSC,它可以在经典ASP中使用n层应用程序,并完全消除意大利面条代码。

正如我所提到的,我也将Python视为另一种选择;虽然在我工作的公司,我们现在切换到ASP.NET MVC,但实际上我发现向Python过渡更容易。我们使用MVC的唯一原因是,在使用C#/ MVC时,让新开发人员看起来更容易。 (回想起来,事实并非如此,我们在找到合适的C#程序员时遇到了难以置信的困难)

请注意,在Python中,您仍然需要学习基本的面向对象编程,但实现比.NET更简单,Python语言(恕我直言)更像vbscript而不是VB.NET。
此外,我喜欢这样一个事实,即我不必定义每个变量/函数/参数的类型。这有时会让我在C#中疯狂;如果函数的类型发生变化,它可能会影响许多其他函数和变量,这些函数和变量都必须更改。此外,语法更容易理解,因为语言简单,并且没有一百种方法可以做同样的事情 您可以选择不同的框架,MVC或非MVC,您也可以在许多其他领域使用Python(应用程序编程,脚本编写 - 例如XBMC)。
还有像Entity Framework for .NET这样的ORM解决方案,我发现我调查的那个(SQLalchemy)更强大,比EF更容易获取。

所以在工作中我正在学习ASP.NET MVC,在家里我慢慢地学习Python。我建议您尝试使用不同技术的非常简单的项目,然后选择最容易上手的项目。

希望这有帮助。

答案 2 :(得分:1)

如果您喜欢Microsoft提供的意大利面条,请尝试支持IIS7的任何Windows版本。 PHP工作正常,使用Web Platform Installer进行设置非常简单。

考虑到这一点,没有任何理由你应该选择任何一种网络技术而不是另一种。即使在一个应用程序中,您也可以根据需要进行混合和匹配。

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

<强>更新 如果您认真学习MVC,PHP,Ruby或任何您喜欢的Web平台。得到一本好书。坐下来阅读它,然后按照示例代码进行操作。我通常会根据亚马逊的评论来决定购买哪本书。 然后,如果您需要有关特定主题的更多信息,请阅读有关该主题的authorative博客。对于ASP.NET MVC,您可能希望查看来自Brad WilsonsPhil Haack的博客。

答案 3 :(得分:1)

我现在开始使用经典ASP,但现在使用/学习MVC 4转移到WebForms。

以下是我的想法。

对我来说,经典的ASP很有趣,也很容易学习,因为它很简单,并且没有很大的学习曲线,数据CRUDS也不难,而且它以相当有效但凌乱的方式完成了工作。

WebForms需要更高的学习曲线,但却帮助了许多“管道”工作。具有拖放控件的代码,但有时难以修改和自定义。

使用MVC我发现它需要比其他两个学习曲线更大的学习曲线,这主要是由于它由HTML5和像Knockout等客户端框架驱动。要获得良好的理解,还需要学习OO模式,实体框架,LINQ,WebApi和最初这些我没有找到简单的消化。

答案 4 :(得分:0)

对你来说容易吗?你觉得哪个部分很难?阅读有关HTTP的无状态特性并找到Web表单和MVC之间的比较 - 这应该很清楚。

一般来看一些关于MVC模式的阅读。 MVC是一个总称,出现在30多年前的第一次。 .NET 4中的MVC是这种模式的变体,但我们都习惯称它为MVC。确保您的OO知识达到最佳状态,以及基本设计模式的知识,主要是SoC(关注点分离)和SRP(单一责任原则)。

答案 5 :(得分:0)

如果你想学习/开始使用mvc框架我可以建议你做Contoso大学教程或NerdDinner教程(http://www.asp.net/mvc/tutorials#NerdDinner