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

5,296 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 will show 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.

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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,296
On SlideShare
0
From Embeds
0
Number of Embeds
3,834
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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 = "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

×