【问题标题】:.NET MVC or just plain old ASP.NET?.NET MVC 还是普通的旧 ASP.NET?
【发布时间】:2010-10-21 22:32:19
【问题描述】:

这是我最近几天一直在学习 .NET 的结果,这个过程让我有点困惑而不是开悟。作为背景信息,我了解 PHP(甚至使用 CakePHP 相当容易地创建整个应用程序)和 Rails。

我想知道我应该追求 ASP.NET 还是应该坚持学习 ASP.NET MVC?当我浏览一些 ASP.NET 教程时,基础知识似乎相当简单,但不知何故,当我浏览的每个示例都在没有 DAL 的情况下将 SQL 语句直接插入示例时,我只是有点担心。

所以,如果我只是没有做任何好的研究,有没有任何书籍/网站可以帮助解决这个问题?还是我应该去学习 .NET MVC?

如果您想知道为什么我不坚持使用 PHP 或 Rails,我刚刚了解到,为了工作的安全,我可能只需要了解一点 .NET。

【问题讨论】:

  • 我同意 Denis 的观点 - MVC 明显更干净,并且根据我的经验,它适用于更易于维护的成品。

标签: asp.net asp.net-mvc data-access-layer


【解决方案1】:

Rob Conery 写了一本关于 ASP.MVC 的书,因此您可能会发现他有偏见。尽管如此,我还是觉得他的arguments 很有吸引力。

【讨论】:

    【解决方案2】:

    我认为您看到的无 DAL 示例是为了简单起见以这种方式编写的。严肃的 ASP.Net 应用程序总是使用 BLL 和 DAL 等层。 DAL 的分离只是在简单的示例中被省略了——这确实会导致不了解的人对示例的不幸误解。

    我认为 MVC 更难编程,只有在有特定原因使用它时才最好使用它——SEO 优化、TDD 开发。它忽略了 ASP.Net WebForms 中可用的许多复杂功能,并且经常与经典 ASP 进行比较。而且,我不相信 MVC 已在许多企业环境中被广泛采用,所以如果您想学习其他人使用的方法,请坚持使用基本的 ASP.Net,并将 MVC 保存以备后用。

    作为一个在其他编程语言方面有丰富经验的 .Net 初学者,我建议您继续使用 WebForms 学习 ASP.Net。如果您正在寻找一个严肃的 DAL 示例,我强烈推荐 ASP.Net 网站上的this lengthy tutorial。它具有您寻求的所有架构改进,并且可能有助于学习如何使用许多数据显示控件。

    【讨论】:

    • "MVC 已经[n't] 被广泛采用..." -- 它只发布了几个星期,你期待什么? MVC 更适合 Web,几乎在所有其他开发框架中都大量使用这种模式就证明了这一点。 WebForms,其事件驱动模型的开发是为了让 WinForms 开发人员更容易将他们的技能转化为网络。 MVC 更适合 Web 开发,并且 IMO 最终将取代 WebForms 成为 .NET 的首选 Web 平台。
    • 最初的预览版是在 2008 年 7 月发布的。它已经发布了一段时间,一般的 MVC 概念已经存在了几十年。我见过的两位 Microsoft 演示者对这种方法的普遍有用性持冷淡态度,其中一位说 90% 的 ASP.Net 开发人员不会使用它,也不需要它。 StackOverflow 开发人员使用它时遇到了严重的问题,这让他们的热情冷却了。
    • DOK,您是否有任何链接可以突出显示 SO 开发人员在使用 MVC 时遇到的问题?
    • IIRC,他们在一段视频中谈到了它,讨论了他们如何开发网站。
    • 这里是关于 StackOverflow 是如何开发的讨论的链接。 blog.stackoverflow.com/2008/09/…
    【解决方案3】:

    ASP .net MVC 将更接近您的 Rails 体验。

    ASP .net Web Forms(通常称为ASP.net)显然不同,但是如果您是为了找工作而学习的,那将是长期的(有很多很多的网站,内部和面向公众)建立在 ASP .net 网络表单上。有一些新兴网站使用 ASP.net MVC,但还有很长的路要走。

    所以,这取决于您的目标。 如果您只需要了解“一点 .net”,请使用 MVC,因为您会了解这些概念。如果您需要了解“.net Web 堆栈”,那么大多数人会想到 Web 表单,而不是 MVC...

    是的,微软世界中的样本往往是“较轻的一面”。几乎不可能找到没有“拖拖拉拉”感觉的演示,这是一个真正的问题。

    【讨论】:

      【解决方案4】:

      我会选择 ASP.Net MVC 而不是 ASP.Net WebForms 的原因之一:测试。 MVC 从一开始就被设计为一个可插拔和可测试的系统。测试是或者至少应该是开发周期中不可分割的一部分。由于能够模拟或替换核心 API 的一部分,测试 MVC 比 WebForms 更容易。在 WebForms 中做同样的事情要么是不可能的,要么是非常笨拙的。

      【讨论】:

        【解决方案5】:

        最近阅读ASP.NET 3.5 Application Architecture and Design - 这是对 ASP.NET 中设计的许多不同方面的合理研究,包括Data Access LayersN-Tier architecture、设计模式和涉及MVC 等主题。如果要找一本书,它可以作为 ASP.NET 最佳实践的概述。

        我必须同意其他人的观点,最好的办法是直接使用 ASP.NET MVC,因为您当前的技能将更好地转化为该框架。我建议您查看Professional ASP.NET MVC 1.0

        【讨论】:

          【解决方案6】:

          我的一位同事在http://www.mindscape.co.nz/staff/jeremy/index.php/2009/02/loving-aspnet-mvc/ 上写了他在实际项目中使用 ASP.NET MVC 的经验,并将他与普通的旧 ASP.NET 进行了比较。他的结论是“我认为 MVC 是在 .NET 框架上构建 Web 应用程序的前进方向。”

          他还编写了一些详细的演练,展示了如何将 ASP.NET MVC 与 ORM 结合使用,这可能有助于解决您“在没有 DAL 的情况下直接将 SQL 放在示例中”的问题(他还涵盖了单元测试之类的内容)。请参阅http://www.mindscape.co.nz/staff/jeremy/index.php/2009/03/aspnet-mvc-part1/http://www.mindscape.co.nz/staff/jeremy/index.php/2009/03/aspnet-mvc-part2/http://www.mindscape.co.nz/staff/jeremy/index.php/2009/03/aspnet-mvc-part3/http://www.mindscape.co.nz/staff/jeremy/index.php/2009/03/aspnet-mvc-part4/。免责声明:这些是根据我们的商业 ORM 编写的,但我希望很容易转化为您自己喜欢的数据访问技术。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-08-21
            • 2012-05-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多