【问题标题】:Asp.net MVC Question regarding n-tier关于 n 层的 Asp.net MVC 问题
【发布时间】:2009-08-07 14:32:33
【问题描述】:

我研究了很多 ASP.NET 的入门工具包,与 Web 表单相比,ASP.NET MVC 确实很棒,因为它运行速度快且开发简单。但是,当我将 ASP.NET MVC、LINQ 安装到一个有很多访问者且主要是基于控件的网站的网站中时,我的脑海中出现了很多问题。

假设我想建立一个规模较小但访问量很大且主要基于控件的网站(即电视节目信息网站)。你有节目,剧集。

  1. 在 ASP.NET MVC 中使用 n 层架构是否高效且简单?
  2. 我应该在业务逻辑层中创建自己的实体还​​是使用 SQL 表作为实体?
  3. 我应该在其中使用应用程序缓存将所有节目保存在缓存中吗?

我喜欢使用 LINQ 的 MVC 表示层,但是当涉及到 DataAccess 和 BusinessLogic 时,我感到很困惑。有人可以帮忙吗?

【问题讨论】:

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


    【解决方案1】:

    我的 2 美分:

    1. 在我看来,在 N 层架构中使用 ASP.Net MVC 或 Web 表单没有区别。我们使用 WCF 在层之间进行通信。
    2. 我们创建不是实体框架实体的数据传输对象。但是,我希望这会随着引入 POCO 的 Entity Framework 的下一个版本而改变。
    3. 不确定您所说的“表演”是什么意思。 ASP.Net 有自己的页面缓存,您可以使用 Enterprise Library 来缓存数据。

    为了澄清,我将层定义为单独的机器,而层将是单独的 dll。

    【讨论】:

      【解决方案2】:

      我刚刚阅读了一篇关于使用 asp.net mvc 处理 n 层的精彩文章

      检查一下: http://www.codeproject.com/KB/aspnet/ASP_NET_MVC_WITH_EF.aspx

      一切都与正确的架构与 ASP.NET MVC 框架 + N 层 + 实体框架一起工作

      享受吧!

      :-丹

      【讨论】:

        【解决方案3】:

        我强烈推荐 NerdDinner ASP.NET MVC 教程。您可以获取更多信息并从ScottGu's blog post here 下载免费章节。

        在该示例章节附带的代码中,有一个非常好的架构结构,您可以使用它作为架构的基础。在尝试了解如何在 ASP.NET MVC 中构建某些东西时,我已经多次回顾它。

        【讨论】:

        • NerdDinner 是一个非常小的网站,没有使用 n 层架构
        【解决方案4】:

        您是否已经在 ASP.NET MVC 中构建了您的第一个应用程序,或者您还在学习吗?

        我认为你应该从类似于 NerdDinner 的架构开始,在你更加熟悉 ASP.NET MVC 的工作原理之后进行重构。

        如果您真的精通多层,那么您应该能够在没有我们帮助的情况下解决它。尝试一些事情。做有效的事。尽量不要太担心是否“正确”。

        如果您还没有编写您的第一个 ASP.NET MVC 应用程序,那么您在问题中提出的某些问题还为时过早。

        顺便说一句,我发现 Scott Hanselman 的“File/New/NerdDinner”视频既有启发性又有娱乐性:http://videos.visitmix.com/MIX09/T49F

        【讨论】:

        • 好吧,我已经在 asp.net MVC 中构建了一个应用程序(比 NerdDinner 大),但没有使用 n 层架构。我还构建了使用 n 层架构的应用程序(不是在 MVC 中构建的)。我知道 asp.net 是如何工作的,也学到了很多 asp.net mvc 是如何工作的。但是当将 LINQ 和 MVC 与 n 层一起使用时,我想知道最好的方法是什么。我也想知道哪个问题还为时过早,就你不好意思回答了。 StackOverFlow 内置在 ASP.NET MVC 和 LINQ 中,这就是我在这里问这个问题的原因。
        【解决方案5】:

        我将自己的 n-Tier 风格与 MVC 结合使用,因为我不喜欢 LINQ-to-SQL 和实体框架。我还编写了一些 T4 模板来生成这些对象并使用企业库与数据库进行交互。由你决定,不管怎样。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多