Dojo Toolkit - Dojo Toolkit
Desenvolvedor (s) | Fundação Dojo |
---|---|
lançamento inicial | Março de 2005 |
Versão estável | 7.0.6 / 20 de janeiro de 2021
|
Versão de visualização | 8.0.0-beta.7 / 27 de abril de 2021
|
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:
- Menus , guias e dicas de ferramentas
- Tabelas classificáveis
- Gráficos dinâmicos
- Desenhos vetoriais 2D
- Efeitos animados - fades, wipes e slides - recursos para efeitos de animação personalizados
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.io
també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:
- AOL
- IBM
- SitePen
- Uxebu
- TIBCO
- Bocoup
- TimeTrade
- Laboratórios de laranja
- Zend
- Renkoo
- TurboAjax
- OpenLaszlo
- Nexaweb
- Sun Microsystems (adquirida pela Oracle Corporation )
- JotSpot (adquirido pelo Google )
- Bea Systems (adquirida pela Oracle Corporation )
- Mozilla
- Redfin
- SixApart
- SpringSource / vmware
- Webtide
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
- Orchard, Leslie M. (24 de novembro de 2008). Guia conciso para Dojo (1ª ed.). Wrox Press . p. 264. ISBN 978-0-470-45202-8.
- Russell, Matthew A. (24 de junho de 2008). Dojo: The Definitive Guide (1ª ed.). O'Reilly Media . p. 500. ISBN 978-0-596-51648-2.
- Riecke, Craig; Gill, Rawld; Russell, Alex (18 de junho de 2008). Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences (1ª ed.). Estante pragmática . p. 568. ISBN 978-1-934356-11-1.
- Holzner, Steven (14 de dezembro de 2008). O Dojo Toolkit: Guia Visual QuickStart (1ª ed.). Peachpit Press . p. 208. ISBN 978-0-321-60512-2.
- Zammetti, Frank (19 de setembro de 2008). Projetos Dojo Práticos (1ª ed.). Apress . p. 500. ISBN 978-1-4302-1066-5.
- Hayes, Kyle (17 de novembro de 2009). Introdução ao Dojo JavaScript Toolkit (1ª ed.). Amigos de Ed . p. 350. ISBN 978-1-4302-2521-8. Arquivado do original em 22 de abril de 2010 . Recuperado em 15 de agosto de 2009 .
- Svensson, Peter (24 de novembro de 2008). Learning Dojo (1ª ed.). Publicação de pacote . p. 264. ISBN 978-1-84719-268-4.
- Harmon, James E. (21 de junho de 2008). Dojo: Usando a Biblioteca JavaScript Dojo para Construir Aplicativos Ajax (1ª ed.). Addison-Wesley Professional . p. 336. ISBN 978-0-13-235804-0.
- Orchard, Leslie M .; Pehlivanian, Ara; Koon, Scott; Jones, Harley (31 de agosto de 2009). Frameworks JavaScript profissionais: Prototype, YUI, ExtJS, Dojo e MooTools (1ª ed.). Wrox Press . p. 888. ISBN 978-0-470-38459-6.