Christiano,
apesar de ser um pouco prematuro, gostaria de repassar um pouco do que
estamos desenvolvendo, pois existe uma similaridade na questão das dúvidas.
Desenvolvemos alguns aplicativos no ColdFusion utilizando versões 6 e 7,
mas resolvemos nos aprofundar mais com o intuito (primeiro + óbvio) de
aprender e com a esperança de encontrar meios de acelerar o
desenvolvimento de aplicativos web (sendo o próprio coldfusion um
acelerador). Percebi também aquele aspecto de programação meio
"macarrônica" que acaba por tornar a sua alteração mais cansativa e que
no final trazia aquele incômodo... (apesar de ter seguido a risca os
conselhos do livro do Ben Forta na utilização de Application.CFC e
arquivos .cfcs para manter as funções separadas e tudo mais).
Estudei do zero os frameworks disponíveis no mercado e as vantagens
gerais. Temos dentre eles FUSEBOX que é o que está a mais tempo no
mercado, ColdBox como vc. citou, Model-Glue, Mach-II, ColdSpring e outros.
Optamos pelo Mach-II por conta de seu avanço recente dentre os
comentários e textos pesquisados na comunidade CF e pela sua proximidade
com programação Orientada Objeto. Pelo que entendi, muitos começam pelo
fusebox que é o mais didático de todos e o que possui maior quantidade
de documentações e exemplos, em vista de seu tempo de mercado. Coldbox /
Model-Glue / Mach-II / ColdSpring são uma espécie de gerações
subsequentes do Fusebox.
Tendo em vista que muitos citam determinadas limitações do FuseBox,
resolvi começar pelo MACH-II que utiliza a estrutura MVC (Model - View -
Control) como os demais frameworks, para entender melhor quais as
vantagens e a complexidade de se programar utilizando mais essa ferramenta.
Estamos agora desenvolvendo dois sites que possuem um sistema para
atualização de dados e outros itens que terão co-relação com e-commerce
e começamos a enxergar aos poucos um ponto de luz no final do túnel.
Migrar a programação parece um esforço sem muitos resultados no
começo.... e como ainda estamos no começo só temos alguns flashes de
como tudo irá fazer mais sentido no final. A independência na forma de
modular os eventos, respostas e lógicas mostra uma melhor organização em
todos os sentidos: interface (parte visual) com a programação
(funcionalidades). Preocupações que antes nem se passava pela cabeça,
como a eventual necessidade de migração do aplicativo para outro
servidor ou outro banco de dados, agora passam a ser mais legíveis.
No caso do Mach-II a instrução principal fica a cargo de um arquivo
XML o que permite compreender de forma organizada o que irá
acontecer. No caso do Coldbox acredito que seja outra solução e gostaria
que nos passasse como ele funciona.
A relação com o banco de dados, além da organização está na limpeza de
redundâncias de programação assim como na preocupação de otimização dos
acesso para evitar demoras e excesso de dados desnecessários nas operações.
Conceitos como DAO, Gateways, beans bastante comuns para programadores
em JAVA passam a fazer parte do repertório.
Vamos prosseguir nesse passeio para ver aonde chegamos. Por enquanto,
estamos só "tateando", mas espero ter ao menos ajudado a levantar mais
questionamentos e avaliações desse capítulo a parte que são os
FRAMEWORKS para ColdFusion. Tenho certeza que há programadores do fórum
que sabem barbaridades a respeito, portanto considere apenas como um
preview de alguém que está só começando a estudar sobre o assunto.
Valeu
Wada