XWiki: Developing simple apps quickly

4,202 views
3,967 views

Published on

Presentation given at the Alpes JUG and Mars JUG on 10th and 11th of October 2012. Explains why XWiki is a runtime platform for developing web applications

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,202
On SlideShare
0
From Embeds
0
Number of Embeds
2,282
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

XWiki: Developing simple apps quickly

  1. 1. XWiki Developing simple web applications quickly Copyright (c) Vincent Massol - 2012 Ocober 2012Friday, October 12, 12
  2. 2. Agenda • Architecture • Developing on XWiki • Usages • Pros and cons • QA Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  3. 3. Architecture Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  4. 4. XWiki Platform ... for developing (collaborative) web applications Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  5. 5. Building an Application Runtime Traditional way Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  6. 6. Building an Application Runtime Runtime XWiki way - Morphing! Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  7. 7. Developing on XWiki a.k.a Morphing XWiki Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  8. 8. Extensions Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  9. 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 - 2012Friday, October 12, 12
  10. 10. Classes - Objects Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  11. 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 - 2012Friday, October 12, 12
  12. 12. Skinning & Theming Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  13. 13. Skin Extensions CSS JS == Grease Monkey Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  14. 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 - 2012Friday, October 12, 12
  15. 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 - 2012Friday, October 12, 12
  16. 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 - 2012Friday, October 12, 12
  17. 17. Wiki Macros Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  18. 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 - 2012Friday, October 12, 12
  19. 19. Usages Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  20. 20. Multiple Usages Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  21. 21. http://www.xwiki.org/xwiki/bin/view/Main/Screenshots Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  22. 22. Long tail of Apps Excel of the Web Web’s Swiss army knife Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  23. 23. Pros and Cons Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  24. 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 - 2012Friday, October 12, 12
  25. 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 - 2012Friday, October 12, 12
  26. 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 - 2012Friday, October 12, 12
  27. 27. Q&A Me Copyright (c) Vincent Massol - 2012Friday, October 12, 12
  28. 28. Vincent Massol vincent@xwiki.com skype: vmassol http://about.me/vmassol http://xwiki.org http://xwiki.com Copyright (c) Vincent Massol - 2012Friday, October 12, 12

×