Статьи

Обзор DataBoss

Мне удалось заполучить копию DataBoss Луиса Маджано,  и я хотел поделиться с ней  своими мыслями.

Хотя DataBoss — это работа команды ColdBox, его можно запустить как отдельную установку вместе с вашим существующим приложением (независимо от того, какую платформу — или ее отсутствие — вы использовали). Если вы используете ColdBox, вы можете просто вставить DataBoss в качестве модуля. Существуют также разные редакции для Railo, ColdFusion 9 и ColdFusion 10. Я не уверен, в чем различия, поскольку исходный код (понятно) зашифрован, я предполагаю, что разные версии связаны с различиями в шифровании между различными механизмами, а не другая функциональность.

Я протестировал версию ColdFusion 9 на нескольких существующих приложениях с различными уровнями сложности.

Моей первой попыткой запустить его был типичный нетерпеливый подход codemonkey — изменить имя источника данных и попытаться запустить приложение! Пока приложение загружено, оно не может найти ни одного из моих постоянных CFC. В этот момент я посмотрел двухминутное видео на веб-сайте DataBoss  http://www.data-boss.com/,  которое представляет собой хорошие часы и наглядно демонстрирует процесс начала работы. По сути, все, что я делал, это настраивал отображение на мои постоянные CFC и указывал настройку cfclocation на это отображение:


this.mappings["/model"] = ExpandPath("../model/");
this.ormsettings.cfclocation=this.mappings["/model"];

Как только я это сделал, DataBoss волшебным образом ушел и нашел мои постоянные ХФУ и сделал некоторый самоанализ!

Интерфейс DataBoss прост и удобен в использовании. Он использует загрузочный CSS-фреймворк, так что ждите таких приятных и ярких кнопок! Все ваши постоянные CFC перечислены в раскрывающемся списке, так что вы можете легко переключаться между ними. Выбор одного из них приводит к просмотру списка по страницам всех записей для этого объекта. Вы можете просматривать записи, фильтровать их или сортировать их. Есть кнопки удаления и редактирования. Кроме того, вы решили добавить запись или массовое удаление записей. Существует также опция экспорта данных в различные форматы (в том числе JSON, JSONP и XML), которые, как мне показалось, были неплохой идеей (подробнее об этом позже!).

Когда вы редактируете запись, DataBoss достаточно умен, чтобы отобразить правильный тип поля для данных. Например, дата отображается с помощью элемента управления выбора даты, а логические поля отображаются как переключатели «Да / Нет». Кроме того, DataBoss проанализирует базу данных, чтобы увидеть, какие поля не допускают нулевые значения, и сделает их обязательными в форме. Добавив некоторые дополнительные метаданные (атрибут db_html) к вашим свойствам (в ваших постоянных CFC), вы фактически можете получить больше возможностей для визуализации полей. Например, вы можете использовать заполнители HTML5 или указать, что вам нужно поле ввода пароля вместо поля ввода простого текста. Существует также атрибут db_validate, который вы можете использовать, который поддерживает сопоставление регулярных выражений для проверки.

Любые ваши отношения между вашими сущностями распознаются, и раскрывающиеся списки показываются там, где это необходимо. Существует также дополнительная вкладка «коллекции» для каждой записи, так что вы можете получить доступ к данным связанного объекта в отношении для просматриваемой в данный момент сущности и щелкнуть, чтобы сохранить ее. Если это звучит странно, это не так, когда вы это видите!

Если вам нужна более сложная проверка, вы можете использовать дополнительные аннотации в ваших CFC. DataBoss использует механизм проверки ColdBox  http://wiki.coldbox.org/wiki/Validation.cfm  под капотом. Я не проводил тщательного тестирования этой части DataBoss, но, поскольку она является частью ядра ColdBox, я ожидал, что она будет надежной.

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

Сначала я думал, что DataBoss — это, по сути, система для выполнения операций CRUD, но у нее есть еще один очень умный аспект, который, как я вижу, приносит реальную выгоду в определенных ситуациях; он может предоставлять ваши данные через интерфейс RESTful. В документах есть несколько хороших примеров, вот два для получения пользователей в формате JSON:


/databoss/entity/user.json

Это, как и следовало ожидать, вернет все сущности в формате JSON. Или, если вы просто хотите получить одного пользователя, вы получите, если позвоните:


/databoss/entity/user/id/2.json

If the entity you are retrieving has related entities, then DataBoss will fetch those and include them in the data export for you.

The only thing that concerns me about DataBoss is that by default it is not secured. This is not a failing of DataBoss, so can’t be considered a criticism and Basic Authentication can be enabling simply by setting a flag to true in the config file. It is the responsibility of a developer or server admin to ensure that data is not compromised — I just can’t help feeling that at least one person is going to accidentally put it in production without securing it first.

DataBoss is a commercial offering from Ortus Solutions, but I can see if saving hours of development time and will be a worthwhile investment for many. If you want to find out more about DataBoss check out the dedicated website at:

http://data-boss.com/

http://www.ortussolutions.com/products/databoss

The docs can be found here:

http://data-boss.com/docs/