Your SlideShare is downloading. ×
0
XWiki                         Developing simple web applications quickly                                                  ...
Agenda                         • Architecture                         • Developing on XWiki                         • Usag...
Architecture                                    Copyright (c) Vincent Massol - 2012Friday, October 12, 12
XWiki Platform                   ... for developing (collaborative) web applications                                      ...
Building an Application                                                                           Runtime                 ...
Building an Application       Runtime                                                                Runtime              ...
Developing on XWiki                             a.k.a Morphing XWiki                                                    Co...
Extensions                                      Copyright (c) Vincent Massol - 2012Friday, October 12, 12
Adding Structure                         • Ability to associate arbitrary                           data to any wiki page ...
Classes - Objects                                       Copyright (c) Vincent Massol - 2012Friday, October 12, 12
Class Sheets                 • A Document with script to display the                         content of Object(s) nicely  ...
Skinning & Theming                                       Copyright (c) Vincent Massol - 2012Friday, October 12, 12
Skin Extensions                         CSS                      JS                               == Grease Monkey        ...
Scripting in Pages (1/2)     {{groovy}}     import groovy.json.*     def url = "https://api.github.com/users/xwiki/repos"....
Scripting in Pages (2/2)     {{velocity}}     #set ($xwql = "where doc.content like %welcome%")     #foreach ($item in $se...
UI Extensions                                            Result  Extension Point   {{velocity}}   ...   #foreach($uix in $...
Wiki Macros                                   Copyright (c) Vincent Massol - 2012Friday, October 12, 12
Components                         @Role                         public interface Macro                         {         ...
Usages                                  Copyright (c) Vincent Massol - 2012Friday, October 12, 12
Multiple Usages                                      Copyright (c) Vincent Massol - 2012Friday, October 12, 12
http://www.xwiki.org/xwiki/bin/view/Main/Screenshots                                                    Copyright (c) Vinc...
Long tail of Apps                                               Excel of the                                              ...
Pros and Cons                                    Copyright (c) Vincent Massol - 2012Friday, October 12, 12
Pros               • Iterative, Need-based development               • Continuous Delivery               • Work collaborat...
Cons                         • Save code in SCM                          • ... but SVN Application, Git Application       ...
Getting Started                         •   Download XWiki from xwiki.org                         •   Ask for a wiki on my...
Q&A                               Me                                Copyright (c) Vincent Massol - 2012Friday, October 12,...
Vincent Massol        vincent@xwiki.com        skype: vmassol        http://about.me/vmassol        http://xwiki.org      ...
Upcoming SlideShare
Loading in...5
×

XWiki: Developing simple apps quickly

3,378

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
3,378
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×