Немножко вне рутины...
Он живет до начала потока и после него.
-----
Если он не отдан потоку.
Я не уверен, что механизм сообщений удержит объект от освобождения. По крайней мере в обычных сообщения винды такой возможности нет.
Еще моментик, который, как мне кажется, ты упускаешь - используется пулл. Пулл не хранит ссылку на объект после его отдачи. Локальная переменная в методе - либо перезатрется, либо освободится с окончанием метода. Остается одна ссылка на объект - та, которая отдана потоку.
Проблема в том что она не доступна в комплитион-евенте.
Возьми третью часть того поста - там где один из первых врапится.. Потом сравни с тем что приведено в третьем блоке кода
Знаешь что это мне напоминает? "Пойди туду не знаю куда, возьми то не знаю что". То бишь ты то всё удерживаешь, а я не держу все нити в голове.
Ну там еще будет 3.а, 3.б, 4.а.б.ц.д.е... 556.а и т.п.На то она и разработка...![]()
ну не до такой же степени. Все главные требования должны быть известны ДО начала разработки, чтобы выработать правильный "концепт". Всё остальное может идти только в рамках модификации данного концепта. Ну или прийдется концепт менять, если новые хотелки настолько важны.
я не держу все нити в голове.
-----
Основная проблема в шаблонах - объем кода и сложность логики генерации.
Любое сокращение рассматриваемого объема кода или упрощение логики генерации - есть дело полезное и оправданное.
Потому код режется на более-менее понятные куски и пихается в разные шаблоны - до уровня понимабельности.
Когда все разобрано - надо собрать порожденный текст в кучку.
Так вот то что обсуждается - каким образом уменьшить затраты на собирание этого текста.
Затраты есть трудовые - количество времени на внесение изменений в существующие шаблоны.
И затраты есть технические - количество задействованных стреамов, памяти и общее время исполнения.
Когда ты, или кто еще, предлагаешь вариант имплементации Я больше всего думаю об том, насколько больше/меньше ручной работы потребуется в случае внесения изменений. Во вторую очередь - как оно отразится на ресурсах системы.
Вот тебе и было предложено оценить трудозатраты в предлагаемом тобою варианте. Т.е. вместо:
<#@ template language="C#" inherits="Templates.Sql.TSqlTemplateBase" #><#@ assembly name="System.Core" #><#@ import namespace="System.Linq" #><#@ import namespace="System.Text" #><#@ import namespace="System.Collections.Generic" #>WITH A AS ( <# GetResult("B2"); #> )
SELECT * FROM A
написать что-то вида:
<#@ template language="C#" inherits="Templates.Sql.TSqlTemplateBase" #><#@ assembly name="System.Core" #><#@ import namespace="System.Linq" #><#@ import namespace="System.Text" #><#@ import namespace="System.Collections.Generic" #><# writer.StoreData(typeof(B2)) // B2 tut, odnako, nedostupno - est' IB...#>WITH A AS ( <# string temp = b2.TransformText(); stream.Write(temp); #> ) <# // tut ne slozhno, no nado pojasnit' kuda budet pisat'sja... #>
SELECT * FROM A <#+ new StreamWriter stream { get { return base.SW; } } // :) #> // что будет на вyходе?
Ну да - глупостей Я там намеренно налепил немеряно... и мог бы добавить и еще...
Но это чисто для индикации того, что код шаблона нужен как можно более простым, с удалением всего что мешает понимать каким будет результат.
что код шаблона нужен как можно более простым
Что то смутно припоминаю где то должен был проект МуркаТ4, но там дело было в параметрах помнится.
Но и по генерации было море ограничений. И что то с шаблонами мне больше не хочется связываться. Я бы всё равно делал по другому.
Не забывай что в 1м примере был приведен чисто код без упоминания шаблонов.
но там дело было в параметрах помнится.
-----
Ну так параметры - это другая задача.
Она рассмотрена в достаточной мере, выработано какое-то решение и лежит ждет имплементации.
Именно по этому сегодняшняя схема вообще не упоминает параметры.
И что то с шаблонами мне больше не хочется связываться.
был приведен чисто код без упоминания шаблонов.
-----
Ты их просто не умеешь готовить.
Собственно, чтобы не смущать всех шаблонами Я их и упростил до объекта с методом.
Грубо, но достаточно точно.
Я бы всё равно делал по другому.
-----
Ну, допустим, ты сделаешь идеальный, по твоему мнению, вариант.
Ну, допустим, Я посмотрю на твой вариант, восхищусь им до невозможности.
Ну, допустим, еще человек 5-10-15 будут в восхищении...
Вопрос - каким чудом можно будет обучить хотя бы 100-200 тыс прогеров пользоваться именно твоим вариантом?
Ну а если не получится - зачем пыхтеть и делать сервис для их загрузки/исполнения?
Смысл в том, чтобы получить результат используя простые и стандартные средства - тогда можно найти пользователей и сотворить гешефт.
Вопрос - каким чудом можно будет обучить хотя бы 100-200 тыс прогеров пользоваться именно твоим вариантом?
А каким чудом ты это получишь для твоего варианта?
Конечно я буду делать под то насколько знаю твою систему, а это где то возле -273 °C
То бишь прийдется многое воображать как оно может быть.
А так, мне достачно чтобы системой могли пользоваться люди заплатившие за это деньги. И там счёт идет явно не на тысячи.
Чтобы было понятно у не чисто софтверные проекты. Народ покупает железяку, а она без софта так и останется железякой.
По моему мнению, задачки где то по "архитектуре ПО", вполне допускаю, что это вас абсолютно не интересует. А задачками будет типа "сделать прогу выводящую свой код".Может Вы тогда приведёте пример задачи по Вашему?
Так Вы решили, что треп в этом топике - это "задачки где-то по архитектуре ПО"? Т.е. Вы - архитектор? Почему тогда уж сразу не Наполеон...
что треп в этом топике
Я вообще то думал что Вы имеете в виду совсем другой топик. Муркины проблемы не так просто классифицировать. Но в любом случае это задачки, хотя их и нужно довести до нормальной постановки.
Почему тогда уж сразу не Наполеон
Давайте жить дружно
Муркины проблемы не так просто классифицировать. Но в любом случае это задачки, хотя их и нужно довести до нормальной постановки.
То-то я и вижу, Вы с ним до хрипоты спорите, не можете определиться: кража или ограбление : )
PS. Интересно, кем вы оба были до революции...
Интересно, кем вы оба были до революции...
Увы похвасть нечем. Ананасов и рябчиковъ не жралисъ, за бананами на деревья не лазили. Хотя вот мурка вроде негром была.
Вы с ним до хрипоты спорите
Это со стороны видимо так наблюдается.
Помню, у нашего начальника волосы дыбом вставали, когда он случайно забегал в комнату во время обсуждения с коллегой как будем реализовывать тут или иную часть.
Жаркие были споры, но именно после них и рождалось более лучшее решение.
NB: влез исключительно от удивления сравнению архитектора с наполеоном.
Так Вы решили, что треп в этом топике - это "задачки где-то по архитектуре ПО"?
Может таковым оказаться. Если в конце не выяснится что ТС хотел узнать совсем другое, а все что он писал это так, от скуки.
Т.е. Вы - архитектор? Почему тогда уж сразу не Наполеон...
А откуда такой пиетет перед Software-архитекторами? Обычная работа. Или вы Enterprise-архитектора имели в виду? Но они не занимаются архитектурой ПО...
Чтобы было немного ясно о чём спор (об архитектуре)
Начало было здесь
https://foren.germany.ru/showmessage.pl?Number=31946268&Bo...
"как и назвать использование DLL'ов "плигином".- Что отсылает совсем к другому топику (уже моему). Вот относительно него я и отвечал.
Ну а перехода на личности я стараюсь избегать, у каждого своя точка зрения и если она не совпадет с твоей собственной, то это не должно означать что другой "дурак".
Иногда можно просто иметь в виду совсем другое, а иногда представлять проблему в своем видении, ну и много чего другого.
Но там ясно написано: Мурр (он!)
А что это для вас это имеет какой то большой смысл в данном случае? Что на этом нужно заострять внимание или просто больше не к чему придраться?
В предложении было использовано имя Мурка, скажем так, по поэтическим соображениям Может еще и все слова нужно правильно писать?