Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.09.2014, 17:43
|
|||
---|---|---|---|
|
|||
Expression Tree. Зачем оно ? |
|||
#18+
Привет. Для чего, в принципе, могут быть полезны деревья выражений в типичном приложении. В GUI приложении, или WIn-сервис может быть. Вдруг я зря их не использовал ни разу :) Можете привести примеры, может быть из собственного реального опыта, когда деревья выражений как-то существенно улучшили приложение. Если выгода лишь в 1%, то не уверен, что ради этого стоит усложнять поддержку приложения (не очень-то хочется слышать проклятья от своих коллег в будущем :) ) Пока я считаю их лишь неким инструментарием для тех, кто пишет некие компиляторы или еще что-то в этом духе - в общем не особо применимом в обычных приложении. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 18:44
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
Ростигай, Вам - незачем. Мне - тоже. Захотите свою ORM создать, с поддержкой LINQ - тогда пригодится. Ну или какие-нить динамические запросы в Where, вводимые пользователем. Хотя в последнем случае шаблон Specifications вроде как рулил. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 19:00
|
|||
---|---|---|---|
|
|||
Expression Tree. Зачем оно ? |
|||
#18+
Спасибо за ответ. Просто интересно стало. Вдруг еще кто-то поделится историей, аналогичной этой (не пойму как вставить ссылку картинкой) : https://lurkmore.to/Файл:Regular_expressions.png :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 19:07
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
РостигайСпасибо за ответ. Просто интересно стало. Вдруг еще кто-то поделится историей, аналогичной этой (не пойму как вставить ссылку картинкой) : https://lurkmore.to/Файл:Regular_expressions.png :) Э... На всякий случай: Regular Expressions и Expressions Tree - это разные вещи. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 19:13
|
|||
---|---|---|---|
|
|||
Expression Tree. Зачем оно ? |
|||
#18+
Arm79, Ну я знаю это. Но спасибо за предупреждение :) Картинко просто в тему первого поста вспомнилась. А вдруг, мол, знание деревьев выражений поможет мне в профессиональном плане. О том и топик. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 19:26
|
|||
---|---|---|---|
|
|||
Expression Tree. Зачем оно ? |
|||
#18+
Ростигай, Expression это скорее нужно для разработчиков и то строг мидл и выше, для простых программистов достаточно общих представлений.. имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 19:54
|
|||
---|---|---|---|
|
|||
Expression Tree. Зачем оно ? |
|||
#18+
Если неизвестно зачем - значит, не нужно. Когда понадобится - будет понятно зачем, и для чего. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 20:18
|
|||
---|---|---|---|
|
|||
Expression Tree. Зачем оно ? |
|||
#18+
Сон Веры Павловны, Та ну, странное предположение. Если ребенок не знает про существование букв и цифр, это еще не значит, что они ему не нужны :) И он такой "Да зачем мне это. Я и без этого проживу, буду водонасосчиком работать" а ему такие "Не, ты смотри научишься читать, в программисты пойдешь, ферари там, 5 этажей апартаменты личные". И вот я такой: "Зачем нужны деревья выражений ? Жил без них программером". А мне тут в теме: "тут ответ на вопрос топикстартера + про ферари и апартаменты" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.09.2014, 20:28
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
Ростигай, ну в .NET хватает специфических вещей. Reflection.Emit используете в GUI приложениях? А он есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2014, 05:28
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
РостигайВ GUI приложении...Например, вот: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
vs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Чуешь разницу? В Asp.Net MVC куча хелперов использует такой подход, да много где. Про LINQ-to-XXX уже сказали, это основное применение Expression. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2014, 10:56
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
Алексей КРостигайВ GUI приложении...Например, вот: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
vs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Чуешь разницу? В Asp.Net MVC куча хелперов использует такой подход, да много где. Про LINQ-to-XXX уже сказали, это основное применение Expression. пожалуй кроме этого нигде не использовал. Ну один раз собирал "дерево" и компилил вместо аналогичного подхода с рефлекшеном ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2014, 11:49
|
|||
---|---|---|---|
|
|||
Expression Tree. Зачем оно ? |
|||
#18+
РостигайЕсли ребенок не знает про существование букв и цифр, это еще не значит, что они ему не нужны :) Аналогия некорректна, поскольку предполагает развитие разработчика на уровне ребенка. Хотя такие есть, не спорю. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.09.2014, 12:21
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
Ростигай, Классические программы могут менять свои данные во время исполнения. Используя деревья выражений, можно менять код во время исполнения, а это уже попахивает искусственным интеллектом. То есть такие программы смогут обучаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2014, 07:03
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
Алексей КРостигайВ GUI приложении...Например, вот: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
vs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Чуешь разницу? С версии 4.5 это уже не комильфо. Рулит CallerMemberName. А вот когда надо получить строковое имя переменной или функции: всякие такие штуки и их вариации, типа расширяющих дженериков, для удобства Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2014, 07:08
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
ЕвгенийВРостигай, Классические программы могут менять свои данные во время исполнения. Используя деревья выражений, можно менять код во время исполнения, а это уже попахивает искусственным интеллектом. То есть такие программы смогут обучаться. А ещё можно передавать код через сериализацию, не выходя из рантайма и не используя для этого внешние компиляторы. Правда, я не уверен, что метод Expression<TDelegate>.Compile не использует внешний компилятор и всё делает чисто "средствами рантайма дотнета". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.09.2014, 10:46
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
НемоКэп42А ещё можно передавать код через сериализацию, не выходя из рантайма и не используя для этого внешние компиляторы. Хейсберг обещал сериализацию деревьев выражений, но что то у них не сраслось. НемоКэп42Правда, я не уверен, что метод Expression<TDelegate>.Compile не использует внешний компилятор и всё делает чисто "средствами рантайма дотнета". MSIL генерируется "средствами рантайма дотнета", дальше JIT компилятор, как обычно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.09.2014, 10:32
|
|||
---|---|---|---|
Expression Tree. Зачем оно ? |
|||
#18+
НемоКэп42Алексей Кпропущено... Например, вот: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
vs Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Чуешь разницу? С версии 4.5 это уже не комильфо. Рулит CallerMemberName.StackTrace Class есть с версии 3.5 НемоКэп42А вот когда надо получить строковое имя переменной или функции: всякие такие штуки и их вариации, типа расширяющих дженериков, для удобства Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1402455]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 337ms |
total: | 474ms |
0 / 0 |