asp.net sqldatasource и делает это в коде позади - PullRequest
2 голосов
/ 09 июля 2011

Это, вероятно, сводится к философскому вопросу больше всего, но есть ли действительно существенное различие между использованием <asp:sqldatasource> в файле aspx и выполнением всей работы в коде?

Если да, то кто они и почему?Я знаю, что у меня есть свои предпочтения, но мне просто любопытно, что думают другие.

Редактировать:

Я специально не ставил свои предпочтения в том, чтобы как можно больше включить в кодпозади или даже DAO.Мне было любопытно, что думают другие, так как мне придется обновить кучу кода, который имеет вызовы sqldatasource для всех файлов apsx.

Спасибо всем, кто откликнулся.Я ценю ваш вклад.

Ответы [ 2 ]

2 голосов
/ 09 июля 2011

Для простого приложения нет никаких причин не использовать asp: sqldatasource, но многие разработчики хотят отделить специфику стратегии доступа к данным от логики представления.

Что если вы захотите переключиться на ORM, например, nHibernate? Вы должны были бы извлечь все asp: sqldatasource со своих страниц aspx. Если вы подключились к коду, вам не пришлось бы трогать страницы aspx. Если бы вы абстрагировались еще дальше, скажем, в DAO, вам даже не пришлось бы прикасаться к своему коду, вы могли бы отключить свои DAO.

2 голосов
/ 09 июля 2011

Встраивание вашего источника SQLDataSource на страницу asp.net связывает ваш уровень представления с уровнем доступа к данным, что снижает тестируемость и гибкость. Я настоятельно рекомендую переместить ваши подключения к данным в их собственные классы и создать слой доступа к данным, из которого ваш код за страницами может затем извлечь.

В идеале вы бы разделили это еще дальше в решение N-уровня. Ссылка

...