Сразу объясню название статьи. Изначально планировалось дать хороший, надежный совет по ускорении использования рефлекшена на простом, но реалистичном примере, однако в ходе бенчмаркинга выяснилось, что рефлексия работает не так медленно, как я думал. Да и вообще проблема не с ней. Так как пример достаточно жизненный и реализованный в принципе как обычно делается в энтерпрайзе, получилось достаточно интересная, как мне кажется, демонстрация.
Читать полностью »
Рубрика «linq» - 2
Неудачная статья про ускорение рефлексии
2020-05-02 в 20:46, admin, рубрики: .net, C#, linq, performace, reflection, высокая производительность, производительность, Серверная оптимизация, управление разработкойOData babel плагин
2020-04-19 в 15:32, admin, рубрики: babel plugin, fluent, javascript, linq, odata, TypeScript
Статья описывает трансляцию кода TypeScript в OData запросы во время компиляции программы.
Плагин babel-plugin-ts2odata выполняет разбор JavaScript AST с помощью библиотеки TsToOdata описание которой в моей предыдущей статье Типизированные запросы OData в TypeScript.
Типизированные запросы OData в TypeScript
2020-02-22 в 20:04, admin, рубрики: .net, fluent, linq, odata, TypeScript
Традиционно запросы OData к данным выражаются в виде простых строк без проверки типов при компиляции или без поддержки IntelliSense, кроме того, разработчику приходится изучать синтаксис языка запросов. Данная статья описывает библиотеку TsToOdata, которая превращает запросы в удобную языковую конструкцию и применяется аналогично классам и методам. Вы создаете запросы к строго типизированным коллекциям объектов с помощью ключевых слов языка TypeScript и знакомых операторов.
Методы оптимизации LINQ-запросов в C#.NET
2020-02-20 в 13:52, admin, рубрики: .net, C#, linq, linq to sql, Microsoft SQL Server, MS Sql Server, orm, sql, sql server, t-sql, Администрирование баз данных, базы данныхВведение
В этой статье рассматривались некоторые методы оптимизации LINQ-запросов.
Здесь же приведем еще некоторые подходы по оптимизации кода, связанные с LINQ-запросами.
Читать полностью »
Некоторые аспекты оптимизации LINQ-запросов в C#.NET для MS SQL Server
2019-07-12 в 6:48, admin, рубрики: .net, C#, linq, linq to sql, Microsoft SQL Server, sql, sql server, t-sql, Visual Studio, Администрирование баз данных, оптимизацияLINQ вошел в .NET как новый мощный язык манипуляции с данными. LINQ to SQL как часть его позволяет достаточно удобно общаться с СУБД с помощью например Entity Framework. Однако, достаточно часто применяя его, разработчики забывают смотреть на то, какой именно SQL-запрос будет генерировать LINQ.
Читать полностью »
Помогаем Queryable Provider разобраться с интерполированными строками
2019-03-03 в 18:32, admin, рубрики: .net, C#, dotnet, entity framework core, expression trees, interpolation, linq, linq2sql, string, ПрограммированиеТонкости Queryable Provider
Queryable Provider не справляется вот с этим:
var result = _context.Humans
.Select(x => $"Name: {x.Name} Age: {x.Age}")
.Where(x => x != "")
.ToList();
Он не справится с любым выражением, которое будет использовать интерполированную строку, но без трудностей разберет такое:
var result = _context.Humans
.Select(x => "Name " + x.Name + " Age " + x.Age)
.Where(x => x != "")
.ToList();
Особенно болезненно править баги после включение ClientEvaluation(исключениe при вычислении на клиенте), все профайлы автомаппера должны быть подвергнуты жесткому анализу, на поиск этой самой интерполяции. Давайте разберемся в чем дело и предложим свое решение проблемы
Деревья выражений в enterprise-разработке
2018-09-26 в 12:09, admin, рубрики: .net, .net clr, C#, clr, dotnext, dotnext2018moscow, expression tree, expression trees, linq, Блог компании JUG.ru Group, Компиляторы, Программирование, системное программированиеДля большинства разработчиков использование expression tree ограничивается лямбда-выражениями в LINQ. Зачастую мы вообще не придаем значения тому, как технология работает «под капотом».
В этой статье я продемонстрирую вам продвинутые техники работы с деревьями выражений: устранение дублирования кода в LINQ, кодогенерация, метапрограммирование, транспиляция, автоматизация тестирования.
Вы узнаете, как пользоваться expression tree напрямую, какие подводные камни приготовила технология и как их обойти.
Под катом — видео и текстовая расшифровка моего доклада с DotNext 2018 Piter.
Читать полностью »
LinqToSolr — используем LINQ для получения данных из Solr
2017-04-21 в 6:59, admin, рубрики: .net, C#, linq, solr
В силу того, что в нашей компании в качестве платформы полнотекстового поиска выбор пал на Solr, возникло сильное желание упростить работу с запросами к Solr через использование LINQ выражений.
Перешерстив интернет на наличие альтернатив, я пришел к выводу, что на данный момент необходимой мне библиотеки в общем доступе нет. Максимум, что удалось найти, это очень частичную реализацию запросов в Solr.NET (и скептический комментарий самого автора).
Результатом стала маленькая библиотека LinqToSolr, которая содержит в себе реализацию интерфейса IQueriable<> с возможностью конвертации запросов в понятный Solr API и обратно.
Читать полностью »
Функциональный C#
2017-03-30 в 18:25, admin, рубрики: .net, C#, Either, functional programming, linq, PipeTo, функциональное программированиеC# — язык мультипарадигмальный. В последнее время крен наметился в сторону функциональщины. Можно пойти дальше и добавить еще немного методов-расширений, позволяющих писать меньше кода, не претендуя при этом на то, чтобы превратить язык в F#.Читать полностью »
Использование выражений для фильтрации данных из БД
2017-03-03 в 11:43, admin, рубрики: .net, C#, c#.net, entityframework, expressions, linq, Алгоритмы, ПрограммированиеСтатья основана на ответе в StackOverflow. Начну с описания проблемы, с которой я столкнулся. Есть несколько сущностей в базе данных, которые нужно отображать в виде таблиц на UI. Для доступа к базе данных используется Entity Framework. Для этих таблиц есть фильтры, по полям этих сущностей. Нужно написать код для фильтрации сущностей по параметрам.Читать полностью »