A web development runtime platform based on the wiki paradigm

1,803 views
1,704 views

Published on

When developing a web application, the traditional way is to develop the application from scratch using a general purpose language such as PHP, Grails, Play, Java/JSP, etc. This presentation shows that a next generation wiki (examples based on XWiki: http://xwiki.org) can be used as a web development platform to develop applications on top of it, providing a strong infrastructure scaffolding to building web applications.

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

  • Be the first to like this

No Downloads
Views
Total views
1,803
On SlideShare
0
From Embeds
0
Number of Embeds
720
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A web development runtime platform based on the wiki paradigm

  1. 1. XWiki A web development runtime platform based on the wiki paradigm Vincent Massol, February 2014
  2. 2. Agenda • Developing on XWiki • A runtime platform • Usages • QA
  3. 3. Developing on XWiki Copyright (c) Vincent Massol - 2012
  4. 4. 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
  5. 5. Skinning & Theming Copyright (c) Vincent Massol - 2012
  6. 6. Skin Extensions CSS JS == Grease Monkey Copyright (c) Vincent Massol - 2012
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. Extensions Copyright (c) Vincent Massol - 2012
  11. 11. A runtime platform Copyright (c) Vincent Massol - 2012
  12. 12. Building an Application Runtime Traditional way Copyright (c) Vincent Massol - 2012
  13. 13. Building an Application Runtime Runtime XWiki way - Morphing! Copyright (c) Vincent Massol - 2012
  14. 14. XWiki Platform ... for developing (collaborative) web applications Copyright (c) Vincent Massol - 2012
  15. 15. Usages Copyright (c) Vincent Massol - 2012
  16. 16. Multiple Usages Copyright (c) Vincent Massol - 2012
  17. 17. http://www.xwiki.org/xwiki/bin/view/Main/Screenshots Copyright (c) Vincent Massol - 2012
  18. 18. Long tail of Apps Excel of the Web Copyright (c) Vincent Massol - 2012
  19. 19. 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
  20. 20. Q&A Me Copyright (c) Vincent Massol - 2012
  21. 21. Vincent Massol vincent@xwiki.com skype: vmassol http://about.me/vmassol ! http://xwiki.org http://xwiki.com Copyright (c) Vincent Massol - 2012

×