qooxdoo - Open Source Ajax Framework
-
Upload
ecker -
Category
Technology
-
view
3.229 -
download
4
description
Transcript of qooxdoo - Open Source Ajax Framework
1webinale, Karlsruhe, 28.05.2008
Andreas Ecker
1&1 Internet AG
THE NEW ERA OF WEB DEVELOPMENT
qooxdoo
Open-Source Ajax Framework
What is it?
Overview
Client-side JavaScript framework
Cross-browser web applications
Platform-independent tool chain
Comprehensive GUI toolkit
Elegant client-server communication
Overview
Open Source (LGPL / EPL)
Since 2005
Initiated, supported
and maintained by
http://qooxdoo.org
}
What is it good for?
Focus
Cross-browser, desktop-like
Ajax Applications
(“Rich Internet Applications”)
+Lower-level, DOM-centric
JavaScript Librarynew
What are the requirements
... for end users ?
Common Web Browser
Integrated Runtimes
Optional Technologies?
Extensions
JavaActiveX
FlashSilverlight
What are the requirements
... for developers ?
HTML
DOM
CSS
Server Software
Favorite Dev Platform
Object orientation
JavaScript
Seeing is believing.
Large-scale qooxdoo Apps
GMX.com : Webmail (international)
Other Corporate Apps
1&1 WebSite Builder
WEB.DE SmartDrive
Community Examples
What does it look like -
internally?
Architecture
ServerRPC Server
Java PerlPHP ...CGI ServletsResource
http / https
RPC ClientAJAX
GUI Toolkit (Widgets, Layouts)
BOMDOMEventsElements ...CoreClient
// create a button var button = new qx.ui.form.Button("First Button",
"./resource/image/test.png");// position itbutton.setLeft(50);button.setTop(50);// add it to the documentbutton.addToDocument();// action upon click/Enterbutton.addEventListener("execute", function(e){
alert("Hello World!"); });
Application Code
// create a button
// position it
// add it to the document
// action upon click/Enter
How to build such an app?
HTML ResourcesApplication
Compressed, Optimized, Linked
Build Process
Startup Images, ...OO JavaScript
Classes ResourcesThemesHTML
No CSS
Build process
Modularized
Are you serious about
JavaScript?
Object-oriented JavaScript
Fully class-based
Namespaces
Only noncritical manipulation of native objects
Static classes, abstract classes, singletons
Interfaces, mixins
Public, protected, private members
Dynamic properties
Still not happy with
JavaScript?
Alternative Development
Java qooxdoo Web Toolkit (“QWT”) Eclipse Rich Ajax Platform (“RAP”)
XML QxTransformer
GUI Builder Borland “Delphi for PHP” New browser-based builders Existing native builders
Care about the developers?
Developer Support
Browser independence
High performance
No memory leaks
Back button, bookmarking
Optimized deployment builds
Internationalization
Migration support . . .
Developer Support (continued)
Logging, Debugging
Inspector
Source code validation + formatting
Profiler
Unit + Functional testing
IDE Support
API Viewer
What's next?
qooxdoo 0.8
Decorators
Animations
More and better layout managers
Cleaned-up widget code
Custom widgets / layouts easier to create
Box model independence
Embedding widgets into web pages
Independent low-level JavaScript library
How 'Open' is your
Open Source?
Project
Liberal License
Mailinglist
Bugzilla
Public Code Repository
Blogs
Roadmap
Full-time developers + Contributors
qooxdoo-contrib