2010-01-19 25 views
0

我是一位体面的PHP网络程序员,具有足够的真实世界体验。我也是一个体面的C#.NET开发人员。所以,我不想学习Web开发的基础知识。我也不必学习C#。适合C#.NET的PHP网页开发人员想要学习ASP.NET,但与ASP.NET MVC&Webforms相混淆

现在我想从ASP.NET开始。我甚至不知道ASP.NET的a,b,c。我的意思是甚至不知道像我需要什么设置这个发展的东西?

我已经通过SO的档案,发现有“ASP.NET Webforms”(这似乎是官方微软.NET的一部分)和一些名为“ASP.NET MVC”(它不是微软,一些第三方库,但很受欢迎)。

那么现在,我应该先学习“ASP.NET Webforms”,然后再去“ASP.NET MVC”吗?我很困惑这两个。

我发现本书“Pro ASP.NET MVC框架 - 史蒂文桑德森”是该领域最好的书。那么,我可以跳进这里开始阅读吗?

编辑:

阅读的答复后,我明白了 “ASP .NET MVC” 更像是WPF & “ASP.net web表单”,就像是在桌面的发展 “NET的WinForms”。但为什么Microsoft没有将ASP.NET MVC添加到.NET框架?就像它添加了WPF,即使Winforms存在于.NET fx堆栈中。

+0

是的,史蒂文桑德森的书是一本很好的书! – Martin 2010-01-19 18:10:09

回答

4

ASP.NET MVC是微软官方的分布式库。如果您对此有任何疑问,请参阅http://www.asp.net/mvc。就Webforms vs. MVC而言,我认为来自PHP,您可能会更熟悉ASP.NET MVC。如果您有兴趣学习ASP.NET MVC的材料,请致电I posted a pretty lengthy repsonse here

为了扩展Webforms与MVC的东西,它的确归结为一个偏好问题。 Webforms具有许多内置控件,使您的传统Web应用程序与桌面应用程序类似。它最初的目的是为Visual Basic Windows开发人员弥补winforms和web之间的差距。也就是说,Webforms是一个非常成熟的产品,拥有大量的第三方控件和文档。您可以在使用WebForms时了解如何使用几次谷歌搜索来完成任何事情。

ASP.NET MVC是较新的框架,只是提供了WebForms的替代方案。 ASP.NET MVC是一种“更接近金属”的体验,与其使用定制控件来构建网站,您自己写一切。这对你来自PHP很熟悉,这就是为什么我向你推荐它。另外需要注意的是,从一开始,ASP.NET MVC就是在考虑单元测试的基础上构建的。单元测试在WebForms中不是不可能的,但是它更加困难和耗时。所以如果单元测试对你很重要,ASP.NET MVC可能是更好的选择。

微软已经说过大约一万次,你选择的技术真的取决于你自己的偏好,他们将继续在可预见的将来支持这两种技术。重要的是要记住的是ASP.NET> WebForms和ASP.NET> MVC。 ASP。NET是整体技术,你只是得到两个不同的框架,你可以用它来开发它。

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

既然你提到了史蒂文桑德森,你可能有兴趣知道他和罗布康利一直在围绕即将推出的新版本的ASP.NET MVC开发一系列网络广播。该网络广播是不是免费的,但他们很便宜,你可以找到TekPub预览,在这里:

http://www.tekpub.com/preview/aspmvc

+0

你的'相当长的repsonse'真棒。现在这个选择哪个冲突看起来像'选择哪一个WPF和Winforms'。 – claws 2010-01-19 18:42:00

+1

坦率地说,我根本不会比较WPF和MVC。但是,为了解决您问到将它添加到框架中的问题,实际上发生在.NET 4(w/ASP.NET MVC 2)上。它没有进入3.5 SP1的原因是它太新了,而且当时没有生产准备。 – 2010-01-19 20:27:54

0

的WebForms:PHP :: ASP.NET MVC:CakePHP的

除了微软使得无论。

+0

恩,现在阅读其他答案后。我同意“ASP.NET MVC:CakePHP”,但不完全符合“WebForms:PHP”。 WebForms和PHP的开发方式不同。我觉得更合适的关系是“.NET Winforms:ASP.NET Webforms”和“.NET WPF:ASP.NET MVC” – claws 2010-01-19 18:47:57

+2

我并不完全赞同这种比较,但我确实同意WebForms状态抽象是与标准的PHP开发方式不同,但它们是相似的,因为它们是在各自的语言/框架中做事的“标准”方式。 – 2010-01-19 22:26:35

+0

我不同意这种比较。 PHP可以与传统的ASP而不是Web表单相媲美。 – ali62b 2010-01-21 21:15:24