SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
4.
Talk outline
✴ Ext JS: the awesome
✴ Ext JS and Rails: the headache
5.
Talk outline
✴ Ext JS: the awesome
✴ Ext JS and Rails: the headache
✴ Netzke: the pill
6.
Talk outline
✴ Ext JS: the awesome
✴ Ext JS and Rails: the headache
✴ Netzke: the pill
live codin
g
Illustration: http://www.rubyreddesign.co.uk/
7.
Ext JS: the choice for RIA
“Ext JS is a cross-browser JavaScript library for building rich internet applications.”
http://www.sencha.com
http://dev.sencha.com/deploy/dev/examples/
27.
Dear Santa, can I have...
✴ Client/server code in one class
28.
Dear Santa, can I have...
✴ Client/server code in one class
✴ Single-point configuration
29.
Dear Santa, can I have...
✴ Client/server code in one class
✴ Single-point configuration
✴ JavaScript encapsulation
30.
Dear Santa, can I have...
✴ Client/server code in one class
✴ Single-point configuration
✴ JavaScript encapsulation
✴ OOP - both in Ruby and JavaScript
31.
Dear Santa, can I have...
✴ Client/server code in one class
✴ Single-point configuration
✴ JavaScript encapsulation
✴ OOP - both in Ruby and JavaScript
✴ Unit-testability
32.
Dear Santa, can I have...
✴ Client/server code in one class
✴ Single-point configuration
✴ JavaScript encapsulation
✴ OOP - both in Ruby and JavaScript
✴ Unit-testability
✴ Composition
33.
Dear Santa, can I have...
✴ Client/server code in one class
✴ Single-point configuration
✴ JavaScript encapsulation
✴ OOP - both in Ruby and JavaScript
✴ Unit-testability
✴ Composition
✴ Nesting
34.
Dear Santa, can I have...
✴ Client/server code in one class
✴ Single-point configuration
✴ JavaScript encapsulation
✴ OOP - both in Ruby and JavaScript
✴ Unit-testability
✴ Composition
✴ Nesting
✴ Dynamic loading
35.
Dear Santa, can I have...
✴ Client/server code in one class ✴ Speed and efficiency
✴ Single-point configuration
✴ JavaScript encapsulation
✴ OOP - both in Ruby and JavaScript
✴ Unit-testability
✴ Composition
✴ Nesting
✴ Dynamic loading
36.
Dear Santa, can I have...
✴ Client/server code in one class ✴ Speed and efficiency
✴ Single-point configuration ✴ Minimal client-server roundtrips
✴ JavaScript encapsulation
✴ OOP - both in Ruby and JavaScript
✴ Unit-testability
✴ Composition
✴ Nesting
✴ Dynamic loading
37.
Dear Santa, can I have...
✴ Client/server code in one class ✴ Speed and efficiency
✴ Single-point configuration ✴ Minimal client-server roundtrips
✴ JavaScript encapsulation
✴ Minimal code sent over the wire
✴ OOP - both in Ruby and JavaScript
✴ Unit-testability
✴ Composition
✴ Nesting
✴ Dynamic loading
38.
Dear Santa, can I have...
✴ Client/server code in one class ✴ Speed and efficiency
✴ Single-point configuration ✴ Minimal client-server roundtrips
✴ JavaScript encapsulation
GRA ✴ Minimal code sent over the wire
✴ OOP - both in Ruby and JavaScript
NTE D
✴ Unit-testability
✴ Composition
✴ Nesting
✴ Dynamic loading
39.
Meet Netzke
Netzke-Core
the framework
Netzke-Basepack
full-featured components
Netzke (~ netsuke) [ ]:
Netzke-Communitypack a miniature Japanese
sculpture made of ivory
contributed components
http://github.com/skozlov/netzke-*
40.
Netzke tutorials
ExtJS/Rails CRUD app in 7 minutes
Netzke live demo
http://writelesscode.com http://demo.netzke.org
41.
Facets of Netzke
✴ JavaScript class generation
✴ Client-server communication
✴ Reusability of components
✴ Extendibility of widgets (OOP)
✴ Unlimited nesting (composition)
✴ Dynamic component loading
✴ JS class on-demand loading & caching
✴ Support for “external” JS and CSS
✴ Persistent dynamic configuration
✴ Multi-user/multi-role support
42.
Facets of Netzke ...for today
✴ JavaScript class generation
✴ Client-server communication
✴ Reusability of components
✴ Extendibility of widgets (OOP)
✴ Unlimited nesting (composition)
✴ Dynamic component loading
✴ JS class on-demand loading & caching
✴ Support for “external” JS and CSS
✴ Persistent dynamic configuration
✴ Multi-user/multi-role support
43.
Facets of Netzke ...for today
✴ JavaScript class generation
* branch “rails3”
✴ Client-server communication
required *
✴ Reusability of components
✴ Extendibility of widgets (OOP)
✴ Unlimited nesting (composition)
✴ Dynamic component loading
✴ JS class on-demand loading & caching
✴ Support for “external” JS and CSS
✴ Persistent dynamic configuration
✴ Multi-user/multi-role support
51.
Conclusion
Netzke-core provides you with the essential
building blocks for a solid architecture
52.
Conclusion
Netzke-core provides you with the essential
building blocks for a solid architecture
Netzke-basepack gives you forms, grids,
trees, etc (wip)
53.
Conclusion
Netzke-core provides you with the essential
building blocks for a solid architecture
Netzke-basepack gives you forms, grids,
trees, etc (wip)
Netzke-communitypack is supposed to be
growing along with the acceptance of Netzke
54.
Conclusion
Netzke-core provides you with the essential
building blocks for a solid architecture
Netzke-basepack gives you forms, grids,
trees, etc (wip)
Netzke-communitypack is supposed to be
growing along with the acceptance of Netzke
All in sake of writing less code
(see writelesscode.com)
55.
Future work
✴ Wrap up more Ext components
✴ Extend the “base pack” and “community pack”
✴ Provide compatibility with any rack app
56.
Thanks!
Canadian Rockies, summer 2008, first lines of Netzke code