Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个熟悉C#NET的PHP web开发人员想要学习ASP.NET,但却与ASP.NET MVC&;网络表单_.net_Php_Asp.net_Asp.net Mvc - Fatal编程技术网

一个熟悉C#NET的PHP web开发人员想要学习ASP.NET,但却与ASP.NET MVC&;网络表单

一个熟悉C#NET的PHP web开发人员想要学习ASP.NET,但却与ASP.NET MVC&;网络表单,.net,php,asp.net,asp.net-mvc,.net,Php,Asp.net,Asp.net Mvc,我是一个相当不错的PHP网络程序员,有足够的实际经验。我也是一名优秀的C#.NET开发人员。所以,我不想学习web开发的基础知识。我也不必学C 现在我想从ASP.NET开始。我连ASP.NET的a、b、c都不知道。我的意思是,我甚至不知道我需要为这个开发设置什么 我查阅了SO的档案,发现有“ASP.NETWebForms”(它似乎是官方Microsoft.NET的一部分)和一种叫做“ASP.NETMVC”的东西(它不是由Microsoft提供的,是一些第三方库,但非常流行) 那么现在,我应该先学

我是一个相当不错的PHP网络程序员,有足够的实际经验。我也是一名优秀的C#.NET开发人员。所以,我不想学习web开发的基础知识。我也不必学C

现在我想从ASP.NET开始。我连ASP.NET的a、b、c都不知道。我的意思是,我甚至不知道我需要为这个开发设置什么

我查阅了SO的档案,发现有“ASP.NETWebForms”(它似乎是官方Microsoft.NET的一部分)和一种叫做“ASP.NETMVC”的东西(它不是由Microsoft提供的,是一些第三方库,但非常流行)

那么现在,我应该先学习“ASP.NETWebForms”,然后再去“ASP.NETMVC”吗?我对这两个感到困惑

我发现《Pro ASP.NET MVC框架-Steven Sanderson》是该领域最好的书。那么,我可以跳进去开始阅读吗

编辑:


在阅读了回复之后,我了解到“ASP.NETMVC”更像是WPF,而“ASP.NETWebForms”更像是桌面开发中的“.NETWinForms”。但是为什么微软没有将ASP.NETMVC添加到.NETFramework中呢?就像它添加了WPF,即使Winforms存在于.NETFX堆栈中

ASP.NET MVC确实来自Microsoft。它是一个允许使用模式构建web应用程序的框架。您可以在此处找到一篇介绍性文章:


下面是ASP.NET MVC书籍的一个很好的比较:

ASP.NET MVC是一个官方的Microsoft分布式库。看看你对此是否有任何疑问。至于Webforms和MVC,我认为来自PHP,您可能会更喜欢ASP.NETMVC。如果您对ASP.NET MVC的学习资料感兴趣

要扩展Webforms与MVC的对比,这实际上是一个偏好问题。Webforms有许多内置控件,使您的传统web应用程序类似于桌面应用程序。它最初是作为VisualBasicWindows开发人员在winforms和web之间架起桥梁的一种方式。也就是说,Webforms是一个非常成熟的产品,有大量的第三方控件和文档可用。当您使用WebForms时,您可以通过一些google搜索找到如何做几乎任何事情

ASP.NET MVC是较新的框架,只是提供了WebForms的替代方案。ASP.NET MVC是一种“更接近金属”的体验,在这种体验中,您不用自定义控件来构建您的网站,而是自己编写所有内容。这对来自PHP的您来说很熟悉,这就是我向您推荐它的原因。另一件需要注意的事情是,ASP.NETMVC从一开始就考虑了单元测试。单元测试在WebForms中并非不可能,但它要困难得多,耗时得多。因此,如果单元测试对您很重要,那么ASP.NETMVC可能是更好的选择

微软曾说过大约10000次,你对技术的选择实际上取决于你个人的喜好,在可预见的未来,他们将继续支持这两种技术。重要的是要记住ASP.NET>WebForms和ASP.NET>MVC。ASP.NET是一种整体技术,您可以使用它开发两种不同的框架

另外,从技术上讲,可以在同一个应用程序中混合使用这两种框架,尽管我自己从来没有这样做过。感觉有点脏:)

既然您提到了Steven Sanderson,您可能有兴趣知道他和Rob Conry正在围绕即将推出的新版本ASP.NET MVC开发一系列网络广播。网络广播不是免费的,但它们非常便宜,您可以在TekPub上找到预览,如下所示:


请查看以下链接:


(来源:)


(来源:)


(来源:)

WebForms:PHP::ASP.NET MVC:CakePHP


除了微软两者都有。

是的,史蒂文·桑德森的书是一本优秀的书!你的
相当长的报告
太棒了。现在,在我看来,选择哪一个的冲突就像“选择哪一个使用WPF和Winforms”。老实说,我根本不会比较WPF和MVC。然而,为了解决您提出的关于将其添加到框架中的问题,在.NET4(w/ASP.NETMVC2)中实际上就是这样。它没有进入3.5SP1的原因是它太新了,当时还没有准备好生产。好吧,现在在阅读其他答案之后。我同意“ASP.NETMVC:CakePHP”,但不完全同意“WebForms:PHP”。WebForms和PHP的开发方式不同。我觉得更合适的关系应该是“.NET Winforms:ASP.NET Webforms”和“.NET WPF:ASP.NET MVC”我不太同意这种比较,但我确实同意Webforms状态抽象与标准PHP开发有很大不同,但它们都是“标准”的我不同意这种比较。PHP可与经典的ASP而不是Web表单相媲美。