Юзаю EnterpriseLibrary от Microsoft-а.
возник спор: какой код более корректен:
Database db = .....
DBCommandWrapper cmd = db.GetStoredProcCommandWrapper(....);
cmd.AddInParameter(......);
.......
DataSet ds = db.ExecuteDataSet(cmd);
или
Database db = .....
using(DBCommandWrapper cmd = db.GetStoredProcCommandWrapper(...)
{
cmd.AddInParameter(......);
.......
DataSet ds = db.ExecuteDataSet(cmd);
}
Я считаю что 2-й вариант корректней.
Аргументы:
1. запрос может занимать значительные ресурсы как на клиенте так и на сервере. Когда их освободит сборщик мусора — никто не знает. Что может сказаться на быстродействии сервера в первую очередь.
2. Если кто-то реализовал интерфейс IDisposable — значит нада чего-то Dispose-ить.

Аргументы оппонента:
1. В EnterpriseLibrary уже все сдалано за нас и нефиг заморачиваться.
Рассудите
Мне второй больше нравится, только бы там скобочки правильно расставить
Здравствуйте, Аноним, Вы писали:
А>Мне второй больше нравится, только бы там скобочки правильно расставить
Аргументы можно ?
А со скобочками недосмотрел, сори
Здравствуйте, s.p., Вы писали:
Рабоать скорее всего будут оба варианта. Но первый скорее всего рассчитвает на финалайзеры, а это приведет к тому, что объекты будут продвигаться в первое и второе поколение. Если объектов будет много могут начаться проблемы с ЖЦ. К тому же вызвая диспоз сразу ресурсы освобождаются предсказуемо, а не когда ЖЦ в голову взбредет. Стало быть потенциально система будет более надежна. Так что прицип видишь диспоз, пиши юсинг — правильный принцип.

... << RSDN@Home 1.2.0 alpha rev. 620>>
Я считаю что 2-й вариант корректней.
Аргументы:
1. запрос может занимать значительные ресурсы как на клиенте так и на сервере. Когда их освободит сборщик мусора — никто не знает. Что может сказаться на быстродействии сервера в первую очередь.
не нaдo using нa DBCommandWrapper

a кaкие тaкие ресурсы ? — ExecuteDataset зaкрoет connection к бaзе
2. Если кто-то реализовал интерфейс IDisposable — значит нада чего-то Dispose-ить.
ну не всегдa, пoсмoтри хoтя бы в рефлектoре кaк oн реaлизoвaн тaм для нaчaлa
Аргументы оппонента:
1. В EnterpriseLibrary уже все сдалано за нас и нефиг заморачиваться.
смелoе суждение
Anatoly Lubarsky: Weblog
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение