SlideShare a Scribd company logo
1 of 200
Download to read offline
Data intensive RIAs on
                  Rails with very little code

                            Forrest chang
                           OCruby 1/31/2013




Friday, February 1, 2013
Question(1 of many)



Friday, February 1, 2013
Who works with
                               Rails?



Friday, February 1, 2013
Why do you love
                               rails?



Friday, February 1, 2013
improving web
                            development




Friday, February 1, 2013
improving web
                                development



                      • Fast




Friday, February 1, 2013
improving web
                                development



                      • Fast
                      • Fun




Friday, February 1, 2013
improving web
                                development



                      • Fast
                      • Fun
                      • Easy




Friday, February 1, 2013
Some things Rails
                               provides




Friday, February 1, 2013
Some things Rails
                               provides

                      • Structure (You know where things go/
                        are)




Friday, February 1, 2013
Some things Rails
                                provides

                      • Structure (You know where things go/
                        are)
                           • MVC




Friday, February 1, 2013
Some things Rails
                                 provides

                      • Structure (You know where things go/
                        are)
                           • MVC
                           • File structure




Friday, February 1, 2013
Some things Rails
                                 provides

                      • Structure (You know where things go/
                        are)
                           • MVC
                           • File structure
                      • Declarative DSL/State what you mean



Friday, February 1, 2013
Some things Rails
                                 provides

                      • Structure (You know where things go/
                        are)
                           • MVC
                           • File structure
                      • Declarative DSL/State what you mean
                      • Generators


Friday, February 1, 2013
What kinds of apps
                       do you make with
                            Rails?


Friday, February 1, 2013
how about these
                            kinds of apps



Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
data rich
Friday, February 1, 2013
Data rich apps




Friday, February 1, 2013
Data rich apps



                      • Data management




Friday, February 1, 2013
Data rich apps



                      • Data management
                      • Complex GUI




Friday, February 1, 2013
Data rich apps



                      • Data management
                      • Complex GUI
                      • Complex data and flows




Friday, February 1, 2013
Rich internet
                            application




Friday, February 1, 2013
Rich internet
                                application



                      • AJAX




Friday, February 1, 2013
Rich internet
                                application



                      • AJAX
                      • Single page




Friday, February 1, 2013
Rich internet
                                application



                      • AJAX
                      • Single page
                      • Desktop app like apps




Friday, February 1, 2013
Friday, February 1, 2013
how would you use
                      rails do make the
                         following?


Friday, February 1, 2013
Friday, February 1, 2013
Some things Rails
                            provides (revisited)

                      • Structure (You know where things go/
                        are)
                           • MVC
                           • File structure
                      • Declarative/State what you mean
                      • Generators


Friday, February 1, 2013
Friday, February 1, 2013
Controller




Friday, February 1, 2013
Controller
                           Controller




Friday, February 1, 2013
Controller
                           Controller
                                        Controller




Friday, February 1, 2013
Controller
                           Controller
                                         Controller




                                        Controller



Friday, February 1, 2013
Controller
                           Controller
                                         Controller




                                        Controller


                                                      Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller




                                           Controller


                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
                             Model




                                           Controller


                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
                             Model         Model




                                           Controller


                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
                             Model         Model




                                           Controller
                                            Model

                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial
                             Model         Model




                                           Controller
                                            Model

                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial
                             Model         Model
                             Partial




                                           Controller
                                            Model

                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial
                             Model         Model
                             Partial        Partial




                                           Controller
                                            Model

                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial
                             Model         Model
                             Partial        Partial




                                           Controller
                                           Model
                                        Partial
                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial
                             Model         Model
                             Partial        Partial




                                           Controller
                                           Model         Partial
                                        Partial
                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial
                             Model         Model
         AJAX
                             Partial        Partial




                                           Controller
                                           Model         Partial
                                        Partial
                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial                    AJAX
                             Model      Model
         AJAX
                             Partial      Partial




                                           Controller
                                           Model         Partial
                                        Partial
                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial                    AJAX
                             Model      Model
         AJAX
                             Partial      Partial
                                 AJAX


                                           Controller
                                           Model         Partial
                                        Partial
                                                         Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial                    AJAX
                             Model      Model
         AJAX
                             Partial      Partial
                                 AJAX                   AJAX


                                           Controller
                                           Model          Partial
                                        Partial
                                                          Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial                    AJAX
                             Model      Model
         AJAX
                             Partial      Partial
                                 AJAX                   AJAX


                                           Controller
                                           Model          Partial
                                        Partial                 AJAX
                                                          Controller
Friday, February 1, 2013
Controller


Controller
                           Controller
                                            Controller
          Partial                    AJAX
                             Model      Model
         AJAX                                                      AJAX
                             Partial      Partial
                                 AJAX                   AJAX


                                           Controller
                                           Model          Partial
                                        Partial                 AJAX
                                                          Controller
Friday, February 1, 2013
etc.



Friday, February 1, 2013
but wait, there’s
                                more!
Friday, February 1, 2013
single page app



Friday, February 1, 2013
single page app
                      • Structure
                           • Backbone
                           • Ember
                           • etc.?
                      • Widgets
                      • Libraries
                      • etc.

Friday, February 1, 2013
Friday, February 1, 2013
What if you could
                           do it in just a few
                                  lines?


Friday, February 1, 2013
netzke



Friday, February 1, 2013
netzke?
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Kudos from Matz!




Friday, February 1, 2013
Kudos from Matz!



                             Good stuff




Friday, February 1, 2013
Kudos from Matz!



                                   Good stuff




                           Netzke FTW!


Friday, February 1, 2013
Netzke: a DSL to
                            write gui web
                             components


Friday, February 1, 2013
netzke = Rails + ext
                            js



Friday, February 1, 2013
Friday, February 1, 2013
extjs




Friday, February 1, 2013
extjs
                      • Hundreds of components




Friday, February 1, 2013
extjs
                      • Hundreds of components
                      • Component based architecture




Friday, February 1, 2013
extjs
                      • Hundreds of components
                      • Component based architecture
                      • Well documented




Friday, February 1, 2013
extjs
                      • Hundreds of components
                      • Component based architecture
                      • Well documented
                      • Active community




Friday, February 1, 2013
extjs
                      • Hundreds of components
                      • Component based architecture
                      • Well documented
                      • Active community
                      • Maintained by a company




Friday, February 1, 2013
extjs
                      • Hundreds of components
                      • Component based architecture
                      • Well documented
                      • Active community
                      • Maintained by a company
                      • Dual License




Friday, February 1, 2013
extjs
                      • Hundreds of components
                      • Component based architecture
                      • Well documented
                      • Active community
                      • Maintained by a company
                      • Dual License
                           • GPL



Friday, February 1, 2013
extjs
                      • Hundreds of components
                      • Component based architecture
                      • Well documented
                      • Active community
                      • Maintained by a company
                      • Dual License
                           • GPL
                           • Commercial

Friday, February 1, 2013
EXTJS




                 Y U NO HAVE FREE, PERMISSIVE LICENSE!


Friday, February 1, 2013
Friday, February 1, 2013
PROBABLY WORTH
                        IT IF YOU NEED A
                          DATA RICH RIA


Friday, February 1, 2013
Ext JS?




Friday, February 1, 2013
Ext JS?

                      • Best RIA framework (cuz it’s pay and
                        it’s all they do, next best is far from it)




Friday, February 1, 2013
Ext JS?

                      • Best RIA framework (cuz it’s pay and
                        it’s all they do, next best is far from it)
                      • Cross platform




Friday, February 1, 2013
Ext JS?

                      • Best RIA framework (cuz it’s pay and
                        it’s all they do, next best is far from it)
                      • Cross platform
                      • Examples and documentation




Friday, February 1, 2013
Ext JS?

                      • Best RIA framework (cuz it’s pay and
                        it’s all they do, next best is far from it)
                      • Cross platform
                      • Examples and documentation
                      • Maintained by company/support/
                        training


Friday, February 1, 2013
Missing




Friday, February 1, 2013
Missing


                      • Seamless service side bindings (you do
                        it yourself)




Friday, February 1, 2013
Missing


                      • Seamless service side bindings (you do
                        it yourself)
                      • Server driven configuration (you do
                        both sides driving however you want)




Friday, February 1, 2013
ExtJS: Component based
                           framework




Friday, February 1, 2013
ExtJS: Component based
                           framework


                      • Reusability




Friday, February 1, 2013
ExtJS: Component based
                           framework


                      • Reusability
                      • Extensibility




Friday, February 1, 2013
ExtJS: Component based
                           framework


                      • Reusability
                      • Extensibility
                      • Compose-ability




Friday, February 1, 2013
ExtJS: Component based
                           framework


                      • Reusability
                      • Extensibility
                      • Compose-ability
                      • Events



Friday, February 1, 2013
ExtJS: Front end
                               focused



Friday, February 1, 2013
Benefits of Starting
                             From the Server




Friday, February 1, 2013
Benefits of Starting
                             From the Server


                      • Authentication/Authorization




Friday, February 1, 2013
Benefits of Starting
                             From the Server


                      • Authentication/Authorization
                      • Data




Friday, February 1, 2013
Benefits of Starting
                             From the Server


                      • Authentication/Authorization
                      • Data
                      • Business Logic




Friday, February 1, 2013
Benefits of Starting
                             From the Server


                      • Authentication/Authorization
                      • Data
                      • Business Logic
                      • Ruby



Friday, February 1, 2013
netzke




Friday, February 1, 2013
netzke


                      • Rails + Ext JS




Friday, February 1, 2013
netzke


                      • Rails + Ext JS
                      • Server and client working together
                        seamlessly




Friday, February 1, 2013
netzke


                      • Rails + Ext JS
                      • Server and client working together
                        seamlessly
                           • and easily



Friday, February 1, 2013
client + server = WIN!




Friday, February 1, 2013
client + server = WIN!


                      • Single point of configuration




Friday, February 1, 2013
client + server = WIN!


                      • Single point of configuration
                      • Testability




Friday, February 1, 2013
client + server = WIN!


                      • Single point of configuration
                      • Testability
                      • Resuability




Friday, February 1, 2013
client + server = WIN!


                      • Single point of configuration
                      • Testability
                      • Resuability
                      • Code encapsulation



Friday, February 1, 2013
A netzke component is a
                    ruby class represented
                   by an ext js component in
                          the browser



Friday, February 1, 2013
Ruby class
                            responsibilities

                      • Generate Ext JS counterpart (client
                        class)
                      • Configure it’s client class instance
                      • Run any server side logic
                      • Handle nesting, dynamic loading, etc.



Friday, February 1, 2013
Netzke component

                           Ruby class:
                           class SimpleComponent < Netzke::Base
                           end



                           and it’s corresponding JS class
                           Ext.define(‘Netzke.classes.SimpleComponent’, {
                             // ...
                           });



Friday, February 1, 2013
some netzke
                            features



Friday, February 1, 2013
client server
                            interaction




Friday, February 1, 2013
nesting




Friday, February 1, 2013
inheritance




Friday, February 1, 2013
Customization

                            Customize nearly everything




Friday, February 1, 2013
<RANT>



Friday, February 1, 2013
Hate “write it yourself
                            scratch”



                      • GUI items via HTML
                           • Markup
                           • Style




Friday, February 1, 2013
Hate the front/backend
                          duplications



                      • Models on both ends
                      • Logic on both ends




Friday, February 1, 2013
In Netzke, Single
                                Point of
                             configuration


Friday, February 1, 2013
</RANT>



Friday, February 1, 2013
Rails setup




Friday, February 1, 2013
Rails setup
                      • Copy extjs lib to public/extjs




Friday, February 1, 2013
Rails setup
                      • Copy extjs lib to public/extjs
                      • Copy famfamfam_silk_icons to images/icons (optional)




Friday, February 1, 2013
Rails setup
                      • Copy extjs lib to public/extjs
                      • Copy famfamfam_silk_icons to images/icons (optional)
                      • Gemfile
                           gem ‘netzke-core’ # presently point to github
                           gem ‘netzke-basepack’




Friday, February 1, 2013
Rails setup
                      • Copy extjs lib to public/extjs
                      • Copy famfamfam_silk_icons to images/icons (optional)
                      • Gemfile
                           gem ‘netzke-core’ # presently point to github
                           gem ‘netzke-basepack’
                      • add to routes.rb
                           netzke # all data and dynamic loading routes




Friday, February 1, 2013
Rails setup
                      • Copy extjs lib to public/extjs
                      • Copy famfamfam_silk_icons to images/icons (optional)
                      • Gemfile
                           gem ‘netzke-core’ # presently point to github
                           gem ‘netzke-basepack’
                      • add to routes.rb
                           netzke # all data and dynamic loading routes
                      • Add to header of the appropriate layout
                           <%= csrf_meta_tag %>
                           <%= load_netzke %>


Friday, February 1, 2013
why netzke?




Friday, February 1, 2013
why netzke?

                      • Clean client (Ext JS)/server (Rails)
                        integration




Friday, February 1, 2013
why netzke?

                      • Clean client (Ext JS)/server (Rails)
                        integration
                      • Built in components that understand
                        Rails




Friday, February 1, 2013
why netzke?

                      • Clean client (Ext JS)/server (Rails)
                        integration
                      • Built in components that understand
                        Rails
                      • Easy to compose and reuse components




Friday, February 1, 2013
why netzke?

                      • Clean client (Ext JS)/server (Rails)
                        integration
                      • Built in components that understand
                        Rails
                      • Easy to compose and reuse components
                      • Stop writing everything from scratch on
                        both front and back ends

Friday, February 1, 2013
instead of canned
                               examples...



Friday, February 1, 2013
My App



Friday, February 1, 2013
Audit Log Archive App


                      • Audit Log data for our Salesforce.com
                        instance taking up all our space, so
                        need to archive it, but still get access off
                        line
                      • Salesforce.com database, i.e. legacy



Friday, February 1, 2013
APP WALK
                           THROUGH



Friday, February 1, 2013
screen by screen
                                 code



Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
Friday, February 1, 2013
That’s all the code!



Friday, February 1, 2013
Netzke showcase
                                   apps
                            (i.e. examples)


Friday, February 1, 2013
http://yanit.heroku.com/




Friday, February 1, 2013
http://netzke-demo.herokuapp.com/




Friday, February 1, 2013
http://netzke-desktop-demo.heroku.com/




Friday, February 1, 2013
Benefits




Friday, February 1, 2013
Benefits
                      • Server multiplexing




Friday, February 1, 2013
Benefits
                      • Server multiplexing
                      • Reusable components - OO coding




Friday, February 1, 2013
Benefits
                      • Server multiplexing
                      • Reusable components - OO coding
                      • The power of Ext JS




Friday, February 1, 2013
Benefits
                      • Server multiplexing
                      • Reusable components - OO coding
                      • The power of Ext JS
                      • Dynamic Loading




Friday, February 1, 2013
Benefits
                      • Server multiplexing
                      • Reusable components - OO coding
                      • The power of Ext JS
                      • Dynamic Loading
                      • Quick Development




Friday, February 1, 2013
Benefits
                      • Server multiplexing
                      • Reusable components - OO coding
                      • The power of Ext JS
                      • Dynamic Loading
                      • Quick Development
                      • Easy to code if your needs match the
                        examples

Friday, February 1, 2013
Drawbacks




Friday, February 1, 2013
Drawbacks

                      • ExtJS License (YMMV)




Friday, February 1, 2013
Drawbacks

                      • ExtJS License (YMMV)
                      • Netzke documentation good but sometimes stuff
                        missing




Friday, February 1, 2013
Drawbacks

                      • ExtJS License (YMMV)
                      • Netzke documentation good but sometimes stuff
                        missing
                      • Needs to know Ext JS for certain parts




Friday, February 1, 2013
Drawbacks

                      • ExtJS License (YMMV)
                      • Netzke documentation good but sometimes stuff
                        missing
                      • Needs to know Ext JS for certain parts
                      • Needs ActiveRecordSession store, session hungry




Friday, February 1, 2013
Drawbacks

                      • ExtJS License (YMMV)
                      • Netzke documentation good but sometimes stuff
                        missing
                      • Needs to know Ext JS for certain parts
                      • Needs ActiveRecordSession store, session hungry
                      • I don’t know how to TDD/unit test these yet




Friday, February 1, 2013
Drawbacks

                      • ExtJS License (YMMV)
                      • Netzke documentation good but sometimes stuff
                        missing
                      • Needs to know Ext JS for certain parts
                      • Needs ActiveRecordSession store, session hungry
                      • I don’t know how to TDD/unit test these yet
                      • Caching can bite you during development




Friday, February 1, 2013
Drawbacks

                      • ExtJS License (YMMV)
                      • Netzke documentation good but sometimes stuff
                        missing
                      • Needs to know Ext JS for certain parts
                      • Needs ActiveRecordSession store, session hungry
                      • I don’t know how to TDD/unit test these yet
                      • Caching can bite you during development
                      • Easy to code if your needs match the examples


Friday, February 1, 2013
CONCLUSION




Friday, February 1, 2013
CONCLUSION


                      • Netzke awesome for Data Rich RIA’s




Friday, February 1, 2013
CONCLUSION


                      • Netzke awesome for Data Rich RIA’s
                      • Focus on what you want to solve not
                        the details




Friday, February 1, 2013
CONCLUSION


                      • Netzke awesome for Data Rich RIA’s
                      • Focus on what you want to solve not
                        the details
                      • Ruby to write frontend




Friday, February 1, 2013
CONCLUSION


                      • Netzke awesome for Data Rich RIA’s
                      • Focus on what you want to solve not
                        the details
                      • Ruby to write frontend
                      • General happiness all around



Friday, February 1, 2013
Resources
                      • http://netzke.org
                      • showcase apps
                      • https://groups.google.com/group/
                        netzke
                      • http://writelesscode.com
                      • @netzke
                      • I will blog about how to write ALAA

Friday, February 1, 2013
Credit to @nomadcoder



                      • For writing @netzke (awesome!)
                      • For material from his slides, which I
                        liberally borrowed




Friday, February 1, 2013
Friday, February 1, 2013

More Related Content

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Data Intensive RIAs on Rails with very little code (Netzke)

  • 1. Data intensive RIAs on Rails with very little code Forrest chang OCruby 1/31/2013 Friday, February 1, 2013
  • 2. Question(1 of many) Friday, February 1, 2013
  • 3. Who works with Rails? Friday, February 1, 2013
  • 4. Why do you love rails? Friday, February 1, 2013
  • 5. improving web development Friday, February 1, 2013
  • 6. improving web development • Fast Friday, February 1, 2013
  • 7. improving web development • Fast • Fun Friday, February 1, 2013
  • 8. improving web development • Fast • Fun • Easy Friday, February 1, 2013
  • 9. Some things Rails provides Friday, February 1, 2013
  • 10. Some things Rails provides • Structure (You know where things go/ are) Friday, February 1, 2013
  • 11. Some things Rails provides • Structure (You know where things go/ are) • MVC Friday, February 1, 2013
  • 12. Some things Rails provides • Structure (You know where things go/ are) • MVC • File structure Friday, February 1, 2013
  • 13. Some things Rails provides • Structure (You know where things go/ are) • MVC • File structure • Declarative DSL/State what you mean Friday, February 1, 2013
  • 14. Some things Rails provides • Structure (You know where things go/ are) • MVC • File structure • Declarative DSL/State what you mean • Generators Friday, February 1, 2013
  • 15. What kinds of apps do you make with Rails? Friday, February 1, 2013
  • 16. how about these kinds of apps Friday, February 1, 2013
  • 21. Data rich apps Friday, February 1, 2013
  • 22. Data rich apps • Data management Friday, February 1, 2013
  • 23. Data rich apps • Data management • Complex GUI Friday, February 1, 2013
  • 24. Data rich apps • Data management • Complex GUI • Complex data and flows Friday, February 1, 2013
  • 25. Rich internet application Friday, February 1, 2013
  • 26. Rich internet application • AJAX Friday, February 1, 2013
  • 27. Rich internet application • AJAX • Single page Friday, February 1, 2013
  • 28. Rich internet application • AJAX • Single page • Desktop app like apps Friday, February 1, 2013
  • 30. how would you use rails do make the following? Friday, February 1, 2013
  • 32. Some things Rails provides (revisited) • Structure (You know where things go/ are) • MVC • File structure • Declarative/State what you mean • Generators Friday, February 1, 2013
  • 35. Controller Controller Friday, February 1, 2013
  • 36. Controller Controller Controller Friday, February 1, 2013
  • 37. Controller Controller Controller Controller Friday, February 1, 2013
  • 38. Controller Controller Controller Controller Controller Friday, February 1, 2013
  • 39. Controller Controller Controller Controller Controller Controller Friday, February 1, 2013
  • 40. Controller Controller Controller Controller Model Controller Controller Friday, February 1, 2013
  • 41. Controller Controller Controller Controller Model Model Controller Controller Friday, February 1, 2013
  • 42. Controller Controller Controller Controller Model Model Controller Model Controller Friday, February 1, 2013
  • 43. Controller Controller Controller Controller Partial Model Model Controller Model Controller Friday, February 1, 2013
  • 44. Controller Controller Controller Controller Partial Model Model Partial Controller Model Controller Friday, February 1, 2013
  • 45. Controller Controller Controller Controller Partial Model Model Partial Partial Controller Model Controller Friday, February 1, 2013
  • 46. Controller Controller Controller Controller Partial Model Model Partial Partial Controller Model Partial Controller Friday, February 1, 2013
  • 47. Controller Controller Controller Controller Partial Model Model Partial Partial Controller Model Partial Partial Controller Friday, February 1, 2013
  • 48. Controller Controller Controller Controller Partial Model Model AJAX Partial Partial Controller Model Partial Partial Controller Friday, February 1, 2013
  • 49. Controller Controller Controller Controller Partial AJAX Model Model AJAX Partial Partial Controller Model Partial Partial Controller Friday, February 1, 2013
  • 50. Controller Controller Controller Controller Partial AJAX Model Model AJAX Partial Partial AJAX Controller Model Partial Partial Controller Friday, February 1, 2013
  • 51. Controller Controller Controller Controller Partial AJAX Model Model AJAX Partial Partial AJAX AJAX Controller Model Partial Partial Controller Friday, February 1, 2013
  • 52. Controller Controller Controller Controller Partial AJAX Model Model AJAX Partial Partial AJAX AJAX Controller Model Partial Partial AJAX Controller Friday, February 1, 2013
  • 53. Controller Controller Controller Controller Partial AJAX Model Model AJAX AJAX Partial Partial AJAX AJAX Controller Model Partial Partial AJAX Controller Friday, February 1, 2013
  • 55. but wait, there’s more! Friday, February 1, 2013
  • 56. single page app Friday, February 1, 2013
  • 57. single page app • Structure • Backbone • Ember • etc.? • Widgets • Libraries • etc. Friday, February 1, 2013
  • 59. What if you could do it in just a few lines? Friday, February 1, 2013
  • 67. Kudos from Matz! Friday, February 1, 2013
  • 68. Kudos from Matz! Good stuff Friday, February 1, 2013
  • 69. Kudos from Matz! Good stuff Netzke FTW! Friday, February 1, 2013
  • 70. Netzke: a DSL to write gui web components Friday, February 1, 2013
  • 71. netzke = Rails + ext js Friday, February 1, 2013
  • 74. extjs • Hundreds of components Friday, February 1, 2013
  • 75. extjs • Hundreds of components • Component based architecture Friday, February 1, 2013
  • 76. extjs • Hundreds of components • Component based architecture • Well documented Friday, February 1, 2013
  • 77. extjs • Hundreds of components • Component based architecture • Well documented • Active community Friday, February 1, 2013
  • 78. extjs • Hundreds of components • Component based architecture • Well documented • Active community • Maintained by a company Friday, February 1, 2013
  • 79. extjs • Hundreds of components • Component based architecture • Well documented • Active community • Maintained by a company • Dual License Friday, February 1, 2013
  • 80. extjs • Hundreds of components • Component based architecture • Well documented • Active community • Maintained by a company • Dual License • GPL Friday, February 1, 2013
  • 81. extjs • Hundreds of components • Component based architecture • Well documented • Active community • Maintained by a company • Dual License • GPL • Commercial Friday, February 1, 2013
  • 82. EXTJS Y U NO HAVE FREE, PERMISSIVE LICENSE! Friday, February 1, 2013
  • 84. PROBABLY WORTH IT IF YOU NEED A DATA RICH RIA Friday, February 1, 2013
  • 86. Ext JS? • Best RIA framework (cuz it’s pay and it’s all they do, next best is far from it) Friday, February 1, 2013
  • 87. Ext JS? • Best RIA framework (cuz it’s pay and it’s all they do, next best is far from it) • Cross platform Friday, February 1, 2013
  • 88. Ext JS? • Best RIA framework (cuz it’s pay and it’s all they do, next best is far from it) • Cross platform • Examples and documentation Friday, February 1, 2013
  • 89. Ext JS? • Best RIA framework (cuz it’s pay and it’s all they do, next best is far from it) • Cross platform • Examples and documentation • Maintained by company/support/ training Friday, February 1, 2013
  • 91. Missing • Seamless service side bindings (you do it yourself) Friday, February 1, 2013
  • 92. Missing • Seamless service side bindings (you do it yourself) • Server driven configuration (you do both sides driving however you want) Friday, February 1, 2013
  • 93. ExtJS: Component based framework Friday, February 1, 2013
  • 94. ExtJS: Component based framework • Reusability Friday, February 1, 2013
  • 95. ExtJS: Component based framework • Reusability • Extensibility Friday, February 1, 2013
  • 96. ExtJS: Component based framework • Reusability • Extensibility • Compose-ability Friday, February 1, 2013
  • 97. ExtJS: Component based framework • Reusability • Extensibility • Compose-ability • Events Friday, February 1, 2013
  • 98. ExtJS: Front end focused Friday, February 1, 2013
  • 99. Benefits of Starting From the Server Friday, February 1, 2013
  • 100. Benefits of Starting From the Server • Authentication/Authorization Friday, February 1, 2013
  • 101. Benefits of Starting From the Server • Authentication/Authorization • Data Friday, February 1, 2013
  • 102. Benefits of Starting From the Server • Authentication/Authorization • Data • Business Logic Friday, February 1, 2013
  • 103. Benefits of Starting From the Server • Authentication/Authorization • Data • Business Logic • Ruby Friday, February 1, 2013
  • 105. netzke • Rails + Ext JS Friday, February 1, 2013
  • 106. netzke • Rails + Ext JS • Server and client working together seamlessly Friday, February 1, 2013
  • 107. netzke • Rails + Ext JS • Server and client working together seamlessly • and easily Friday, February 1, 2013
  • 108. client + server = WIN! Friday, February 1, 2013
  • 109. client + server = WIN! • Single point of configuration Friday, February 1, 2013
  • 110. client + server = WIN! • Single point of configuration • Testability Friday, February 1, 2013
  • 111. client + server = WIN! • Single point of configuration • Testability • Resuability Friday, February 1, 2013
  • 112. client + server = WIN! • Single point of configuration • Testability • Resuability • Code encapsulation Friday, February 1, 2013
  • 113. A netzke component is a ruby class represented by an ext js component in the browser Friday, February 1, 2013
  • 114. Ruby class responsibilities • Generate Ext JS counterpart (client class) • Configure it’s client class instance • Run any server side logic • Handle nesting, dynamic loading, etc. Friday, February 1, 2013
  • 115. Netzke component Ruby class: class SimpleComponent < Netzke::Base end and it’s corresponding JS class Ext.define(‘Netzke.classes.SimpleComponent’, { // ... }); Friday, February 1, 2013
  • 116. some netzke features Friday, February 1, 2013
  • 117. client server interaction Friday, February 1, 2013
  • 120. Customization Customize nearly everything Friday, February 1, 2013
  • 122. Hate “write it yourself scratch” • GUI items via HTML • Markup • Style Friday, February 1, 2013
  • 123. Hate the front/backend duplications • Models on both ends • Logic on both ends Friday, February 1, 2013
  • 124. In Netzke, Single Point of configuration Friday, February 1, 2013
  • 127. Rails setup • Copy extjs lib to public/extjs Friday, February 1, 2013
  • 128. Rails setup • Copy extjs lib to public/extjs • Copy famfamfam_silk_icons to images/icons (optional) Friday, February 1, 2013
  • 129. Rails setup • Copy extjs lib to public/extjs • Copy famfamfam_silk_icons to images/icons (optional) • Gemfile gem ‘netzke-core’ # presently point to github gem ‘netzke-basepack’ Friday, February 1, 2013
  • 130. Rails setup • Copy extjs lib to public/extjs • Copy famfamfam_silk_icons to images/icons (optional) • Gemfile gem ‘netzke-core’ # presently point to github gem ‘netzke-basepack’ • add to routes.rb netzke # all data and dynamic loading routes Friday, February 1, 2013
  • 131. Rails setup • Copy extjs lib to public/extjs • Copy famfamfam_silk_icons to images/icons (optional) • Gemfile gem ‘netzke-core’ # presently point to github gem ‘netzke-basepack’ • add to routes.rb netzke # all data and dynamic loading routes • Add to header of the appropriate layout <%= csrf_meta_tag %> <%= load_netzke %> Friday, February 1, 2013
  • 133. why netzke? • Clean client (Ext JS)/server (Rails) integration Friday, February 1, 2013
  • 134. why netzke? • Clean client (Ext JS)/server (Rails) integration • Built in components that understand Rails Friday, February 1, 2013
  • 135. why netzke? • Clean client (Ext JS)/server (Rails) integration • Built in components that understand Rails • Easy to compose and reuse components Friday, February 1, 2013
  • 136. why netzke? • Clean client (Ext JS)/server (Rails) integration • Built in components that understand Rails • Easy to compose and reuse components • Stop writing everything from scratch on both front and back ends Friday, February 1, 2013
  • 137. instead of canned examples... Friday, February 1, 2013
  • 139. Audit Log Archive App • Audit Log data for our Salesforce.com instance taking up all our space, so need to archive it, but still get access off line • Salesforce.com database, i.e. legacy Friday, February 1, 2013
  • 140. APP WALK THROUGH Friday, February 1, 2013
  • 141. screen by screen code Friday, February 1, 2013
  • 173. That’s all the code! Friday, February 1, 2013
  • 174. Netzke showcase apps (i.e. examples) Friday, February 1, 2013
  • 179. Benefits • Server multiplexing Friday, February 1, 2013
  • 180. Benefits • Server multiplexing • Reusable components - OO coding Friday, February 1, 2013
  • 181. Benefits • Server multiplexing • Reusable components - OO coding • The power of Ext JS Friday, February 1, 2013
  • 182. Benefits • Server multiplexing • Reusable components - OO coding • The power of Ext JS • Dynamic Loading Friday, February 1, 2013
  • 183. Benefits • Server multiplexing • Reusable components - OO coding • The power of Ext JS • Dynamic Loading • Quick Development Friday, February 1, 2013
  • 184. Benefits • Server multiplexing • Reusable components - OO coding • The power of Ext JS • Dynamic Loading • Quick Development • Easy to code if your needs match the examples Friday, February 1, 2013
  • 186. Drawbacks • ExtJS License (YMMV) Friday, February 1, 2013
  • 187. Drawbacks • ExtJS License (YMMV) • Netzke documentation good but sometimes stuff missing Friday, February 1, 2013
  • 188. Drawbacks • ExtJS License (YMMV) • Netzke documentation good but sometimes stuff missing • Needs to know Ext JS for certain parts Friday, February 1, 2013
  • 189. Drawbacks • ExtJS License (YMMV) • Netzke documentation good but sometimes stuff missing • Needs to know Ext JS for certain parts • Needs ActiveRecordSession store, session hungry Friday, February 1, 2013
  • 190. Drawbacks • ExtJS License (YMMV) • Netzke documentation good but sometimes stuff missing • Needs to know Ext JS for certain parts • Needs ActiveRecordSession store, session hungry • I don’t know how to TDD/unit test these yet Friday, February 1, 2013
  • 191. Drawbacks • ExtJS License (YMMV) • Netzke documentation good but sometimes stuff missing • Needs to know Ext JS for certain parts • Needs ActiveRecordSession store, session hungry • I don’t know how to TDD/unit test these yet • Caching can bite you during development Friday, February 1, 2013
  • 192. Drawbacks • ExtJS License (YMMV) • Netzke documentation good but sometimes stuff missing • Needs to know Ext JS for certain parts • Needs ActiveRecordSession store, session hungry • I don’t know how to TDD/unit test these yet • Caching can bite you during development • Easy to code if your needs match the examples Friday, February 1, 2013
  • 194. CONCLUSION • Netzke awesome for Data Rich RIA’s Friday, February 1, 2013
  • 195. CONCLUSION • Netzke awesome for Data Rich RIA’s • Focus on what you want to solve not the details Friday, February 1, 2013
  • 196. CONCLUSION • Netzke awesome for Data Rich RIA’s • Focus on what you want to solve not the details • Ruby to write frontend Friday, February 1, 2013
  • 197. CONCLUSION • Netzke awesome for Data Rich RIA’s • Focus on what you want to solve not the details • Ruby to write frontend • General happiness all around Friday, February 1, 2013
  • 198. Resources • http://netzke.org • showcase apps • https://groups.google.com/group/ netzke • http://writelesscode.com • @netzke • I will blog about how to write ALAA Friday, February 1, 2013
  • 199. Credit to @nomadcoder • For writing @netzke (awesome!) • For material from his slides, which I liberally borrowed Friday, February 1, 2013