Fusebox (programação) - Fusebox (programming)

Caixa de Fusiveis
lançamento inicial 1997
Versão estável
5.5.1 / março 2008
Escrito em CFML , PHP
Tipo framework de aplicações web
Licença Apache License
Local na rede Internet www .fusebox .org

Fusebox é uma estrutura de aplicativo web para CFML e PHP . Originalmente lançado em 1997, a versão atual, 5.5.1, foi lançado em março de 2008. Em janeiro de 2012 os direitos para Fusebox foram transferidos de Teratech para uma equipe de cinco desenvolvedores, que removeu os direitos e colocados do quadro nas mãos de a comunidade.

Fusebox pretende ser fácil de aprender e oferece benefícios, ajudando os desenvolvedores de estruturar o seu código através de um conjunto de convenções simples. Fusebox também permite que desenvolvedores avançados para construir grandes aplicações, alavancando os padrões de design e técnicas de programação orientada a objeto, se o desejarem.

visão global

Fusebox fornece os desenvolvedores de aplicativos web com uma maneira padronizada, estruturada de desenvolver suas aplicações usando um relativamente simples e fácil de aprender um conjunto de arquivos de núcleo e encorajou convenções. Além do próprio quadro, Fusebox tornou-se intimamente associada com uma metodologia de desenvolvimento de aplicações Web desenvolvidas pelos seus proponentes conhecidos como " FLiP " (para o Processo Fusebox Lifecycle). (Muitas pessoas referem-se a Fusebox como uma "metodologia", mas na verdade, como afirmou, é uma estrutura de desenvolvimento. Flip, no entanto, é uma metodologia). Muitas estruturas oferecem vantagens comparáveis; no entanto, Fusebox (provavelmente por conta de tanto a sua história relativamente longa e a comunidade considerável e ativa que suporta-lo) parece ser o mais popular para CFML . O quadro foi portado e usado em ASP , JSP , Lasso , Perl / CGI e PHP , bem como, embora as versões CFML e PHP de Fusebox são as únicas versões a ganhar impulso.

É importante notar que Fusebox lida principalmente com o esforço de fiação junto visualizar estados (páginas) com ações do controlador (formulário envia, etc.) e o front-end da camada de lógica de negócios. O quadro não aborda a criação e manutenção de lógica de negócios , tais como a interação de banco de dados ou camadas de serviços

Conceitos

Fusebox, Circuitos e Fuseactions

Os conceitos originais por trás Fusebox foram baseadas na linguagem familiar de um fusebox elétrico que controla um número de circuitos, cada um com seu próprio fusível. Em uma aplicação web Fusebox, todas as solicitações são encaminhadas através de um único ponto (geralmente index.cfmpara CFML) e processados pelos arquivos centrais Fusebox. A aplicação é dividido em um certo número de circuitos (geralmente em sub-directórios) que se destinam a conter funcionalidades relacionadas. Cada circuito no aplicativo é dividido em pequenos ficheiros chamados fusíveis que devem executar tarefas simples. Como tal, Fusebox é considerada uma implementação do controlador de frente , um comum padrão de design .

URLs dentro uma aplicação web Caixa de fusíveis são geralmente de forma index.cfm?fuseaction=cname.fname"onde cname" é o nome de um circuito e " fname" é um "método" definido pelo XML dentro desse circuito conhecido como um fuseaction. A consulta cordas variável nome "fuseaction" pode variar de acordo com os parâmetros de configuração, nem todas as aplicações que utilizam Fusebox precisa usar a variável de ação "fuseaction".

convenções de nomenclatura

Fusebox incentiva, mas não obriga, a separação da lógica de apresentação da lógica de negócios. Ele usa uma série de convenções de nomeação de arquivo para incentivar essa separação: arquivos de apresentação começar com DSP (display) ou colocar (layout), acessar arquivos de banco de dados começam com qry (query) e arquivos de negócios em geral começam com ato (ação). nomes de ficheiros típicos são no formato [prefixo] _ [nome do arquivo] como dsp_loginform.cfm. convenções de nomenclatura adicionais são usados ​​por alguns desenvolvedores Fusebox mas estes são os mais comuns.

Fuseactions saída

Outro conceito que Fusebox incentiva é parametrizar quaisquer pontos de saída em uma página da web, codificação-los como variáveis ​​que são definidas no arquivo de controle do circuito. Estes pontos de saída são conhecidos como XFAs - FuseActions saída. A ideia é que mediante a parametrização dos pontos de saída em uma página da web, o fluxo de controle pode ser atualizado mais facilmente, permitindo maior reutilização de páginas da web ou seus fragmentos.

FuseDocs

Associados ao quadro, mas não estritamente parte dela, é o conceito de FuseDocs que é uma forma semi-formalizado de documentação escrita em XML que especifica as entradas e saídas de cada arquivo fusível. Existem ferramentas de terceiros disponíveis que podem usar FuseDocs para fazer coisas como gerar o código equipamento de teste.

História

Fusebox teve várias revisões importantes ao longo dos anos. As versões mais populares em uso hoje são Fusebox 3, 4 (incluindo 4.1) e 5. Na Fusebox 3, os arquivos de controle foram todos escritos na linguagem de programação subjacente (por exemplo, fbx_Switch.cfm para CFML). Fusebox 4 e versões posteriores usam XML para os arquivos de controle (fusebox.xml e circuit.xml), mas outros componentes do quadro são escritos usando a linguagem de programação subjacente (por exemplo fusebox5.cfm, novamente por CFML). Em teoria, isso ajuda a melhorar a ferramenta de apoio para a estrutura. É também permitido para a pré-análise e geração de um único modelo para o processamento de cada fuseaction, aumentando muito o desempenho. Fusebox 5.5 permite que os arquivos XML para ser omitido se certas convenções são seguidas.

Caixa de fusíveis (versão 1)

Fusebox 1 surgiu de uma conversa na lista de discussão CF-Talk em abril de 1998. Steve Nelson e Gabe Roffman são creditados com a criação da caixa de fusíveis originais que o primeiro programa de Fusebox foi escrito por Josh Cyr. A metodologia foi constante evolução e para além de um whitepaper e um punhado de exemplos, nenhuma documentação oficial existiu. Muito poucos desenvolvedores foram expostos a Fusebox durante esses primeiros dias.

Fusebox 2

Craig Girard e Steve Nelson (juntamente com Hal Helms e Nat Papovich) escreveu um livro, Fusebox: Metodologia e Técnicas, que foi publicado em 2000 pela fusão Autoridade. Os programadores que seguiram as práticas descritas no livro foram disse estar fazendo "Fusebox 2."

XFB

Hal Helms construída sobre Fusebox 2 e chamou suas ideias eXtended caixa de fusíveis, ou XFB.

Fusebox 3

Fusebox 3 (escrito principalmente por Hal Helms, John Quarto-von Tivadar e Nat Papovich) foi um esforço pelos principais membros da comunidade Fusebox incorporar XFB e outras idéias em uma biblioteca reutilizável, conhecidos como os "arquivos principais." Um simples API código do aplicativo permissão para se comunicar com os arquivos principais. Após a liberação, no outono de 2001, Fusebox tornou-se um quadro em vez de uma metodologia . A posterior liberação 3,01 abordadas questões menores. Fusebox 3 foi algo de uma mudança radical de Fusebox 2. Apenas os princípios originais permaneceu relativamente inalterada; uma aplicação Caixa de fusíveis 2 e 3 Caixa de fusíveis são estruturados de forma muito diferente.

Fusebox 4

Fusebox 4 foi uma reescrita completa da caixa de fusíveis 3. A licença para os arquivos de núcleo (que é open source) é realizada por uma empresa privada de propriedade de Hal Helms e John Quarto-von Tivadar: A caixa de fusíveis Corporação (o que parece ser uma corporação extinta ).

Fusebox 4.1 introduziu alguns novos elementos de gramática XML, além daqueles disponíveis em 4.0 que permitem declarar, instanciar e manipular objetos (COM, Java e ColdFusion Components), bem como serviços web. Esses recursos têm fornecido desenvolvedores Fusebox com os meios de amarrar modelos orientados a objetos (ie business-lógica) diretamente em seus controladores. No entanto, muitos desenvolvedores Fusebox usaram modelos orientados a objetos ou altamente estruturadas em versões anteriores do Fusebox ou nas versões atuais sem uso desses elementos gramaticais.

Fusebox 5

Em 2006, o Fusebox Corporação perguntou Sean Corfield para assumir a liderança no desenvolvimento da próxima iteração do Fusebox. Fusebox 5 foi outra reescrita completa com novas funcionalidades e um melhor desempenho. Caixa de fusíveis 5 quase completamente mantido para trás-compatibilidade com caixa de fusíveis 4.1. Em novembro de 2006 O Fusebox Corporação transferiu a propriedade do site de arquivos de núcleo e caixa de fusíveis para Teratech sob a orientação do presidente Teratech e palestrante Fusebox Michael Smith. Teratech anunciou que Fusebox permanecerá open source e está buscando para aumentar o envolvimento da comunidade no projeto novamente. Fusebox 5.1 e todas as versões subseqüentes são licenciado sob a Apache License 2.0 Fonte . Em fevereiro de 2007 os membros da equipe Fusebox conheci na conferência Frameworks em Bethesda Maryland e criou um plano de ação para o envolvimento da comunidade usando voluntários em nove diferentes áreas de Fusebox.

Fusebox 5.5

Este comunicado focado principalmente na adição de um conjunto de convenções que permitem a criação de aplicações Fusebox sem XML arquivos de configuração. O uso desses novos recursos em vez de XML é chamado de "Fusebox implícito".

  • teste Alpha começou em junho de 2007
  • Um beta público tornou-se disponível no Adobe MAX em Outubro de 2007
  • O lançamento oficial do Fusebox 5.5 tornou-se disponível no início de dezembro 2007

Fusebox 5.5.1 e FuseNG

O lançamento do Fusebox 5.5.1 março 2008 foi o último lançamento de Sean Corfield. Em agosto de 2008, Adam Haskell assumiu desenvolvimento, mas ficou frustrado com a organização Fusebox, e tentou ramificar um novo quadro chamado FuseNG (NG for Next Generation, um Star Trek referência). FuseNG rapidamente perdeu força e terminou sem autorização.

Fusebox 5.6

Em janeiro de 2012, uma equipe de cinco desenvolvedores da comunidade liderada por John Blayter anunciou na lista de discussão Fusebox que tinham obtido os direitos e autor de Fusebox de Teratech. O código do framework teve o copyright removido e está disponível no GitHub para incentivar a participação da comunidade. Desenvolvedores Fusebox experientes vetar quaisquer alterações que são submetidos. Fusebox 5.6 objetivos foram anunciados, mas não há atualmente nenhuma data-alvo.

Veja também

Referências

links externos