【问题标题】:How does ObjectDataSource relate to traditional MVC pattern?ObjectDataSource 与传统的 MVC 模式有何关系?
【发布时间】:2014-03-13 00:03:44
【问题描述】:

(对于这个问题的含糊性表示歉意。这是我一些混乱的想法的结果。)

我正在设计一个带有 MSSQL DB 的小型网站。我刚刚偶然发现了 ObjectDataSource 类。我想我理解它,但我不明白它与传统的 MVC 设计模式有什么关系,如果有的话。

根据 Microsoft 的说法,该类旨在位于 UI(视图)和数据库之间,因此,我会将其视为控制器。它确实将 UI 操作映射到行为,但它还包含用于写入数据库的代码,这不是我期望 Controller 做的事情(但我可能错了)。

在我看来,它既是控制器又是模型,但我觉得我在这里看不到任何东西。

说了很多话,我很困惑。我将非常感谢任何可以指出任何可能帮助我理解我在这里缺少的东西的人。

【问题讨论】:

    标签: asp.net design-patterns architecture


    【解决方案1】:

    ObjectDataSource 的目的是在视图和一些检索数据的代码之间进行中介,而不是直接到数据库。它不是控制器,而是会调用您的代码来获取数据的东西。更好的描述来自 MVP 场景,在 MVP 中,视图可以自我管理,而 ObjectDataSource 是一个使管理更容易的控件。但是,ObjectDataSource 可能会使开箱即用的传统 MVP 或 MVC 设计实现更难使用,具体取决于框架设置。

    我个人不喜欢这个控件;我从不使用它,因为我宁愿对其进行编码,以便更容易看到绑定是如何发生的,以及绑定发生的时间。个人意见。

    【讨论】:

      【解决方案2】:

      如果您的意思是“传统的 MVC 设计模式”,则不会在 asp.net MVC 中使用 ObjectDataSource。它主要用于 WebForms 开发。

      它通常被放到一个 webform 组件上并通过 UI 进行配置,尽管它不是必须的。它提供了一种抽象,允许其他 WebForms 控件以类似于这些控件与数据库一起使用的方式与对象模型进行交互。此对象模型最终可能来自数据库,但它允许您在其间插入自己的数据库方法。

      WebForms 不适合传统的 MVC 模式,因为一些技术问题使得以这种方式使用它变得复杂。与 WebForms 一起使用的更简洁的模式是 MVP(Model View Presenter)模式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-02
        • 2016-03-23
        • 2012-11-30
        • 2015-05-14
        • 1970-01-01
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        相关资源
        最近更新 更多