Oracle Sprout Core Presentation 2008 08 12

  • Published on
    18-Jul-2015

  • View
    3.116

  • Download
    1

Transcript

  • Architecture Framework Deployment

  • How can we build desktop-class

    applications on the web?

  • Like this...

  • Not this...

  • Desktop Class Means...

    Immediate response

    Rich interactions

    Oine mode

  • Document Driven

    Web Server Web Browser User

    Click

    Request

    Response

    Render

    Click

    Request

    Response

    Render

  • Document Driven

    Document Driven

    Immediate ResponseRich InteractionsOffline Mode

    Rarely

    None

    None

  • Ajax

  • "3270" Ajax

  • "3270" Ajax

    Web Server Web Browser User

    Click

    RequestResponse

    Update Page

    Initial Page Load

    Render

  • Document Driven "3270" Ajax

    Immediate ResponseRich InteractionsOffline Mode

    Rarely Occasionally

    None Some

    None Rare

    "3270" Ajax

  • "They" say... But really...

    Client computers are too slow

    Most clients are as fast as servers 2 years ago

    JavaScript is too slow JS engines are 2x-3x faster

    HTML is too limited Have you seen Safari lately?

    Browser Advancements

  • Why Not Flash (or Silverlight)?

    Proprietary

    Not available everywhere

    No longer necessary!

  • Web Client-Server

  • UserIMAP/POP

  • User

    Apache

    Backend Service

  • Web Client-Server Is...

    JavaScript app in browser

    Loads data via Ajax

    User interaction is not bound by the server

  • Document Driven

    Web Server Web Browser User

    Click

    Request

    Response

    Render

    Click

    Request

    Response

    Render

  • "3270" Ajax

    Web Server Web Browser User

    Click

    RequestResponse

    Update Page

    Initial Page Load

    Render

  • Web Client-Server

    Web Server Web Browser User

    Click

    RequestResponse

    Update Page

    Load JS Client

    Render

    Click

    Update Page

  • Document Driven "3270" Ajax

    Web Client-Server

    Immediate ResponseRich InteractionsOffline Mode

    Rarely Occasionally Usually

    None Some Always

    None Rare Offline Capable

    Web Client-Server

  • Web Client-Server

  • Framework

  • Framework Objectives

    Provide common applications features for free

    Optimize across web browsers

    Eliminate Glue Code

    Make coding fun!

  • Cocoa

  • SproutCore

  • Full MVC framework Has common Cocoa features such as:

    Bindings Key-Value Observing View controls Drag and drop Delegate patterns

    Embraces JavaScript State-based programming Runs in Safari, FireFox, IE6/7 - and on iPhone

  • JavaScript is Great!

    Late binding

    "Hackable" Object ModelClosures

    Lambda Functions

  • Anatomy of a Project

  • Anatomy of a Project

    Project config file

  • Anatomy of a Project

    Shared libraries

  • Anatomy of a Project

    Your application code

  • Anatomy of a Project

  • Anatomy of a Project

    Models-Views-

    Controllers

  • Anatomy of a Project

    main()

    Namespace and constants

  • Anatomy of a Project

    HTML, Images, CSS, and

    localized JS

    Localize in any language!

  • Anatomy of a Project

    Unit testing built right in

    Fixture data (use before the server

    is ready)

  • Demo

  • SproutCore

  • sudo gem install sproutcore

  • www.sproutcore.com

  • Deployment

  • User

    Apache

    Backend Service

  • Backend Service

    User

    Apache

  • sc-build

  • Before Build

  • After Build

  • User

    Apache

    Backend Service

    How You Explain to Mgmt

  • UserProxy-Cache Server

    Apache(serving SC app)

    Login/Auth

    Config

    Data Store

    Mail, etc.

    The Real World

  • Web Client-Server is the future SproutCore can help you build those apps

    today

    Future of web apps = JavaScript apps + simple back-end services + sync