Деревья выражения Linq в Compact Framework

Отсутствие деревьев выражений в Compact Framework несколько раз подстегивало меня, но я действительно не искал решения.

Сегодня я нашел сообщение в блоге об альтернативном System.Linq.Expressions, построенном поверх Mono System.Core и используемом, например, по db4o (вы можете найти здесь).

Мой вопрос: вы использовали эту библиотеку, и если да, то каковы были ваши впечатления от нее (особенно в отношении производительности)?

Ответ 1

Для LINQ to db4o System.Linq.Expressions работает очень хорошо. Вероятно, это не будет узким местом приложения Compact Framework, запрашивающего источник не LINQ для объектов.

Если вы просто используете его для выполнения метапрограммирования, используя Compile over и over, он не будет работать так же хорошо, как на рабочем столе, поскольку это в основном интерпретатор на основе отражения. Для чего он стоит, интерпретатор передает полный набор тестов Mono для деревьев выражений (это вполне последовательное).

Единственная ошибка, связанная с этим, связана с отсутствующей функцией Compact Framework BCL, что делает невозможным дерева выражений, когда задействованы общие поля.

Ответ 2

Это не дает прямого ответа на ваш вопрос, но может показаться вам интересным. IronPython и IronRuby отправить с помощью исходный код для внедрения .NET 4.0 в System.Linq.Expressions. У них также есть интерпретатор для деревьев выражения Linq/DLR. Tomáš Matoušek смог заставить IronRuby работать на эмуляторе Windows Phone с помощью этого интерпретатора.