【问题标题】:Best Practices Question on using an ObjectDataSource in asp.net在 asp.net 中使用 ObjectDataSource 的最佳实践问题
【发布时间】:2010-03-17 19:51:20
【问题描述】:

Asp.net、c#、vs2008、sqlserver 2005。

我正在使用来自 sqlserver 存储过程的数据填充数据访问层中的 DataTable。

最佳实践问题 -

把DataTable传给业务层,用业务层的DataTable作为表现层的ObjectDataSource,可以吗,

我应该将数据表中的数据传输到一个List中,并在表示层中将List用于ObjectDataSource吗?

如果我应该将数据传输到List,应该在数据访问层还是业务层完成?

如果数据需要在显示之前进行编辑,会有什么不同吗?

【问题讨论】:

    标签: asp.net architecture


    【解决方案1】:

    我的看法:

    • 在 UI 中使用 DataTable 是可以的,GridView 和其他控件可以通过 ObjectDataSource 轻松绑定到其数据,并且分页和排序是自动的。如果绑定到 IList,则必须对分页和排序进行编程。

    • 在业务层中使用 DataTable 是不行的,之前的“层”应该在域对象中转换 DataTable。业务层应该与 Orders 对话,而不是 OrdersDataTable。

    • 例如,DataTable 的创建应该是 UI 职责,而不是业务职责。

    • 总的来说,您应该使用“服务层”来包装“业务层”。

    【讨论】:

      【解决方案2】:

      我会说将 DataTable 传递给业务层是可以的,这是一个很好的做法。可以尽量减少调用数据层的地方,只从业务层调用表现层。

      最好确保表示层不知道数据层,以防您希望替换数据层。

      在数据层中传输到列表是好的,因为业务层不必知道数据层中的底层数据。

      在显示之前编辑是什么意思?是否有关于如何编辑数据源的任何业务逻辑,那么它应该在业务层中。

      也许您应该考虑一个服务层。服务层充当业务和数据之间的一层,因此您可以在不更改业务层的情况下更改数据层,它还执行一些验证: http://www.asp.net/(S(pdfrohu0ajmwt445fanvj2r3))/learn/mvc/tutorial-38-cs.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-07
        • 2010-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-19
        相关资源
        最近更新 更多