Dojo Toolkit - Dojo Toolkit

Dojo Toolkit (antes da versão 2), Dojo (desde a versão 2)
Dojo toolkit logo.svg
Desenvolvedor (s) Fundação Dojo
lançamento inicial Março de 2005 ; 16 anos atrás ( 2005-03 )
Versão estável
7.0.6 / 20 de janeiro de 2021 ; 7 meses atrás ( 2021-01-20 )
Versão de visualização
8.0.0-beta.7 / 27 de abril de 2021 ; 3 meses atrás ( 2021-04-27 )
Repositório Dojo Toolkit 1.x https://github.com/dojo/dojo
Dojo Framework 2+ https://github.com/dojo/framework
Escrito em Dojo Tookit 1.x: JavaScript , Dojo> = 2.x: TypeScript
Sistema operacional Plataforma cruzada
Modelo Kit de ferramentas JavaScript (ou biblioteca )
Licença A licença BSD modificada ou a Licença Academic Free (≥ 2.1)
Local na rede Internet https://dojotoolkit.org , https://dojo.io/

O Dojo Toolkit (estilizado como dōjō toolkit ) é uma biblioteca JavaScript modular de código aberto (ou, mais especificamente, o kit de ferramentas JavaScript ) projetada para facilitar o rápido desenvolvimento de plataformas cruzadas, aplicativos e sites baseados em JavaScript / Ajax . Foi iniciado por Alex Russell, Dylan Schiemann, David Schontzler e outros em 2004 e tem uma licença dupla sob a licença BSD modificada ou a Licença Livre Acadêmica (≥ 2.1).

A Dojo Foundation foi uma organização sem fins lucrativos criada com o objetivo de promover a adoção do kit de ferramentas. Em 2016, a fundação se fundiu com a jQuery Foundation para se tornar a JS Foundation .

Visão geral

Dojo é uma estrutura JavaScript que visa as muitas necessidades de desenvolvimento da web do lado do cliente em grande escala. Por exemplo, o Dojo abstrai as diferenças entre os diversos navegadores para fornecer APIs que funcionarão em todos eles (pode até ser executado no servidor em Node.js ); estabelece uma estrutura para definir módulos de código e gerenciar suas interdependências; fornece ferramentas de construção para otimizar JavaScript e CSS, geração de documentação e teste de unidade; suporta internacionalização, localização e acessibilidade ; e fornece um rico conjunto de classes de utilitários e widgets de interface de usuário comumente necessários.

O Dojo é totalmente de código aberto. O kit de ferramentas inteiro pode ser baixado como um ZIP e também está hospedado no Google CDN . O kit de ferramentas inclui cerca de três mil módulos JavaScript, além de imagens e outros recursos.

O Dojo Toolkit é organizado em várias partes:

  • dojo contém o núcleo e a maioria dos módulos não visuais.
  • dijit é uma biblioteca de módulos de interface do usuário para widgets e layout.
  • dojox contém diversos módulos ainda não considerados estáveis ​​o suficiente para incluir no dojo ou dijit .
  • util inclui ferramentas de construção como otimização, documentação, verificação de estilo e teste.

Recursos

Widgets

Widgets Dojo são componentes - compreendendo código JavaScript , marcação HTML e declarações de estilo CSS - que fornecem vários navegadores (não deve ser confundido com navegadores cruzados ), recursos interativos:

Comunicação assíncrona

Um recurso importante dos aplicativos Ajax é a comunicação assíncrona do navegador com o servidor: as informações são trocadas e a apresentação da página é atualizada sem a necessidade de recarregar a página inteira. Tradicionalmente, isso é feito com o objeto JavaScript XMLHttpRequest . O Dojo fornece um wrapper abstrato ( dojo.xhr) em torno de várias implementações de navegadores da web de XMLHttpRequest e dojo.iotambém suporta outros transportes (como IFrames ocultos ) e uma variedade de formatos de dados. Usando essa abordagem, é fácil fazer com que os dados inseridos por um usuário em um formulário sejam enviados ao servidor "nos bastidores"; o servidor pode então responder com algum código JavaScript que atualiza a apresentação da página.

Sistema de embalagem

O Dojo fornece um sistema de empacotamento para facilitar o desenvolvimento modular de funcionalidade em pacotes e subpacotes individuais; o script de " bootstrap " base do Dojo inicializa um conjunto de namespaces de pacote hierárquico - "io", "evento", etc. - sob um namespace "dojo" raiz . Após a inicialização do namespace raiz, qualquer pacote Dojo pode ser carregado (via XMLHttpRequest ou outro transporte semelhante) usando funções de utilitário fornecidas no bootstrap. Também é possível inicializar namespaces adicionais dentro ou paralelamente ao namespace "dojo", permitindo extensões do Dojo ou o desenvolvimento de namespaces gerenciados por Dojo privados para bibliotecas e aplicativos de terceiros.

Os pacotes Dojo podem consistir em vários arquivos e podem especificar quais arquivos constituem o pacote inteiro. Qualquer pacote ou arquivo também pode especificar uma dependência de outros pacotes ou arquivos; quando o pacote é carregado, quaisquer dependências que ele especificar também serão carregadas.

Soluções alternativas para carregamento de domínio cruzado da maioria dos pacotes Dojo são fornecidas (embora isso exija uma construção especializada do Dojo).

O Dojo também fornece um mecanismo para construir "perfis"; o sistema de compilação recebe como entrada uma lista de pacotes e usa Rhino para criar um único arquivo JavaScript compactado contendo esses pacotes e todas as suas dependências. Isso permite que todo o código necessário seja carregado e inicializado de uma vez e permite o armazenamento em cache do código (a maioria dos navegadores da Web não armazena em cache os arquivos carregados via XMLHttpRequest). Perfis pré-construídos para alguns casos de uso comuns estão disponíveis para download no mesmo local que o kit de ferramentas completo.

Armazenamento de dados do lado do cliente

Além de fornecer funções de suporte para leitura e gravação de cookies , o Dojo anteriormente suportava uma abstração de armazenamento do lado do cliente local chamada Dojo Storage. O Dojo Storage permite que os aplicativos da web armazenem dados no lado do cliente de forma persistente e segura e com a permissão do usuário. Ele funciona em navegadores da web existentes, incluindo Internet Explorer , Firefox e Safari . Quando incluído em uma página da web, o Dojo Storage determina o melhor método para armazenar informações de forma persistente. No Firefox 2, ele usa a persistência do navegador nativo; em outros navegadores, ele usa um miniaplicativo Flash oculto . Com o Flash 6+ sendo instalado em cerca de 95% dos computadores conectados à web, isso torna o mecanismo de armazenamento acessível para grande parte da base instalada da web. Para um aplicativo da web que está sendo carregado do sistema de arquivos, ou seja, de um arquivo: // URL, o Dojo Storage usará transparentemente XPCOM no Firefox e ActiveX no Internet Explorer para persistir as informações. O programador que usa o Dojo Storage é abstraído do mecanismo de armazenamento usado e é apresentado com uma abstração de tabela hash simples , com métodos como put () e get (). O Dojo Storage não é compatível com versões posteriores à liberação 1.3.

Armazenamento de dados do lado do servidor

Desde janeiro de 2007, o Dojo inclui as seguintes implementações de armazenamento de dados do lado do servidor de exemplo no namespace dojo.data :

  • CsvStore : um armazenamento somente leitura que lê dados tabulares de arquivos de valores separados por vírgula
  • OpmlStore : um armazenamento somente leitura que lê dados hierárquicos de arquivos no formato OPML
  • YahooStore : uma loja somente leitura que busca resultados de pesquisa do Yahoo! Serviço de pesquisa da web
  • DeliciousStore : uma loja somente leitura que busca favoritos do serviço da web del.icio.us
  • RdfStore : um armazenamento de leitura e gravação que usa SPARQL para se comunicar com servidores de dados RDF , incluindo, por exemplo, o servidor de aplicativos Rhizome RDF.

Suporte para Adobe Integrated Runtime (AIR)

O Dojo pode ser usado em aplicativos Adobe AIR baseados em JavaScript . Ele foi modificado para atender aos requisitos de segurança do AIR.

SitePen, uma empresa de consultoria Dojo, fez um aplicativo Adobe AIR chamado "Dojo Toolbox" usando Dojo. Inclui um visualizador de API e uma GUI para o sistema de construção do Dojo. Normalmente, o sistema de compilação é executado de dentro do Rhino, mas neste aplicativo do AIR, o sistema de compilação pode ser executado do AIR, sem o uso de Java.

Histórico de lançamento

Dojo Toolkit

Número da versão Data de lançamento Notas Adicionais
0,1 30/08/2005
0,2 14/12/2005
0,3 12/05/2006
0,4 05-11-2006
0.9 14-09-2007 Reescrita total.
1.0 05-11-2007 Primeira versão estável.
1.0.1 13/09/2007
1.0.2 13/09/2007
1,1 26/03/2008
1.1.1 13/05/2008
1,2 02/10/2008
1.2.1 06-11-2008
1.2.2 16/11/2008
1.2.3 08/12/2008
1.3.0 26/03/2009
1.3.1 30/04/2009
1.3.2 15/07/2009
1.4.0 07-12-2009
1.4.1 25/01/2010
1.4.2 10/03/2010
1.4.3 01-05-2010
1.4.4 22/06/2012 Versão de manutenção que adiciona suporte para Internet Explorer 9 e Firefox 4+.
1.4.5 24-08-2010
1.5.0 22/07/2010 Tema "Claro".
1.5.1 12/04/2011
1.5.2 09/02/2012
1.5.3 24-08-2010
1.6.0 15/03/2011 Suporte a atributos de dados HTML5 .
1.6.1 20/05/2011
1.6.2 24-08-2010
1.7.0 27/10/2011 Comece a usar a API AMD ( definição de módulo assíncrono ).
1.7.1 16/12/2011
1.7.2 16/02/2012
1.7.3 22/06/2012
1.7.4 05/10/2012
1.7.5 14/06/2013
1.8.0 15/08/2012 Revisão da documentação.
1.8.1 14/10/2012
1.8.2 12/12/2012
1.8.3 19/12/2012
1.8.5 14/06/2013
1.8.6 20/02/2014
1.8.9 08/12/2014
1.8.10 19/01/2015
1.9.0 01/05/2013
1.9.1 14/06/2013
1.9.2 16/12/2013
1.9.3 20/02/2014
1.10.0 13/06/2014
1,10.4 18/01/2015
1.12.2 05-03-2017
1.13.0 26/09/2017
1.14.0 13/08/2018
1.15.0 16/02/2019
1.16.0 29/11/2019

As versões 1.10 a 1.16 continuam a receber novos lançamentos pontuais à medida que mudanças importantes são reportadas.

Dojo

Número da versão Data de lançamento Notas Adicionais
2.0 02/05/2018 Tutorial do TypeScript adicionado. Rápida aprendizagem. Simplicidade. Nome alterado de Dojo Toolkit para Dojo 2. Novo website adicionado. Tutorial do TypeScript adicionado. Deixando de ser uma biblioteca de sites para ser uma estrutura para Progressive Web Apps .
3,0 27/07/2018
4,0 15/10/2018
5.0 29/01/2019
6,0 28/08/2019
7,0 01-06-2020

A versão 2.0 foi lançada em 2018. A versão 2.0 e posteriores eliminam a palavra 'kit de ferramentas' do nome.

Críticas

Carregando

As versões anteriores do Dojo tinham a reputação de serem volumosas e lentas para carregar. Também exigia trabalho extra para carregar o Dojo entre domínios, por exemplo, de um CDN . Abordar esses problemas era o principal objetivo do Dojo 1.7, que introduziu a definição de módulo assíncrono (AMD) e um carregador "nano".

Documentação

O Dojo há muito é criticado por sua documentação incompleta, dispersa e desatualizada. Reconhecendo isso, os desenvolvedores fizeram grandes melhorias na documentação para o lançamento 1.8, incluindo novos tutoriais, um navegador de API, preenchendo as peças que faltavam e atualizando a maioria dos exemplos para o estilo AMD .

Vários livros foram escritos sobre o Dojo, mas todos baseados no Dojo 1.3 ou anterior, agora vários anos desatualizado. Uma vez que estes são anteriores ao suporte da AMD e sua reorganização, os exemplos nestes livros quase invariavelmente dependem de coisas que agora estão obsoletas e não são mais as melhores práticas. A maioria dos autores está esperando pelo Dojo 2.0 antes de publicar qualquer coisa nova.

Curva de aprendizado

Muitos comentaram que o Dojo parece difícil de aprender e começar a usar, especialmente em comparação com o jQuery mais popular .

O co-criador do Dojo, Dylan Schiemann, reconhece isso como consequência de seus diferentes escopos: "Certamente é mais fácil aprender algo que é menor do que algo que faz mais, mas nossos ávidos usuários são rápidos em apontar que um pouco mais de aprendizado inicial os poupa incontáveis horas para as coisas que o Dojo torna mais fácil. "

Estabilidade da API

Os primeiros usuários enfrentaram uma transição difícil para a versão 1.0 depois que o kit de ferramentas foi totalmente reescrito. A mudança para a AMD em versões recentes foi igualmente problemática. O Dojo tem se esforçado muito para manter a compatibilidade com versões anteriores, apesar de sua rápida evolução, com uma grande parte da API atual descontinuada, mas ainda mantida, mas os usuários muitas vezes descobriram que as atualizações não ocorreram tão bem quanto o esperado.

O lançamento do Dojo 2.0 removeu muito da API obsoleta e mudou de JavaScript para TypeScript.

Fundação Dojo e patrocínio

A Fundação Dojo foi uma organização sem fins lucrativos 501 (c) (6) fundada em 2005 para ajudar projetos de código aberto. Seus principais objetivos são ajudar na adoção por empresas e estimular projetos na fundação a colaborar uns com os outros.

Seus patrocinadores e membros são:

A Dojo Foundation também ajuda os seguintes projetos, além do Dojo Toolkit:

  • AnimeJ
  • CometD (para o paradigma de streaming de conteúdo Comet )
  • DWR
  • EmbedJS
  • Mensageiro rápido
  • Interface Geral
  • Grunhido
  • Estagiário
  • Jed Toolkit
  • Lo-dash
  • Lucid Desktop
  • Maqetta
  • OpenCoWeb
  • OpenRecord
  • Perseverar
  • RequireJS
  • Tessel
  • Wink Toolkit
  • Zazl

Em 2006, a IBM e a Sun Microsystems anunciaram suporte oficial para Dojo, incluindo contribuições de código. Um relatório do Gartner em 2009 observou que a IBM oferece suporte ao Dojo em 30 de seus produtos. Zend Technologies , a empresa por trás do núcleo do PHP , anunciou uma parceria com a Dojo em 2008, incorporando o kit de ferramentas ao Zend Framework .

Em 2016, a Fundação Dojo se fundiu com a Fundação jQuery para se tornar a Fundação JS .

Veja também

Referências

Leitura adicional

links externos