Re[7]: [ANN] Надстройка к студии для генерации классов к Lin
От: IT Россия linq2db.com
Дата: 04.02.10 19:01
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Автосвойства полезны как раз для того, чтобы лишний раз в такой код не заходить. Маппинг на поля, как я понимаю, вообще не возможен.


VD>Ээээ... Товарисч, не пристало вам такую пургу нести! В мсиле автосвойств нет как ложки в матрице. Эффекта "незахождения отладчика в свойство" компилятор шарпа добивается путем добавления к коду свойств атрибутов System.Runtime.CompilerServices.CompilerGeneratedAttribute. Того же эффекта можно достичь добавив атрибут System.Diagnostics.DebuggerNonUserCode.


Товарисч, вам бы спуститься с небес на ... Нет, точнее выйти из сумрака низкоуровневого кода и атрибутов компилятора в обычный мир. После этого можно будет написать код с использованием автосвойств и попробовать войти в него отладчиком.

Кстати, не уверен, что CompilerGeneratedAttribute приводит к игнорирования кода отладчиком. Хотя всё может быть. Тем не менее самому отладчику глубоко плевать как на CompilerGeneratedAttribute, так и на DebuggerNonUserCode вместе с DebuggerStepThrough. Отладчик ходит по тому коду, по которому ему сказал ходить компилятор, не больше и не меньше.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: [ANN] Надстройка к студии для генерации классов к Lin
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.10 19:58
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Сдается мне лучше вообще не использовать CodeDom.


VD>Можно попробовать заменить CodeDom на CCI AST.

VD>Но еще лучше просто генерировать текст. Например, тем же T4.

VD>CodeDom обижен природой. Тут уже ничего не поделаешь.


Ну фиг его знает. Я стал его использовать в основном для того, чтобы облегчить переход на другие языки (для N уже есть провайдер? )...

VD>В качестве затычки можешь просто использовать CodeSnippetXxx для подстановки текста в нужное место.


Не переношу затычки.
[КУ] оккупировала армия.
Re[6]: [ANN] Надстройка к студии для генерации классов к Lin
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.10 20:12
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ты ошибся только в двух предположениях. Она не готовая и не вполне вменяемая.


Мой опыт свидетельствует об обратном. А тот факт, что не любой код можно взаимно однозначно отобразить на CodeDom-модель, если подумать, следует из языковой независимости данной модели. Тем не менее, работать с ней довольно удобно. И уж точно она уже готовая и уже работает
Не факт, что изобретение своей модели является лучшим решением (что-то мне подсказывает, что в итоге выйдет нечто подобное CodeDom'у). Можно конечно соорудить некий языково-независимый DSL (CodeDom — это тоже DSL, но он увиверсален), для которого потом понаписать трансляторы в нужные целевые языки, тогда, возможно, удастся заимплементить всё необходимое в нём (в т.ч. и автосвойста), но, как это обычно бывает, это только вопрос времени, когда мы упрёмся в ограничения, вызванные специализацией. Всё-таки я верю, что CodeDom дизайнили товарищи с опытом побольше моего, и шанс нарваться на что-то нереализуемое там меньше...
Далее, тут есть ещё одна проблема. Дело в том, что понятие "красивый код" субъективно по определению, и потому я опасаюсь потока фидбека а-ля "сделайте скобочку на предудущей/следующей строке", "используйте пробелы/табы для форматирования" и тому подобную ерунду, которую гораздо проще сделать с помощью решарпера или ещё какого-нить средства форматирования кода. У меня есть мысль задействовать R# при его наличии для пост-процессинга снегерённого кода, но то, что предложили
Автор: koandrew
Дата: 02.02.10
разработчики, мне кажется чрезмерно замороченным...
Хотя, конечно, я могу быть не прав. Если объём предложений об отказе от CodeDom будет продолжать поступать — ну чтож, переделаю. Благо я являюсь сторонником SRP и кодогенерация чётко отделена от остальных частей, а потому может быть независимо переписана.
[КУ] оккупировала армия.
Re[8]: [ANN] Надстройка к студии для генерации классов к Lin
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.02.10 21:52
Оценка:
Здравствуйте, IT, Вы писали:

IT>Кстати, не уверен, что CompilerGeneratedAttribute приводит к игнорирования кода отладчиком. Хотя всё может быть. Тем не менее самому отладчику глубоко плевать как на CompilerGeneratedAttribute, так и на DebuggerNonUserCode вместе с DebuggerStepThrough. Отладчик ходит по тому коду, по которому ему сказал ходить компилятор, не больше и не меньше.


Уверен? Что-то я не помню, чтобы в немерле была спец-обработка по поводу DebuggerNonUserCode, вроде как он работает.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [ANN] Надстройка к студии для генерации классов к Lin
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.02.10 21:53
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Ну фиг его знает. Я стал его использовать в основном для того, чтобы облегчить переход на другие языки (для N уже есть провайдер? )...


Есть. Но на мой взгляд здесь текстовый T4 был бы более подходящим решением.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: [ANN] Надстройка к студии для генерации классов к Lin
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.02.10 22:01
Оценка: 16 (1)
Здравствуйте, koandrew, Вы писали:

K>Всё-таки я верю, что CodeDom дизайнили товарищи с опытом побольше моего, и шанс нарваться на что-то нереализуемое там меньше...


Не КодДом проектировали какие-то индусы под сериализатор в ВинФормсах. От того он и такой недоделанный.
То что он абстрагирован от языка (т.е. является AST в полном смысле этого слов) — это да. Но все же он дико не удобен и не гибок.

K>Далее, тут есть ещё одна проблема. Дело в том, что понятие "красивый код" субъективно по определению, и потому я опасаюсь потока фидбека а-ля "сделайте скобочку на предудущей/следующей строке", "используйте пробелы/табы для форматирования" и тому подобную ерунду, которую гораздо проще сделать с помощью решарпера или ещё какого-нить средства форматирования кода. У меня есть мысль задействовать R# при его наличии для пост-процессинга снегерённого кода, но то, что предложили
Автор: koandrew
Дата: 02.02.10
разработчики, мне кажется чрезмерно замороченным...


Кстати, не стоит называть РеШарпер R#. У нас есть свой R#.

Что по поводу форматирования, то это как раз не так важно. А вот то что за код будет генерировать — это важно. И тут текстовый генератор был бы более удобен, по моему.

K>Хотя, конечно, я могу быть не прав. Если объём предложений об отказе от CodeDom будет продолжать поступать — ну чтож, переделаю. Благо я являюсь сторонником SRP и кодогенерация чётко отделена от остальных частей, а потому может быть независимо переписана.


Если не откажешься от самого КодДома, то возмоно лучше взять его аналог из CCI. Он вроде как совместим с КодДомом но расширен для удобства применения. Для него имеется генерация форматированного кода на шарпе и васике (если не ошибаюсь).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [ANN] Надстройка к студии для генерации классов к Lin
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.10 22:07
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Уверен? Что-то я не помню, чтобы в немерле была спец-обработка по поводу DebuggerNonUserCode, вроде как он работает.


Да, мои сведения говорят о том же. Этим делом рулит галка Debug Non-User Code иил что-то вроде того в настройках. Методы, помеченные DebuggerStepThroughAttribute, дебаггер проскакивает, если только не установить бряк внутри (вроде). В принципе, могу добавить навешивание этого атрибута к сгенерённый код — делов-то на минуту...
[КУ] оккупировала армия.
Re[8]: [ANN] Надстройка к студии для генерации классов к Lin
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.10 22:12
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Не КодДом проектировали какие-то индусы под сериализатор в ВинФормсах. От того он и такой недоделанный.

VD>То что он абстрагирован от языка (т.е. является AST в полном смысле этого слов) — это да. Но все же он дико не удобен и не гибок.
Может и так — не знаю

VD>Кстати, не стоит называть РеШарпер R#. У нас есть свой R#.



VD>Что по поводу форматирования, то это как раз не так важно. А вот то что за код будет генерировать — это важно. И тут текстовый генератор был бы более удобен, по моему.

Я очень опасаюсь того, что юзеры начнут наезжать на тему codestyle и править шаблоны руками. Тогда придётся в инсталлере этот момент как-то обрабатывать, а как — я пока понятия не имею...

VD>Если не откажешься от самого КодДома, то возмоно лучше взять его аналог из CCI. Он вроде как совместим с КодДомом но расширен для удобства применения. Для него имеется генерация форматированного кода на шарпе и васике (если не ошибаюсь).

А вот за это спасибо, посмотрю...
[КУ] оккупировала армия.
Re[6]: [ANN] Надстройка к студии для генерации классов к Lin
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 04.02.10 22:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Есть. Но на мой взгляд здесь текстовый T4 был бы более подходящим решением.


Как я уже сказал выше, надо будет придумать, как разруливать ручные модификации этих шаблонов при обновлении. Ну и какой-то простой AST Model надо будет сварганить поверх этого дела — чтобы сохранить языковую независимость..
[КУ] оккупировала армия.
Re[9]: [ANN] Надстройка к студии для генерации классов к Lin
От: IT Россия linq2db.com
Дата: 04.02.10 23:40
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Кстати, не уверен, что CompilerGeneratedAttribute приводит к игнорирования кода отладчиком. Хотя всё может быть. Тем не менее самому отладчику глубоко плевать как на CompilerGeneratedAttribute, так и на DebuggerNonUserCode вместе с DebuggerStepThrough. Отладчик ходит по тому коду, по которому ему сказал ходить компилятор, не больше и не меньше.


VD>Уверен? Что-то я не помню, чтобы в немерле была спец-обработка по поводу DebuggerNonUserCode, вроде как он работает.


Она может быть в емите.
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: [ANN] Надстройка к студии для генерации классов к Lin
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.02.10 00:43
Оценка:
Здравствуйте, koandrew, Вы писали:

K>Как я уже сказал выше, надо будет придумать, как разруливать ручные модификации этих шаблонов при обновлении.


Не надо это разруливать. Помечай файлы как read-only и тот кто их поправит будет сам себе злобный буратина.

K>Ну и какой-то простой AST Model надо будет сварганить поверх этого дела — чтобы сохранить языковую независимость..


Это, да.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [ANN] Надстройка к студии для генерации классов к Li
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.02.10 00:44
Оценка:
Здравствуйте, IT, Вы писали:

IT>Она может быть в емите.


Если только так.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [ANN] Надстройка к студии для генерации классов к Lin
От: Dog  
Дата: 05.02.10 10:21
Оценка:
Dog>>Хоть можно будет шаблоны править по ходу.
VD>Ну, вот это будет вызвать проблемы. Ты же их будешь локально править. Если потом и автор их поправит, то будет тебе работа по синхронизации. При некотором количестве различий проще будет твои правки выбросить.
Значит надо добавить возможность использовать свои шаблоны. Можно скопировать стандартный, поправить и указать какой использовтаь. Т4 хоть легко читать и править можно.
Re[9]: [ANN] Надстройка к студии для генерации классов к Lin
От: Dog  
Дата: 05.02.10 10:24
Оценка:
VD>>Что по поводу форматирования, то это как раз не так важно. А вот то что за код будет генерировать — это важно. И тут текстовый генератор был бы более удобен, по моему.
K>Я очень опасаюсь того, что юзеры начнут наезжать на тему codestyle и править шаблоны руками.
И это правильно

K> Тогда придётся в инсталлере этот момент как-то обрабатывать, а как — я пока понятия не имею...

А можно добавить в конфиг какой шаблон используется ?
Re: [ANN] Надстройка к студии для генерации классов к Linq2B
От: kkolyan33  
Дата: 09.02.10 19:50
Оценка:
Здравствуйте, koandrew, Вы писали:


K>Краткая инструкция по использованию:

K>Правый щелчок на c# проекте -> Add New Item... -> BLToolkit Settings File -> Назови его как-нить(это имя будет частью имени контекста — SomethingDbContext) -> OK

что то не могу найти этот файл (BLToolkit Settings File), когда создаю web site
Re[2]: [ANN] Надстройка к студии для генерации классов к Lin
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 10.02.10 02:34
Оценка: :)
Здравствуйте, kkolyan33, Вы писали:

K>что то не могу найти этот файл (BLToolkit Settings File), когда создаю web site


Этот пункт доступен только для C# Library проектов и Console Application. Ибо мне кажется неправильным пихать DAL в presentation layer. Но "если очень хочется", то есть способ — правый клик на проекте -> Add database definition, затем переименовать файл как вам нужно. Дальше всё как обычно...
[КУ] оккупировала армия.
Re[3]: [ANN] Надстройка к студии для генерации классов к Lin
От: Andy77 Ниоткуда  
Дата: 10.02.10 02:58
Оценка: +1
Здравствуйте, koandrew, Вы писали:

K>Этот пункт доступен только для C# Library проектов и Console Application. Ибо мне кажется неправильным пихать DAL в presentation layer.


Думаю, стоит ослабить это ограничение, не путай layer и tier — зачастую несколько layer'ов вполне себе нормально сосуществуют в пределах одного проекта.
Re[3]: [ANN] Надстройка к студии для генерации классов к Lin
От: IT Россия linq2db.com
Дата: 10.02.10 03:16
Оценка: :)
Здравствуйте, koandrew, Вы писали:

K>>что то не могу найти этот файл (BLToolkit Settings File), когда создаю web site

K>Этот пункт доступен только для C# Library проектов и Console Application. Ибо мне кажется неправильным пихать DAL в presentation layer.

Их всё равно больше.
Если нам не помогут, то мы тоже никого не пощадим.
Re: [ANN] Надстройка к студии для генерации классов к Linq2B
От: Flem1234  
Дата: 11.02.10 14:42
Оценка:
Здравствуйте, koandrew, Вы писали:

>Баги/предложения писать сюда или напрямую в багтрекер на сайте — буду разбираться по мере возможностей.


Студия стала вылетать. Подозрение на этот плагин. У кого-нибудь есть подобные проблемы?
Re[2]: [ANN] Надстройка к студии для генерации классов к Lin
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.02.10 15:20
Оценка:
Здравствуйте, Flem1234, Вы писали:

F>Студия стала вылетать. Подозрение на этот плагин. У кого-нибудь есть подобные проблемы?


Посмотрите EventLog — может быть, там есть какая-то диагностика?
Ещё можно попробовать запустить студию с включенным логированием:

devenv /log full_path_to_log_file.xml

и посмотреть, что там происходит.
Пока вроде никто о таких проблемах не сообщал...
[КУ] оккупировала армия.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.