Dojo toolkit

Dojo Toolkit
Тип бібліотека JavaScript
Розробник Dojo Foundation
Стабільний випуск 1.13 (14 грудня 2017; 6 років тому (2017-12-14))
Операційна система Багатоплатформова
Мова програмування JavaScript
Ліцензія Модифікована Ліцензія BSD або Academic Free License (≥ 2.1)
Репозиторій github.com/dojo/framework
Вебсайт dojotoolkit.org

Dojo Toolkit — бібліотека мови JavaScript з відкритим кодом, чи точніше інструментарій, створений, щоб спростити швидку розробку кросплатформових AJAX-застосунків та вебсайтів. Розробка почата Алексом Расселом, Діланом Шіманом, Девідом Шонтзлером та іншими в 2004-тому. Бібліотека надає розробникам широкий спектр можливостей, від спрощення організації обміну даними з сервером, підтримки локального сховища і розбору дерева DOM, до використання готових віджетів для побудови інтерфейсу користувача (меню, wysiwyg-редактор, календар, динамічні таблиці, drag & drop, перевірка форм тощо), формування графіків/діаграм та задіяння нових технологій HTML5 (геопозиціювання, 3D-ефекти, API для сенсорних екранів). Бібліотека реалізує концепцію поділу даних та оформлення, що дозволяє підключати різні обробники в залежності від контексту, наприклад, оптимізовані для мобільних або стаціонарних систем. Офіційно підтримуються браузери (вказані мінімально підтримувані версії): Chrome 8, Firefox 3.6, Internet Explorer 6, Opera 11, Safari 5.

Код подвійно ліцензований під модифікованою ліцензією BSD або під Academic Free License (≥ 2.1). Існує неприбуткова організація Dojo Foundation[1] створена для поширення інструментарію.

Система віджетів

Мінімальна завантажувана частина бібліотеки Dojo Nano займає всього 4 Кб (у стислому вигляді), всі додаткові можливості, у тому числі модулі, специфічні для вебзастосунків, настільних інтерфейсів, мобільних застосунків і серверних систем, підвантажуються додатково, в міру необхідності.

Віджети

Віджети Dojo — це компоненти що містять код JavaScript, розмітку HTML, та описи стилів в CSS, які надають кросбраузерні можливості:

  • Меню, закладки, та спливаючі підказки
  • Таблиці що можна сортувати, динамічні діаграми, та двовимірні векторні зображення
  • Анімовані ефекти (вицвітання, розгортання, ковзання), та засоби для їх створення
  • Віджети візуалізації дерев, з підтримкою drag & drop
  • Різноманітні форми та підпрограми їх валідації
  • Календар, годинник

Теми

Можна використовувати різні теми оформлення щоб змінювати вигляд віджетів на сторінці.[2]

Властивості

Асинхронна комунікація

Основною властивістю Ajax застосунків є асинхронна взаємодія між браузером та сервером: інформація на сторінці оновлюється без необхідності перезавантажувати всю сторінку. Традиційно це робиться за допомогою об'єкта XMLHttpRequest. Dojo надає абстраговану обгортку (dojo.xhr) навколо реалізації XMLHttpRequest в різних браузерах, та dojo.io який також підтримує інші транспорти (такі як приховані IFrame-и). Використовуючи цей підхід, дуже легко відправити дані що користувач вводить в форму на сервер «за кулісами».

Пакетна система

Dojo має пакетну систему для полегшення модульної розробки функціоналу в пакетах та підпакетах. Базовий завантажувальний скрипт Dojo ініціалізує набір ієрархічних просторів імен пакунків — «io», «event», і т. ін. — в кореневому просторі імен «dojo». Після ініціалізації кореневого простору імен, можна завантажувати будь-який пакунок Dojo (через XMLHttpRequest чи подібний транспорт) використовуючи допоміжні функції завантажувального скрипту. Також можливо ініціалізувати додаткові простори імен всередині, чи паралельно до простору «dojo».

Пакети Dojo можуть складатись з багатьох файлів. Кожен пакет або файл, може описувати залежності від інших пакетів або файлів; коли завантажується пакет, завантажуються також всі пакети від яких він залежить.


Критика

Документація

Документація до Dojo різниться за якістю, в ній багато інформації розкидано між довідковими сторінками, документацією з API та сторінками уроків, а багато сторінок документації на офіційному сайті порожні, якщо не враховувати текст на зразок «TODO: how to use the component/class/method»[3].

Негнучкість

Хоча Dojo пропонує багато корисних компонентів «просто з полиці», він не є гнучким, і в багатьох відношеннях роздутий. Наприклад, щоб зобразити просту таблицю даних розробник повинен вибрати компонент що намагається відтворити функціональність електронної таблиці (з редагуванням та зміною розмірів клітинок). Якщо цей варіант неприйнятний, доводиться писати новий компонент з нуля, що значно збільшує вартість розробки.

Розробка з Dojo

Розробка з Dojo може проводитись в будь-якому підходящому редакторі. Прикладами можуть бути NetBeans, Eclipse, Aptana, чи Komodo. Netbeans та Eclipse є безкоштовними, а Aptana та Komodo мають публічно доступні версії. Для багатьох IDE доступні плагіни Dojo. Для WYSIWYG розробки з використанням Dojo, можна використати WaveMaker Visual Ajax Studio.

Dojo Foundation та фінансування

IBM[4] та Sun Microsystems[5] анонсували про офіційну підтримку Dojo, включаючи внески коду.

Zend Technologies, компанія що підтримує ядро PHP, анонсувала партнерство з Dojo, щоб включити його в Zend Framework[6]

Dojo Foundation — непідприємницька організація заснована щоб допомагати проектам з відкритим кодом. Основними її цілями є допомагати впровадженню в компаніях, та заохочувати проекти фундації до співпраці між собою[1].

Її спонсорами та членами є:

Dojo Foundation також допомагає наступним проектам:

  • Persevere
  • OpenRecord
  • Cometd (для парадигми потоків контенту Comet)
  • DWR
  • Lucid Desktop[7]

Виноски

  1. а б The Dojo Foundation. Архів оригіналу за 29 червня 2011. Процитовано 1 липня 2011.
  2. Архівована копія. Архів оригіналу за 23 липня 2011. Процитовано 1 липня 2011.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Архівована копія. Архів оригіналу за 24 серпня 2011. Процитовано 1 липня 2011.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  4. IBM Contributes Ajax Software Development Technology to Open Source Community. IBM Press Release. 5 червня 2006. Архів оригіналу за 13 липня 2013. Процитовано 3 лютого 2007.
  5. Sun Joins the OpenAJAX Alliance and Dojo Foundation. Sun Microsystems Press Release. 16 червня 2006. Архів оригіналу за 13 липня 2013. Процитовано 3 лютого 2007.
  6. Dojo and Zend Framework Partnership Announcement. Архів оригіналу за 22 липня 2011. Процитовано 1 липня 2011.
  7. Архівована копія. Архів оригіналу за 16 липня 2009. Процитовано 1 липня 2011.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)


Бібліографія

  • Orchard, Leslie M. (24 листопада 2008). Concise Guide to Dojo (вид. 1st). Wrox Press. с. 264. ISBN 978-0470452028. Архів оригіналу за 18 липня 2011. Процитовано 1 липня 2011.
  • Russell, Matthew A. (24 червня 2008). Dojo: The Definitive Guide (вид. 1st). O'Reilly Media. с. 500. ISBN 978-0596516482.
  • Riecke, Craig; Gill, Rawld; Russell, Alex (18 червня 2008). Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences (вид. 1st). Pragmatic Bookshelf. с. 568. ISBN 978-1934356111.
  • Holzner, Steven (14 грудня 2008). The Dojo Toolkit: Visual QuickStart Guide (вид. 1st). Peachpit Press. с. 208. ISBN 978-0321605122. Архів оригіналу за 2 вересня 2012. Процитовано 1 липня 2011.
  • Zammetti, Frank (19 вересня 2008). Practical Dojo Projects (вид. 1st). Apress. с. 500. ISBN 978-1430210665. Архів оригіналу за 7 червня 2011. Процитовано 1 липня 2011.
  • Hayes, Kyle (17 листопада 2009). Getting StartED with Dojo JavaScript Toolkit (вид. 1st). Friends of Ed. с. 350. ISBN 978-1430225218. Архів оригіналу за квітень 22, 2010. Процитовано липень 1, 2011.
  • Svensson, Peter (24 листопада 2008). Learning Dojo (вид. 1st). Packt Publishing. с. 264. ISBN 978-1847192684. Архів оригіналу за 26 вересня 2011. Процитовано 1 липня 2011.
  • Harmon, James E. (21 червня 2008). Dojo: Using the Dojo JavaScript Library to Build Ajax Applications (вид. 1st). Addison-Wesley Professional. с. 336. ISBN 978-0132358040. Архів оригіналу за 14 січня 2012. Процитовано 1 липня 2011.
  • Orchard, Leslie M.; Pehlivanian, Ara; Koon, Scott; Jones, Harley (31 серпня 2009). Professional JavaScript Frameworks: Prototype,YUI, ExtJS, Dojo and MooTools (вид. 1st). Wrox Press. с. 888. ISBN 978-0470384596. Архів оригіналу за 6 липня 2011. Процитовано 1 липня 2011.

Посилання

  • Офіційний сайт, з демо
  • Dojo Foundation [Архівовано 29 червня 2011 у Wayback Machine.]
  • Огляд Dojo
  • п
  • о
  • р
Каркаси вебзастосунків (веб-фреймворки)
ASP.NET
ASP.NET MVC Framework · BFC · DotNetNuke · MonoRail · Umbraco
ColdFusion
ColdSpring · Fusebox · Mach-II · Model-Glue · onTap
Common Lisp
ABCL-web · blow · BKNR · SymbolicWeb · UnCommon Web
Erlang
BeepBeep · Chicago Boss · Erlang Web · ErlyWeb · Inets · Misultin · Mochiweb · Nitrogen · WebMachine · Yaws
Flex
Cairngorm
Java
Apache Cocoon · Apache Struts · Apache Tapestry · AppFuse · Aranea framework · Click Framework · Cooee framework · Flexive · Google Web Toolkit · Grails · Hamlets · IT Mill Toolkit · ItsNat · JavaServer Faces · JBoss Seam · Makumba · Mentawai · Oracle ADF · OpenLaszlo · OpenXava · Play Framework · Reasonable Server Faces · Restlet · RIFE · Shale Framework · SmartClient · Spring Framework · Stripes · ThinWire · WebObjects · WebWork · Apache Wicket · XTT Framework · ZK Framework
Клієнтські для JavaScript
ASP.NET AJAX · AJILE · Clean AJAX · Backbone.js · Dojo toolkit · Echo JS · Ext JS · jQuery · KnockoutJS · MochiKit · Meteor · MooTools · OpenLink AJAX Toolkit · Prototype · React · qooxdoo · Rialto Toolkit · Rico · script.aculo.us · SmartClient · Spry framework · WinJS · Underscore.js · Yahoo! UI Library
Perl
Catalyst[en] · Interchange · Maypole framework · Mason · Mojolicious
PHP
Akelos PHP Framework · CakePHP · Chisimba · CodeIgniter · Drupal · DokuWiki · eZ Publish · FUSE · Horde · Joomla! · Kohana · MODX · Phalcon · PHP For Applications · PHPOpenbiz · PRADO · Qcodo · Seagull PHP Framework · Simplicity PHP framework · Laravel · SilverStripe · Symfony · VirtueMart · Zend Framework · Zoop Framework · Yii
Python
CherryPy · Django · Flask · Karrigell · Nevow · Porcupine · Pylons · Spyce · TurboGears · TwistedWeb · web.py · web2py · Webware · Zope
Ruby
Camping · Nitro · IOWA · Ramaze · Cerise · Merb · Ruby on Rails
Scala
Lift · Play Framework · Scalatra
Серверні для JavaScript
AppJet · firecat · Helma Object Publisher · Node.js
Lua
Dart
Інші
Alpha Five · Fusebox (ColdFusion і PHP) · OpenACS (Tcl) · Seaside (Smalltalk) · HAppS (Haskell)·
  • п
  • о
  • р
Список бібліотек віджетів[en]
Низькорівневі
Високорівневі
  • Athena (Xaw)
  • InterViews
  • LessTif
  • Motif
  • OPEN LOOK
  • BOOPSI
  • MUI
  • ReAction GUI
  • Zune
  • Carbon
  • Cocoa
  • MacApp
  • MacZoop
  • PowerPlant
Кросплатформні
CLI
C
Десктоп
Web
  • CAPI
  • Common Graphics
  • CLIM
  • Ltk
  • McCLIM
  • LCL
  • CLX
  • fpGUI
  • IP Pascal
  • LCL
  • PHP-GTK
  • PHP-Qt
  • WxPHP
  • Shoes
  • QtRuby
  • Ample SDK
  • CougarXML
  • GladeXML
  • Lively Kernel
  • Pyjamas
  • Rialto Toolkit
  • XAML
  • XUI
  • XUL
  • Wt