Skip to content

Dictionary First Data Access

Anatoly Kulakov edited this page Dec 30, 2021 · 4 revisions

Тулеген Кобдиков «Dictionary First – альтернативный подход доступа к данным»

Для доступа к данным обычно прибегают к помощи EF (Entity Framework), который создает и инициализирует новые сущности с помощью рефлексии, что в конечном итоге приводит к существенному (десятикратному по сравнению с кодированием на ADO.NET) снижению скорости. Сериализация объектов модели для передачи в выходной поток WEB API или 3-х звенных приложений приводит к дальнейшему ухудшению производительности.

Для решения проблем с производительностью EF, а точнее, для того чтобы не использовать его вовсе, была разработана библиотека DynaLib, главная роль в которой принадлежит классу DynaObject, который умеет читать параметры из входного потока, вызывать хранимые процедуры на стороне БД, непосредственно работать с выбранной реализацией IDataReader, записывая данные из него в выходной поток в binary, json или xml форматах. При этом не приходится непосредственно писать в коде какие поля или параметры читать, какие будут записаны в поток. Скорость работы библиотеки — как если написать вручную код на основе выбранной реализации IDataReader.

Описание подхода Dictionary First – способа записи словарей метаданных в таблицы БД, возможности генерации на основе этих словарей хранимых процедур. Как настройки словаря колонок полей запросов влияют на чтение параметров из входного потока и запись полей из результатов запросов в выходной поток.


Доклад представил Тулеген Кобдиков в рамках Встречи SpbDotNet №28.

Слайды

Слайды

Clone this wiki locally