SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
XWiki
A web development runtime platform based
on the wiki paradigm

Vincent Massol, February 2014
Agenda
• Developing on XWiki	

• A runtime platform	

• Usages	

• QA
Developing on XWiki

Copyright (c) Vincent Massol - 2012
Metadata!

Demo

• Ability to associate arbitrary 

data to any wiki page	


• 1: Create metadata definition in a wiki
page (a.k.a xclass)	


• 2: Use it in wiki pages (a.k.a xobjects)	

• 3: Use scripting in wiki pages to access it	


• Allows application development

Copyright (c) Vincent Massol - 2012
Skinning & Theming

Copyright (c) Vincent Massol - 2012
Skin Extensions
CSS

JS

== Grease Monkey

Copyright (c) Vincent Massol - 2012
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
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
Components in Java
@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
Extensions

Copyright (c) Vincent Massol - 2012
A runtime platform

Copyright (c) Vincent Massol - 2012
Building an Application
Runtime

Traditional way
Copyright (c) Vincent Massol - 2012
Building an Application
Runtime

Runtime

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

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

Copyright (c) Vincent Massol - 2012
Multiple Usages

Copyright (c) Vincent Massol - 2012
http://www.xwiki.org/xwiki/bin/view/Main/Screenshots
Copyright (c) Vincent Massol - 2012
Long tail of Apps
Excel of the
Web

Copyright (c) Vincent Massol - 2012
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
Q&A

Me
Copyright (c) Vincent Massol - 2012
Vincent Massol
vincent@xwiki.com	

skype: vmassol	

http://about.me/vmassol	

!

http://xwiki.org	

http://xwiki.com	


Copyright (c) Vincent Massol - 2012

Contenu connexe

Similaire à 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
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
Stuart Lodge
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
Francesca Tosi
 

Similaire à A web development runtime platform based on the wiki paradigm (20)

XWiki: A web development runtime platform
XWiki: A web development runtime platformXWiki: A web development runtime platform
XWiki: A web development runtime platform
 
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
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
XWiki: A web development runtime platform, OW2online, June 2020
XWiki: A web development runtime platform, OW2online, June 2020XWiki: A web development runtime platform, OW2online, June 2020
XWiki: A web development runtime platform, OW2online, June 2020
 
Jist tutorial semantic wikis and applications
Jist tutorial   semantic wikis and applicationsJist tutorial   semantic wikis and applications
Jist tutorial semantic wikis and applications
 
MvvmCross Introduction
MvvmCross IntroductionMvvmCross Introduction
MvvmCross Introduction
 
MvvmCross Seminar
MvvmCross SeminarMvvmCross Seminar
MvvmCross Seminar
 
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyRed Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
 
Distributed wikis
Distributed wikisDistributed wikis
Distributed wikis
 
Jquery
JqueryJquery
Jquery
 
NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6
 
Facets of applied smw
Facets of applied smwFacets of applied smw
Facets of applied smw
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 
Gwt 2,3 Deep dive
Gwt 2,3 Deep diveGwt 2,3 Deep dive
Gwt 2,3 Deep dive
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe
 
Semantic Tagging for the XWiki Platform with Zemanta and DBpedia
Semantic Tagging for the XWiki Platform with Zemanta and DBpediaSemantic Tagging for the XWiki Platform with Zemanta and DBpedia
Semantic Tagging for the XWiki Platform with Zemanta and DBpedia
 
Going Offline with JS
Going Offline with JSGoing Offline with JS
Going Offline with JS
 
Going offline with JS (DDD Sydney)
Going offline with JS (DDD Sydney)Going offline with JS (DDD Sydney)
Going offline with JS (DDD Sydney)
 
The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)
 

Plus de XWiki

Plus de XWiki (20)

Applications Open Source pour Entreprise
Applications Open Source pour EntrepriseApplications Open Source pour Entreprise
Applications Open Source pour Entreprise
 
Livre blanc : gestion collaborative de contenus dans le secteur public
Livre blanc : gestion collaborative de contenus dans le secteur publicLivre blanc : gestion collaborative de contenus dans le secteur public
Livre blanc : gestion collaborative de contenus dans le secteur public
 
Livre blanc : gestion collaborative de contenus dans le secteur public
Livre blanc : gestion collaborative de contenus dans le secteur publicLivre blanc : gestion collaborative de contenus dans le secteur public
Livre blanc : gestion collaborative de contenus dans le secteur public
 
L'intranet collaboratif Aelia : l'étude de cas
L'intranet collaboratif Aelia : l'étude de casL'intranet collaboratif Aelia : l'étude de cas
L'intranet collaboratif Aelia : l'étude de cas
 
An collaborative intranet: the Aelia case study
An collaborative intranet: the Aelia case studyAn collaborative intranet: the Aelia case study
An collaborative intranet: the Aelia case study
 
La base de connaissance de la FNAB
La base de connaissance de la FNABLa base de connaissance de la FNAB
La base de connaissance de la FNAB
 
Collaborative Watch: the AFP case study
Collaborative Watch: the AFP case studyCollaborative Watch: the AFP case study
Collaborative Watch: the AFP case study
 
Une solution de veille partagée et collaborative : le cas de l'AFP
Une solution de veille partagée et collaborative : le cas de l'AFPUne solution de veille partagée et collaborative : le cas de l'AFP
Une solution de veille partagée et collaborative : le cas de l'AFP
 
Créer ses applications métier : le cas DCNS
Créer ses applications métier : le cas DCNSCréer ses applications métier : le cas DCNS
Créer ses applications métier : le cas DCNS
 
La base de connaissances du CNFPT
La base de connaissances du CNFPTLa base de connaissances du CNFPT
La base de connaissances du CNFPT
 
Documentation of an application revamping program: the Capgemini case study
Documentation of an application revamping program: the Capgemini case studyDocumentation of an application revamping program: the Capgemini case study
Documentation of an application revamping program: the Capgemini case study
 
Documentation d'un programme de rénovation applicative : le cas Capgemini
Documentation d'un programme de rénovation applicative : le cas CapgeminiDocumentation d'un programme de rénovation applicative : le cas Capgemini
Documentation d'un programme de rénovation applicative : le cas Capgemini
 
Base de connaissance : le cas CAPHC
Base de connaissance : le cas CAPHCBase de connaissance : le cas CAPHC
Base de connaissance : le cas CAPHC
 
Knowledge Exchange Network: the CAPHC use case
Knowledge Exchange Network: the CAPHC use caseKnowledge Exchange Network: the CAPHC use case
Knowledge Exchange Network: the CAPHC use case
 
La plateforme IWA : retour d'expérience
La plateforme IWA : retour d'expérienceLa plateforme IWA : retour d'expérience
La plateforme IWA : retour d'expérience
 
How DCNS creates its own business applications
How DCNS creates its own business applicationsHow DCNS creates its own business applications
How DCNS creates its own business applications
 
Ressources pédagogiques en ligne
Ressources pédagogiques en ligneRessources pédagogiques en ligne
Ressources pédagogiques en ligne
 
L'intranet collaboratif Fidelia Assistance
L'intranet collaboratif Fidelia AssistanceL'intranet collaboratif Fidelia Assistance
L'intranet collaboratif Fidelia Assistance
 
Documentation produit : le cas Easyvista
Documentation produit : le cas EasyvistaDocumentation produit : le cas Easyvista
Documentation produit : le cas Easyvista
 
Documentation and Knowledge management: the EasyVista's use case
Documentation and Knowledge management: the EasyVista's use caseDocumentation and Knowledge management: the EasyVista's use case
Documentation and Knowledge management: the EasyVista's use case
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

A web development runtime platform based on the wiki paradigm