【问题标题】:A PHP web developer comfortable with C# .NET wants to learn ASP.NET but confused with ASP.NET MVC & Webforms熟悉 C# .NET 的 PHP Web 开发人员想要学习 ASP.NET,但对 ASP.NET MVC 和 Webforms 感到困惑
【发布时间】:2011-01-06 22:18:35
【问题描述】:

我是一名合格的 PHP Web 程序员,拥有足够的实际经验。我也是一个不错的 C#.NET 开发人员。所以,我不想学习 Web 开发的基础知识。我也不必学习 C#。

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

我浏览了 SO 的档案,发现有“ASP.NET Webforms”(这似乎是 Microsoft .NET 官方的一部分)和一种叫做“ASP.NET MVC”的东西(不是 Microsoft ,一些第 3 方库,但非常受欢迎)。

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

我发现“Pro ASP.NET MVC Framework - Steven Sanderson”一书是该领域最好的书。那么,我可以跳进去开始阅读吗?

编辑:

阅读回复后,我了解到“ASP .NET MVC”更像是 WPF,而“ASP.net Web 表单”更像是桌面开发中的“.net winforms”。但是为什么微软没有将 ASP.NET MVC 添加到 .NET 框架中呢?就像它添加了 WPF,即使 Winforms 存在于 .NET fx 堆栈中。

【问题讨论】:

  • 是的,Steven Sanderson 的书是一本好书!

标签: .net php asp.net asp.net-mvc


【解决方案1】:

ASP.NET MVC 是微软官方发布的库。如果您对此有任何疑问,请参阅http://www.asp.net/mvc。至于 Webforms 与 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 是一个非常成熟的产品,具有大量可用的 3rd 方控件和文档。当您使用 WebForms 时,您可以通过一些 google 搜索了解如何做几乎任何事情。

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

Microsoft 已经说过大约 10,000 次,您对技术的选择实际上取决于您自己的个人喜好,并且他们将在可预见的未来继续支持这两种技术。要记住的重要一点是 ASP.NET > WebForms 和 ASP.NET > MVC。 ASP.NET 是一种整体技术,您只需获得两个不同的框架即可使用它进行开发。

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

既然您提到了 Steven Sanderson,您可能有兴趣知道他和 Rob Conery 一直在围绕即将推出的新版本 ASP.NET MVC 开发一系列网络广播。网络广播不是免费的,但价格相当便宜,您可以在 TekPub 上找到预览:

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

【讨论】:

  • 你的pretty lengthy repsonse 太棒了。现在这个关于选择哪个的冲突在我看来就像“选择哪个 b/w WPF 和 Winforms”。
  • 老实说,我根本不会将 WPF 与 MVC 进行比较。但是,为了解决您询问的关于将其添加到框架中的问题,这实际上发生在 .NET 4(w/ASP.NET MVC 2)中。它没有进入 3.5 SP1 的原因是它太新而且当时还没有投入生产。
【解决方案2】:
【解决方案3】:

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

这里是 ASP.NET MVC 书籍的一个很好的比较:Thoughts on Choosing an ASP.NET MVC Book

【讨论】:

    【解决方案4】:

    WebForms:PHP::ASP.NET MVC:CakePHP

    除了微软两者都有。

    【讨论】:

    • 好吧,现在在阅读其他答案之后。我同意“ASP.NET MVC:CakePHP”,但不完全同意“WebForms:PHP”。 WebForms & PHP 的开发方式不同。我觉得更合适的关系是“.NET Winforms:ASP.NET Webforms”和“.NET WPF:ASP.NET MVC”
    • 我不太同意这种比较,但我确实同意 WebForms 状态抽象与标准 PHP 开发方式不同,但它们在某种意义上是相似的,因为它们是“标准”方式在各自的语言/框架中做事。
    • 我不同意这种比较。 PHP 可与经典的 ASP 相媲美,而不是 Web 表单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多