Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net sqldatasource与代码隐藏_C#_Asp.net_Code Behind - Fatal编程技术网

C# asp.net sqldatasource与代码隐藏

C# asp.net sqldatasource与代码隐藏,c#,asp.net,code-behind,C#,Asp.net,Code Behind,这可能会归结为一个哲学问题,但在aspx文件中使用与在代码背后完成所有工作之间真的有什么主要区别吗 如果是,它们是什么?为什么?我知道我有自己的偏好,但我只是好奇别人怎么想 编辑: 我故意没有把我的偏好放在哪一点上,即尽可能多地放在代码背后,甚至DAO中。我很好奇其他人怎么想,因为我将不得不更新一堆代码,这些代码在apsx文件上都有sqldatasource调用 谢谢所有回应的人。非常感谢您的输入。将SQLDataSource嵌入asp.net页面会将表示层与数据访问层耦合,从而降低可测试性和灵

这可能会归结为一个哲学问题,但在aspx文件中使用
与在代码背后完成所有工作之间真的有什么主要区别吗

如果是,它们是什么?为什么?我知道我有自己的偏好,但我只是好奇别人怎么想

编辑:

我故意没有把我的偏好放在哪一点上,即尽可能多地放在代码背后,甚至DAO中。我很好奇其他人怎么想,因为我将不得不更新一堆代码,这些代码在apsx文件上都有sqldatasource调用


谢谢所有回应的人。非常感谢您的输入。

将SQLDataSource嵌入asp.net页面会将表示层与数据访问层耦合,从而降低可测试性和灵活性。我强烈建议将您的数据连接移动到它们自己的类,并创建一个数据访问层,您的代码隐藏页面可以从中提取


理想情况下,您可以将其进一步分离为N层解决方案

对于一个简单的应用程序,没有任何理由不使用asp:sqldatasource,但是许多开发人员希望将数据访问策略的细节与视图逻辑分开


如果你想换成像nHibernate这样的ORM呢?您必须从aspx页面中删除所有asp:sqldatasource。如果你在后面的代码中进行了连线,你就不必去触摸aspx页面了。如果您进一步抽象,比如说抽象到DAO中,您甚至不必接触后面的代码,您可以切换到DAO

除了测试/快速破解之外,您不应该使用SqlDataSource,而应该使用ObjectDataSource。可能重复的