Swt 2009


Published on

SWT presentation on Smalltalks 2009, BA, Argenitna.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Swt 2009

  1. 1. Germán Arduino Arduino Software Alejandro Aguirre tech-Art Engineering Diego Gómez Deck IGO Software Smalltalks 2009 Buenos Aires - Argentina Smalltalk Web Toolkit
  2. 2. 2 About Us Germán S. Arduino Founder of Arduino Software http://www.arduinosoftware.com Producer of PasswordsPro http://www.passwordspro.com Blog at: http://germanarduino.blogspot.com Alejandro M. Aguirre Founder of tech-Art Engineering Personal page at: http://wiki.squeak.org/squeak/6112 Diego Gómez Deck Partner at IGO Software http://www.igosoftware.es Creator of SWT and friends Squeak Guru
  3. 3. 3 What is SWT ? A web development framework based on Model-View- Controller Model centered (as any good software) Divides the software in two parts: Server Part (Model): Running on the server (Smalltalk) Client Part (UI): Running on Internet Browser (Javascript) Includes a translator from Smalltalk to Javascript (ST2JS) to avoid the need of write Javascript code
  4. 4. 4 What is SWT (Cont) ? Uses Comet to break the HTTP protocol asymmetry With Comet we can deliver content to the client when an event has occurred in the model or in the server and avoid the pooling task to the server. This technique allows us to develop a MVC framework. The model is on the server and the view-controller on the client. The model can travel (translated to Javascript) to the client. The events are fired from the server to the client, and the framework has optimizations to control the network traffic.
  5. 5. 5 Smalltalk to Javascript Translator (ST2JS) Asteroid is a small, but still functional, implementation of the technology named Comet. See more about comet at: http://en.wikipedia.org/wiki/Comet_(programming) http://cometdaily.com In web development, Comet is a neologism to describe a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it.
  6. 6. 6 Smalltalk to Javascript Translator (ST2JS) The "dom" widgets are written in Squeak (The basic widgets developed in Smalltalk and translated to JS by ST2JS. Not need to know Javascript!) It takes advantage of modern browsers running javascript The result is a squeak image running in the browser!
  7. 7. 7 Features The client server communication with traditional Ajax The server client communication with Comet #clientSide and #serverSide engines Examples: Ping Pong Realtime Collaborative Whiteboard Changes on real time
  8. 8. 8 Architecture
  9. 9. 9 More features Distributed MVC – Designed to run with Comet. Remote Model-View-Controller attempts to optimize the network traffic. Model on the server and vc on the client. Example of Distributed MVC running When you are development in this framework you don't feel the sensation that you are developing a web application. Here we don't use anything outside Smalltalk.
  10. 10. 10 Using SWT to “compile” Javascript Another useful possibility of SWT is use it to “compile” Javascript and then run it from a static html page without Squeak on the server. Live Example: http://www.caceres3d.es/gigapixel/ Of course, being an static html, also works on mobile devices as the iPhone! Download the source code to generate the html from http://www.squeaksource.com/VHRP.html
  11. 11. 11 Real Projects with SWT CardGames: http://ceibo.wordpress.com
  12. 12. 12 Real Projects with SWT Virtual Museum
  13. 13. 13 References SWT is open source MIT licensed and is available on Squeaksource: http://www.squeaksource.com/SWT.html Mailing List: web20-smalltalk@googlegroups.com Next Steps: Port to latest versions of Squeak Port to Dolphin / Dolphin New Generation Invite all Smalltalkers to check it and, may be, help with the development.
  14. 14. 14 Q&A Questions? Contact: Germán Arduino - gsa@arsol.net Alejandro Aguirre – aaguirre8@gmail.com Diego Gómez Deck - diegogomezdeck@gmail.com Thanks you very much!