Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

XWiki: A web dev runtime for writing web apps @ FOSDEM 2014


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 will show that a next generation wiki (examples based on XWiki: can be used as a web development platform to develop applications on top of it, providing a strong infrastructure scaffolding to building web applications.

The advantages are similar to those of using an application sever. However whereas an application server offers technical services only, a wiki platform offers higher level services such as content management, rendering, storage, WYSIWYGeditor, user management, and a lot more.

Not only are these services offered, you can develop using them in your traditional IDE or in the runtime, directly in wiki pages. This allows developing web applications extremely quickly, collaboratively and with a fast turnaround time, which is perfect for adhoc web application development.

Published in: Technology
  • Hello! I can recommend a site that has helped me. It's called ⇒ ⇐ So make sure to check it out!
    Are you sure you want to  Yes  No
    Your message goes here
  • Yes you are right. There are many research paper writing services available now. But almost services are fake and illegal. Only a genuine service will treat their customer with quality research papers. ⇒ ⇐
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ ♥♥♥
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❤❤❤ ❤❤❤
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

XWiki: A web dev runtime for writing web apps @ FOSDEM 2014

  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 = "".toURL().text def root = new JsonSlurper().parseText(url) ! println "|=Project|=Description|=Use Wiki?|=Use Issues?" root.each() { repo -> println "|[[${}>>$ {}]]|${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")) $"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. 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 skype: vmassol ! Copyright (c) Vincent Massol - 2012