xwiki: a web development runtime platform

41
Copyright (c) Vincent Massol - 2011 XWiki A collaborative development platform runtime based on the wiki paradigm September 2011

Upload: vincent-massol

Post on 01-Nov-2014

3.283 views

Category:

Technology


0 download

DESCRIPTION

When developing a web application the traditional way is to develop the application from scratch using a general purpose language such as PHP, Grails, Java/JSP, etc. This presentation will show that a second 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 much if not all the needed infrastructure scaffolding.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 with a fast turnaround time, which is perfect for adhoc web application development.

TRANSCRIPT

Page 1: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

XWikiA collaborative development platform runtime based

on the wiki paradigm

September 2011

Page 2: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Agenda

• What is XWiki?

• Development Capabilities

• Why use XWiki?

• QA

Page 3: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

What is XWiki?

Page 4: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Is it a first gen Wiki?

Page 5: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Is it a first gen Wiki?

Not only!

Page 6: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Is it an Advanced Wiki?

Page 7: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Is it an Advanced Wiki?

Not only!

Page 8: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 9: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 10: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 11: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 12: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 13: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 14: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 15: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 16: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 17: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 18: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 19: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 20: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 21: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 22: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 23: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 24: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

It’s a dev platform!

... and a lot more...

Page 25: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

XWiki Platform

... for developing (collaborative) web applications

Page 26: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Multiple Usages

Page 27: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Long tail of AppsExcel of the

Web

Page 28: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Development Capabilities

Page 29: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Scripting in Pages (1/2){{groovy}}@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.1')import groovyx.net.http.*

def http = new HTTPBuilder( 'http://nexus.xwiki.org/nexus/' )def resp = http.get( path: 'service/local/repositories')

println "|=Name|=Type|=Location"resp.data."repositories-item".each() { println "|${it.name}|${it.repoType}|${it. contentResourceURI}"}{{/groovy}}

Demo

Page 30: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

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}}

Demo

Page 31: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Adding MetaData• Ability to associate arbitrary

data to any wiki page

• Enable structure in the wiki

• Enable Application development

• Future: Application Within Minutes

Demo

Page 32: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Wiki MacrosDemo

Page 33: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Skinning & ThemingDemo

Page 34: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Components@ComponentRolepublic interface Macro{    List<Block> execute();}

Demo

@Component@Named("message")@Singletonpublic class MessageMacro implements Macro{    @Inject    private Execution execution;

   @Inject    @Named("box")    private Macro boxMacro;

   public List<Block> execute()    {       ...    }}

org.xwiki.rendering.internal.macro.message.MessageMacro

META-INF/components.txt

Page 35: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

extensions.xwiki.org

Page 36: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Why use XWiki?

Page 37: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Pros (1/2)

• Iterative, Need-based development

• Continuous Delivery

• Online immediately (no deployment needed)

• Works from day one, immediate feedbacks

Page 38: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Pros (2/2)

• Work collaboratively on creating applications

• Designers can style while devs create logic

• Open source

• Strong and meritocratic community

Page 39: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Cons• Save code in SCM

• ... but SVN Application

• Low integration with existing dev tools

• ... but XEclipse

• ... but WebDAV

• Not an official standard

• Higher “risk”, less trained devs, etc

Page 40: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Q&A

Me

Page 41: XWiki: A web development runtime platform

Copyright (c) Vincent Massol - 2011

Vincent [email protected]: vmassolhttp://about.me/vmassol

http://xwiki.orghttp://xwiki.com