SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
nooku.org/framework
Nooku Framework
            The API that speaks for itself



Joomladay, December 2009, Barcelona ES
What is it ?
Rapid extension development framework for Joomla.

                     •Version 0.6.5/0.7.0
                     • GPL license
                     • Non-commercial
                     • Joomla 1.5 only
                     • Installs as a plugin
                     • 30k lines of code
                     • Can work standalone


     http:///www.nooku.org                          1
                                                    6
Joomla 1.0




http:///www.nooku.org         1
                              3
Joomla 1.0




http:///www.nooku.org         1
                              3
Joomla 1.5
                           Joomla ! CMS

    Components         Modules      Extensions    Templates           Languages




    Administrator          Site     Application   Installation        XML-RPC




                                  Joomla! CMF


               Libraries            Framework               Plugins




http:///www.nooku.org                                                             1
                                                                                  3
+ Nooku Framework




http:///www.nooku.org   1
                        3
Why a new framework ?
1. Developing for Joomla 1.5 :
    • takes too much time
    • too much repeated tasks
    • resulting extensions are inflexible
    • PHP4
2. Existing frameworks don’t integrate easily with Joomla
    • allow you to build an application
    • Joomla is an ecosystem of applications
        http:///www.nooku.org                               1
                                                            7
House Rules !
• Use existing Design Pattern
       Don’t reinvent the wheel - just make it roll smoother
• Make all code reusable
       Don’t repeat yourself - and don’t repeat anyone else either
• Extreme flexibility
       Every object, and every part of the code must be extensible and replaceable.
       Ability to hook into any controller, database or application action
• An API is like a User Interface
       Learn once, apply everywhere
       KISS : keep it sexy and simple
• Convention over configuration
• Scaffolding is a fancy word for automated copy/paste

        http:///www.nooku.org                                                          1
                                                                                      10
Write less code !
       Leaves more time to focus on
              business logic
           and user experience




http:///www.nooku.org                  1
                                      11
How it should be ...
   class WeblinksControllerWeblinks extends KControllerForm
   {
      // no code needed
   }

   class WeblinksModelWeblinks extends KModelTable
   {
      // no code needed
   }

   class WeblinksViewWeblinks extends KViewHtml
   {
      // no code needed
   }


           That’s all you need
     for a working MVC extension!
http:///www.nooku.org                                         1
                                                              9
Ninjaboard
                      Lines of Code
  Comment Lines of code
  Non comment Lines of Code




          9.964




                                       ?
                                         1.782
         30.190                          3.572

Using Joomla Framework           Using Nooku Framework

http:///www.nooku.org                                     1
                                                         11
Ninjaboard
                      Lines of Code
  Comment Lines of code
  Non comment Lines of Code




          9.964               88% Reduction!


                                          1.782
         30.190                           3.572

Using Joomla Framework            Using Nooku Framework

http:///www.nooku.org                                      1
                                                          11
Security!
            IBM says Joomla is insecure




http:///www.nooku.org                      1
                                          11
OSM says : Not our fault !
      “The high rank is due to third party apps developed for
      Joomla and not due to vulnerabilities in Joomla itself.”


                                               Elin Waring - President Opensourcematters, Inc.




Link : http://community.joomla.org/blogs/community/1029-on-being-qthe-vendorq.html


                  http:///www.nooku.org                                                           1
                                                                                                 11
Nooku Framework says :
          “Write less code to lower the risk of vulnerabilities.
          Provide advanced automatic security features out
                              of the box.”




Link : http://community.joomla.org/blogs/community/1029-on-being-qthe-vendorq.html


                  http:///www.nooku.org                                               1
                                                                                     11
Reusability!
        3600+ extensions and counting




http:///www.nooku.org                    1
                                        11
Joomla goes CCK crazy




            Link : http://www.alledia.com/blog/product-reviews/joomla-goes-cckrazy/

http:///www.nooku.org                                                            1
                                                                                11
Problem ?
       • Extensions focus on features
       • Extensions are not reusable
       • Extensions are not flexible




http:///www.nooku.org                    1
                                        11
Solution !

 Nooku Framework helps you
build extensible, reusable code


               ... even if you don’t know
                   what you are doing!


http:///www.nooku.org                        1
                                            11
Don’t code, specialize!




http:///www.nooku.org       1
                           11
Joomla 1.5 only
                                                            Static
                     KModel
                                                            MVC
State                                               State
Query                                              Change




                    View Selection




        KView                        KController




            http:///www.nooku.org                                    21
KDatabase           KTable                                  Dynamic
                                                                                 MVC
                            KModel



                                                                             All of this happens behind
State                                                               State
Query                                                              Change




                                                                            the scenes, without writing
                           View Selection                                              any code.
        KView                                    KController



                                                                            Your task is specializing it:
                                                           Execute
                                                           Controller        writing only the specifics
        KTemplate                                KDispatcher
                                                                              that deviate from the
                                                                                  default behavior.

            http:///www.nooku.org                                                                    22
Features !
Flexibility                    Extensibility
 •Auto-loading                    • Chain of command
 • Factory/Object Store           • Inflector
 • Dependency injection           • Mixins
 • Smart and dynamic MVC          • Decorators
Data handling                   Security
  • ORM/Table Gateway               • Auto CSRF protection
  • REST/XML/JSON                   • Input filtering

       http:///www.nooku.org                             1
                                                        11
Who is using it ?
                      Anahita Social Engine
                      http://www.anahitapolis.com

                      Nooku Content
                      http://www.nooku.org

                      Ninjaforge
                      http://www.ninjaforge.com


Custom Projects                        Upcoming Extensions
•Port of Antwerp
                                     •DOCman 2      • AEC
• Italian Institute of Technology
• Kainga Real Estate system          • YOOTheme     • Dioscouri

      http:///www.nooku.org                                    1
                                                              21
Nooku Content




http:///www.nooku.org    1
                        21
Anahita Social Engine




http:///www.nooku.org      1
                          21
Ninjaboard




http:///www.nooku.org        1
                            21
Learn more ?
 1. Check out our presentations
    http://www.nooku.org/framework

 2. Look at the API
    http://api.nooku.org

 3. Get mailing list access
    http://www.nooku.org/framework/request.html

 4. Get the code
    http://sourceforge.net/projects/nooku-framework/


http:///www.nooku.org                                   1
                                                       22
Questions ?




http:///www.nooku.org        1
                            23
You can find us at
     http://www.nooku.org
                 You can follow us on
http://www.twitter.com/nooku


   http:///www.nooku.org                 1
                                        23

Mais conteúdo relacionado

Mais procurados

Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)Artur Cistov
 
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovationWhat's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovationMarakana Inc.
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instrumentsIvano Malavolta
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleyn_adam_stanley
 
RIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdgRIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdgZiyad Bazed
 
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...Codemotion
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Jonas Bandi
 
High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)Nicholas Zakas
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPTSummer Lu
 
High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)Nicholas Zakas
 
Web Performance & You - HighEdWeb Arkansas Version
Web Performance & You - HighEdWeb Arkansas VersionWeb Performance & You - HighEdWeb Arkansas Version
Web Performance & You - HighEdWeb Arkansas VersionDave Olsen
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesn_adam_stanley
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsXavier Lacot
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentSimon Guest
 
Primefaces users guide_3_3
Primefaces users guide_3_3Primefaces users guide_3_3
Primefaces users guide_3_3nesrine attia
 

Mais procurados (19)

BlackBerry WebWorks
BlackBerry WebWorksBlackBerry WebWorks
BlackBerry WebWorks
 
Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)Front-end optimisation & jQuery Internals (Pycon)
Front-end optimisation & jQuery Internals (Pycon)
 
JS Module Server
JS Module ServerJS Module Server
JS Module Server
 
Frameworks in java
Frameworks in javaFrameworks in java
Frameworks in java
 
Maven
MavenMaven
Maven
 
What's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovationWhat's this jQuery? Where it came from, and how it will drive innovation
What's this jQuery? Where it came from, and how it will drive innovation
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 
Sg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanleySg conference multiplatform_apps_adam_stanley
Sg conference multiplatform_apps_adam_stanley
 
RIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdgRIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdg
 
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
 
High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)High Performance JavaScript (Amazon DevCon 2011)
High Performance JavaScript (Amazon DevCon 2011)
 
Workshop OSGI PPT
Workshop OSGI PPTWorkshop OSGI PPT
Workshop OSGI PPT
 
High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)High Performance JavaScript (YUIConf 2010)
High Performance JavaScript (YUIConf 2010)
 
Web Performance & You - HighEdWeb Arkansas Version
Web Performance & You - HighEdWeb Arkansas VersionWeb Performance & You - HighEdWeb Arkansas Version
Web Performance & You - HighEdWeb Arkansas Version
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating products
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
 
Primefaces users guide_3_3
Primefaces users guide_3_3Primefaces users guide_3_3
Primefaces users guide_3_3
 

Destaque

Haurrak Eta Internet
Haurrak Eta InternetHaurrak Eta Internet
Haurrak Eta InternetGarazzi
 
Proximic - NOAH12 San Francisco
Proximic - NOAH12 San FranciscoProximic - NOAH12 San Francisco
Proximic - NOAH12 San FranciscoNOAH Advisors
 
3 ds max özel ders beykoz
3 ds max özel ders beykoz3 ds max özel ders beykoz
3 ds max özel ders beykozmeryem01
 
Een nieuw soort worm maakt gebruik van IPv6
Een nieuw soort worm maakt gebruik van IPv6Een nieuw soort worm maakt gebruik van IPv6
Een nieuw soort worm maakt gebruik van IPv6Jeroen Penninck
 
联想集团品牌宣传方略
联想集团品牌宣传方略联想集团品牌宣传方略
联想集团品牌宣传方略Zhe Wang
 

Destaque (6)

Haurrak Eta Internet
Haurrak Eta InternetHaurrak Eta Internet
Haurrak Eta Internet
 
MARINA
MARINAMARINA
MARINA
 
Proximic - NOAH12 San Francisco
Proximic - NOAH12 San FranciscoProximic - NOAH12 San Francisco
Proximic - NOAH12 San Francisco
 
3 ds max özel ders beykoz
3 ds max özel ders beykoz3 ds max özel ders beykoz
3 ds max özel ders beykoz
 
Een nieuw soort worm maakt gebruik van IPv6
Een nieuw soort worm maakt gebruik van IPv6Een nieuw soort worm maakt gebruik van IPv6
Een nieuw soort worm maakt gebruik van IPv6
 
联想集团品牌宣传方略
联想集团品牌宣传方略联想集团品牌宣传方略
联想集团品牌宣传方略
 

Semelhante a Joomladay Es 2009 - Nooku Framework

Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentifour_bhavesh
 
Joomladay NL 2011 - Belgium Police and Joomla
Joomladay NL 2011 - Belgium Police and JoomlaJoomladay NL 2011 - Belgium Police and Joomla
Joomladay NL 2011 - Belgium Police and JoomlaNooku
 
A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]guest4cbfd6
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play frameworkSuman Adak
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Webmasuland
 
Recipes for Continuous Delivery (ThoughtWorks Geeknight)
Recipes for Continuous Delivery (ThoughtWorks Geeknight)Recipes for Continuous Delivery (ThoughtWorks Geeknight)
Recipes for Continuous Delivery (ThoughtWorks Geeknight)Gurpreet Luthra
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Jonas Bandi
 
Overview of CMS and Joomla!
Overview of CMS and Joomla!Overview of CMS and Joomla!
Overview of CMS and Joomla!Vishwash Gaur
 
Seattle bestpractices2010
Seattle bestpractices2010Seattle bestpractices2010
Seattle bestpractices2010Olaseni Odebiyi
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.jsKasey McCurdy
 
Joomlatools Platform v1.0
Joomlatools Platform v1.0Joomlatools Platform v1.0
Joomlatools Platform v1.0Joomlatools
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conferencedmethvin
 
The Future of DOCman, Joomladay Italy 2009
The Future of DOCman, Joomladay Italy 2009The Future of DOCman, Joomladay Italy 2009
The Future of DOCman, Joomladay Italy 2009Joomlatools
 
Developing Series 40 web apps with Nokia Web Tools 2.0
Developing Series 40 web apps with Nokia Web Tools 2.0Developing Series 40 web apps with Nokia Web Tools 2.0
Developing Series 40 web apps with Nokia Web Tools 2.0Microsoft Mobile Developer
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5Akib B. Momin
 
The State of WebSockets in Django
The State of WebSockets in DjangoThe State of WebSockets in Django
The State of WebSockets in DjangoRami Sayar
 
Joomlatools Platform v2.0
Joomlatools Platform v2.0Joomlatools Platform v2.0
Joomlatools Platform v2.0Joomlatools
 
The Twelve Factor Apps
The Twelve Factor AppsThe Twelve Factor Apps
The Twelve Factor Appstomi vanek
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5Vinayak Tavargeri
 

Semelhante a Joomladay Es 2009 - Nooku Framework (20)

Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
 
Joomladay NL 2011 - Belgium Police and Joomla
Joomladay NL 2011 - Belgium Police and JoomlaJoomladay NL 2011 - Belgium Police and Joomla
Joomladay NL 2011 - Belgium Police and Joomla
 
A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play framework
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Web
 
Recipes for Continuous Delivery (ThoughtWorks Geeknight)
Recipes for Continuous Delivery (ThoughtWorks Geeknight)Recipes for Continuous Delivery (ThoughtWorks Geeknight)
Recipes for Continuous Delivery (ThoughtWorks Geeknight)
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
 
Overview of CMS and Joomla!
Overview of CMS and Joomla!Overview of CMS and Joomla!
Overview of CMS and Joomla!
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
 
Seattle bestpractices2010
Seattle bestpractices2010Seattle bestpractices2010
Seattle bestpractices2010
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.js
 
Joomlatools Platform v1.0
Joomlatools Platform v1.0Joomlatools Platform v1.0
Joomlatools Platform v1.0
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
 
The Future of DOCman, Joomladay Italy 2009
The Future of DOCman, Joomladay Italy 2009The Future of DOCman, Joomladay Italy 2009
The Future of DOCman, Joomladay Italy 2009
 
Developing Series 40 web apps with Nokia Web Tools 2.0
Developing Series 40 web apps with Nokia Web Tools 2.0Developing Series 40 web apps with Nokia Web Tools 2.0
Developing Series 40 web apps with Nokia Web Tools 2.0
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5
 
The State of WebSockets in Django
The State of WebSockets in DjangoThe State of WebSockets in Django
The State of WebSockets in Django
 
Joomlatools Platform v2.0
Joomlatools Platform v2.0Joomlatools Platform v2.0
Joomlatools Platform v2.0
 
The Twelve Factor Apps
The Twelve Factor AppsThe Twelve Factor Apps
The Twelve Factor Apps
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 

Último

Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024TopCSSGallery
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreelreely ones
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 

Último (20)

Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 

Joomladay Es 2009 - Nooku Framework

  • 2. Nooku Framework The API that speaks for itself Joomladay, December 2009, Barcelona ES
  • 3. What is it ? Rapid extension development framework for Joomla. •Version 0.6.5/0.7.0 • GPL license • Non-commercial • Joomla 1.5 only • Installs as a plugin • 30k lines of code • Can work standalone http:///www.nooku.org 1 6
  • 6. Joomla 1.5 Joomla ! CMS Components Modules Extensions Templates Languages Administrator Site Application Installation XML-RPC Joomla! CMF Libraries Framework Plugins http:///www.nooku.org 1 3
  • 8. Why a new framework ? 1. Developing for Joomla 1.5 : • takes too much time • too much repeated tasks • resulting extensions are inflexible • PHP4 2. Existing frameworks don’t integrate easily with Joomla • allow you to build an application • Joomla is an ecosystem of applications http:///www.nooku.org 1 7
  • 9. House Rules ! • Use existing Design Pattern Don’t reinvent the wheel - just make it roll smoother • Make all code reusable Don’t repeat yourself - and don’t repeat anyone else either • Extreme flexibility Every object, and every part of the code must be extensible and replaceable. Ability to hook into any controller, database or application action • An API is like a User Interface Learn once, apply everywhere KISS : keep it sexy and simple • Convention over configuration • Scaffolding is a fancy word for automated copy/paste http:///www.nooku.org 1 10
  • 10. Write less code ! Leaves more time to focus on business logic and user experience http:///www.nooku.org 1 11
  • 11. How it should be ... class WeblinksControllerWeblinks extends KControllerForm { // no code needed } class WeblinksModelWeblinks extends KModelTable { // no code needed } class WeblinksViewWeblinks extends KViewHtml { // no code needed } That’s all you need for a working MVC extension! http:///www.nooku.org 1 9
  • 12. Ninjaboard Lines of Code Comment Lines of code Non comment Lines of Code 9.964 ? 1.782 30.190 3.572 Using Joomla Framework Using Nooku Framework http:///www.nooku.org 1 11
  • 13. Ninjaboard Lines of Code Comment Lines of code Non comment Lines of Code 9.964 88% Reduction! 1.782 30.190 3.572 Using Joomla Framework Using Nooku Framework http:///www.nooku.org 1 11
  • 14. Security! IBM says Joomla is insecure http:///www.nooku.org 1 11
  • 15. OSM says : Not our fault ! “The high rank is due to third party apps developed for Joomla and not due to vulnerabilities in Joomla itself.” Elin Waring - President Opensourcematters, Inc. Link : http://community.joomla.org/blogs/community/1029-on-being-qthe-vendorq.html http:///www.nooku.org 1 11
  • 16. Nooku Framework says : “Write less code to lower the risk of vulnerabilities. Provide advanced automatic security features out of the box.” Link : http://community.joomla.org/blogs/community/1029-on-being-qthe-vendorq.html http:///www.nooku.org 1 11
  • 17. Reusability! 3600+ extensions and counting http:///www.nooku.org 1 11
  • 18. Joomla goes CCK crazy Link : http://www.alledia.com/blog/product-reviews/joomla-goes-cckrazy/ http:///www.nooku.org 1 11
  • 19. Problem ? • Extensions focus on features • Extensions are not reusable • Extensions are not flexible http:///www.nooku.org 1 11
  • 20. Solution ! Nooku Framework helps you build extensible, reusable code ... even if you don’t know what you are doing! http:///www.nooku.org 1 11
  • 22. Joomla 1.5 only Static KModel MVC State State Query Change View Selection KView KController http:///www.nooku.org 21
  • 23. KDatabase KTable Dynamic MVC KModel All of this happens behind State State Query Change the scenes, without writing View Selection any code. KView KController Your task is specializing it: Execute Controller writing only the specifics KTemplate KDispatcher that deviate from the default behavior. http:///www.nooku.org 22
  • 24. Features ! Flexibility Extensibility •Auto-loading • Chain of command • Factory/Object Store • Inflector • Dependency injection • Mixins • Smart and dynamic MVC • Decorators Data handling Security • ORM/Table Gateway • Auto CSRF protection • REST/XML/JSON • Input filtering http:///www.nooku.org 1 11
  • 25. Who is using it ? Anahita Social Engine http://www.anahitapolis.com Nooku Content http://www.nooku.org Ninjaforge http://www.ninjaforge.com Custom Projects Upcoming Extensions •Port of Antwerp •DOCman 2 • AEC • Italian Institute of Technology • Kainga Real Estate system • YOOTheme • Dioscouri http:///www.nooku.org 1 21
  • 29. Learn more ? 1. Check out our presentations http://www.nooku.org/framework 2. Look at the API http://api.nooku.org 3. Get mailing list access http://www.nooku.org/framework/request.html 4. Get the code http://sourceforge.net/projects/nooku-framework/ http:///www.nooku.org 1 22
  • 31. You can find us at http://www.nooku.org You can follow us on http://www.twitter.com/nooku http:///www.nooku.org 1 23