SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
Building single page, modular
      HTML5 applications for PC
              and Mobile
                                      Lorant Domokos
                            Microsoft Student Partners
                                               Fortech


@   itcampro   # itcamp12    Premium conference on Microsoft technologies
ITCamp 2012 sponsors                                                       Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Agenda                                                                     Mobile &
                                                                           Development


•   What are Single Page Applications?
•   Architecture
•   Technologies
•   Knockout fundamentals
•   Navigation fundamentals
•   Services layer
•   Patterns for modular JavaScript code



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Spectrum of Web Apps                                                       Mobile &
                                                                           Development


• Static: consist of static HTML pages, CSS, and
  images, full page refresh, page does not
  change

• Server Rendered: server dynamically
  assembles page, JavaScript for validation,
  hover, full page refresh




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Spectrum of Web Apps                                                       Mobile &
                                                                           Development


• Hybrid Design: similar to server-rendered, but
  relies heavily on client side Java-Script to deliver
  an engaging experience.

     – Islands of richness: islands of interactivity within the
       site that do not require full-page reloads to change
       the UI

• Single-page Interface: In this model, a full-page
  load happens only once. Ex: Hotmail, Office Live.

• Bani Pierduti is hybrid

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Modern Web Applications                                                    Mobile &
                                                                           Development


•   They are standards-focused, no plugins
•   They are interactive
•   They limit full-page reloads
•   They are asynchronous
•   They manage data
•   Runs on any device
•   Can work offline



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Keep user is context                                                       Mobile &
                                                                           Development


• No page reload
• Users are kept in context
• Fluid experience as they navigate from one
  task to another
• Result: great user experience




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Single Page Applications                                                   Mobile &
                                                                           Development




  Rich responsive applications combining the
best of the web and desktop, build with HTML5
                and JavaScript




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Architecture                                                                   Mobile &
                                                                               Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Architecture                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


                                                              JavaScript Client
                                                              Side Interaction




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Architecture                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction


                                                                 Data access
                                                                   service




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Architecture                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction           Nav


                                                                 Data access
                                                                   service




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Architecture                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction           Nav


                                                              JavaScript Client
                                                              Side Interaction




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Architecture                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction           Nav


                                                                 Data access
                                                                   service



                                                                Local Storage




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Mobile &
                                                                           Development




                      DEMO MVC 4 SPA




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Bani Pierduti                                                              Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Technologies                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction           Nav
                      WebAPI
                      Node.js
                                                                 Data access
                                                                   service



                                                                Local Storage




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Technologies                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction           Nav
                      WebAPI
                      Node.js
                                                                 Data access
                                                                   service



                                                                Local Storage         HTML5




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Technologies                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS


       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction           Nav
                      WebAPI
                      Node.js
                                                                 Data access
                                                                   service
                                                                                      Upshot.js?
                                                                                      Amplify.js

                                                                Local Storage         HTML5




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Technologies                                                                      Mobile &
                                                                                  Development

          Server                                                    Client

         ASP.NET                                              Rendered Page
       HTML/CSS/JS                                              HTML/CSS
                                                                                       Nav.js?
                                                                                       History.js
       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction            Nav
                      WebAPI
                      Node.js
                                                                 Data access
                                                                   service
                                                                                      Upshot.js?
                                                                                      Amplify.js

                                                                Local Storage         HTML5




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Technologies                                                                      Mobile &
                                                                                  Development

          Server                                                    Client          Knockout.js
                                                                                    Backbone.js
         ASP.NET                                              Rendered Page         JsRender
       HTML/CSS/JS                                              HTML/CSS
                                                                                       Nav.js?
                                                                                       History.js
       Data Service                                           JavaScript Client
        JSON/XML                                              Side Interaction            Nav
                      WebAPI
                      Node.js
                                                                 Data access
                                                                   service
                                                                                      Upshot.js?
                                                                                      Amplify.js

                                                                Local Storage         HTML5




@   itcampro       # itcamp12   Premium conference on Microsoft technologies
Knockout                                                                   Mobile &
                                                                           Development


• JavaScript MVVM Framework
• MVVM-Model-View-ViewModel
     – Model-business domain objects
     – View-visible UI
     – ViewModel-data/operations on UI




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Knockout                                                                   Mobile &
                                                                           Development


• Declarative data bindings, two way
• Automatic UI refresh
• Dependency tracking, if one object changes
  all dependent objects change
• Templating




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Observables                                                                Mobile &
                                                                           Development


•   They are functions
•   Bindings observe observables
•   Declare: var p = ko.observable();
•   Read: var r = p();
•   Write: p(‘value’);




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Observables                                                                Mobile &
                                                                           Development


• Types:
     – Observable: ko.observable(‘value’)
     – Observable array: ko.observableArray([])
     – Computed:
     ko.computed(function() {
         return vm.firstName() + ‘ ’ + vm.lastName();
     }, vm)




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Bindings                                                                   Mobile &
                                                                           Development


• Built in:
     – Text and Appearance
     – Forms
     – Control Flow
     – Templates
• Custom bindings




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Text and Appearance                                                        Mobile &
                                                                           Development


•   Visible-toggle visibility
•   Text-text value of DOM element
•   Html-raw HTML of DOM element
•   Css-css classes
•   Style-raw style attributes
•   Attr-any attribute of DOM element




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Forms                                                                      Mobile &
                                                                           Development


•   Click-click event handling
•   Event-handling any event of DOM element
•   Submit-invoked when form is submitted
•   Enable-set as enabled
•   Disable-set as disabled
•   Value-value of DOM element
•   Checked-checkbox, radio button
•   Etc.


@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Control Flow                                                               Mobile &
                                                                           Development


• If-executed if condition is true
• Ifnot-executes if condition is false
• Foreach-executes for each item in collection
     – $index
     – $data
• With-Executes for the specified child object




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Templates                                                                  Mobile &
                                                                           Development


• JavaScript templates-traditional JavaScript
  template in <script> tag
• Containerless control flow: template-less,
  comment based syntax




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Navigation and Browser History                                             Mobile &
                                                                           Development


• Traditional: browser manages history, back
  and forward buttons
• URLs can contain a fragment identifier (hash)
     – This is the part after the # sign
• Fragment identifier may also contain name
  value pairs




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Navigation and Browser History                                             Mobile &
                                                                           Development


• If only the fragment identifier changes the
  browser doesn’t do a page refresh
• They are also not added to history
  automatically
• Fragment identifies can be used to manage
  screen layout
• Application can handle HTML 5 hashchange
  event



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Upshot.js                                                                  Mobile &
                                                                           Development


•   “Proxy” on client side
•   Retrieves data from service
•   Paging
•   Tracks changes
•   Offline
•   Is it ready?




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Amplify.js                                                                 Mobile &
                                                                           Development


• Set of components designed to solve
  common web application problems with a
  simplistic API
• Request management: provides a clean and
  elegant request abstraction
• Client Side Browser & Mobile Device Storage:
  HTML5 LocalStorage on modern browsers
• Client Side Component Communication:
  pub/sub component to component
  communication

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
WebAPI                                                                     Mobile &
                                                                           Development




       Alessandro Pilotti already demonstrated




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Modularity                                                                 Mobile &
                                                                           Development


• Patterns are recommended for separation of
  concerns, encapsulation, abstraction, etc
• Namespaces: var bp = bp || {};
• Structuring patterns
• Promise and Deferred patterns for handling
  asynchrony
• Advanced(Not discussed here):
     – Publish/Subscribe for module communication
     – Asynchronous module definitions
     – jQuery Widgets, Plugins

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
JavaScript structuring patterns                                            Mobile &
                                                                           Development


•   Prototype pattern
•   Module pattern
•   Revealing module pattern
•   Revealing prototype pattern




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Prototype pattern                                                          Mobile &
                                                                           Development


var Calculator = function(element) {
     this.eqControl = $(element);
}

Calculator.prototype = {
     add: function(x, y) {
           var val = x + y;
           this.eqControl.text(val);
     }
}

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Prototype pattern                                                          Mobile &
                                                                           Development


• Pros:
     – JS built in features
     – Modularize code into reusable objects
     – Variables/functions taken out of global
       namespace
     – Functions loaded into memory once
     – Can “override” functions
• Cons:
     – “this” can be tricky
     – Contstructor separate from prototype definition

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Module pattern                                                             Mobile &
                                                                           Development


var Calculator = function(element) {
      // Private member.
      this.eqControl = $(element);

         return {
               // Public interface.
               add: function(x, y) {
                     var val = x + y;
                     this.eqControl.text(val);
               }
         };
}

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Module pattern                                                             Mobile &
                                                                           Development


• Pros:
     – Modularize code into reusable objects
     – Variables/functions taken out of global
       namespace
     – Expose only public members, hide private
• Cons:
     – Functions will be duplicated for each instance
     – Not easy to extend




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Revealing Module pattern                                                          Mobile &
                                                                                  Development

var Calculator = function(element) {
        // Private members.
        var
                eqControl = $(element),
                add: function(x, y) {
                       var val = x + y;
                       this.eqControl.text(val);
                };

         return {
                    // Public interface.
                    doAdd: add
         };
}



@   itcampro   # itcamp12          Premium conference on Microsoft technologies
Revealing Module pattern                                                   Mobile &
                                                                           Development


• Pros:
     – Modularize code into reusable objects
     – Variables/functions taken out of global
       namespace
     – Expose only public members, hide private
     – Cleaner way to expose public members
• Cons:
     – Functions will be duplicated for each instance
     – Not easy to extend


@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Revealing Prototype pattern                                                     Mobile &
                                                                                Development

var Calculator = function(element) {
        this.eqControl = $(element);
}

Calculator.prototype = function() {
       var add = function(x, y) {
               var val = x + y;
               this.eqControl.text(val);
       };

         return {
                    doAdd: add
         };
}



@   itcampro   # itcamp12        Premium conference on Microsoft technologies
Revealing Module pattern                                                   Mobile &
                                                                           Development


• Pros:
     – Combines Prototype and Revealing Module
       patterns
     – Modularize code into reusable objects
     – Variables/functions taken out of global
       namespace
     – Functions loaded into memory once
     – Can “override” functions
• Cons:
     – “this” can be tricky
     – Contstructor separate from prototype definition

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Promise pattern                                                            Mobile &
                                                                           Development


• JavaScript requests/operations are
  asynchronous:
     – Ajax
     – Animations
     – Etc.
• How do we link operations if we have
  dependencies?




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Promise pattern                                                            Mobile &
                                                                           Development


•   jQuery.Deferred public API
•   defferred.done()
•   defferred.fail()
•   defferred.then()
•   defferred.resolve()
•   defferred.reject()
•   jQuery.when()



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Responsive web design                                                      Mobile &
                                                                           Development


• Want to build single application for phone,
  tablet, PC, TV because
     – No duplicate effort
     – Reuse previous knowledge
     – Same content across platforms
• Solution: Responsive web design (topic for
  another talk)




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Responsive web design                                                      Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Q&A


@   itcampro   # itcamp12   Premium conference on Microsoft technologies

Contenu connexe

Tendances

Sencha Web Applications Come of Age
Sencha Web Applications Come of AgeSencha Web Applications Come of Age
Sencha Web Applications Come of Agebastila
 
Ajax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley HalesAjax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley Halesrajivmordani
 
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12Grameen Solutions
 
IBM Websphere Portal | Portal Accelerators
IBM Websphere Portal  |  Portal AcceleratorsIBM Websphere Portal  |  Portal Accelerators
IBM Websphere Portal | Portal AcceleratorsJason Faszholz
 
01. Portal Business Overview
01. Portal Business Overview01. Portal Business Overview
01. Portal Business OverviewNick Davis
 
Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Prashanth Shivakumar
 
Managing Content In Portal Wcm
Managing Content In Portal WcmManaging Content In Portal Wcm
Managing Content In Portal Wcmtchaitanya
 
IBM WebSphere Portal References Education
IBM WebSphere Portal References EducationIBM WebSphere Portal References Education
IBM WebSphere Portal References EducationDvir Reznik
 
WebSphere Portal Business Overview
WebSphere Portal Business OverviewWebSphere Portal Business Overview
WebSphere Portal Business OverviewJoel Demay
 
Grameen Solutions Technology Skills
Grameen Solutions   Technology SkillsGrameen Solutions   Technology Skills
Grameen Solutions Technology SkillsGrameen Solutions
 
The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...
The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...
The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...Matthias Zeller
 
01 web sphere portal business overview
01 web sphere portal business overview01 web sphere portal business overview
01 web sphere portal business overviewygolani
 
Client Continuum Dec Fy09
Client Continuum Dec Fy09Client Continuum Dec Fy09
Client Continuum Dec Fy09Martha Rotter
 
Developing Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClientDeveloping Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClientCM First Group
 
01. Portal Business Overview
01. Portal Business Overview01. Portal Business Overview
01. Portal Business OverviewNick Davis
 
HTML5 Mobile Application Framework
HTML5 Mobile Application FrameworkHTML5 Mobile Application Framework
HTML5 Mobile Application FrameworkThanh Nguyen
 
CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA PlexCM First Group
 
Websphere Portal
Websphere PortalWebsphere Portal
Websphere Portaldominion
 

Tendances (20)

Sencha Web Applications Come of Age
Sencha Web Applications Come of AgeSencha Web Applications Come of Age
Sencha Web Applications Come of Age
 
Ajax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley HalesAjax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley Hales
 
Grameen Solutions Product Engineering Featured Projects 2009 11 12
Grameen Solutions   Product Engineering Featured Projects 2009 11 12Grameen Solutions   Product Engineering Featured Projects 2009 11 12
Grameen Solutions Product Engineering Featured Projects 2009 11 12
 
IBM Websphere Portal | Portal Accelerators
IBM Websphere Portal  |  Portal AcceleratorsIBM Websphere Portal  |  Portal Accelerators
IBM Websphere Portal | Portal Accelerators
 
01. Portal Business Overview
01. Portal Business Overview01. Portal Business Overview
01. Portal Business Overview
 
Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01Web Component Development with Servlet and JSP Technologies Unit 01
Web Component Development with Servlet and JSP Technologies Unit 01
 
Managing Content In Portal Wcm
Managing Content In Portal WcmManaging Content In Portal Wcm
Managing Content In Portal Wcm
 
IBM WebSphere Portal References Education
IBM WebSphere Portal References EducationIBM WebSphere Portal References Education
IBM WebSphere Portal References Education
 
WebSphere Portal Business Overview
WebSphere Portal Business OverviewWebSphere Portal Business Overview
WebSphere Portal Business Overview
 
Grameen Solutions Technology Skills
Grameen Solutions   Technology SkillsGrameen Solutions   Technology Skills
Grameen Solutions Technology Skills
 
The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...
The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...
The Future of your Desktop - Trends in Enterprise Mash-Up, Collaboration and ...
 
01 web sphere portal business overview
01 web sphere portal business overview01 web sphere portal business overview
01 web sphere portal business overview
 
About 4Ward
About 4WardAbout 4Ward
About 4Ward
 
Client Continuum Dec Fy09
Client Continuum Dec Fy09Client Continuum Dec Fy09
Client Continuum Dec Fy09
 
CV
CVCV
CV
 
Developing Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClientDeveloping Apps with CA Plex + CM WebClient
Developing Apps with CA Plex + CM WebClient
 
01. Portal Business Overview
01. Portal Business Overview01. Portal Business Overview
01. Portal Business Overview
 
HTML5 Mobile Application Framework
HTML5 Mobile Application FrameworkHTML5 Mobile Application Framework
HTML5 Mobile Application Framework
 
CM WebClient for CA Plex
CM WebClient for CA PlexCM WebClient for CA Plex
CM WebClient for CA Plex
 
Websphere Portal
Websphere PortalWebsphere Portal
Websphere Portal
 

En vedette

Tools for Building Windows 8 style apps
Tools for Building Windows 8 style appsTools for Building Windows 8 style apps
Tools for Building Windows 8 style appsZubair Ahmed
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET DevelopersMichael Collins
 
Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Jeff Bramwell
 
Model View Madness
Model View MadnessModel View Madness
Model View MadnessMike Wilcox
 
Introduction to The Scalable JavaScript Application Framework
Introduction to The Scalable JavaScript Application FrameworkIntroduction to The Scalable JavaScript Application Framework
Introduction to The Scalable JavaScript Application FrameworkEric Bréchemier
 
Building Evented Single Page Applications
Building Evented Single Page ApplicationsBuilding Evented Single Page Applications
Building Evented Single Page ApplicationsSteve Smith
 
Win8 architecture for developers
Win8 architecture for developersWin8 architecture for developers
Win8 architecture for developersRobert MacLean
 
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...ITCamp
 
Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012Nicholas Zakas
 
Single Page WebApp Architecture
Single Page WebApp ArchitectureSingle Page WebApp Architecture
Single Page WebApp ArchitectureMorgan Cheng
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureNicholas Zakas
 

En vedette (14)

Tools for Building Windows 8 style apps
Tools for Building Windows 8 style appsTools for Building Windows 8 style apps
Tools for Building Windows 8 style apps
 
Making Programs Talk
Making Programs TalkMaking Programs Talk
Making Programs Talk
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET Developers
 
Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?
 
Model View Madness
Model View MadnessModel View Madness
Model View Madness
 
scope or not?
scope or not?scope or not?
scope or not?
 
Introduction to The Scalable JavaScript Application Framework
Introduction to The Scalable JavaScript Application FrameworkIntroduction to The Scalable JavaScript Application Framework
Introduction to The Scalable JavaScript Application Framework
 
Building Evented Single Page Applications
Building Evented Single Page ApplicationsBuilding Evented Single Page Applications
Building Evented Single Page Applications
 
Win8 architecture for developers
Win8 architecture for developersWin8 architecture for developers
Win8 architecture for developers
 
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
 
Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012Scalable JavaScript Application Architecture 2012
Scalable JavaScript Application Architecture 2012
 
Single Page WebApp Architecture
Single Page WebApp ArchitectureSingle Page WebApp Architecture
Single Page WebApp Architecture
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application Architecture
 

Similaire à ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications

ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#ITCamp
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsJames Pearce
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalAlessandro Pilotti
 
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp
 
MHa Resume Aug 27 2012
MHa Resume Aug 27 2012MHa Resume Aug 27 2012
MHa Resume Aug 27 2012mhaapane
 
Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web ApplicationsClint Edmonson
 
Agile in Action - Act 3: Testing
Agile in Action - Act 3: TestingAgile in Action - Act 3: Testing
Agile in Action - Act 3: TestingSpiffy
 
Nitin_Krishna_Resume
Nitin_Krishna_ResumeNitin_Krishna_Resume
Nitin_Krishna_ResumeNitin Krishna
 
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar Cheekuru  NET UIChandra Sekhar Cheekuru  NET UI
Chandra Sekhar Cheekuru NET UIChandra Sekhar
 
Silverlight development
Silverlight developmentSilverlight development
Silverlight developmentAnurag Gupta
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web appsJames Pearce
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsMicrosoft ArcReady
 
Building Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsBuilding Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsJames Pearce
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSITCamp
 

Similaire à ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications (20)

ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
 
HTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applicationsHTML5 and the dawn of rich mobile web applications
HTML5 and the dawn of rich mobile web applications
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 
Cloud & The Mobile Stack
Cloud & The Mobile StackCloud & The Mobile Stack
Cloud & The Mobile Stack
 
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignalITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
ITCamp 2012 - Alessandro Pilotti - Web API, web sockets and RSignal
 
MHa Resume Aug 27 2012
MHa Resume Aug 27 2012MHa Resume Aug 27 2012
MHa Resume Aug 27 2012
 
Scalable And Usable Web Applications
Scalable And Usable Web ApplicationsScalable And Usable Web Applications
Scalable And Usable Web Applications
 
Agile in Action - Act 3: Testing
Agile in Action - Act 3: TestingAgile in Action - Act 3: Testing
Agile in Action - Act 3: Testing
 
Nitin_Krishna_Resume
Nitin_Krishna_ResumeNitin_Krishna_Resume
Nitin_Krishna_Resume
 
Resume
ResumeResume
Resume
 
Anand Kumar.K
Anand Kumar.KAnand Kumar.K
Anand Kumar.K
 
Chandra Sekhar Cheekuru NET UI
Chandra Sekhar Cheekuru  NET UIChandra Sekhar Cheekuru  NET UI
Chandra Sekhar Cheekuru NET UI
 
Silverlight development
Silverlight developmentSilverlight development
Silverlight development
 
Silverlight development
Silverlight developmentSilverlight development
Silverlight development
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web apps
 
Narmada Kannan_Resume
Narmada Kannan_ResumeNarmada Kannan_Resume
Narmada Kannan_Resume
 
Darrell's Resume
Darrell's ResumeDarrell's Resume
Darrell's Resume
 
ArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web ApplicationsArcReady - Scalable And Usable Web Applications
ArcReady - Scalable And Usable Web Applications
 
Building Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsBuilding Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web Apps
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
 

Plus de ITCamp

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...ITCamp
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...ITCamp
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp
 

Plus de ITCamp (20)

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
 

Dernier

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Dernier (20)

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications

  • 1. Building single page, modular HTML5 applications for PC and Mobile Lorant Domokos Microsoft Student Partners Fortech @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 2. ITCamp 2012 sponsors Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 3. Agenda Mobile & Development • What are Single Page Applications? • Architecture • Technologies • Knockout fundamentals • Navigation fundamentals • Services layer • Patterns for modular JavaScript code @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 4. Spectrum of Web Apps Mobile & Development • Static: consist of static HTML pages, CSS, and images, full page refresh, page does not change • Server Rendered: server dynamically assembles page, JavaScript for validation, hover, full page refresh @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 5. Spectrum of Web Apps Mobile & Development • Hybrid Design: similar to server-rendered, but relies heavily on client side Java-Script to deliver an engaging experience. – Islands of richness: islands of interactivity within the site that do not require full-page reloads to change the UI • Single-page Interface: In this model, a full-page load happens only once. Ex: Hotmail, Office Live. • Bani Pierduti is hybrid @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 6. Modern Web Applications Mobile & Development • They are standards-focused, no plugins • They are interactive • They limit full-page reloads • They are asynchronous • They manage data • Runs on any device • Can work offline @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 7. Keep user is context Mobile & Development • No page reload • Users are kept in context • Fluid experience as they navigate from one task to another • Result: great user experience @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 8. Single Page Applications Mobile & Development Rich responsive applications combining the best of the web and desktop, build with HTML5 and JavaScript @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 9. Architecture Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 10. Architecture Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS JavaScript Client Side Interaction @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 11. Architecture Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Data Service JavaScript Client JSON/XML Side Interaction Data access service @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 12. Architecture Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Data Service JavaScript Client JSON/XML Side Interaction Nav Data access service @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 13. Architecture Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Data Service JavaScript Client JSON/XML Side Interaction Nav JavaScript Client Side Interaction @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 14. Architecture Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Data Service JavaScript Client JSON/XML Side Interaction Nav Data access service Local Storage @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 15. Mobile & Development DEMO MVC 4 SPA @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 16. Bani Pierduti Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 17. Technologies Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Data Service JavaScript Client JSON/XML Side Interaction Nav WebAPI Node.js Data access service Local Storage @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 18. Technologies Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Data Service JavaScript Client JSON/XML Side Interaction Nav WebAPI Node.js Data access service Local Storage HTML5 @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 19. Technologies Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Data Service JavaScript Client JSON/XML Side Interaction Nav WebAPI Node.js Data access service Upshot.js? Amplify.js Local Storage HTML5 @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 20. Technologies Mobile & Development Server Client ASP.NET Rendered Page HTML/CSS/JS HTML/CSS Nav.js? History.js Data Service JavaScript Client JSON/XML Side Interaction Nav WebAPI Node.js Data access service Upshot.js? Amplify.js Local Storage HTML5 @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 21. Technologies Mobile & Development Server Client Knockout.js Backbone.js ASP.NET Rendered Page JsRender HTML/CSS/JS HTML/CSS Nav.js? History.js Data Service JavaScript Client JSON/XML Side Interaction Nav WebAPI Node.js Data access service Upshot.js? Amplify.js Local Storage HTML5 @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 22. Knockout Mobile & Development • JavaScript MVVM Framework • MVVM-Model-View-ViewModel – Model-business domain objects – View-visible UI – ViewModel-data/operations on UI @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 23. Knockout Mobile & Development • Declarative data bindings, two way • Automatic UI refresh • Dependency tracking, if one object changes all dependent objects change • Templating @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 24. Observables Mobile & Development • They are functions • Bindings observe observables • Declare: var p = ko.observable(); • Read: var r = p(); • Write: p(‘value’); @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 25. Observables Mobile & Development • Types: – Observable: ko.observable(‘value’) – Observable array: ko.observableArray([]) – Computed: ko.computed(function() { return vm.firstName() + ‘ ’ + vm.lastName(); }, vm) @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 26. Bindings Mobile & Development • Built in: – Text and Appearance – Forms – Control Flow – Templates • Custom bindings @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 27. Text and Appearance Mobile & Development • Visible-toggle visibility • Text-text value of DOM element • Html-raw HTML of DOM element • Css-css classes • Style-raw style attributes • Attr-any attribute of DOM element @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 28. Forms Mobile & Development • Click-click event handling • Event-handling any event of DOM element • Submit-invoked when form is submitted • Enable-set as enabled • Disable-set as disabled • Value-value of DOM element • Checked-checkbox, radio button • Etc. @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 29. Control Flow Mobile & Development • If-executed if condition is true • Ifnot-executes if condition is false • Foreach-executes for each item in collection – $index – $data • With-Executes for the specified child object @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 30. Templates Mobile & Development • JavaScript templates-traditional JavaScript template in <script> tag • Containerless control flow: template-less, comment based syntax @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 31. Navigation and Browser History Mobile & Development • Traditional: browser manages history, back and forward buttons • URLs can contain a fragment identifier (hash) – This is the part after the # sign • Fragment identifier may also contain name value pairs @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 32. Navigation and Browser History Mobile & Development • If only the fragment identifier changes the browser doesn’t do a page refresh • They are also not added to history automatically • Fragment identifies can be used to manage screen layout • Application can handle HTML 5 hashchange event @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 33. Upshot.js Mobile & Development • “Proxy” on client side • Retrieves data from service • Paging • Tracks changes • Offline • Is it ready? @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 34. Amplify.js Mobile & Development • Set of components designed to solve common web application problems with a simplistic API • Request management: provides a clean and elegant request abstraction • Client Side Browser & Mobile Device Storage: HTML5 LocalStorage on modern browsers • Client Side Component Communication: pub/sub component to component communication @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 35. WebAPI Mobile & Development Alessandro Pilotti already demonstrated @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 36. Modularity Mobile & Development • Patterns are recommended for separation of concerns, encapsulation, abstraction, etc • Namespaces: var bp = bp || {}; • Structuring patterns • Promise and Deferred patterns for handling asynchrony • Advanced(Not discussed here): – Publish/Subscribe for module communication – Asynchronous module definitions – jQuery Widgets, Plugins @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 37. JavaScript structuring patterns Mobile & Development • Prototype pattern • Module pattern • Revealing module pattern • Revealing prototype pattern @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 38. Prototype pattern Mobile & Development var Calculator = function(element) { this.eqControl = $(element); } Calculator.prototype = { add: function(x, y) { var val = x + y; this.eqControl.text(val); } } @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 39. Prototype pattern Mobile & Development • Pros: – JS built in features – Modularize code into reusable objects – Variables/functions taken out of global namespace – Functions loaded into memory once – Can “override” functions • Cons: – “this” can be tricky – Contstructor separate from prototype definition @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 40. Module pattern Mobile & Development var Calculator = function(element) { // Private member. this.eqControl = $(element); return { // Public interface. add: function(x, y) { var val = x + y; this.eqControl.text(val); } }; } @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 41. Module pattern Mobile & Development • Pros: – Modularize code into reusable objects – Variables/functions taken out of global namespace – Expose only public members, hide private • Cons: – Functions will be duplicated for each instance – Not easy to extend @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 42. Revealing Module pattern Mobile & Development var Calculator = function(element) { // Private members. var eqControl = $(element), add: function(x, y) { var val = x + y; this.eqControl.text(val); }; return { // Public interface. doAdd: add }; } @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 43. Revealing Module pattern Mobile & Development • Pros: – Modularize code into reusable objects – Variables/functions taken out of global namespace – Expose only public members, hide private – Cleaner way to expose public members • Cons: – Functions will be duplicated for each instance – Not easy to extend @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 44. Revealing Prototype pattern Mobile & Development var Calculator = function(element) { this.eqControl = $(element); } Calculator.prototype = function() { var add = function(x, y) { var val = x + y; this.eqControl.text(val); }; return { doAdd: add }; } @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 45. Revealing Module pattern Mobile & Development • Pros: – Combines Prototype and Revealing Module patterns – Modularize code into reusable objects – Variables/functions taken out of global namespace – Functions loaded into memory once – Can “override” functions • Cons: – “this” can be tricky – Contstructor separate from prototype definition @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 46. Promise pattern Mobile & Development • JavaScript requests/operations are asynchronous: – Ajax – Animations – Etc. • How do we link operations if we have dependencies? @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 47. Promise pattern Mobile & Development • jQuery.Deferred public API • defferred.done() • defferred.fail() • defferred.then() • defferred.resolve() • defferred.reject() • jQuery.when() @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 48. Responsive web design Mobile & Development • Want to build single application for phone, tablet, PC, TV because – No duplicate effort – Reuse previous knowledge – Same content across platforms • Solution: Responsive web design (topic for another talk) @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 49. Responsive web design Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 50. Q&A @ itcampro # itcamp12 Premium conference on Microsoft technologies