XWiki: Developing simple apps quickly

  • 3,095 views
Uploaded 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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,095
On Slideshare
0
From Embeds
0
Number of Embeds
9

Actions

Shares
Downloads
12
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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