如果网页需要一些数据,为什么不只让SQLDataSource调用存储过程呢?为什么使用ObjectDataSource调用业务对象,然后再调用存储过程?我了解,基于.net框架构建的其他应用程序(例如桌面应用程序)可以访问业务对象,但是如果该应用程序始终只是一个Web应用程序怎么办?

更清楚地说:

什么时候应该使用SqlDataSourceObjectDataSource

一个人如何激励选择?

最佳答案

如果只是一个演示,原型或快速攻克,仅拥有一个SQLDataSource是完全有效的。快速,简单,可以正常工作,并为您提供所需的结果。

但是,如果应用是为长期运行而设计和构建的,并且预计事情(需求,客户希望,最终是数据库架构)可能会发生变化,那么引入一个适当的“业务”层可能会更有意义-将业务对象建模为对象,然后提供从基础数据库到这些业务对象的映射。

俗话说-通过一层间接(或抽象)层,您可以解决计算机科学中的几乎所有问题-此处同样适用。

当然:您可以直接进入数据库,并确保在最初和第一次迭代中,这可能是(或可能是)最快的方法。但是从长远来看,当应用程序持续运行时,通常这是一种快速而肮脏的方式-维护成本,维护成本,根据您和客户的需求进行更改所需的成本和工作量将会增加而且很快,就努力而言,这种快速的“肮脏”解决方案看起来不再那么出色。

因此,总结一下我的观点:是的,起初,使用直接SQL数据源可能会更快,更容易-因此在重要的时候使用它:为快速演示做准备,这是一种概念验证型的应用程序。但是从长远来看,当您查看应用程序的生命周期时,通常值得花更多的精力(设计和编码)来添加此抽象层,以便您的网页不直接依赖于应用程序的细节。下面的数据库。

马克

关于.net - SqlDataSource与ObjectDataSource,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1207295/

10-11 12:02