Re[15]: Новости C#12
От: · Великобритания  
Дата: 20.11.23 10:08
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>Твой код может обращаться к стороннему, к каким-нибудь утилитным функциям.

S> Вот эти вызовы мне и надо подменить через InterceptsLocation и вернуть нужные мне данные изменить состояние моих объектов!
Т.е. тебе придётся эмулировать эти все сторонние утилитные функции.

S>>> Вот InterceptsLocation как раз для этого прекрасно подходят!

S>·>Только в весьма ограниченных случаях.
S> Везде!
Возможно, если эту фичу допилят чтобы она более менее вменяемо работала, то может быть. Но сейчас ограничений туча.
А на сегодняшний день, оно не может конструкторы и даже проперти перехватывать!

S>·>На заборе тоже написано.

S> Аргуиент!
Я аргументов кучу привёл, ты их просто проигнорировал. У тебя пока один аргумент — "так на хабре написано о новостях будущего". Время рассудит, поставь себе закладку, если такая mock-либа выйдет, попробуй и отпишись о результатах. Уверен, что в течение пяти лет этого не случится. А дальше либо ишак сдохнет, либо падишах.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[16]: Новости C#12
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.11.23 10:14
Оценка:
Здравствуйте, ·, Вы писали:


S>>·>Твой код может обращаться к стороннему, к каким-нибудь утилитным функциям.

S>> Вот эти вызовы мне и надо подменить через InterceptsLocation и вернуть нужные мне данные изменить состояние моих объектов!
·>Т.е. тебе придётся эмулировать эти все сторонние утилитные функции.
Не все. Только там где мне нужен резултьтат. И не всех, а только лимитирующие процесс. Таких немного.
S>>>> Вот InterceptsLocation как раз для этого прекрасно подходят!
S>>·>Только в весьма ограниченных случаях.
S>> Везде!
·>Возможно, если эту фичу допилят чтобы она более менее вменяемо работала, то может быть. Но сейчас ограничений туча.
·>А на сегодняшний день, оно не может конструкторы и даже проперти перехватывать!
Использование в SG это уже твои проблемы. Суть есть возможность поменить вызов.
S>>·>На заборе тоже написано.
S>> Аргуиент!
·>Я аргументов кучу привёл, ты их просто проигнорировал. У тебя пока один аргумент — "так на хабре написано о новостях будущего". Время рассудит, поставь себе закладку, если такая mock-либа выйдет, попробуй и отпишись о результатах. Уверен, что в течение пяти лет этого не случится. А дальше либо ишак сдохнет, либо падишах.
Ну еще раз это инструмент, а обертку пиши сам. Там не сложно.
Суть можешь написать свой генератор, а логику замены в отдельном файле и класс расширения для замены
и солнце б утром не вставало, когда бы не было меня
Re[16]: Новости C#12
От: · Великобритания  
Дата: 20.11.23 10:15
Оценка:
Здравствуйте, ·, Вы писали:

·>Уверен, что в течение пяти лет этого не случится. А дальше либо ишак сдохнет, либо падишах.

Прикольно. Как раз вот этот спор о Low Latency C#
Автор: Hardballer
Дата: 15.10.18
как раз 5 лет назад был. Падишах сдох.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[17]: Новости C#12
От: · Великобритания  
Дата: 20.11.23 10:22
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>Т.е. тебе придётся эмулировать эти все сторонние утилитные функции.

S> Не все. Только там где мне нужен резултьтат. И не всех, а только лимитирующие процесс. Таких немного.
Ещё раз. Подменять что-то в своём коде — проблемы нет, и никогда не было. Проблема делать подмену в чужом коде.

S>·>А на сегодняшний день, оно не может конструкторы и даже проперти перехватывать!

S> Использование в SG это уже твои проблемы. Суть есть возможность поменить вызов.
Так нет возможности подменять вызов проперти или конструктора.

S>·>Я аргументов кучу привёл, ты их просто проигнорировал. У тебя пока один аргумент — "так на хабре написано о новостях будущего". Время рассудит, поставь себе закладку, если такая mock-либа выйдет, попробуй и отпишись о результатах. Уверен, что в течение пяти лет этого не случится. А дальше либо ишак сдохнет, либо падишах.

S> Ну еще раз это инструмент, а обертку пиши сам. Там не сложно.
Я понимаю. Ты не понимаешь, что этот инструмент не подходит для мокирования. Ну невозможно закручивать гвозди отвёрткой, как ни старайся.

S> Суть можешь написать свой генератор, а логику замены в отдельном файле и класс расширения для замены

Круто, конечно, но ни для моков, ни для AOP оно не подходит.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[18]: Новости C#12
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.11.23 10:29
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, Serginio1, Вы писали:


S>>·>Т.е. тебе придётся эмулировать эти все сторонние утилитные функции.

S>> Не все. Только там где мне нужен резултьтат. И не всех, а только лимитирующие процесс. Таких немного.
·>Ещё раз. Подменять что-то в своём коде — проблемы нет, и никогда не было. Проблема делать подмену в чужом коде.
Есть подмена вызова сторонних библиотек!
S>>·>А на сегодняшний день, оно не может конструкторы и даже проперти перехватывать!
Да пока сделано на расширениях. Но проперти это тот же get_method. Возможно и можно подменить.
Там же главное с какой строки. Наверняка и конструктор тоже. Но надо смотреть.

S>> Использование в SG это уже твои проблемы. Суть есть возможность поменить вызов.

·>Так нет возможности подменять вызов проперти или конструктора.
Еще раз ты пробовал?

S>>·>Я аргументов кучу привёл, ты их просто проигнорировал. У тебя пока один аргумент — "так на хабре написано о новостях будущего". Время рассудит, поставь себе закладку, если такая mock-либа выйдет, попробуй и отпишись о результатах. Уверен, что в течение пяти лет этого не случится. А дальше либо ишак сдохнет, либо падишах.

S>> Ну еще раз это инструмент, а обертку пиши сам. Там не сложно.
·>Я понимаю. Ты не понимаешь, что этот инструмент не подходит для мокирования. Ну невозможно закручивать гвозди отвёрткой, как ни старайся.

S>> Суть можешь написать свой генератор, а логику замены в отдельном файле и класс расширения для замены
·>Круто, конечно, но ни для моков, ни для AOP оно не подходит.


На самом деле я часто использую условную компиляция для тестов. И у меня все прекрасно подходит!
и солнце б утром не вставало, когда бы не было меня
Отредактировано 20.11.2023 10:31 Serginio1 . Предыдущая версия .
Re[19]: Новости C#12
От: · Великобритания  
Дата: 20.11.23 11:19
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>Ещё раз. Подменять что-то в своём коде — проблемы нет, и никогда не было. Проблема делать подмену в чужом коде.

S>Есть подмена вызова сторонних библиотек!
ты не читаешь что тебе пишут.

S>>>·>А на сегодняшний день, оно не может конструкторы и даже проперти перехватывать!

S> Да пока сделано на расширениях. Но проперти это тот же get_method. Возможно и можно подменить.
S> Там же главное с какой строки. Наверняка и конструктор тоже. Но надо смотреть.
Нет, достаточно прочитать что тебе пишут:

Interception can only occur for calls to ordinary member methods — not constructors, delegates, properties, local functions, operators, etc.


S>>> Использование в SG это уже твои проблемы. Суть есть возможность поменить вызов.

S>·>Так нет возможности подменять вызов проперти или конструктора.
S> Еще раз ты пробовал?
Я читал. А ты похоже не читаешь даже то, что сам пишешь.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[20]: Новости C#12
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.11.23 11:31
Оценка:
Здравствуйте, ·, Вы писали:


·>Нет, достаточно прочитать что тебе пишут:

·>

Interception can only occur for calls to ordinary member methods — not constructors, delegates, properties, local functions, operators, etc.


Угу там же написано

Support for more member kinds may be added in the future.

Самое простое это добавление метода по месту! Не обязательно расширение. Тут народ Свои предложения предлагает
https://github.com/dotnet/csharplang/issues/7009?WT.mc_id=dotnet-35129-website&ysclid=lp6tob5u2o953641620#issuecomment-1479010227

Это же экспериментальная фича!
и солнце б утром не вставало, когда бы не было меня
Re[21]: Новости C#12
От: · Великобритания  
Дата: 20.11.23 12:19
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>·>Нет, достаточно прочитать что тебе пишут:

S>·>

Interception can only occur for calls to ordinary member methods — not constructors, delegates, properties, local functions, operators, etc.

S> Угу там же написано
Ты пошёл на второй круг?

S>

S>Support for more member kinds may be added in the future.

Я знаю, об этом я и сказал "новости из будущего".

S> Самое простое это добавление метода по месту! Не обязательно расширение. Тут народ Свои предложения предлагает

S>https://github.com/dotnet/csharplang/issues/7009?WT.mc_id=dotnet-35129-website&ysclid=lp6tob5u2o953641620#issuecomment-1479010227
S> Это же экспериментальная фича!
Я знаю. Я об этом и сказал:

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

Уверен, что в течение пяти лет этого не случится. А дальше либо ишак сдохнет, либо падишах.


Возможно, что я ошибусь, но по многим признакам того что есть сейчас — оно не взлетит.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[18]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.11.23 14:24
Оценка:
Здравствуйте, ·, Вы писали:

·>Круто, конечно, но ни для моков, ни для AOP оно не подходит.


Про моки не скажу, никогда этой хренью не пользовался. А для АОП работает шо железная железяка.
Если нам не помогут, то мы тоже никого не пощадим.
Re[22]: Новости C#12
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.11.23 14:26
Оценка:
Здравствуйте, ·, Вы писали:

·>Я знаю. Я об этом и сказал:

·>

·>Возможно, если эту фичу допилят чтобы она более менее вменяемо работала, то может быть. Но сейчас ограничений туча.

·>

·>Уверен, что в течение пяти лет этого не случится. А дальше либо ишак сдохнет, либо падишах.


·>Возможно, что я ошибусь, но по многим признакам того что есть сейчас — оно не взлетит.

То же самое говорили о yield, Linq, Source Generator. Однако все работает и активно используется, а SG развивается в разные стороны.
Так или иначе существует потребность в подмене существующего кода своим в своем коде.
Очевидный пример кроме моков, это использование одного и того же кода на разных платформах. В большинстве своем код един, но есть нюансы.
И вот эти нюансы можно генерить для каждой платформы подменой кода.
Сейчас это делается через условную компиляцию или явно через информацию о платформе.
и солнце б утром не вставало, когда бы не было меня
Re: Новости C#12
От: Разраб  
Дата: 20.11.23 15:43
Оценка:
Здравствуйте, Serginio1, Вы писали:

Вопрос такой. а в первичных конструкторах нельзя чтобы параметры автоматом отображались на филды?
может хотя бы SG есть. хотя это конечно уже не совсем то.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Новости C#12
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.11.23 16:02
Оценка: 9 (1)
Здравствуйте, Разраб, Вы писали:

Р>Вопрос такой. а в первичных конструкторах нельзя чтобы параметры автоматом отображались на филды?

Р>может хотя бы SG есть. хотя это конечно уже не совсем то.

Ну есть же меню для класса создать конструктор. Там как раз можно выбрать филды которые будут инициализироваться по параметрам. Помоему это проще чем городить
и солнце б утром не вставало, когда бы не было меня
Re[19]: Новости C#12
От: · Великобритания  
Дата: 20.11.23 21:18
Оценка:
Здравствуйте, IT, Вы писали:

IT>·>Круто, конечно, но ни для моков, ни для AOP оно не подходит.

IT>Про моки не скажу, никогда этой хренью не пользовался. А для АОП работает шо железная железяка.
Ты используешь preview-фичи и они железно работают?!
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[20]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.11.23 21:34
Оценка:
Здравствуйте, ·, Вы писали:

IT>>Про моки не скажу, никогда этой хренью не пользовался. А для АОП работает шо железная железяка.

·>Ты используешь preview-фичи и они железно работают?!

Исследую. Вообще-то этой фиче всего неделя. Но исследования показывают, что фича для АОП абсолютно работоспособна.
Если нам не помогут, то мы тоже никого не пощадим.
Re[18]: Новости C#12
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 21.11.23 10:12
Оценка:
Здравствуйте, ·, Вы писали:

S>> Суть можешь написать свой генератор, а логику замены в отдельном файле и класс расширения для замены

·>Круто, конечно, но ни для моков, ни для AOP оно не подходит.

Знакомство с АОП
Там и явовские @Aspect и используется в PostSharp
И они тоже заинтересованы в https://github.com/dotnet/csharplang/issues/7009?WT.mc_id=dotnet-35129-website&ysclid=lp6tob5u2o953641620#issuecomment-1479711571
и солнце б утром не вставало, когда бы не было меня
Re[21]: Новости C#12
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.11.23 10:55
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, ·, Вы писали:


IT>>>Про моки не скажу, никогда этой хренью не пользовался. А для АОП работает шо железная железяка.

IT>·>Ты используешь preview-фичи и они железно работают?!

IT>Исследую. Вообще-то этой фиче всего неделя. Но исследования показывают, что фича для АОП абсолютно работоспособна.


https://andrewlock.net/a-failed-experiment-with-interceptors-in-csharp-12-and-dotnet-8/ упс
Re[22]: Новости C#12
От: IT Россия linq2db.com
Дата: 21.11.23 14:59
Оценка: 16 (1)
Здравствуйте, gandjustas, Вы писали:

G>https://andrewlock.net/a-failed-experiment-with-interceptors-in-csharp-12-and-dotnet-8/ упс


Ну не повезло чуваку, бывает. Я пока ни на что одобное не нарывался. Могу даже код показать.
Если нам не помогут, то мы тоже никого не пощадим.
Отредактировано 22.11.2023 1:49 IT . Предыдущая версия .
Re[21]: Новости C#12
От: · Великобритания  
Дата: 21.11.23 20:50
Оценка:
Здравствуйте, IT, Вы писали:

IT>·>Ты используешь preview-фичи и они железно работают?!

IT>Исследую. Вообще-то этой фиче всего неделя. Но исследования показывают, что фича для АОП абсолютно работоспособна.
Разработчики AOP-framework говорят, что эта фича для них не подходит. Не знаю кому верить.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[19]: Новости C#12
От: · Великобритания  
Дата: 21.11.23 20:55
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>> Суть можешь написать свой генератор, а логику замены в отдельном файле и класс расширения для замены

S>·>Круто, конечно, но ни для моков, ни для AOP оно не подходит.
S>Знакомство с АОП
S>Там и явовские @Aspect и используется в PostSharp
Причём тут InterceptsLocation?!

S> И они тоже заинтересованы в https://github.com/dotnet/csharplang/issues/7009?WT.mc_id=dotnet-35129-website&ysclid=lp6tob5u2o953641620#issuecomment-1479711571

Ты, видимо, английский плохо понимаешь, но тут они прямым текстом говорят, что это для AOP не подходит и предлагают помочь provide a more elegant and robust solution.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[22]: Новости C#12
От: IT Россия linq2db.com
Дата: 21.11.23 21:35
Оценка:
Здравствуйте, ·, Вы писали:

·>Разработчики AOP-framework говорят, что эта фича для них не подходит. Не знаю кому верить.


Верить, в наше время, нельзя никому, порой даже самому себе. Мне — можно!

Семнадцать мгновений весны (C)


Пробую реинкарнировать аспекты из BLToolkit и пока не вижу никаких принципиальных проблем.
Если нам не помогут, то мы тоже никого не пощадим.
Отредактировано 21.11.2023 21:38 IT . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.