SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
XWiki
                         Developing simple web applications quickly




                                                         Copyright (c) Vincent Massol - 2012
    Ocober 2012


Friday, October 12, 12
Agenda
                         • Architecture
                         • Developing on XWiki
                         • Usages
                         • Pros and cons
                         • QA
                                                 Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Architecture


                                    Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
XWiki Platform




                   ... for developing (collaborative) web applications
                                                                         Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Building an Application

                                                                           Runtime




                                   Traditional way
                                                Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Building an Application

       Runtime                                                                Runtime




                             XWiki way - Morphing!
                                                     Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Developing on XWiki
                             a.k.a Morphing XWiki




                                                    Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Extensions




                                      Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Adding Structure

                         • Ability to associate arbitrary
                           data to any wiki page
                           • Enable structure in the wiki
                           • Enable Application development
                           • == Application wiki or Next Gen Wiki
                         • Application Within Minutes
                                                            Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Classes - Objects




                                       Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Class Sheets

                 • A Document with script to display the
                         content of Object(s) nicely
                 • Automatic usage if defined in Class
                         Document
                 • Can be overridden on a page basis if needed

                                                       Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Skinning & Theming




                                       Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Skin Extensions
                         CSS                      JS




                               == Grease Monkey        Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Scripting in Pages (1/2)
     {{groovy}}
     import groovy.json.*

     def url = "https://api.github.com/users/xwiki/repos".toURL().text
     def root = new JsonSlurper().parseText(url)

     println "|=Project|=Description|=Use Wiki?|=Use Issues?"
     root.each() { repo ->
         println "|[[${repo.name}>>http://github.com/xwiki/$
     {repo.name}]]|${repo.description}|${repo.has_wiki}|$
     {repo.has_issues}"
     }
     {{/groovy}}




                                                    Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Scripting in Pages (2/2)
     {{velocity}}
     #set ($xwql = "where doc.content like '%welcome%'")
     #foreach ($item in $services.query.xwql($xwql).execute())
       #if ($request.confirm == "1")
          #set ($itemDoc = $xwiki.getDocument($item))
          $itemDoc.setContent($itemDoc.getContent().replaceAll(
            "welcome", "bienvenue"))
          $itemDoc.save("Replaced bienvenue")
          * [[$item>>$item]] replaced!
       #else
          * [[$item>>$item]]
       #end
     #end

     [[Replace "welcome" by "bienvenue">>?confirm=1]]
     {{/velocity}}



                                                    Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
UI Extensions
                                            Result
  Extension Point
   {{velocity}}
   ...
   #foreach($uix in $services.uix.getExtensions(
        'org.xwiki.platform.panels.Applications'))
     #set($params = $uix.getParameters())
     * [[image:$params.icon $params.label>>$params.target]]
   #end
   ...
   {{/velocity}}



           Extension

                                                  Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Wiki Macros




                                   Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Components
                         @Role
                         public interface Macro
                         {
                             List<Block> execute();
                         }

                         @Component
                         @Named("message")
                         @Singleton
                         public class MessageMacro implements Macro
                         {
                              @Inject
                              private Execution execution;

                                @Inject
                                @Named("box")
                                private Macro boxMacro;

                                public List<Block> execute()
                                {
                                   ...
                                }
                         }

                         META-INF/components.txt
                         org.xwiki.rendering.internal.macro.message.MessageMacro




                                         + Wiki Components!
                                                                                   Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Usages


                                  Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Multiple Usages




                                      Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
http://www.xwiki.org/xwiki/bin/view/Main/Screenshots
                                                    Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Long tail of Apps
                                               Excel of the
                                                  Web

                                              Web’s Swiss
                                              army knife




                                       Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Pros and Cons


                                    Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Pros
               • Iterative, Need-based development
               • Continuous Delivery
               • Work collaboratively on creating applications
                • Designers can style while devs create logic
               • Works from day one, immediate feedbacks
               • Open source and community-based
                                                   Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Cons
                         • Save code in SCM
                          • ... but SVN Application, Git Application
                         • Low integration with existing dev tools
                          • ... but XEclipse
                          • ... but WebDAV
                         • Not an official standard
                                                           Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Getting Started
                         •   Download XWiki from xwiki.org
                         •   Ask for a wiki on myxwiki.org
                             •   Non-profit orgs and individuals, no SLA
                             •   Used as a test platform by XWiki devs
                         •   XWiki Cloud
                             •   Free plan (5 users), paid plans
                         •   Contact a company supporting XWiki
                                                                   Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Q&A




                               Me
                                Copyright (c) Vincent Massol - 2012



Friday, October 12, 12
Vincent Massol
        vincent@xwiki.com
        skype: vmassol
        http://about.me/vmassol

        http://xwiki.org
        http://xwiki.com


                                  Copyright (c) Vincent Massol - 2012



Friday, October 12, 12

Contenu connexe

Similaire à XWiki: Developing simple apps quickly

A web development runtime platform based on the wiki paradigm
A web development runtime platform based on the wiki paradigmA web development runtime platform based on the wiki paradigm
A web development runtime platform based on the wiki paradigmXWiki
 
XWiki: A web development runtime platform
XWiki: A web development runtime platformXWiki: A web development runtime platform
XWiki: A web development runtime platformVincent Massol
 
XWiki: A web development runtime platform
XWiki: A web development runtime platformXWiki: A web development runtime platform
XWiki: A web development runtime platformXWiki
 
Pundit
PunditPundit
PunditNet7
 
XWiki Components Design Choices
XWiki Components Design ChoicesXWiki Components Design Choices
XWiki Components Design ChoicesVincent Massol
 
XWiki: The web's Swiss Army Knife
XWiki: The web's Swiss Army KnifeXWiki: The web's Swiss Army Knife
XWiki: The web's Swiss Army KnifeVincent Massol
 
Architecting large Node.js applications
Architecting large Node.js applicationsArchitecting large Node.js applications
Architecting large Node.js applicationsSergi Mansilla
 
Scalability 09262012
Scalability 09262012Scalability 09262012
Scalability 09262012Mike Miller
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumNLJUG
 
Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...
Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...
Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...Roberto García
 

Similaire à XWiki: Developing simple apps quickly (12)

A web development runtime platform based on the wiki paradigm
A web development runtime platform based on the wiki paradigmA web development runtime platform based on the wiki paradigm
A web development runtime platform based on the wiki paradigm
 
XWiki: A web development runtime platform
XWiki: A web development runtime platformXWiki: A web development runtime platform
XWiki: A web development runtime platform
 
XWiki: A web development runtime platform
XWiki: A web development runtime platformXWiki: A web development runtime platform
XWiki: A web development runtime platform
 
Pundit
PunditPundit
Pundit
 
XWiki Components Design Choices
XWiki Components Design ChoicesXWiki Components Design Choices
XWiki Components Design Choices
 
XWiki: The web's Swiss Army Knife
XWiki: The web's Swiss Army KnifeXWiki: The web's Swiss Army Knife
XWiki: The web's Swiss Army Knife
 
Architecting large Node.js applications
Architecting large Node.js applicationsArchitecting large Node.js applications
Architecting large Node.js applications
 
Terrific Frontends
Terrific FrontendsTerrific Frontends
Terrific Frontends
 
Scalability 09262012
Scalability 09262012Scalability 09262012
Scalability 09262012
 
ActiveSupport
ActiveSupportActiveSupport
ActiveSupport
 
Rethink your architecture - Marten Deinum
Rethink your architecture - Marten DeinumRethink your architecture - Marten Deinum
Rethink your architecture - Marten Deinum
 
Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...
Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...
Linked Data: the Entry Point for Worldwide Media Fragments Re-use and Copyrig...
 

Plus de Vincent Massol

XWiki Testing with TestContainers
XWiki Testing with TestContainersXWiki Testing with TestContainers
XWiki Testing with TestContainersVincent Massol
 
XWiki: The best wiki for developers
XWiki: The best wiki for developersXWiki: The best wiki for developers
XWiki: The best wiki for developersVincent Massol
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Vincent Massol
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
Configuration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainersConfiguration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainersVincent Massol
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
What's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.xWhat's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.xVincent Massol
 
Creating your own project's Quality Dashboard
Creating your own project's Quality DashboardCreating your own project's Quality Dashboard
Creating your own project's Quality DashboardVincent Massol
 
XWiki: wiki collaboration as an alternative to Confluence and Sharepoint
XWiki: wiki collaboration as an alternative to Confluence and SharepointXWiki: wiki collaboration as an alternative to Confluence and Sharepoint
XWiki: wiki collaboration as an alternative to Confluence and SharepointVincent Massol
 
Creating your own project's Quality Dashboard
Creating your own project's Quality DashboardCreating your own project's Quality Dashboard
Creating your own project's Quality DashboardVincent Massol
 
Leading a Community-Driven Open Source Project
Leading a Community-Driven Open Source ProjectLeading a Community-Driven Open Source Project
Leading a Community-Driven Open Source ProjectVincent Massol
 
XWiki Status - July 2015
XWiki Status - July 2015XWiki Status - July 2015
XWiki Status - July 2015Vincent Massol
 
XWiki SAS development practices
XWiki SAS development practicesXWiki SAS development practices
XWiki SAS development practicesVincent Massol
 
XWiki SAS: An open source company
XWiki SAS: An open source companyXWiki SAS: An open source company
XWiki SAS: An open source companyVincent Massol
 
Implementing Quality on a Java Project
Implementing Quality on a Java ProjectImplementing Quality on a Java Project
Implementing Quality on a Java ProjectVincent Massol
 
Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)Vincent Massol
 

Plus de Vincent Massol (20)

XWiki Testing with TestContainers
XWiki Testing with TestContainersXWiki Testing with TestContainers
XWiki Testing with TestContainers
 
XWiki: The best wiki for developers
XWiki: The best wiki for developersXWiki: The best wiki for developers
XWiki: The best wiki for developers
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
Configuration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainersConfiguration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainers
 
Building XWiki
Building XWikiBuilding XWiki
Building XWiki
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
What's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.xWhat's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.x
 
QDashboard 1.2
QDashboard 1.2QDashboard 1.2
QDashboard 1.2
 
Advanced Java Testing
Advanced Java TestingAdvanced Java Testing
Advanced Java Testing
 
Creating your own project's Quality Dashboard
Creating your own project's Quality DashboardCreating your own project's Quality Dashboard
Creating your own project's Quality Dashboard
 
XWiki: wiki collaboration as an alternative to Confluence and Sharepoint
XWiki: wiki collaboration as an alternative to Confluence and SharepointXWiki: wiki collaboration as an alternative to Confluence and Sharepoint
XWiki: wiki collaboration as an alternative to Confluence and Sharepoint
 
Creating your own project's Quality Dashboard
Creating your own project's Quality DashboardCreating your own project's Quality Dashboard
Creating your own project's Quality Dashboard
 
Leading a Community-Driven Open Source Project
Leading a Community-Driven Open Source ProjectLeading a Community-Driven Open Source Project
Leading a Community-Driven Open Source Project
 
Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
XWiki Status - July 2015
XWiki Status - July 2015XWiki Status - July 2015
XWiki Status - July 2015
 
XWiki SAS development practices
XWiki SAS development practicesXWiki SAS development practices
XWiki SAS development practices
 
XWiki SAS: An open source company
XWiki SAS: An open source companyXWiki SAS: An open source company
XWiki SAS: An open source company
 
Implementing Quality on a Java Project
Implementing Quality on a Java ProjectImplementing Quality on a Java Project
Implementing Quality on a Java Project
 
Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)
 

Dernier

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Dernier (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

XWiki: Developing simple apps quickly

  • 1. XWiki Developing simple web applications quickly Copyright (c) Vincent Massol - 2012 Ocober 2012 Friday, October 12, 12
  • 2. Agenda • Architecture • Developing on XWiki • Usages • Pros and cons • QA Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 3. Architecture Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 4. XWiki Platform ... for developing (collaborative) web applications Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 5. Building an Application Runtime Traditional way Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 6. Building an Application Runtime Runtime XWiki way - Morphing! Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 7. Developing on XWiki a.k.a Morphing XWiki Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 8. Extensions Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 9. Adding Structure • Ability to associate arbitrary data to any wiki page • Enable structure in the wiki • Enable Application development • == Application wiki or Next Gen Wiki • Application Within Minutes Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 10. Classes - Objects Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 11. Class Sheets • A Document with script to display the content of Object(s) nicely • Automatic usage if defined in Class Document • Can be overridden on a page basis if needed Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 12. Skinning & Theming Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 13. Skin Extensions CSS JS == Grease Monkey Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 14. Scripting in Pages (1/2) {{groovy}} import groovy.json.* def url = "https://api.github.com/users/xwiki/repos".toURL().text def root = new JsonSlurper().parseText(url) println "|=Project|=Description|=Use Wiki?|=Use Issues?" root.each() { repo -> println "|[[${repo.name}>>http://github.com/xwiki/$ {repo.name}]]|${repo.description}|${repo.has_wiki}|$ {repo.has_issues}" } {{/groovy}} Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 15. Scripting in Pages (2/2) {{velocity}} #set ($xwql = "where doc.content like '%welcome%'") #foreach ($item in $services.query.xwql($xwql).execute()) #if ($request.confirm == "1") #set ($itemDoc = $xwiki.getDocument($item)) $itemDoc.setContent($itemDoc.getContent().replaceAll( "welcome", "bienvenue")) $itemDoc.save("Replaced bienvenue") * [[$item>>$item]] replaced! #else * [[$item>>$item]] #end #end [[Replace "welcome" by "bienvenue">>?confirm=1]] {{/velocity}} Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 16. UI Extensions Result Extension Point {{velocity}} ... #foreach($uix in $services.uix.getExtensions( 'org.xwiki.platform.panels.Applications')) #set($params = $uix.getParameters()) * [[image:$params.icon $params.label>>$params.target]] #end ... {{/velocity}} Extension Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 17. Wiki Macros Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 18. Components @Role public interface Macro {     List<Block> execute(); } @Component @Named("message") @Singleton public class MessageMacro implements Macro {    @Inject    private Execution execution;    @Inject    @Named("box")    private Macro boxMacro;    public List<Block> execute()    {       ...    } } META-INF/components.txt org.xwiki.rendering.internal.macro.message.MessageMacro + Wiki Components! Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 19. Usages Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 20. Multiple Usages Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 21. http://www.xwiki.org/xwiki/bin/view/Main/Screenshots Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 22. Long tail of Apps Excel of the Web Web’s Swiss army knife Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 23. Pros and Cons Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 24. Pros • Iterative, Need-based development • Continuous Delivery • Work collaboratively on creating applications • Designers can style while devs create logic • Works from day one, immediate feedbacks • Open source and community-based Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 25. Cons • Save code in SCM • ... but SVN Application, Git Application • Low integration with existing dev tools • ... but XEclipse • ... but WebDAV • Not an official standard Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 26. Getting Started • Download XWiki from xwiki.org • Ask for a wiki on myxwiki.org • Non-profit orgs and individuals, no SLA • Used as a test platform by XWiki devs • XWiki Cloud • Free plan (5 users), paid plans • Contact a company supporting XWiki Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 27. Q&A Me Copyright (c) Vincent Massol - 2012 Friday, October 12, 12
  • 28. Vincent Massol vincent@xwiki.com skype: vmassol http://about.me/vmassol http://xwiki.org http://xwiki.com Copyright (c) Vincent Massol - 2012 Friday, October 12, 12