SlideShare a Scribd company logo
Dojo Web Builder
                                                          Building Dojo in the Cloud




http://www.flickr.com/photos/turtlemom_nancy/2046347762/
                                                                                       James Thomas
Me.




@thomasj
Who uses the Dojo
builder for their app?
Building Dojo in the Cloud
So... why do we need a
    “Web Builder”?
Existing Dojo Build

• Learning curve too steep for many users
• Toolset may put some some users, i.e.
  commands lines and shell scripts
• Users from simpler toolkits aren’t used to
  “building” JavaScript components
Why does this matter?
“Dojo is slow....”
http://www.flickr.com/photos/mrhayata/107290472/
http://www.flickr.com/photos/88933162@N00/5190194408/
Dojo Web Builder
build.dojotoolkit.org

•   Launched in April 2011


•   Served nearly 3000
    builds of Dojo!


•   Hosted on EC2
github.com/dojo/dwb
Time for a demo!
How does it work?
Architecture

                  XHR
Web Application           REST API     Asynchronous
                                           Builder
                  JSON     (Java)
                                        (JavaScript)




 Dojo 1.5                  Jetty      Rhino
                         JAX-RS      Dojo Build
Architecture

                  XHR
Web Application             REST API               Asynchronous
                                                       Builder
                  JSON       (Java)
                                                    (JavaScript)




             Retrieve all packages available....
GET /packages

{
    "packages":
       [
          {
            "link":"http://your.dojotoolkit.org/api/packages/dojo",
            "name":"dojo"
          }
       ],
       [
          {
            "link":"http://build.dojotoolkit.org/api/packages/dwb",
            "name":"dwb"
          }
       ]
}
GET /packages/dojo
{
    "versions":
       [
          {
             "link":"http://build.dojotoolkit.org/api/packages/dojo/1.4.3",
             "name":"1.4.3"
          },
          {
             "link":"http://build.dojotoolkit.org/api/packages/dojo/1.5.1",
             "name":"1.5.1"
          },
          {
             "link":"http://build.dojotoolkit.org/api/packages/dojo/1.6.1",
             "name":"1.6.1"
          }
       ]
}
GET /packages/dojo/1.6.1

{
    "description":"Dojo Toolkit, release 1.6.1",
    "name":"Dojo Toolkit",
    "modules":
       [
         ["dijit.Calendar","A simple GUI for choosing a date in the context of a monthly
         calendar. "],
         ["dijit.CheckedMenuItem","A checkbox-like menu item for toggling on and off "],
         ["dijit.ColorPalette","A keyboard accessible color-picking widget "],
         ["dijit.Declaration","The Declaration widget allows a developer to declare new
         widget classes directly from a snippet of markup. "],
         .......
       ]
}
Architecture

                  XHR
Web Application                REST API      Asynchronous
                                                 Builder
                  JSON          (Java)
                                              (JavaScript)




                         Submit a build...
POST /build
{
    "packages":[
       {
          "name":"dojo",
          "version":"1.6.1"
       }
    ],
    "layers":[
       {
          "name":"dojo.js",
          "modules":[
             {"name":"dijit.Calendar", "package":"dojo"},
             {"name":"dijit.Dialog", "package":"dojo"},
             {"name":"dijit.Menu","package":"dojo"}
          ]
       }
    ],
    "optimise":"shrinksafe",
    "cdn":"none",
    "themes":"claro",
    "cssOptimise":"comments"
}
HTTP 202 Accepted
{
    "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/
    HtHlqBVzBAztHRKMlClyYPzBofk_"
}
GET /build/status
{
     "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/
     HtHlqBVzBAztHRKMlClyYPzBofk_"
}



{
    "logs": "Beginning build process...”
    "state": "BUILDING"
}
GET /build/status
{
     "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/
     HtHlqBVzBAztHRKMlClyYPzBofk_"
}



{
    "logs":"Beginning build process...”
         Local build selected.
         Loading build scripts... done
         Found custom module package, set up build....
         Custom user package analysis... done
         Creating layer profiles....
         Discovered layer, dojo.js
         Creating layer contents from profile...
         ....
         Build process completed successfully!",
    "state" : "COMPLETED",
    "result": "http://build.dojotoolkit.org/api/build/
            HtHlqBVzBAztHRKMlClyYPzBofk_"
}
Building Dojo in the Cloud
http://www.flickr.com/photos/decade_null/142235888/
LOGS



       http://www.flickr.com/photos/decade_null/142235888/
Statistics!
              http://www.flickr.com/photos/gasi/348050339/
Builds Per Month
                       Build Requests

800


600


400


200


  0
        May     June          July      August   Sept


      Total Builds Since Launch - 2740*
Most Popular Modules
      Module Name               Builds Contained
             dijit.Dialog             30.80%
         dijit.form.Button            30.58%
   dijit.layout.ContentPane           26.57%
          dijit.form.Form             23.80%
            dojo.parser               22.85%
 dojo.data.ItemFileReadStore          22.85%
           dijit.Calendar             22.55%
   dijit.form.FilteringSelect         22.26%
     dijit.form.ComboBox              22.08%
   dijit.layout.TabContainer          22.01%
Auto Analysis
           Analysis Type

2,000


1,500


1,000


 500


   0
        Remote URL         Local File   Profile


    Total Auto-Analyse Requests - 2180
Auto Analysis
           Analysis Type                Localhost

2,000


1,500


1,000


 500


   0
        Remote URL         Local File           Profile


    Total Auto-Analyse Requests - 2180
What’s next?
• Full AMD support (build & auto-analysis)
• Full AMD support (build & auto-analysis)

• Dojo Foundation Package Repository
• Full AMD support (build & auto-analysis)

• Dojo Foundation Package Repository

• Build process purely client-side?
Thank you for listening!

     http://build.dojotoolkit.org



     http://github.com/dojo/dwb

More Related Content

PDF
Zero To Dojo
PPTX
Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014
PPTX
How dojo works
PPTX
Dojo javascript toolkit
KEY
Dojo, from scratch to result
PDF
Dojo toolkit
PPT
The Dojo Toolkit An Introduction
PPT
Introduction To Dojo
Zero To Dojo
Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014
How dojo works
Dojo javascript toolkit
Dojo, from scratch to result
Dojo toolkit
The Dojo Toolkit An Introduction
Introduction To Dojo

What's hot (20)

PDF
Complete Dojo
PDF
Moving to Dojo 1.7 and the path to 2.0
PDF
Advanced guide to develop ajax applications using dojo
KEY
Running YUI 3 on Node.js - BayJax
KEY
Dojo & HTML5
PPTX
Dojo tutorial
PDF
Server Side JavaScript - You ain't seen nothing yet
PDF
Lightning Talk: Making JS better with Browserify
PDF
Browserify
PPTX
Introduction to jQuery
PPTX
Tutorial to develop build files using ANT
PPTX
NoSQL - Hands on
PDF
Building Real-World Dojo Web Applications
PPTX
Extending Studio
PDF
JavaScript Dependencies, Modules & Browserify
PPT
jQuery Tips Tricks Trivia
PDF
以Vue開發電子商務網站
架構與眉角
PDF
Famo.us - New generation of HTML5 Web Application Framework
PPTX
Create online games with node.js and socket.io
PDF
Understanding the Node.js Platform
Complete Dojo
Moving to Dojo 1.7 and the path to 2.0
Advanced guide to develop ajax applications using dojo
Running YUI 3 on Node.js - BayJax
Dojo & HTML5
Dojo tutorial
Server Side JavaScript - You ain't seen nothing yet
Lightning Talk: Making JS better with Browserify
Browserify
Introduction to jQuery
Tutorial to develop build files using ANT
NoSQL - Hands on
Building Real-World Dojo Web Applications
Extending Studio
JavaScript Dependencies, Modules & Browserify
jQuery Tips Tricks Trivia
以Vue開發電子商務網站
架構與眉角
Famo.us - New generation of HTML5 Web Application Framework
Create online games with node.js and socket.io
Understanding the Node.js Platform
Ad

Similar to Building Dojo in the Cloud (20)

PDF
Test02
PPTX
Jquery dojo slides
ODP
Dojo: Beautiful Web Apps, Fast
PDF
Getting Started with Dojo Toolkit
ODP
DOJO
PPTX
20150317 firefox os_studymtg_engver
PPTX
Mobile App Development: Primi passi con NativeScript e Angular 2
PDF
JavaScript Library Overview
PDF
Xitrum @ Scala Matsuri Tokyo 2014
PDF
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
KEY
Practical Use of MongoDB for Node.js
PDF
Node azure
PDF
From YUI3 to K2
PDF
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
PDF
Nodejs and WebSockets
PPTX
Starting with jQuery
PDF
The Dojo Build System
PDF
Front End Development for Back End Developers - Devoxx UK 2017
PDF
JavaScript Library Overview (Ajax Exp West 2007)
PDF
Social Connections VI — IBM Connections Extensions and Themes Demystified
Test02
Jquery dojo slides
Dojo: Beautiful Web Apps, Fast
Getting Started with Dojo Toolkit
DOJO
20150317 firefox os_studymtg_engver
Mobile App Development: Primi passi con NativeScript e Angular 2
JavaScript Library Overview
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Practical Use of MongoDB for Node.js
Node azure
From YUI3 to K2
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Nodejs and WebSockets
Starting with jQuery
The Dojo Build System
Front End Development for Back End Developers - Devoxx UK 2017
JavaScript Library Overview (Ajax Exp West 2007)
Social Connections VI — IBM Connections Extensions and Themes Demystified
Ad

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Machine learning based COVID-19 study performance prediction
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
Teaching material agriculture food technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Big Data Technologies - Introduction.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Spectral efficient network and resource selection model in 5G networks
MYSQL Presentation for SQL database connectivity
Machine learning based COVID-19 study performance prediction
Building Integrated photovoltaic BIPV_UPV.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation_ Review paper, used for researhc scholars
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation theory and applications.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
The AUB Centre for AI in Media Proposal.docx
Programs and apps: productivity, graphics, security and other tools
Teaching material agriculture food technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Big Data Technologies - Introduction.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton

Building Dojo in the Cloud

  • 1. Dojo Web Builder Building Dojo in the Cloud http://www.flickr.com/photos/turtlemom_nancy/2046347762/ James Thomas
  • 3. Who uses the Dojo builder for their app?
  • 5. So... why do we need a “Web Builder”?
  • 6. Existing Dojo Build • Learning curve too steep for many users • Toolset may put some some users, i.e. commands lines and shell scripts • Users from simpler toolkits aren’t used to “building” JavaScript components
  • 7. Why does this matter?
  • 12. build.dojotoolkit.org • Launched in April 2011 • Served nearly 3000 builds of Dojo! • Hosted on EC2
  • 14. Time for a demo!
  • 15. How does it work?
  • 16. Architecture XHR Web Application REST API Asynchronous Builder JSON (Java) (JavaScript) Dojo 1.5 Jetty Rhino JAX-RS Dojo Build
  • 17. Architecture XHR Web Application REST API Asynchronous Builder JSON (Java) (JavaScript) Retrieve all packages available....
  • 18. GET /packages { "packages": [ { "link":"http://your.dojotoolkit.org/api/packages/dojo", "name":"dojo" } ], [ { "link":"http://build.dojotoolkit.org/api/packages/dwb", "name":"dwb" } ] }
  • 19. GET /packages/dojo { "versions": [ { "link":"http://build.dojotoolkit.org/api/packages/dojo/1.4.3", "name":"1.4.3" }, { "link":"http://build.dojotoolkit.org/api/packages/dojo/1.5.1", "name":"1.5.1" }, { "link":"http://build.dojotoolkit.org/api/packages/dojo/1.6.1", "name":"1.6.1" } ] }
  • 20. GET /packages/dojo/1.6.1 { "description":"Dojo Toolkit, release 1.6.1", "name":"Dojo Toolkit", "modules": [ ["dijit.Calendar","A simple GUI for choosing a date in the context of a monthly calendar. "], ["dijit.CheckedMenuItem","A checkbox-like menu item for toggling on and off "], ["dijit.ColorPalette","A keyboard accessible color-picking widget "], ["dijit.Declaration","The Declaration widget allows a developer to declare new widget classes directly from a snippet of markup. "], ....... ] }
  • 21. Architecture XHR Web Application REST API Asynchronous Builder JSON (Java) (JavaScript) Submit a build...
  • 22. POST /build { "packages":[ { "name":"dojo", "version":"1.6.1" } ], "layers":[ { "name":"dojo.js", "modules":[ {"name":"dijit.Calendar", "package":"dojo"}, {"name":"dijit.Dialog", "package":"dojo"}, {"name":"dijit.Menu","package":"dojo"} ] } ], "optimise":"shrinksafe", "cdn":"none", "themes":"claro", "cssOptimise":"comments" }
  • 23. HTTP 202 Accepted { "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/ HtHlqBVzBAztHRKMlClyYPzBofk_" }
  • 24. GET /build/status { "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/ HtHlqBVzBAztHRKMlClyYPzBofk_" } { "logs": "Beginning build process...” "state": "BUILDING" }
  • 25. GET /build/status { "buildStatusLink": "http://build.dojotoolkit.org/api/build/status/ HtHlqBVzBAztHRKMlClyYPzBofk_" } { "logs":"Beginning build process...” Local build selected. Loading build scripts... done Found custom module package, set up build.... Custom user package analysis... done Creating layer profiles.... Discovered layer, dojo.js Creating layer contents from profile... .... Build process completed successfully!", "state" : "COMPLETED", "result": "http://build.dojotoolkit.org/api/build/ HtHlqBVzBAztHRKMlClyYPzBofk_" }
  • 28. LOGS http://www.flickr.com/photos/decade_null/142235888/
  • 29. Statistics! http://www.flickr.com/photos/gasi/348050339/
  • 30. Builds Per Month Build Requests 800 600 400 200 0 May June July August Sept Total Builds Since Launch - 2740*
  • 31. Most Popular Modules Module Name Builds Contained dijit.Dialog 30.80% dijit.form.Button 30.58% dijit.layout.ContentPane 26.57% dijit.form.Form 23.80% dojo.parser 22.85% dojo.data.ItemFileReadStore 22.85% dijit.Calendar 22.55% dijit.form.FilteringSelect 22.26% dijit.form.ComboBox 22.08% dijit.layout.TabContainer 22.01%
  • 32. Auto Analysis Analysis Type 2,000 1,500 1,000 500 0 Remote URL Local File Profile Total Auto-Analyse Requests - 2180
  • 33. Auto Analysis Analysis Type Localhost 2,000 1,500 1,000 500 0 Remote URL Local File Profile Total Auto-Analyse Requests - 2180
  • 35. • Full AMD support (build & auto-analysis)
  • 36. • Full AMD support (build & auto-analysis) • Dojo Foundation Package Repository
  • 37. • Full AMD support (build & auto-analysis) • Dojo Foundation Package Repository • Build process purely client-side?
  • 38. Thank you for listening! http://build.dojotoolkit.org http://github.com/dojo/dwb

Editor's Notes