Framework - Coldbox

21 views
Skip to first unread message

Christiano Oliveira

unread,
Feb 2, 2009, 5:15:02 PM2/2/09
to cfbr...@googlegroups.com
Pessoal,

Estou em duvida, realmente não sei se o melhor a fazer é aplicar um Framework... gostaria de algumas opiniões sobre o assunto.

Temos um site, já em funcionamento - onde muita coisa é de difícil manutenção, daquele estilo: altera uma linha no código A - prejudica o código B, site desenvolvido ainda na versão 4.5 do CF e sendo atualizada gradativamente, de acordo com novas necessidades.

Estamos pensando em criar uma nova versão do site em paralelo (deixo funcionando a atual como está e vou criando uma nova, sem usar a produção).

O site é grande, necessita de diversas regras de acesso personalizadas, algumas áreas devem ser totalmente personalizadas conforme o cliente.

É importante usar um framework? quais as vantagens / desvantagens?
Estive estudando ColdBox e me parece uma boa alternativa, alguem conhece? ou sugere um outro?

Abraços,


Christiano José de Oliveira
Coldfusion / Flex Senior Developer
http://blog.thedevil.com.br - CF & Flex Desires

WADA - EKO design & interactive

unread,
Feb 2, 2009, 11:15:47 PM2/2/09
to cfbr...@googlegroups.com
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

Ricardo Parente

unread,
Feb 2, 2009, 11:17:45 PM2/2/09
to cfbr...@googlegroups.com
Christiano,

Eu uso Fusebox desde sua versao 1, hoje na versao 5.51. Sou um grande fan do Fusebox. Mas ja' estive presente em uma palestra sobre Coldbox na CFUnited ano passado com o Luis Majano (cara muito legal). Fiquei impressionado com o produto e com o suporte do Luis.
Infelizmente nao tenho tempo particularmente para aprender uma nova framework e minha empresa nao pensa em migrar de Fusebox para Coldbox.
Pessoalmente acho que qualquer framework voce se especialize e seja bom nela, resolvera' seu problema.
Abracos,
Ricardo

2009/2/2 Christiano Oliveira <christia...@gmail.com>



--
Ricardo Parente
Advanced ColdFusion Developer
Winter Park, FL U.S.A.

Ronan Lucio

unread,
Feb 3, 2009, 6:04:57 AM2/3/09
to cfbr...@googlegroups.com
Christiano,

Abrindo um parênteses:
Coldfusion-4.5? Que tal migrar para Railo?

Quanto ao framework, a minha opinião é que pelo menos um framework MVC
deveria ser utilizado.
Minha sugestão fica para o ColdBox.

Testei também o Model-Glue, porém apesar de receber muitos elogios na
comunidade em geral eu não gostei muito daquele split da camada de
controle (parte em XML e parte em CFC).

Cheguei a olhar o Fusebox, mas inicialmente aquelas analogias com caixas
de fusíveis me soaram um pouco estranho. Além disso, na época ele ainda
não era XML-Free.

Não cheguei a testar o Mach-II porque na época os meus conhecimentos em
OO não eram tão avançados, e até onde eu sei ele também não é XML-Free.

Caso você use fortemente programação orientada a objetos a minha
sugestão é utilizar o ColdSpring em conjunto com o ColdBox.

Espero ter ajudado,

[]s
Ronan

Christiano Oliveira escreveu:

Anderson Straube

unread,
Feb 3, 2009, 8:44:54 AM2/3/09
to cfbr...@googlegroups.com
Cristiano,

> É importante usar um framework? quais as vantagens / desvantagens?
Quanto ao uso ou não de frameworks, acho bem relativo, pois varia de
projeto para projeto.

O que quero dizer é que, a adoção de um framework dentre outras
características deve ser para resolver problemas comuns através dos
diversos patterns aplicados, em consequência você terá:

- Padronização do código: imagine a vantagem em uma equipe mista
(sênior, pleno e júnior), todos trabalhando em código coletivo e não
naquele código onde só quem desenvolveu o conhece (e olha lá..rsrs),
também evitará os famosos spaghetti code. Resumindo: todos falando a
mesma língua.

- Redução de custos:
. Os desenvolvedores se concentram em adicionar valor ao invés de
reinventar a roda;
. Menos manutenção: pois o código está desacoplado e coeso (isso
evitará o que tu disseste: "ao alterar o código A prejudica o código B");
. Menos tempo para treinamento (pessoal novo na equipe): pois se há uma
padronização e até certo ponto o código é "engessado", isso garante ou
pelo menos deve garantir que essa pessoa desenvolva segundo o padrão que
a equipe/framework utiliza, então em menos tempo essa pessoa está apta a
integrar-se à equipe sem maiores transtornos;

- Produtividade: com todos os ítens citado acima teremos uma maior
produtividade consequentemente mais lucro em menos tempo.

Legal, framework é bacana então vou utilizá-lo em todo e qualquer projeto?
R. Não. Temos que ter em mente também que framework é só o meio e não o fim.
Devemos ter cuidado para não cair na armadilha de "matar uma mosca com
um canhão".

O interessante é que nos frameworks há uma grande quantidade de patterns
utilizados, então mesmo que você não venha a utilizá-lo em produção, ao
menos você saberá onde e como aplicar cada pattern para resolver cada
tipo de problema, além ampliar os horizontes do desenvolvedor, tais
como: código coletivo, a filosofia da padronização, código desacoplado e
coeso, entre outras coisas mais que irão agregar valor como profissional.

Quanto ao framework ColdBox em questão acho sim muito válido.
Ele está com uma maturidade muito boa, além do que tem um suporte legal,
se tu tens uma dúvida o pessoal (aka Luis Majano) está disposto a colaborar.

Legal também se tu pudesse utilizar juntamente com o ColdBox algum
framework ORM (Object Relational Mapping) para abstrair sua camada de
dados, cito aqui o Transfer ORM -> http://www.transfer-orm.com/, (esse é
o único que trabalhei então não sei te dizer quanto aos demais).

My 2 cents

Um abraço.

Att,
Anderson Straube

Christiano Oliveira escreveu:
--
[ ]'s
Anderson Straube
http://www.andersonstraube.com/

Christiano Oliveira

unread,
Feb 3, 2009, 10:38:14 AM2/3/09
to cfbr...@googlegroups.com
Antes de mais nada, muito obrigado a todos pelas execelentes contribuições aqui!

Nosso projeto é um tanto quanto complexo e grande (falando em paginas distintas e quantidade de linha de codigo), portanto - pelos comentários aqui postados é seguro que vamos adotar a programação sobre um framework.

Li, sobre todos bastante superficilamente, gostei do ColdBox justamente por unir vantagens de alguns já famosos: (Fusebox + ColdSpring).

>Wava:
Ainda não conheço muito sobre a estrutura do ColdBox, mas sei o basico:
- trabalha seguindo o conceito MVC
- tem sua base estruturada sobre um XML
- tem grande facilidade de debug

E... particularmente no caso do Coldbox, um dos co-workers no projeto junto com Luis Majano é amigo pessoal e em algum momento tenho onde pedir um help!






Christiano José de Oliveira
Coldfusion / Flex Senior Developer
http://blog.thedevil.com.br - CF & Flex Desires


2009/2/3 Anderson Straube <as.l...@gmail.com>

Ronan Lucio

unread,
Feb 3, 2009, 10:51:49 AM2/3/09
to cfbr...@googlegroups.com
Christiano,

Christiano Oliveira escreveu:


> >Wava:
> Ainda não conheço muito sobre a estrutura do ColdBox, mas sei o basico:
> - trabalha seguindo o conceito MVC
> - tem sua base estruturada sobre um XML
> - tem grande facilidade de debug

Só uma coisa: No ColdBox você configura apenas o framework via XML,
diferentemente dos outros frameworks onde parte a aplicação também tem
que ser desenvolvida em XML (com exceção do FuseBox a partir da versão 5.5).

> E... particularmente no caso do Coldbox, um dos co-workers no projeto
> junto com Luis Majano é amigo pessoal e em algum momento tenho onde
> pedir um help!

Realmente é um diferencial eim!

[]s
Ronan

Vicente Maciel Junior

unread,
Feb 3, 2009, 11:58:48 PM2/3/09
to cfbr...@googlegroups.com
Christiano,

Em setembro, aqui na lista, tb iniciei uma thread a respeito de Frameworks.
Me rendeu bom conteúdo de estudo.

Na época, acabei voltando-me ao TransferORM porque ele justamente cobria a parte deficiente da minha metodologia de desenvolvimento.

Porém, há algo interessante acontecendo que gostaria de dividir com vocês todos. 
Venho há algum tempo tentando colaborar com o desenvolvimento de um trabalho que considero GENIAL que está sendo desenvolvido por um amigo aqui da lista. Trata-se justamente de um Framework com propostas muito interessantes que visam não apenas a extrema AGILIDADE no desenvolvimento de projetos CF, mas também a aplicação de boas práticas, conceitos e metodologias baseando-se no MVC.

O Jefferson Petilo é super perfeccionista para antecipar alguma coisa (quem o conhece sabe), mas eu o convenci a falar um pouco do projeto CFSHARK, já que o tópico é oportuno e considero que o framework já possua certo grau de amadurecimento, uma vez que está sendo aplicado em um dos projetos que estamos desenvolvendo, inclusive (CF+Flex).

Sobre Frameworks e o CFSHARK: 


Vicente Maciel Junior
Independent Web Developer & Consultant
Adobe Advanced Certified Developer
Adobe Certified Instructor (ColdFusion & Flash Platform)
+55 71 8120-0035
MSN: maci...@gmail.com / Twitter: macieljr
http://www.riabrazil.com.br
http://teclandoalto.blogspot.com
Grupo de usuarios RIA-BA: http://bit.ly/ria-ba


2009/2/2 Christiano Oliveira <christia...@gmail.com>

Rafael Trindade da Silva

unread,
Feb 15, 2009, 4:46:18 PM2/15/09
to cfbr...@googlegroups.com
Pessoal,

Alguem ja usou o cfwheels ?
Estou estudando ele e só tenho coisas boas a falar sobre o mesmo.
É baseado em RoR, recomendo uma visita.

www.cfwheels.com

Finally, a framework for the rest of us.



ColdFusion on Wheels provides fast application development, a great organization system for your code, and is just plain fun to use.

One of our biggest goals is for you to be able to get up and running with Wheels quickly. We want for you to be able to learn it as rapidly as it is to write applications with it.



2009/2/4 Vicente Maciel Junior <maci...@gmail.com>



--
Rafael Trindade da Silva
rafa...@gmail.com
http://rafaeltrindade.com.br
http://videosecoisaradas.com

Paulo Augusto Teixeira

unread,
Feb 17, 2009, 8:34:41 AM2/17/09
to cfbr...@googlegroups.com
Frameworks é sempre um ótimo assunto.
Infelizmente para ColdFusion só usei FuseBox e ModelGlue/ColdSpring.
Não tive tempo de me aprofundar mais no assunto, como fiz com o PHP.

No PHP eu testei alguns gostei de alguma coisa não gostei de outras, no fim, acabei por desenvolver meu próprio framework, e depois de usar o ModelGlue, resolvemos desenvolver um nosso também.

Oque ainda está nos nossos planos (Pcsilva e eu).

Agora, a utilização de uma framework é sempre importante quando entendemos o objetivo. Não é bom usar só por usar, para ter uma estrutura MVC e tudo mais. MVC da para fazer até sem Framework. O importante é usar para separar nossos ambientes, definir padrões, facilitar nossas vidas no dia a dia.

No caso do meu em PHP eu tenho a definição de uma estrutura MVC um pouco mais robusta, onde eu também separo a camada de negócios e a camada de abstração de dados.

Com isso eu faço que minha aplicação não tenha contato direto com meu banco de dados, isso é responsabilidade da minha camada de negócios. Em caso de manutenção até mesmo de tabelas, não afeta diretamente a meu aplicativo e sim somente a camada de negócios.

Tive experiências legais com esse modelo, pois já implementei sistemas direcionados a um determinado banco que na hora de utilizar foi necessário mudar de banco (MSSQLServer para Oracle) e não precisou modificar nenhuma linha de codigo da aplicação.

E quem conhece PHP sabe que para cada banco temos que usar Extensões específicas. O framework que eu desenvolvi possibilita até a não necessidade de preocupação com essa tarefa.

Por essas necessidades eu resolvi implementar meu próprio Framework.

No caso do ColdFusion, optamos por necessidade de ter uma ferramenta nossa com nossas soluções e nossas necessidades.

Bom acho que tudo isso deve ser avaliado na hora de escolher ou criar seu framework.

Boa sorte e o conteúdo desse post está excelente. Como o outro já abordado.

[]s

--
Paulo A. Teixeira
Adobe Certified Expert - Rich Internet Application Specialist
Adobe Certified Expert - Flex 3 with AIR
Adobe Certified Flex 2.0 Developer
Adobe Certified Expert - ColdFusion 8
Adobe Certified Professional - ColdFusion MX 7
Adobe Certified Professional - ColdFusion MX
Reply all
Reply to author
Forward
0 new messages