Pull to refresh

Comments 15

здорово, хороший материал и статья написана хорошо

предложение: создайте проект на codeplex с библиотекой быстрого eval, думаю будет очень популярным проектом, я бы, например, пользовался
там есть реализация быстрого Eval?
не нашел
там есть реализация быстрого доступа к свойствам/методам типов.
могу выложить свой ReflectionHelper который использует его
Посмотрел проект по ссылке — есть разница в подходе: в указанном проекте создаются делегаты и потом используются, я же создаю объект доступа к свойству, в котором есть методы чтения/установки значения и можно добавить любой дополнительный код для работы с этим свойством. Плюс у меня реализована практически готовая к использованию инфраструктура кэширования построенных классов (да еще и потокобезопасная), а так же есть оптимизация количества построенных классов: если в дочернем классе свойство не переопределялось, то создается только один объект доступа.
Спасибо. Мой описанный подход используют несколько коллег, но выставить проект полностью я пока не готов, тем более что этот пример входит в более обширный проект и там уже идет использование в контролах ввода.
Как я понял это всё для asp.net.
Я не вижу смысла в такой оптимизации, тк приходится писать лишний код. В asp.net есть outputcache и он в любом случае сведёт разницу между обычным биндингом и вашим методом на нет.
Это можно применять и не для ASP.NET, у меня такой подход используется и в обычных приложениях.
Так же не стоит путать теплое с мягким: кэшироание вывода и ускорение обращения — это разные вещи и не всегда возможно использовать кэширование вывода, а вот от использования быстрого evalа хуже не будет.
Отличная статья!

Скажите, а ((Model)Container.DataItem).PropertyName вы не пробовали? Я обычно использую именно так, избегая Eval, т.к. при этом получаем всю мощь рефакторинга и не работаем со строками. Интересны отличия и в плане производительности, если можете, добавьте в тесты.

Спасибо!
Конечно пробовал, это просто прямое обращение к свойству :). Есть ряд задач, когда от eval не отвертеться.
Извиняюсь, посмотрите, пожалуйста, на последний коммент в ветке, промазал :(
А, это оно в виду и имелось, ясно. А в каких задачах вам от Eval не отвертеться, я как-то не натыкался?
Самое простое — привязать поле ввода к свойству объекта, тут в ASPX пишем <my: control prop=«PropertyName»>.
Более сложное — при генерации документов по шаблонам, но тут без длинного рассказа о том, как генерация работает смысла не понять.

Вообще нужно везде, где есть какой-то класс и нет возможности обеспечить прямое обращение к свойству, то приходится использовать eval.
Так это, ссылка в топике: dema.ru/sources/TestDataBinding.7z а если нужна более продвинутая версия, то ее еще нужно готовить (вытащить из большой библиотеки).
Sign up to leave a comment.

Articles