Категорія: Frameworks

 

Современные фреймворки для качественной разработки на Adobe Coldfusion

(Доклад на встрече .NET User Group Sevastopol 29 июля 2011г., офис компании Softserve, Севастополь)

(Слайды в виде PDF-файла)

Фреймворк - это кусок кода, который используется повторно для создания проектов на его основе. Это своеобразны шаблон проектов. Фреймворк призван ограничивать фантазию разработчика, ставить определенные рамки, но взамен фреймворк предлагает хорошие, проверенные архитектурные решения. Следуя вдоль линий, намеченных фреймворком, разработчик в результате получит предсказуемый результат и качественный "робастный" код.

Прежде чем рассказать о фреймворках для Coldfusion, напомним, что представляет из себя этот продукт. Adobe Coldfusion - это сервер приложений, написанный по спецификации JEE, и реализующий язык Coldfusion Markup Language (CFML). CFML - интерпретируемый язык, с помощью которого можно создать веб-сайты любой сложности. Кроме веб-сайтов для Интернета, с помощью Coldfusion легко создавать сайты для корпоративных сетей (Интранетов), благодаря хорошей интеграции с корпоративными серверами, работе с разными форматами данных и протоколов.

Coldfusion появился в 1995 году и обрел популярность во времена "бума дот-комов". В то время сайты делались вебмастерами на HTML, без привлечения скриптовых языков, а единственной опцией было использование Perl. Последний нельзя считать легким для изучения и применения вебмастером - человеком с преимущественно дизайнерским набором навыков. Ответом на это было сделать простой теговый язык наподобие HTML, для быстрого освоения и разработки сайтов. После краха доткомов, Coldfusion несколько растерял популярность на волне популярности ASP и PHP, но выжил благодаря хорошей адаптации в корпоративной среде и в государственном аппарате США. Сейчас происходит второе рождение Coldfusion, и ему есть что предложить миру.

Скорость и легкость разработки на CFML имеет свои обратные стороны. Зачастую, код писался слишком быстро, чтобы выйти на рынок быстрее конкурентов. Качество было забыто, и зачастую код писался непрофессиональными программистами, что не могло отразиться на качестве. Отсутствие общей архитектуры проекта и организации кода, привело к появлению "спагетти"-кода (длинные куски кода, связанные с другими кусками в неразрешимые клубки), в котором сложно разбираться, исправлять ошибки и расширять функциональность. Выделим основные проблемы неструктурированного кода:

  • отсутствие общей для проекта структуры кода
  • низкая связность кода (low cohesion) - бизнес-логика "размазана" по разным участкам кода в проекте
  • высокая связанность кода (tight coupling) - модули кода могут выполнять действия только в связке с другими модулями или внешними данными)

Соответственно, и решение этих проблем лежит в:

  • архитектуре - применении паттерна MVC
  • повышении связности кода (high cohesion) - организации модулей, каждый из которых реализует одну, заранее хорошо определенную бизнес-функцию
  • понижении связанности кода (loose coupling) - делать модули как можно менее зависимыми друг от друга, передавая параметры или обмениваясь сообщениями

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

Опишу несколько популярных фреймворков. Как правило, фреймворки используют такой паттерн для URL:

index.cfm?action=module.procedure

Единая точка входа в приложение - index.cfm, и некоторый "переключатель" - переменная action, в которой задается модуль и действие внутри этого модуля.

Fusebox

http://www.fusebox.org/

Один из ранних фреймворков. В версии 3 использовал CFML для описания модулей, в версии 4 это нужно делать через XML. В 5 версии появилась возможность отказаться от XML в пользу использования CFC. В настоящий момент фреймворк не поддерживается, хотя core-файлы стабильны и пригодны для работы с любым проектом.

Mach-II

http://www.mach-ii.com/

Первый объектно-ориентированный фреймворк, представлен с появлением поддержки CFC в Coldfusion MX (2003). С помощью XML-файла фремворк описывает события (events), компоненты CFC, реагирующие на эти события, и views - CFM-файлы, отвечающие за внешний вид. Фреймворк развивается, на нем реализованы многие корпоративные приложения.

Coldspring

http://www.coldspringframework.org/

При работе с многими CFC-компонентами может встать вопрос об их упорядоченном использовании. Например, когда нужно инстанцировать зависимые объекты или синглтоны. Чтобы не следить за зависимостями вручную, фреймворк Coldspring может делать это автоматически. Для этого используется XML-конфигурация используемых объектов (beans), а для вызова конкретного объекта можно использовать лишь запрос к фабрике объектов Coldspring.

TransferORM

http://transfer-orm.com/

Object-Relation Mapping - технология работы с данными в БД с помощью объектного подхода. Один экземпляр (объект) сопоставляется (mapped) одной строке в таблице БД. Это позволяет получать доступ (считывать), добавлять, изменять и удалять записи из БД, не прибегая к написанию SQL-кода. В конечном итоге это экономит время на рутинных операциях. TransferORM - это ORM-фреймворк для Coldfusion 7 и выше. Существующие таблицы БД (и их связи) описываются XML-файлом, по которому в последствии генерируются объекты. Каждый объект содержит поля, соответствующие полям таблицы в БД, а также геттеры-сеттеры для доступа к этим полям. TransferORM поддерживает возврат списков сущностей, поиск по фильтру, поиск по запросу (используется язык TQL - Transfer Query Language).

FW/1 (Framework One)

http://fw1.riaforge.org/

Новый фремворк, построенный по принципу Convention over Configuration, при котором описание структуры ложится на файловую систему. Фреймворк реализован всего одним CFC файлом, от которого нужно унаследовать Application.cfc нового проекта. Фреймворк реализует паттерн MVC таким образом. Контроллером модуля является один CFC, находящийся в папке /controllers, в этом контроллере определены методы данного модуля. Для доступа к внешним данным можно использовать службу, которая также реализуется через CFC в папке /services. После выполнения метода контроллера, данные собранные в контроллере и службе, через переменную rc передаются дальше, во view, который лежит в соответсвенно папке views/module/procedure.cfm. Для облегчения дизайнерского труда используются шаблоны, которые лежат в папке /layouts и могут иметь три уровня вложенности. Вот иллюстрация, как происходит вызов и сборка конечной страницы:

 

Минимально необходимым файлом для создания приложения на FW/1 является /views/module/procedure.cfm. Остальные файлы, включая контроллеры, сервисы и лэйауты, необязательны. Framework One подкупает своей простотой использования и скоростью работы.

Заключение

Описанные фреймворки - не единственные, но популярные, которые я бы лично рекомендовал для любого проекта. Мой личный фаворит - FW/1 - за его легкость и простоту. Используя наработанные библиотеки классов (CFC) в проекте на базе FW/1, я обычно использую Coldspring для описания зависимостей между классами в библиотеке, а также TransferORM для упрощения рутинных операций. Для сложных запросов я не прибегаю к помощи TransferORM, чтобы не усложнять код; я пишу обычный SQL-код и хранимые процедуры. Применять тот или иной фреймворк нужно осмысленно, примеряя его возможности к потребностям конкретного проекта и конкретной команды.

Дополнительное чтение по теме:

http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/oo-and-fusebox-no-xml-141

http://www.adobe.com/devnet/coldfusion/articles/frameworks_intro.html

Автор: Родион Быков | Опубліковано: 29.07.2011 о 09:00 | Категорії: CFML - CFUG - Frameworks - Fusebox - FW/1 - MachII -

 

Новини CF-OpenSource v16

Цей спец-випуск присвячено виходу нових версій двох прогресивних фреймворків.

 

Команда розробників CFWheels невпинно наближається до великого релізу, тим часом випустивши оновлення за номером 1.0.5.

Воно включає в себе більш як 2 десятки виправлень. Повний їх список можна переглянути в публікації Released: ColdFusion on Wheels 1.0.5

 

Натомість Шон Корфілд (Sean Corfield) його вже досяг, повідомивши про вихід версії 1.1.

Серед оновлень:

  • Рекомендований скелет додатку.
  • Більш гнучка конфігурація підсистем та контролерів.
  • Нові можливості API.

Повний список можна переглянути в публікації FW/1 Release 1.1 Available!

 

Автор: Сергій Галашин | Опубліковано: 20.06.2010 о 21:21 | Категорії: OpenSource - Frameworks - CFWheels - FW/1 -

 

Новини CF-OpenSource v15

Оновлення продуктів та додатків

SeleniumMX - A Selenium + MxUnit Framework

Вельми перспективний проект, що об'єднує в собі два фреймворки для тестування.

Mach-II 1.9

Допоміжний випуск фреймворку, що слідує за нещодавним 1.8.

cfUniForm v.4.0 - Leaner, Meaner, More Features - Just Plain Ol' Better

Нова версія фреймворку для побудови форм.

ColdMVC Available on GitHub

Новий convention-based фреймворк для CF9, що використовує можливості Hibernate.

Flash Inspector

Компонента для обчислення розмірів flash-роліку.

twitPic API 1.1

Компонента для взаємодії з API сервісу для розміщення малюнків.

ValidateThis CFWheels Plugin 0.5

ValidateThis 0.92

Додаток до CFWheels, що дозволяє використовувати на сайті ValidateThis, фреймворк для валідації форм.

Rhea: Rackspace Cloud API 0.99

Втілення взаємодії з API хостингу Rackspace Cloud.

ScriptWriter 3.0.0.0_alpha6

Модуль, що дозволяє програмно керувати включенням JavaScript та CSS до сторінок сайту, в тому числі з мінімізацією.

bit.ly URL Service API CFC 1.0

Втілення взаємодії з API Bit.ly, сервісу скорочення посилань.

Hermes Events 1.0

Втілення взаємодії з API Eventbrite, сервісу для організації подій.

ColdFusion File Manager 1.0 alpha 3

Файловий менеджер з GUI на Ajax.

BlogCFC 5.9.5.005

Оголошення про випуск оновлення популярного блогу.

 

Різні оновлення та повідомлення

Code coverage & cyclomatic complexity calculations coming to ColdFusion

Обговорення системи для тестування Chimera.

Framework One Sample Application - QBall

Приклад розробки на FW/1 від Рея Кемдена.

Do you want to see this in LightWire?

Пітер Белл запитує про доцільність додавання деяких нових можливостей до LightWire.

Day one with FW/1

Ще один опис першого досвіду роботи з FW/1.

MangoBlog/Oracle Integration

Опис досвіду розгортання Mango з Oracle в якості СУБД.

Content Management and the Splash CMS — Introduction

Огляд Splash CMS, побудованої на базі CFWheels.

Автор: Сергій Галашин | Опубліковано: 16.03.2010 о 11:28 | Категорії: ColdFusion 9 - OpenSource - ORM - News - RIAForge - Frameworks - Links - FW/1 - CFWheels -

 

Новини CF-OpenSource v14

Оновлення продуктів та додатків

Model Glue 3.1 Release Candidate

New Official Release - Model-Glue 3.1

Вийшов новий випуск популярного фреймворку. Він містить чималу кількість виправлень та покращень, повний список яких можна переглянути за першим посиланням.

ColdDoc 1.0 Alpha Released

Марк Мендел робить короткий огляд планів щодо першого повноцінного релізу його системи для автоматизації документування.

Salsa 1.0

Додаток, що замінює редактор на Markdown в Mango Blog.

Prettify 1.0

Втілення підсвітки синтаксису з prettify.js для Mango.

<cfscrum> 0.01

Позиціонується як проект для управління процесом розробки з використанням Agile/Scrum методик. На момент написання публікації чомусь було відсутнє посилання до завантаження.

Google Translation API CFC

Назва говорить сама за себе.

ColdBooks

Компонента для втілення можливостей API Intuit QuickBooks. Яких саме, пропонується дізнатися з документації.

IMAP Watcher Event Gateway

Компонента для організації взаємодії з IMAP-шлюзом.

SNMP Event Gateway

Компонента для організації взаємодії з SNMP-шлюзом.

Alagad Image Component

Колись комерційний продукт для роботи з малюнками зроблено вільним, очевидно завдяки розповсюдженю CF8+, де ці можливості втілені на рівні мови.

Alagad Captcha Component

Ситуація аналогічна попередньому записові.

cfCalais – A Coldfusion tag to easily create semantic data

Мітка для додавання семантичної розмітки для даних на сторінках сайту.

Mach-II Simplicity (1.8) Released

Випущено нову версію популярного фремворку.

 

Різні оновлення та повідомлення

Trying out the CFWheels framework

Звіт про експерименти початківця з CFWheels.

Front Controllers Should NOT Extend Application.cfc

Барні Бувер пропонує подискутувати щодо потреби наслідування Application.cfc на прикладі FW/1

Using JavaLoader in Mach-II

Замітка розповідає про те, як можна вбудувати JavaLoader до проекту на Mach-II.

ColdFusion Query of Query tips and tricks

Ендрю Мерсер ділиться деякими знахідками та підказками з використання QoQ.

Cache Template in Request Setting Explained

Піт Фрейтаґ пояснює особливості цієї нової можливості CF9.

Автор: Сергій Галашин | Опубліковано: 14.03.2010 о 11:18 | Категорії: Discussions - ColdFusion 9 - MachII - Community - RIAForge - OpenSource - Links - News - Model-Glue - Frameworks - FW/1 -

 

Новини CF-OpenSource v13

 

Оновлення продуктів та додатків

 ColdFusion on Wheels 1.0.1 Maintenance Release

ColdFusion on Wheels 1.0.2 Maintenance Release

Відразу два супровідні випуски (maintenance releases) "Коліс", перший містить ряд покращень стабільності фреймворку, але містить якісь невідомі (в сенсі не розкриті розробниками) проблеми, для вирішення яких і було в пожежному режимі випущено наступне оновлення.

Mura CMS: New FW/1 Plugin

Додаток від розробників CMS, що дозволяє легко включати існуючі додатки на FW/1 до проекту.

Spotify MetaData API 1.0

Компонента для взаємодії з API системи Spotify

YUICompressor CFC 0.11

Втілення можливості використання цієї Java-бібліотеки з ColdFusion

Twilio Library 0.3

Компонента для взаємодії з API системи Twilio (підтримуються як голосові, так і SMS послуги)

Layout Components 1.0 RC1

Бібліотека для керування макетами сайтів.

!Lists Alpha 1

Додаток, що втілює механізм списків.

 

Різні оновлення та повідомлення

CFCommons.org

Проект The ColdFusion Common Modules це колекція ініціатив, спрямованих на розробці стабільних, об'єктно-орієнтованих бібліотек ColdFusion компонент з відкритим кодом, пристосованих для багаторазового використання.

Merlin 1.0.1

Сьогодні було випущено стабільну версію цього менеджера для ColdFusion серверів. Він розпосвюджується вільно (крім вихідних кодів AIR-додатку - тому новину було розміщено в цій частині публікації), але пропонується платний пакет з технічною підтримкою та оновленнями.

Автор: Сергій Галашин | Опубліковано: 19.02.2010 о 22:50 | Категорії: CFWheels - CMS - Frameworks - FW/1 - News - OpenSource - RIAForge -

 

Новини CF-OpenSource v12

Оновлення продуктів та додатків

 CFZen Framework (Pre-Alpha Release)

CFZen Framework on RiaForge

Так, ще один простий фреймворк.

EasyXMS 2.0

CMS, що базується на Model-Glue з ColdSpring.

CFEnomAPI 1.0

Компонента для взаємодії з API системи ENOM.

CFB: Acme Boomerang 0.1

Make Your ColdFusion Builder Extensions Auto-Update

Мета-додаток, що додає можливість автоматичного оновлення додатків CFB, наприклад безпосередньо з RIAForge.

Mango: ShareOnWeb 2.0

Ще один додаток, що дозволяє поширювати інформацію про публікації блогу в багатьох мережевих ресурсах.

Mango: Fresh Media 1.1

Жупан для блогу, створений на базі шаблону Styleshout.

Mango Plugin: Calendar Pod 1.0

Mango: Додаток, що дозволяє розмістити календар в бічній панелі блогу.

DropIO CFC 0.1

Компонента для взаємодії з API системи drop.io

Quantcast Analytics Mura CMS Plugin 1.5

Дозволяє інтегрувати підрахунок статистики від системи Quantcast.

cfcFaint 0.8

CFC-обгортка для Java "Faint", системи розпізнавання облич.

BonCode PGP 1.0

Втілення відомої бібліотеки PGP для ColdFusion.

Event Calendar 1.0.4

Календар, що дозволяє спільний доступ для групи користувачів.

CFB: Builder Stats

Показ невеличкої статистики, як то кількість рядків коду.

PostIt Beta

Конструктор для створення опитувань.

AssetTracker RC1

Система для документування та аналізу ІТ-інфраструктури компанії.

ColdFire 1.5 Beta

ColdFire ColdFusion Debugger 1.4.207.218/1.5.207.223

Оновлення, що нарешті пропонує підтримку Firefox 3.6 та Firebug 1.5.

cfHSSF

Після двохрічної паузи оновлено бібліотеку для роботи з POI.

Model-Glue 3.1 Maintenance Release Beta

Один з популярних фреймворків готується до релізу, випускаючи бета-версію.

SalesForce CFC v0.7 Released - Call for Features for 1.0

Оновлення компоненти для взаємодії з SalesForce.

cfUniForm 3.5 Released

cfUniForm 3.5

Розповідь про новий фреймворк, призначений для побудови форм.

 

Різні оновлення та повідомлення

Using Mura as a Blogging Platform

Невелика розповідь про те, як можна створити блог на базі Mura CMS.

Intro into Wheels ORM & Validation Presentation

Матеріяли з презентації щодо можливостей ORM та валідації у фреймворкові CF on Wheels.

Fusebox Fuseactions In Eclipse Outline View

Автор розповідає як можна модифікувати конфігурацію XML редактор Aptana щоб побачити ф'юзекшни в outline.

Update to 'Core' Framework. Now in GitHub!

Автор легкого фреймворку Core проводить екскурс в проект.

Автор: Сергій Галашин | Опубліковано: 14.02.2010 о 11:39 | Категорії: CMS - Frameworks - News - OpenSource - RIAForge -

 

Новини CF-OpenSource v10

Оновлення продуктів та додатків на RIAForge

 

cfRhino 0.3.4

Новий MVC фреймворк.

jTidy CFC 1.2

Компонента, що за допомогою jTidy ковертує текст до валідного xHTML.

cfturbine 1.2_BETA

Двигунець для створення прототипів, що реалізує принципи scaffolding.

SQLiteCFC 1.1a

Компонента для безпосередньої взаємодії з SQLite базою без участі JDBC, реалізує стандартні операції, вміє зберігати набір CF даних безпосередньо в таблицю SQLite.

CFC2UML 0.6

Додаток для експорту мета-даних компоненти до XML-файлу, що може бути імпортований до редактора UML.

Deadwood 1.0

Додаток для пошуку зайвих CFM-файлів в директоріях проекту. Навряд чи буде корисним у випадку використання фреймворків, бо базується на пошуку безпосередніх підключень (cfinclude) сторінок.

YelpCFC .1

Втілення API рекомендаційного сервісу Yelp.

Collection Iterator 1.0

Втілення механізму ітератора для складних типів даних.

cfBCove 1.0

Втілення API сервісу хостингу онлайн-відео Brightcove.

Linked List 2.1

Втілення складної структури даних: зв'язаний список.

i18n 1.0

Бібліотека для інтернаціоналізації додатків, потребує CF9.

Fixed File Reader 1.0

Вельми корисна бібліотека, що дозволяє не зациклюватися на XML як форматі для обміну даними, але й підтримувати вже існуючі складні текстові формати (як EDI чи VCF4).

easyImages 0.8

Бібліотека, що реалізує базові операції з малюнками.

Smartermail API wrapper + UI 1.0

Втілення API програмного комплексу Smartermail.

 

Кілька нових додатків для Mango

 

OpenSearch Plugin 1.0

Розширення для вбудови пошуку блогу в пошукове вікно оглядача.

Google Translation Widget

Додає вказаний віджет до сайту, щоб читачі могли швидко перекладати вміст за допомогою перекладача Google.

Social Links 1.0.1

Додає блок зі швидкими посиланнями на популярні соціальні веб-сайти, наприклад Facebook чи Twitter.

PowerMail 1.0

Дозволяє надсилати листи з блогу (наприклад, сповіщення про коментарі) через SMTP, що вимагають TLS/SSL з'єднання.

twitpics 1.0

Реалізує включення малюнків з Twitpics в бічну панель блогу.

 

Різні оновлення та повідомлення

 

Model-Glue Training Course

Розробники фреймворку Model-Glue опублікували тренувальний курс для новачків.

Mach-II Simplicity (1.8) RC2 Released

Черговий крок до випуску нової версії Mach-II

ColdFISH 3.0 Alpha Released

Ще один популярний продукт готується до випуску нової версії. Це додаток для підсвітки синтаксису від Джейсона Делмора, що використовується зокрема в BlogCFC.

Fusebox Scaffolder Alpha 3

Кілька оновлень отримав і додаток, що втілює scaffolding для Fusebox.

Implicit Blocks in Fusebox 5.5.1

Патч для Fusebox, що дозволяє обійтись без зайвих true міток, коли в if-блоці немає false.

Portcullis 2.0 released

Оновлено бібліотеку для захисту додатків від SQL-ін'єкцій та XSS атак.

 

Автор: Сергій Галашин | Опубліковано: 17.01.2010 о 13:19 | Категорії: ColdFusion 9 - Mango Blog - MachII - RIAForge - OpenSource - News - Fusebox - Frameworks -

 

Випущено CFWheels 1.0

Менше місяця тому ми вже повідомляли про те, що фреймворк готується до випуску стабільної версії, і ось це трапилось!

Це чудовий привід придивитися до нього поближче та спробувати в дії.

Задля цього на CFUG заводимо відповідну категорію та плануємо детальніший огляд на майбутнє.

Скачати дистрибутив можна з офіційного сайту, поспілкуватися з учасниками спільноти можна в Google групі.

Автор: Сергій Галашин | Опубліковано: 24.11.2009 о 21:20 | Категорії: OpenSource - Frameworks - News - CFWheels -

 

Поповнення команди FW/1

Як повідомив у своєму блозі Шон Корфілд, команда фреймворку FW/1 збільшилася до двох чоловік.

Другим став Раян Коґсвелл, дуже активний учасник обговорення додатку та автор кількох корисних патчів.

Здається, настав час пильніше придивитися до цього фреймворку.

Автор: Сергій Галашин | Опубліковано: 19.11.2009 о 21:03 | Категорії: News - Community - FW/1 - Frameworks -

 

Новини CF-OpenSource v7

Cf Event Manager 1.0

Андреа Камполоньї повідомив про реліз його додатку, що реалізує EM-парадігму (events based) для CFML.

Update to CFML Framework Skeletons – Eclipse Plugin

Роберт Бернс повідомив про оновлення свого корисного додатку для Eclipse, що допомагає створювати скелети проектів для різних фреймворків. В цьому релізі були додані FW/1 та LightFront.

ColdBricks 1.1 Update: Custom Resource Libraries & Extension Modules

Оскар Еревало повідомив про деякі оновлення ColdBricks CMS, котрі є підготовкою до стабільного релізу 1.1.

BlogCFC v.5.9.5

Випущено оновлення популярного CF-блогу, багато з яких зачіпають клієнтську (JavaScript) частину.

CF Admin Searcher v.1

Розширення для Adobe ColdFusion Administrator, що дозволяє виконувати прямі запити (тут -- queries) до колекцій Verity та Solr (в залежності від версії серверу)

ColdTurkey v.1

Спроба реалізації CRUD-додатку, з доволі широким спектром можливостей.

cfMediaPlayer v.20091106.01

CFML кастом теґ-обгортка для включення на сторінку FLV, MP3, MP4 та AAC файлів з використанням JW FLV Player.

All Around Player v.0.10

Дуже рання версія схожого продукту, з опису навіть докладно не зрозумілі його можливості :)

Tokamak v.0.0.1a

Проста реалізація REST апі для Fusion Reactor, фактично поки підтримує тільки читання метрик сервера в XML форматі.

Cachebox CFWheels Plugin v.1

Реалізація кешування в CFWheels за допомогою додатку Cachebox.

miniwiki v.0.1

Простий та маленький wiki-двигунець.

Junior v.0.1

Клон рубі-фреймворку Sinatra, поки в ранній стадії розробки.

 

 

Автор: Сергій Галашин | Опубліковано: 07.11.2009 о 21:51 | Категорії: CMS - Blogs - RIAForge - OpenSource - Frameworks - News -

 

Новини CF-OpenSource v6

Нові продукти та оновлення

CFML Admin API

Система для програмного керування налаштуваннями CF сервера, такими як датасорси, мапінги, шляхи до кастом теґів. Підтримуються Adobe ColdFusion 7/8/9 Railo 3.1, OpenBD 1.1

cfUpdater - Manager for ColdFusion Updates

Компонента для спрощення процесу оновлення Adobe ColdFusion версій 7/8/9

CFGoogleTrends

Конвертація Google Trends RSS в CFML масив.

trac-cfc

Рання альфа компоненти для взаємодії CF з Trac (популярною системою баґтрекінгу з wiki).

CFShell

Клієнт на Python + CFML скрипти, що дозволяють інтерактивно виконувати CFML код в консолі. Дещо сумнівна щодо практичної користі, але цікава розробка.

wp2blogcfc

Утиліта для міграції блогу з Wordpress на BlogCFC.

sosFactory

Проста в користуванні (як запевняють розробники) реалізація Factory (автоматизоване створення об'єктів) для CFML.

ColdFusion - Yahoo Maps

Інтеграція Yahoo Maps в CF додатки, написана одним з членів команди Adobe ColdFusion.

Debug To File

Можливість записувати debug output до файлів - якщо він потрібен, але показувати його небажано, фактично розширення наявної (і доволі кострубатої) системи журналювання.

ORMBootStrap

Невеличкий фреймворк для пришвидшення розробки додатків з ORM.

Spellify for Coldfusion V1.0

Реалізація додатку для перевірки правопису в textarea на CFML.

Різні новини зі світу OSS

ColdFusion on Rails is almost here

Кріс Пітерс повідомив про те, що реліз 1.0 CF on Wheels вже близько.

Ant4CF Mailing List Created

Створено Гугл-групу для Ant4CF.

ColdBox 3.0.0 Beta 2 Released!

Популярний фреймворк наближається до релізу. Що нового третій версіі можна дізнатися з wiki проекту.

Автор: Сергій Галашин | Опубліковано: 26.10.2009 о 09:09 | Категорії: Apache - ColdFusion 8 - ColdFusion 9 - Components - Frameworks - IIS - Links - OpenSource - Python - Railo - RIAForge -

 

Новини CF-OpenSource v5

Невеличкий огляд на сьогодні

CacheBox 0.9 Beta

Як повідомляє автор, цей фреймворк для кешування майже "дозрів" до релізу.

ColdFusion on Wheels 0.9.4

Майже те саме можна зауважити про вже відомий нам фреймворк CFWheels.

FuseCache 0.8

Додаток до Fusebox, що дозволяє швидко інтегрувати існуючі рішення з кешування для CF, зокрема вищезгаданий CacheBox, а також cfMemcached та навіть EHCache з комплекту CF9.

Announcing ColdPress

Анонімний автор повідомив про початок розробки аналога WordPress на CF. Сподіваюся, що з нього вийде добрий конкурент існуючим рішенням.

Автор: Сергій Галашин | Опубліковано: 20.09.2009 о 14:52 | Категорії: Blogs - Frameworks - Links - News - OpenSource - RIAForge -

 

Новини CF-OpenSource v4

Повертаємося до рубрики після деякої паузи. Сьогодні у нас нові CMS, фреймворки та CF9.

Quicksilver

Фреймворк, що використовує новинки CF9, а також реалізує сучасні методики розробки.

LightFront

Ще один невеличкий MVC фреймворк. На відміну від більшости популярних аналогів, не використовує XML для конфігурації, лише "чисті" CFC.

Splash CMS

ColdFusion порт Radiant CMS для Ruby.

Generate ORM Mapping

Додаток до CF Builder для генерації CF9 ORM мапінгів.

Base Persistent (ORM) Object

Додаток, що реалізує Business Objects для CF9 ORM.

bluApple

І ще одна CMS, нащадок CF-Nuke.

CFOpenChat

Додаток, що реалізує чат за допомогою CF та jQuery.

Coldfusion XML Meta Tag System

Додаток для керування мета теґами вашого сайту за допомогою базованої на XML конфігурації.

Credit Card Generator

Цей проект допомагає генерувати тестові номери карток найпопулярніших типів (Visa|Mastercard|Discover|Amex), корисно в процесі розробки та інтеграції платіжних систем.

Documentation Plugin for Mango Blog

Назва каже сама за себе. Плагін інтегрує довідку з Манго прямо в панель адміністратора.

 

Автор: Сергій Галашин | Опубліковано: 07.09.2009 о 09:09 | Категорії: CMS - ColdFusion 9 - ColdFusion Builder - Frameworks - News - OpenSource -

 

Зміни в документації Fusebox

Як повідомив сьогодні Адам Хаскель (Adam Haskell), документація та баґтркекінг фреймворку більше не вестимуться в Trac. Цікаво, що заміною стали пропрієтарні системи від Atlassian: Confluence Wiki та Jira. Штука в тому, що вони надані під "free Atlassian open source license for Fusebox", тобто безкоштовно. Зрозуміло, Atlassian приємно попіаритися за рахунок допомоги відомому проектові.

Отже, тепер документація доступна за адресою http://wiki.fuseboxframework.org

Поки що особливої вигоди з точки зору користувача я не побачив, але Адам наполягає, що редагування стало значно зручнішим. Сподіваюсь, це позитивно відобразиться на кількості документації.

Трекер знаходиться за адресою http://jira.fuseboxframework.org

Більшість тікетів було вже перенесено. Але, як зауважив Адам, якщо важливі для вас тікети були загублені, він буде радий їх перенести, або навіть можете зробити це самі.

Автор: Сергій Галашин | Опубліковано: 12.04.2009 о 16:46 | Категорії: Fusebox - Documentation - Frameworks -

 

Fusebox 5

Версия 5.1 этого фреймворка вышла 26 июня, скачать ядро, плагины и примеры можно тут. Там же можно скачать и словари, но о них чуть дальше. Всё что написано касается версии для ColdFusion, но большинство подходит и для PHP-версии. Для упрощения понимания терминов, перевод названий не везде дословный.

Некоторые нововведения:

- добавлены новые режимы работы (кроме уже существующих development и production), - добавлены словари (lexicons), - теперь можно использовать одни и те же файлы ядра для нескольких приложений. Собственно можно использовать практически все файлы, от сёркитов до словарей (global sharing), - добавлены безопасные URL-ы - добавлен режим трассировки

Коротко о каждом

Режимы работы:

1. developement-full-load - аналогичен режиму developement для Fusebox 4, который теперь использовать не рекомендуется (режим, не Fusebox =)). Заставляет Fusebox парсить все файлы, а если были изменены xml файлы - в добавок перезагружает сам Fusebox 2. development-circuit-load - перегружает все circuit файлы, которые участвуют в запросе и парсит все файлы, необходимые для выполнения текущего запроса 3. production - тут изменений нет, используются уже распарсеные файлы, все работает правильно и быстро =)

также можно выбрать режим, используя переменные (само собой они логические): fusebox.load - перегружает xml файлы fusebox.parse - парсит выбранный фьюзэкшн fusebox.execute - выполняет его fusebox.loadclean - то же что и load, но удаляет все файлы, которые распарсены до этого fusebox.parseall - парсит все public фьюзэкшны

Словари (lexicons)

Позволяют вводить использовать в circuit файлах новые функции и управлюящие структуры. Словари состоят из слов (verbs). Объявляются и используются словари как пространства имен XML. Подключить словарь можно так:
в fusebox.xml.cfm
<fusebox xmlns:myLex="/lexicon/mylex"/>
или так
в circuit.xml.cfm
<circuit xmlns:myLex="/lexicon/mylex"/>

и затем использовать в circuit.xml.php примерно так:
<myLex:dump label="Attributes Scope" var="Attributes" />
это вызовет слово dump из лексикона myLex с параметрами label и var

За руководством по написанию словарей лучше обратиться сюда

 

Shared core files

Для использования общих файлов ядра, в каждом отдельном приложении нужно создать файл index.cfm такого вида:
<cfapplication name="sampleapp" sessionmanagement="Yes" sessiontimeout="#CreateTimeSpan(0, 4,0,0)#" >
<cfset FUSEBOX_APPLICATION_KEY = "myApp">
<cfset FUSEBOX_APPLICATION_PATH="../scripts/FBCore" >
<cfinclude template="#fusebox_Application_Path#/fusebox5/fusebox5.cfm" >
с разными FUSEBOX_APPLICATION_KEY и соответствующими путями к ядру и приложению

"Безопасные" URL'ы

Используются за счет еще одного нововведения - тега . Теперь xfa будет выглядеть так:
<xfa name="edit" value="app.edittask">
<parameter name="id" value="#attributes.id#"/>
</xfa>
вместо
<xfa name="edit" value="app.edittask&amp;id=#attributes.id#"/>

Такой механизм позволяет модифицировать URL, изменяя параметры self, queryStringStart, queryStringSeparator, queryStringEqual и myself. Например если задать их все как '/', то такой получим URL: app.edittask/id/#attributes.id# и myself - index.cfm/fuseaction/

"Безопасность" тут заключается в более удобном понимании таких URL'ов человеком и поисковыми системами.

Режим трассировки

Установив
<parameter name="debug" value="true" />
можно отслеживать время выполнения отрезков приложения, расставляя метки трассировки при помощи myFusebox.trace(type,message) предопределенные типы - fusebox, runtime, compiler. Можно создавать свои собственные типы.

Вот вкратце и все о нововведениях. На самом деле их значительно больше, и они заслуживают более подробного описания, но, что есть - то есть =)

Автор: Владимир Каленюк | Опубліковано: 06.09.2007 о 06:46 | Категорії: Frameworks - Fusebox -