Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
CodeDatabaseDelphiНовости

Data ETL: добавление пользовательских привязок LiveBindings к вашим приложениям

pexels-hitesh-choudhary-879109

В недавнем эпизоде TCoffeeAndCode, посвященном Data ETL, было отличное обсуждение использования FireDAC для извлечения данных и управления ими различными способами.

Повтор, если вы его пропустили, ссылка на видео воспроизведения приведена ниже.

Data ETL стал простым способом — благодаря твиту!

Мы также — среди прочего — говорили о преимуществах LiveBindings. Буквально за десять минут до того, как мы должны были начать вебинар, я наткнулся на твит от новоиспеченного MVP Embarcadero Дэвида Корнелиуса, в котором он упомянул, что экспериментировал с LiveBindings RAD Studio.

Что ж, это было как раз вовремя! Дэвид продолжает в своем сообщении в блоге немного описать LiveBindings и свой личный путь, в котором он прошел, как и я, от чувства теплого самодовольства по отношению к ним до признания тонкостей их использования.

LiveBindings мощнее, чем кажется

Когда я впервые услышал о LiveBindings, мне показалось, что они представляют собой своего рода вариацию старых datasource datafieldвид отношений, обнаруженных в старых версиях Delphi и почтенном Visual Basic. Они выглядели так, как будто мы должны связать элементы управления на экране с полем (или полями) таблицы базы данных, хотя и с более красивым графическим редактором отношений.

livebinding

Как только вы начнете царапать поверхность LiveBindings, если вы хоть немного похожи на меня, LiveBindings начнут постепенно раскрывать себя, и вы обнаружите, что существует НАМНОГО больше возможностей, чем простое указание поля для этого типа управления. отношений. Связывание элементов управления с классами и внутренними структурами данных кода — одна из тех функций Programmer Super Power RAD Studio, которые, как я постоянно говорю, являются причиной того, почему такой ленивый программист, как я, на самом деле может быть пугающе продуктивным. Это не я, это RAD Studio и, по крайней мере, в моем случае Delphi.

ETL данных с выражениями LiveBinding

Есть еще несколько замечательных статей, в которых описываются LiveBindings от начального этапа до более сложных тем:

Но Дэвид Корнелиус принял идею LiveBindings и пошел немного дальше!

Как расширить LiveBindings с помощью пользовательских выражений привязки

Дэвид создал набор кода, доступного на GitHub, который добавляет некоторые пользовательские выражения в редактор LiveBindings.

screenshot-2021-05-30-154502

Репозиторий содержит набор единиц, которые могут быть включены в ваши приложения, которые затем расширяют доступные пользовательские выражения LiveBinding, включая такие вещи, как автоматическое вычисление лет с даты, содержащейся в поле базы данных (или записи или классе — это LiveBinding, не надо) забываю).

Пользовательское выражение LiveBindings

Вот несколько строк кода из репозитория Дэвида:

Этот код означает, что вы можете добавить настраиваемое выражение LiveBinding MinutesSince(MyDateTimeDBField, 2)для вывода значения MyDateTimeDBField в виде количества минут с даты и времени, содержащихся в этом поле. Очень хорошо.

Альтернативные способы расчета даты и времени в LiveBindings

Дэвид использует довольно эффективный код в своих методах пользовательских выражений. Если мы включим System.DateUtilsмодуль в наш собственный код, мы сможем изменить и / или расширить функции Дэвида, включив почти любые вычисления даты / времени, содержащиеся в этом модуле, где это необходимо. Например, мы могли бы создать функцию под названием «IsAM» и связать ее с IsAM функцией в модуле DateUtils и заставить ее отображать некоторый специальный текст, если связанное поле datetime было или не было утром или днем.

Эффективны ли привязки RAD Studio LiveBindings?

Конечно, чем больше функций вы добавляете и чем больше модулей вы включаете, тем больше раздувается ваш код, поэтому используйте их экономно. Вам также необходимо убедиться, что ваши пользовательские выражения являются максимально точными и быстрыми, поскольку они связываются и работают с полями или структурами базы данных, и вы, конечно, можете ожидать, что медленная пользовательская привязка LiveBinding повлияет на общую неэффективность, если вы имея дело с тысячами, а может, и с десятками тысяч записей.

Где узнать больше о пользовательских привязках LiveBindings

Вам обязательно нужно прочитать отличную статью в блоге Дэвида Корнелиуса о пользовательских привязках в реальном времени: https://corneliusconcepts.tech/beyond-standard-livebindings

Вы также можете перейти на его страницу GitHub и клонировать репо прямо оттуда: https://github.com/corneliusdavid/LiveBindingsBeyond

На момент написания статьи Дэвид еще не появился в каталоге Embarcadero MVP, но скоро появится. Не могу дождаться, чтобы увидеть больше того, что он придумывает!


RAD Studio Delphi делает извлечение, преобразование и загрузку данных — Data ETL — быстрым, эффективным и простым. Почему бы не скачать пробную копию сегодня?


What's Next
Enter the Enterprise Software Development Article Challenge
Enterprise Software Development Article Challenge

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES