using в EnterpriseLibrary
От: s.p.  
Дата: 08.12.05 15:46
Оценка:
Юзаю 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 уже все сдалано за нас и нефиг заморачиваться.
Рассудите
Re: using в EnterpriseLibrary
От: Аноним  
Дата: 08.12.05 15:50
Оценка:
Мне второй больше нравится, только бы там скобочки правильно расставить
Re[2]: using в EnterpriseLibrary
От: s.p.  
Дата: 08.12.05 15:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне второй больше нравится, только бы там скобочки правильно расставить

Аргументы можно ?
А со скобочками недосмотрел, сори
Re: using в EnterpriseLibrary
От: Mab Россия http://shade.msu.ru/~mab
Дата: 08.12.05 16:18
Оценка: +1
Здравствуйте, s.p., Вы писали:

SP>Я считаю что 2-й вариант корректней.

Поддерживаю. Нет никаких причин не вызывать Dispose для объекта, реализующего IDisposable. Разве что известно, что вызвав Dispose мы прибьем ресурсы, которые нужны в другом месте. Но тогда это уже проблемы дизайна и разделения владения.
Re: using в EnterpriseLibrary
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.12.05 23:28
Оценка:
Здравствуйте, s.p., Вы писали:

Рабоать скорее всего будут оба варианта. Но первый скорее всего рассчитвает на финалайзеры, а это приведет к тому, что объекты будут продвигаться в первое и второе поколение. Если объектов будет много могут начаться проблемы с ЖЦ. К тому же вызвая диспоз сразу ресурсы освобождаются предсказуемо, а не когда ЖЦ в голову взбредет. Стало быть потенциально система будет более надежна. Так что прицип видишь диспоз, пиши юсинг — правильный принцип.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
RE: using в EnterpriseLibrary
От: Аноним  
Дата: 12.12.05 00:09
Оценка:
Я считаю что 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
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.