Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 21 Ad

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

Download to read offline

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.

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.

Advertisement
Advertisement

More Related Content

Viewers also liked (20)

Similar to XWiki: A web dev runtime for writing web apps @ FOSDEM 2014 (20)

Advertisement

More from Vincent Massol (20)

Recently uploaded (20)

Advertisement

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

×