Платформа ColdBox - ColdBox Platform
Оригинальный автор (ы) | Ortus Solutions, Corp |
---|---|
изначальный выпуск | 15 июня 2006 г. |
Стабильный выпуск | |
Репозиторий | Репозиторий ColdBox |
Написано в | CFML, Ява |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия Apache v2 |
Интернет сайт | ColdBox.org |
ColdBox является Открытый исходный код, на основе соглашений, модульная каркас веб-приложений предназначен для строительства корпоративные приложения с участием CFML с помощью Иерархический MVC подход. ColdBox использует Соглашение важнее конфигурации и стремится к простоте, быстрому развитию. Он использует Модель-представление-контроллер, Внедрение зависимости, Модульное тестирование, Аспектно-ориентированное программирование архитектурные образцы. ColdBox позволяет разрабатывать автономные модули, которые могут совместно использоваться приложениями. ColdBox - это активный и хорошо документированный фреймворк CFML.[2]
История
- ColdBox был разработан Луисом Маяно, и его исходный код был впервые открыт в 2006 году.
- ColdBox стал профессиональный открытый исходный код проект в 2008 году, когда профессиональные услуги предлагала материнская компания Ortus Solutions, Corp.
- В 2011 году он представил Контроллер представления иерархической модели в качестве основного шаблона проектирования фундамента.
- В 2020 году он представил тесную интеграцию Ява с ЗавершенныйБудущее API для поддержки Будущее и обещания и асинхронный /параллельно программирование
- Последний выпуск - версия 6.0.0 (21 августа 2020 г.)
Платформы
ColdBox поддерживается Люси (Популярный движок CFML с открытым исходным кодом) и Adobe ColdFusion серверы приложений.
Он поддерживает плагины IDE для, Код Visual Studio, Возвышенный текст, Eclipse IDE и Adobe ColdFusion Builder.
Применение
Ниже приведен список некоторых известных пользователей платформы Coldbox.[3]
- Adobe
- Esri
- FAA
- GE
- Космический центр Кеннеди
- Лаборатория реактивного движения НАСА
- Railo
- Люси
- L'Oréal
- ВВС США
- ВМС США
- Чартерные школы Академии успеха
- Американская молодежная футбольная организация
- Музей искусств округа Лос-Анджелес
Обзор
Атрибуты высокого уровня ColdBox:
- An HMVC веб-фреймворк для Холодный синтез Платформа.
- Модульная платформа разработки предоставлять HMVC архитектурные образцы
- Соглашения по конфигурации (без XML)
- Интегрируется с Спящий режим ColdFusion ORM
- Предлагает последовательную структуру, направленную на уменьшение путаницы и легкость обучения
- Упорство слои абстракции (кеширование)
- Встроенная библиотека журналов
- Встроенная инъекция зависимостей и возможности АОП
- Языки, специфичные для внутреннего домена, для определения кэширования, DI / AOP, ведения журнала и фиксации
- Возможность проводить модульное и интеграционное тестирование
- Аякс поддержка, которую легко расширять и настраивать
- RESTful и МЫЛО поддержка веб-сервисов[4]
- Интеграция и мониторинг Adobe Flex / Air
- Предоставляет возможности для нескольких сред разработки
- Подробная документация
- Встроенная интеграция с Java CompletableFuture API для поддержки будущего и обещания.
Внутренние рамки
Платформа ColdBox состоит из трех независимых фреймворков:
- LogBox - Библиотека журналов
- WireBox - Внедрение зависимостей и библиотека АОП
- CacheBox - Механизм кеширования и агрегатор
- ColdBox MVC - Веб-фреймворк на основе соглашений MVC
Контроллеры
ColdBox - это среда, основанная на соглашениях, которая запрограммирована на CFML, в отличие от других сред CFML MVC, которые используют декларативную логику XML для своих контроллеров.
Ниже приведен пример контроллера:
1 составная часть{ 2 3 // Использование внедрения зависимостей для виртуальных сервисов на основе гибернации 4 свойство имя="userService" вводить="entityservice: Пользователь"; 5 6 /** 7 * Немедленный возврат HTML 8 */ 9 функция скажи привет(мероприятие){10 вернуть "Здравствуйте";11 }12 13 /**14 * Немедленный возврат JSON из памятки объекта ORM15 */16 функция скажи привет(мероприятие){17 вернуть userService.получить( rc.мне бы ).getMemento();18 }19 20 /**21 * Возвращать контент в нескольких форматах22 */23 функция список(мероприятие){24 prc.данные = userService.список();25 // выводим всех пользователей в формате json26 мероприятие.renderData( данные=prc.данные, форматы="json, xml, pdf, html" );27 }28 }
Сопоставления URL-адресов
ColdBox поддерживает сопоставление URL-адресов и маршрутизацию в стиле Rails, но адаптирован для ColdFusion. Он также поддерживает создание маршрутизации RESTful:
1 // Ресурсы 2 ресурс( "фотографии" ); 3 4 // Вложенные ресурсы 5 Ресурсы( 6 ресурс = "агенты", 7 шаблон = "/ сайты /: идентификатор / агенты" 8 ); 9 10 // Перенаправления11 маршрут( "/ oldRoute" )12 .toRedirect( "/ main / redirectTest" );13 14 // Прямая маршрутизация15 маршрут( "/ рендеринг /: формат" ).к( "actionRendering.index" );16 17 // С Regex18 маршрут( "post /: postID-regex: ([a-zA-Z] +?) /: userID-alpha / regex: (xml | json)» )19 .к( "ehGeneral.dumpRC" );20 21 // маршрутизация поддоменов22 маршрут( "/" )23 .withDomain( ": username.forgebox.dev" )24 .к( "subdomain.show" );25 26 // Ответы + Условия27 маршрут( "/ ff" )28 .withCondition( функция(){29 вернуть ( Findnocase( "Fire Fox", cgi.HTTP_USER_AGENT ) ? правда : ложный );30 } )31 .toResponse( "Привет, FireFox" );32 маршрут( "/ luis /: lname" )33 .toResponse( " Привет, Луис {lname}, как дела {ты}
", 200, "Что за чувак!" );34 35 // Встроенные ответы закрытия36 маршрут( "/ luis2 /: lname" )37 .toResponse( функция( мероприятие, rc, prc ){38 вернуть " Привет из страны закрытия: # arguments.rc.lname #
";39 } );40 41 // Не просматривает событий42 маршрут( "свяжитесь с нами" )43 .так как( "свяжитесь с нами")44 .смотреть( "simpleView" );45 46 // Именованные маршруты47 маршрут( шаблон="/ routeRunner /: id /: name", имя="routeRunner" )48 .к( "main.returnTest" );49 50 // Групповая маршрутизация51 группа( { шаблон="/ runAWNsync", обработчик="утилиты.AWNsync" }, функция( опции ){52 маршрут( '/:Логин пользователя' )53 .withAction( { получить = "runAWNsync", опции = "returnOptions" } )54 .конец();55 } );56 57 // RESTFul Действия58 маршрут( "/проверка состояния здоровья" )59 .withAction( { получить = "runCheck", опции = "returnOptions" } )60 .к( "утилиты.HealthCheck" );
URL-адреса RESTful
ColdBox позволяет легко создавать URL-адреса RESTful с помощью сопоставлений URL-адресов и обнаружения расширений. Изначально ColdBox может обнаруживать любое расширение при предоставлении ресурса URI:
http://api.coldbox.org/rest/user/luis.jsonhttp://api.coldbox.org/rest/user/luis.xmlhttp://api.coldbox.org/rest/user/luis.pdfhttp: //api.coldbox.org/rest/user/luis.yml
Это позволяет обнаруживать такие расширения, обеспечивать безопасность вокруг них и настраивать расширения.
Поддержка Ajax
ColdBox поддерживает все платформы JavaScript, которые предоставляют возможности Ajax. Он также предоставляет функцию автоматической сортировки для рендеринга любого объекта в следующие форматы изначально: XML, WDDX, JSON, JSONP, TEXT, PDF, CUSTOM.
Поддержка SOAP-Adobe Flex / Air
ColdBox предлагает поддержку для создания, мониторинга и разработки веб-сервисов SOAP и удаленных компонентов Flex / Air. Это позволяет использовать одну парадигму разработки для нескольких интерфейсов GUI.
Ссылки на документацию
внешние ссылки
- Официальный сайт
- Репозиторий кода GitHub
- Онлайн API
- ForgeBox - совместное использование кода на основе сообщества
- Помощь группе Google
использованная литература
- ^ «Версии платформы ColdBox». forgebox.io. Получено 2020-08-21.
- ^ Фреймворк ColdFusion MVC
- ^ http://www.ortussolutions.com/products/coldbox#overview
- ^ Как создать службу RESTful в ColdFusion