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
 
RIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdgRIM Casual Meetup - Bandung #DevIDBdg
RIM Casual Meetup - Bandung #DevIDBdg
Ziyad Bazed
 
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
 
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
Xavier Lacot
 
Primefaces users guide_3_3
Primefaces users guide_3_3Primefaces users guide_3_3
Primefaces users guide_3_3
nesrine 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 (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

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
Nooku
 
A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]A Isings Joomla Presentation[1]
A Isings Joomla Presentation[1]
guest4cbfd6
 
State of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront ConferenceState of jQuery - AspDotNetStorefront Conference
State of jQuery - AspDotNetStorefront Conference
dmethvin
 

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

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

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