最佳实践在asp.net中使用ObjectDataSource的问题

时间:2010-03-17 19:51:21

标签: asp.net architecture

Asp.net,c#,vs2008,sqlserver 2005.

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

最佳做法问题 -

是否可以将DataTable传递给业务层,并将业务层中的DataTable用于表示层中的ObjectDataSource,

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

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

如果在显示数据之前需要编辑数据会有所不同吗?

2 个答案:

答案 0 :(得分:1)

我想说将DataTable传递给业务层是可以的,这是一个很好的做法。您可以最小化调用数据层的位置,并仅从业务层调用表示层。

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

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

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

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

答案 1 :(得分:1)

我的意见:

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

  • 在业务层中使用DataTable并不行,以前的“层”应该转换域对象中的DataTable。业务层应该与订单进行通信,而不是OrdersDataTable。

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

  • 完全应该使用“服务层”来包装“业务层”。