这可能比任何事情都归结为一个哲学问题,但是在aspx文件中使用<asp:sqldatasource>
与在后面的代码中完成所有工作之间是否存在任何重大差异?
如果是这样,它们是什么?为什么?我知道我有自己的偏好,但我只是好奇别人的想法。
编辑:
我故意没有把我的偏好放在尽可能多地放在代码背后甚至是DAO中。我很好奇其他人的想法,因为我将不得不更新一堆sqldatasource调用apsx文件的代码。
谢谢大家的回复。感谢您的投入。
答案 0 :(得分:2)
在asp.net页面中嵌入SQLDataSource会将表示层与数据访问层耦合,从而降低可测试性和灵活性。我强烈建议将您的数据连接移动到他们自己的类,并创建一个数据访问层,然后您的代码可以在页面后面绘制。
理想情况下,您可以将其进一步分解为N-Tier解决方案。 Link
答案 1 :(得分:2)
对于一个简单的应用程序,没有任何理由不使用asp:sqldatasource,但是许多开发人员希望将数据访问策略的细节与视图逻辑分开。
如果你想切换到像nHibernate这样的ORM怎么办?你必须从你的aspx页面中删除所有的asp:sqldatasource。如果您在后面的代码中进行了连接,则不必触及aspx页面。如果你进一步抽象,对DAO说,你甚至不必触摸你的代码,你可以切换你的DAO。